可视化数据有助于加深对数据的理解, 并加快对数据的分析。市场上有几种成熟的付费产品。最近, 我探索了一个开源产品名称apache superet,我发现了一个非常乐观的产品在这个空间。超极本的一些突出特点是:
-
一组丰富的数据可视化。
-
用于浏览和可视化数据的易于使用的界面。
-
创建和共享仪表板。
在阅读了关于 superet 的文章后, 我想尝试一下, 由于 superet 是一个基于 python 编程语言的项目, 我们可以很容易地使用它来安装它 pip
;但我决定将其设置为基于docker的容器。apache superet github repo 包含用于生成和运行 superset 作为容器的代码。由于我希望以完全分布式的方式运行 superet, 并且在代码中几乎没有修改, 因此我决定修改代码, 以便它可以在多个不同的模式下运行。
下面是在代码中完成的特定变更增强功能的列表。
-
可以使用相同的代码生成不同版本的 superet 图像。
-
超集配置可以轻松地进行编辑并安装到容器中, 无需重新生成映像。
轻松探索
虽然对于探索项目来说, 开发模式是一个很好的选择, 但是, 如果最初的探索发生在所有功能上, 例如, 在 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 为成千上万的最终用户提供服务应该是在本质上分发的, 并且可以根据要求轻松扩展。下图描述了这样的设置:
cn/wp-enentsent\ 上来//! 1//入//防喷–2018-12-09-10164p-p. png “width=”767″/>
可以利用已发布的超位集 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 可以用于不同的环境。