我需要在 Redash 中为 BI 仪表板配置 Apache ignite,但由于 Redash 中没有对 ignite 的直接支持,我无法弄清楚如何做同样的事情。
1 回答
3
可以使用 Python 查询运行器,它仅适用于独立安装。它允许您运行任意 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 的直接支持,因此需要所有样板文件。
于 2018-07-10T12:39:06.283 回答