干货丨如何使用Redash连接DolphinDB数据源
2021-01-18 09:34
477 查看
Redash是一款开源的BI工具,提供了基于Web的数据库查询和可视化功能。DolphinDB支持通过https协议的POST和GET接口获取数据,可以使用Redash中的JSON和URL两种数据源来连接DolphinDB database。
1. 使用JSON数据源连接DolphinDB
Redash目前只有在线版本(SAAS)中支持JSON,因此使用在线版本的用户可以选择这种连接方式。这种方式需要DolphinDB能够外网访问。要使用Redash版本,需要在Redash官网注册并登录。
登录后,在首页创建数据源,按照下面步骤进行配置:
(1)建立新的数据源
(2)选择JSON数据源
(3)在Name中配置数据源名称,并保存
(4)点击Create按钮,创建一个Query
JSON数据源需要使用yaml格式编辑。
query中需要包含三种基本的元素:url, method和json。
- url:接受数据的地址,即DolphinDB数据节点,如http://host:port
- method:http提交方式,JSON接口必须使用POST方式
- json:提交的JSON数据,DolphinDB接口需要提供固定的key值client和queries,如:{client:"redash","queries":"[sql query]"},用户可以使用任意的sql语句来替换[sql query]部分。
完整的query示例如下:
url: http://115.239.209.226:18531 method: "post" json: {'client':'redash','queries':'select * from typeTable'}
2. 使用URL数据源连接DolphinDB
redash的url数据源不仅在线版本支持,在开源独立部署的版本上也可以支持。因此,使用独立部署的用户可以通过这种方式来连接DolphinDB。
连接和配置数据源的方式与JSON方式基本相同,在数据源选择时选择URL类型数据源,如下图:
在URL中配置数据源名称和路径,URL base path是获取数据的跟地址,配置成DolphinDB的数据节点的地址即可,格式为http://host:port。
创建一个new query,在编辑区以URL参数字符串的形式输入查询内容,查询内容格式上有如下要求:
- 子路径必须为/json。
- query参数必须包含 :
client
和queries
两个key,其中client
指定固定值为redash
完整的query示例如下:
/json?client=redash&queries=select * from typeTable where id between (1..10)
注意:
由于redash对url方式的参数要进行编码校验,所以一些特殊字符需要手工做url编码才能通过校验,比如query中出现
://,
+,
&这些字符,需要替换为
%3a%2f%2f,
%2b,
%26才能通过校验。举个例子,DolphinDB中的分布式数据库路径
dfs://dbpath,需要用url编码替换为
dfs%3a%2f%2fdbpath才能通过redash的校验。
需要提交的query:
/json?client=redash&queries=login('admin','123456');select avg(ofr-bid) from loadTable('dfs://TAQ','quotes') group by minute(time) as minute
实际写到redash的编辑器中的内容为:
/json?client=redash&queries=login('admin','123456');select avg(ofr-bid) from loadTable('dfs%3a%2f%2fTAQ','q
相关文章推荐
- 解决32位工具如何连接64位DB---Oracle Instant Client 使用 说明
- 如何使用 Alink 连接 Kafka 数据源?(Python 版本)
- 如何在 Windows XP 中使用 Web 浏览器连接打印机
- 也谈在动态连接库中如何使用STL库
- Web设计中如何使用XML数据源对象
- 如何使用ADO连接带密码的ACCESS数据库
- 使用数据源连接数据库 和 使用驱动类包连接数据库 相比有什么优缺点?
- osworkflow使用jdbc如何不用配置数据源。
- C#如何使用GetTcpTable API获取TCP/IP连接信息
- 如何使用 ADO.NET 和 Visual C# .NET 连接到数据库并运行命令
- 怎样使用ADO.NET连接不同的数据源
- 使用了星外的Ipsec如何允许MySQL远程连接?
- 如何使用Connection对象连接数据库
- 关于如何使用ADO连接数据库
- SSIS如何在包中使用数据源
- 如何使用WebRequest连接SSL网站
- 使用Spring+Hibernate连接JNDI数据源
- Web设计中如何使用XML数据源对象
- 如何使用USER.DB找回丢失QQ中的好友?
- VS2005在使用membership的时候,如何连接Access数据库?