我需要在Redash中为BI仪表板配置Apache ignite,但是由于在Redash中没有直接支持ignite的功能,所以我不知道该怎么做。
答案 0 :(得分:3)
可以使用Python查询运行程序,该查询运行程序仅适用于stand-alone installs 。它允许您运行任意Python代码,在其中您可以通过JDBC查询Apache Ignite。
首先,将redash.query_runner.python
个查询运行器添加到settings.py
中:
并安装Python JDBC桥模块以及相关性:
sudo apt-get install python-setuptools
sudo apt-get install python-jpype
sudo easy_install JayDeBeApi
然后,在VM重新启动后,您应该添加Python数据源(您可能需要调整模块路径):
然后,您实际上可以运行查询(您还需要提供Apache Ignite核心JAR和JDBC连接字符串):
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(据我所知),因此需要所有样板。