3

我正在尝试为 Clickhouse 设置 Apache Superset。到目前为止我的理解是我需要为 Clickhouse https://github.com/xzkostyan/clickhouse-sqlalchemy安装 SQLAlchemy

我在 Ubuntu 16.04 LTS 中,并使用 Docker vanilla 版本的 Clickhouse 和 Superset:

无需特殊设置

知道如何使用 clickhouse-sqlalchemy 桥接两个 docker 容器吗?在这种情况下,在哪里以及如何安装它?(如果你有我可以重复使用的示例命令行,那就太好了)

4

2 回答 2

3

您不需要桥接它们:您想要的是一个超集服务器(您恰好通过 docker 运行)连接到 clickhouse 数据库(您也恰好通过 docker 运行)。

您也不需要为 Clickhouse 安装 SQLAlchemy:查看https://hub.docker.com/r/amancevice/superset/~/dockerfile/上的 dockerfile,该图像已经sqlalchemy-clickhouse为您安装。

您的步骤应如下所示:

  • 当你docker run --detach --name superset [options] amancevice/superset应该让你的超集实例在http://localhost:8088/上运行时

  • 同样,当您运行时,$ docker run -d --name some-clickhouse-server --ulimit nofile=262144:262144 -v /path/to/your/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-server您应该最终得到一个 clickhouse 实例,您可以通过 SQLAlchemy 访问该实例,例如 clickhouse://default:@some-clickhouse-server/test 您需要根据您的 config.xml 修改该连接 URI - 您应该能够仔细检查它通过在您的 python 控制台中连接到它来工作。

  • 然后,您应该能够以与连接到任何其他数据库相同的方式将超集连接到 clickhouse 数据库:通过导航到 Superset 的菜单 > Sources > Databases > [new]

于 2017-12-01T03:51:22.250 回答
0

考虑使用Apache Superset 中包含的已经准备和配置的 docker- compose.yml(请参阅https://github.com/apache/superset/blob/master/docker-compose.yml)。

要使用 Clickhouse,应该安装 sqlalchemy 驱动程序。有两个:

我建议使用clickhouse-sqlalchemy,因为它实际上是受支持和不断发展的,它支持与 ClickHouse 交互的两种可用协议 - HTTPTCP(本机协议)。


让我们连接到公共 ClickHouse 之一:

  • 演示Yandex CH
docker run -it --rm yandex/clickhouse-client:latest \
    --host gh-api.clickhouse.tech --user explorer -s
docker run -it --rm yandex/clickhouse-client:latest \
    --host github.demo.trial.altinity.cloud -s --user demo --password demo

  1. 从 repo https://github.com/apache/superset下载源代码

  2. 执行命令

cd superset-master

docker-compose up

# open the new terminal

docker-compose exec superset bash /app/docker/docker-init.sh
docker-compose exec superset pip install clickhouse-sqlalchemy
docker-compose restart
  1. 等待容器启动并构建 web 应用程序(查看控制台输出,webpack应该完成它的工作)

  2. 浏览 URL http://localhost:8088(使用凭证admin / admin

  3. 使用连接字符串之一添加数据库:

# connection string for Demo Yandex ClickHouse
clickhouse+native://explorer@gh-api.clickhouse.tech/default?secure=true

# connection string for Demo Altinity.Cloud CH
clickhouse+native://demo:demo@github.demo.trial.altinity.cloud/default?secure=true

另请参阅https://stackoverflow.com/a/66006784/303298

于 2021-02-05T17:01:20.083 回答