smartchart已实现大部分常用的数据源连接, 对于其它的, 您也可以使用python数据源进行处理 但是使用python数据源有一定的缺陷, 需要在dataset上写python代码, 不能复用 对于一些带连接信息的还需要重复写入 所以你还可以使用自定义数据源
应用场景 #
- 未内置的数据源, 如需要使用sparkSQL, ES等
- 标准处理满足不了要求, 需要对数据进行预处理的情况
- 需要刷新时触发预警等自定义动作
- 需要自定义写入方法, 个性化查询需求, 甚至是实时爬取数据
使用方法 #
- 首先你需要新建一个python脚本文件, 如diy_conn.py
- 复制以下代码到这个文件, 然后编写你的自定义查询方法
def dataset(*args, **kwargs):
"""
返回查询数据集
:return: 二维数组或JSON字典
"""
sqlList = args[0] # 数据集编辑界面的输入已按分号拆分成数组 [sql1, sql2...]
config = args[1] # 数据连接界面的配置{'host','port','user','password','db'}
input = sqlList[0] # 数据集界面的输入
host = config['host']
user = config['user']
password = config['password']
# 插入你的数据查询及处理代码, 生成result即可
result = [[]]
return result
def insert_dataset(*args, **kwargs):
"""
数据填表实现
"""
contents = args[0] # 传入的数据集二维数组格式
table = args[1] # 配置中的表名
config = args[3] # 相关的配置字典{'host','port','user','password','db'}
# 插入你的写入数据逻辑代码
-
在任意的仪表盘开发界面中 “模板” –> 点击上传图标, 将这个python文件上传即可
-
新建数据源, 驱动填写之前上传过的文件名, 比如我们这个是diy_conn, 其它参数按照你自定义的需求填写, 会自动传入你的自定义函数,之后你可以正常使用这个自定义数据源了
案例 #
比如对于开启了SSL认证的mysql,我们需要改写一个自定义数据源,取名mysql_ssl.py
from smart_chart.common.connect_db import _O00OO00000O00O00O as cur_execute
import pymysql
def dataset(*args, **kwargs):
"""
返回查询数据集
:return: 二维数组或JSON字典
"""
sqlList = args[0]
config = args[1]
host = config['host']
user = config['user']
password = config['password']
# 插入你的数据查询及处理代码, 生成result即可
conn = pymysql.connect(
user=user,
password=password,
host=host,
database=config['db'],
port=int(config['port']),
charset='utf8',
ssl={"fake_flag_to_enable_tls":True}
)
try:
result = cur_execute(conn, sqlList)
except Exception as e:
raise e
finally:
conn.close()
return result
如果你对python不熟悉, 也可咨询客服按需定制, 你只需上传即可使用