1

我需要在 Redash 中为 BI 仪表板配置 Apache ignite,但由于 Redash 中没有对 ignite 的直接支持,我无法弄清楚如何做同样的事情。

4

1 回答 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 回答