如何在Redash中配置Apache Ignite

时间:2018-07-10 06:58:26

标签: database dashboard ignite redash

我需要在Redash中为BI仪表板配置Apache ignite,但是由于在Redash中没有直接支持ignite的功能,所以我不知道该怎么做。

1 个答案:

答案 0 :(得分:3)

可以使用Python查询运行程序,该查询运行程序仅适用于stand-alone installs 。它允许您运行任意Python代码,在其中您可以通过JDBC查询Apache Ignite。

首先,将redash.query_runner.python个查询运行器添加到settings.py中: add query runner

并安装Python JDBC桥模块以及相关性:

sudo apt-get install python-setuptools
sudo apt-get install python-jpype
sudo easy_install JayDeBeApi

然后,在VM重新启动后,您应该添加Python数据源(您可能需要调整模块路径): add data source

然后,您实际上可以运行查询(您还需要提供Apache Ignite核心JAR和JDBC连接字符串): edit query

import jaydebeapi
conn = jaydebeapi.connect('org.apache.ignite.IgniteJdbcThinDriver', 'jdbc:ignite:thin://localhost', {}, '/home/ubuntu/.m2/repository/org/apache/ignite/ignite-core/2.3.2/ignite-core-2.3.2.jar')
curs = conn.cursor()
curs.execute("select c.Id, c.CreDtTm from TABLE.Table c")
data = curs.fetchall()

result = {"columns": [], "rows": []}
add_result_column(result, "Id", "Identifier", "string")
add_result_column(result, "CreDtTm", "Create Date-Time", "integer")

for d in data:
        add_result_row(result, {"Id": d[0], "CreDtTm": d[1]})

不幸的是,Redash没有直接支持JDBC(据我所知),因此需要所有样板。