可视化数据有助于加深对数据的理解, 并加快对数据的分析。市场上有几种成熟的付费产品。最近, 我探索了一个开源产品名称apache superet,我发现了一个非常乐观的产品在这个空间。超极本的一些突出特点是:

  • 一组丰富的数据可视化。

  • 用于浏览和可视化数据的易于使用的界面。

  • 创建和共享仪表板。

在阅读了关于 superet 的文章后, 我想尝试一下, 由于 superet 是一个基于 python 编程语言的项目, 我们可以很容易地使用它来安装它 pip ;但我决定将其设置为基于docker的容器。apache superet github repo 包含用于生成和运行 superset 作为容器的代码。由于我希望以完全分布式的方式运行 superet, 并且在代码中几乎没有修改, 因此我决定修改代码, 以便它可以在多个不同的模式下运行。

下面是在代码中完成的特定变更增强功能的列表。

  • 可以使用相同的代码生成不同版本的 superet 图像。

  • 超集配置可以轻松地进行编辑并安装到容器中, 无需重新生成映像。

  • 我们可以通过基于芹菜的执行器使用异步查询执行, 并通过花 ui 对其进行管理。

轻松探索

虽然对于探索项目来说, 开发模式是一个很好的选择, 但是, 如果最初的探索发生在所有功能上, 例如, 在 superset 的情况下, 以异步模式运行查询, 并将结果存储在缓存中, 那就太好了。您可以使用下面的命令顺利浏览 superet。

首先从坞站中心中提取 docker superet 图像:

docker pull abhioncbr/docker-superset:<tag>

代码库中获取docer-cojer . yml 和超强 config. py, 并遵循相同的目录结构。

最后, 使用以下方法在本地prod模式下将 superet 映像作为容器启动 docker-compose :

cd docker-files/ && SUPERSET_ENV=<local | prod> SUPERSET_VERSION=<tag> docker-compose up -d

在完全分布式模式下运行超集

据我了解, 在生产环境中运行 superet 为成千上万的最终用户提供服务应该是在本质上分发的, 并且可以根据要求轻松扩展。下图描述了这样的设置:

Image title可以利用已发布的超位集 docker 映像来实现上述图像。

  • 前面的负载平衡器, 用于将请求从客户端路由到一个服务器容器。

  • 服务器模式下的多个容器, 用于为超推器的 ui 提供服务。使用启动服务器容器可以 docker run 执行以下操作:

docker run -p 8088:8088 \
-v config:/home/superset/config/ \
abhioncbr/docker-superset:<tag> \
cluster server <db_url> <redis_url>
  • 辅助模式下使用多个容器, 使用 celery 执行器在异步模式下执行 sql 查询。使用启动 docker run 辅助容器可以按如下方式完成:

docker run -p 5555:5555 \
-v config:/home/superset/config/ \
abhioncbr/docker-superset:<tag> \
cluster worker <db_url> <redis_url>
  • 使用集中式 redis 容器或 redis 群集将其作为缓存层和工作人员的 celery 任务队列提供服务。

  • 使用集中式 superet 元数据数据库。

我发现将 superet 设置为 docker 容器是相当容易的, 9t 可以用于不同的环境。

Comments are closed.