docker 中使用 SQLAlchemy 的 Clickhouse 超集

Superset for Clickhouse in docker with SQLAlchemy

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

我在 Ubuntu 16.04 LTS,并使用 Docker 香草版的 Clickhouse 和 Superset:

无特殊设置

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

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

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

您的步骤应该如下:

  • 当您 docker run --detach --name superset [options] amancevice/superset 时,您应该在 http://localhost:8088/

  • 处拥有您的超集实例 运行ning
  • 类似地,当你 运行 $ 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 数据库:导航到超集的菜单 > 资源 > 数据库 > [新]

考虑使用已经准备好并配置好的 docker-compose.yml,它包含在 Apache Superset 中(参见 https://github.com/apache/superset/blob/master/docker-compose.yml)。

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

我推荐使用 clickhouse-sqlalchemy,因为它实际上得到了支持并不断发展,它支持与 ClickHouse 交互的两种可用协议 - HTTPTCP(本机协议)。


让我们连接到 public 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. 浏览URLhttp://localhost:8088(使用凭据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

另见 。