俄罗斯搜索巨头Yandex开发的面向列存的关系型数据库。ClickHouse是过去两年中OLAP领域中非常热门,并于2016年开源。典型的用户包括著名的公司,例如字节,新浪和腾讯。
从DBEngine给出的趋势来看,自打开源以来Clickhouse被关注的趋势上升明显。
使用数据库,一款趁手的客户端查询工具非常重要,这里我就给大家推荐几款好用的支持Clickhouse的图形客户端。
TabixUI
https://github.com/tabixio/tabix
Tabix是一个纯前端,可以运行在浏览器中的Clickhouse的客户端,它为Clickhouse量身定制,又比较轻量。
它用到了以下的开源库:
-
- Ajax.org 的Ace.JS
- 百度 eCharte
- Handsontable
- Lodash
- pivottable
Tabix支持以下的功能:
- 直接从浏览器连接ClickHouse一起使用,而无需安装其他软件;
- 查询编辑器,支持突出高亮SQL语法,对所有对象自动完成,包括字典和内置函数的上下文相关帮助。
- 用于映射查询结果的图形,图表和地理参考,包含map / bar / heatmap / river / sankeys / treemap
- 用于查询结果的交互式设计器数据透视表(pivot);
- 用于分析ClickHouse的图形工具;
- 两种颜色的主题:浅色和深色。
- 支持Clickhouse的Metrics
- 支持Clickhouse的Schema
SQL 编辑器界面
系统概要界面
系统指标监控界面
图表界面
SQLPad
https://github.com/sqlpad/sqlpad
SQLPad一个Web应用程序,用于编写和运行SQL查询并可视化结果。 通过ODBC支持Postgres,MySQL,SQL Server,ClickHouse,Crate,Vertica,Presto,SAP HANA,Cassandra,Snowflake,Google BigQuery,SQLite等。
SQLPad支持几种基本的图表类型,包含Line,Bar,Scatter Plot,Stacked Bar。
SQLPad采用了Client/Server架构,Server使用了Nodejs,客户端是React,图表库使用了D3.js
如果你的工作需要用到除了Clickhouse之外的这几种支持ODBC的数据库,SQLPad可以一用。
Superset
https://superset.apache.org/
Superset是Airbnb开源的BI和数据可视化工具箱。 Superset快速,轻巧,直观,并带有各种选项,使各种技能的用户都可以轻松浏览和可视化其数据,从简单的折线图到高度详细的地理空间图。
目前,Superset已在许多公司大规模运行。 例如,Superset在Kubernetes内的Airbnb生产环境中运行,每天为600多个活跃用户提供服务,每天查看超过10万张图表。
Superset提供以下的功能:
- 直观的界面,用于可视化数据集和制作交互式仪表板
- 多种精美的可视化展示数据
- 无代码可视化构建器,用于提取和呈现数据集
- 世界一流的SQL IDE,用于准备数据以进行可视化,其中包括丰富的元数据浏览器
- 轻量级的语义层,使数据分析人员能够快速定义自定义维度和指标
- 对大多数说SQL的数据库提供开箱即用的支持
- 无缝的内存中异步缓存和查询
- 一种可扩展的安全模型,允许配置关于谁可以访问哪些产品功能和数据集的非常复杂的规则。
- 与主要的身份验证后端(数据库,OpenID,LDAP,OAuth,REMOTE_USER等)集成
- 添加自定义可视化插件的功能
- 用于程序化定制的API
- 云原生架构,专为大规模应用而设计
Superset支持的可视化类型非常多,而且可以客户定制,这个是他最大的优势。
Superset也是采用了客户端/服务器架构,客户端使用了React,蚂蚁金服的ant design,一部分d3js等来构建, 图表库使用了tauCharts。后端使用了Python,用flask来提供web 服务,使用tableschema-py来支持Table Schema的标准。
Superset通过Python的sqlalchemy-clickhouse驱动来支持Clickhouse,所以我自己构建了一个superset的容器镜像(
https://github.com/gangtao/clickhouse-client/blob/main/superset/Dockerfile),预先安装了sqlalchemy-clickhouse。
pip install sqlalchemy-clickhouse
Redash
https://github.com/getredash/redash
Redash旨在使任何人,无论技术水平如何,都可以利用数据的力量。 SQL用户可以利用Redash来探索,查询,可视化和共享来自任何数据源的数据。他们的工作反过来使组织中的任何人都可以使用数据。每天,全球成千上万个组织中的数百万用户使用Redash来开发见解并制定数据驱动的决策。
Redash背后的公司创建于2015年,并于2020年被Spark的所有公司Databrick收购。
Redash功能:
- 基于浏览器:浏览器支持所有内容,均带有可共享的URL。
- 易于使用:无需掌握复杂软件即可立即获得数据生产力。
- 查询编辑器:使用浏览器快速编辑SQL和NoSQL查询并自动完成。
- 可视化和仪表板:通过拖放创建漂亮的可视化文件,并将它们组合到单个仪表板中。
- 共享:通过共享可视化文件及其关联的查询轻松进行协作,从而实现对报告和查询的同行审阅。
- 计划刷新:自定义的定期自动更新图表和仪表板。
- 告警:定义条件并在数据更改时立即收到警报。
- REST API:UI中可以完成的所有操作也可以通过REST API获得。
- 对数据源的广泛支持:可扩展的数据源API,具有对一长串常见数据库和平台的本机支持。
初始化对话框
landing page
Redash有非常丰富的数据源支持(超过35种)。包括SQL和NoSQL的支持。Redash原生支持Clickhouse,不需要额外再安装驱动。
Redash的SQL编辑器非常好用,自动提示非常友好,用起来挺舒服的。
除了常见的BI的图表,仪表板,告警,分享功能外,Redash还有很好的用户管理和安全认证的支持。
Redash和Superset的架构类似,后端都是Python使用Flask作为服务,PostgreSQL存储元数据,Redis作为缓存。前端同样使用了React,蚂蚁的ant design,图表库使用了d3js和plotjs。
Redash支持常见的可视化类型,也支持一些特殊的图表,对于基本的分析而言够用了。
Metabase
https://www.metabase.com/
https://github.com/metabase/metabase
Metabase 2014年创建于美国硅谷,它的产品理念是公司中每个人都可以提出问题并从数据中学习的一种简单,开源的方式。
Metabase需要通过plugin的方式来增加对Clickhouse的支持。
ADD https://github.com/enqueue/metabase-clickhouse-driver/releases/download/0.7.3/clickhouse.metabase-driver.jar /plugins/
Metabase支持中文,支持三种不同的方式来解决查询问题。
Metabase支持常见的可视化类型。
Metabase通过可视化的方式来支持自定义查询,避免了写SQL。
当然,它也支持SQL的编辑。
Metabase的后端使用了Clojure,纵使是我见多识广,也是被惊到了。Clojure我不熟悉,这里我不做评价。前端框架使用了react,图表使用了d3js。
Metabase有自己的企业版本,开源许可证采用了AGPL。这一点不是特别友好。
总结
好了看了这么多的开源的支持Clickhouse可视化客户端,应该有一款适合你吧。
- Tabix专门为Clickhouse定制,轻巧,支持Clickhouse的监控,如果你只需要连接Clickhouse做基本的查询,它很适合。
- SQLPad基于ODBC,本身也很简单,适合使用多种结构化支持ODBC数据源的场景
- Superset的可视化种类非常丰富,适合需要可视化展现的场景
- Redash的优势是支持的数据源的种类很多,包含很多NoSQL的数据源。而且它原生内置了Clickhouse的支持。它的SQL编辑,用户管理和安全特性也做得很友好。
- Metabase对于不懂SQL的非技术人员非常友好,适合非专业人士的数据分析工具。
欢迎有问题和我联系,所有的工具栈都可以在github上找到对应的实例部署代码。
https://github.com/gangtao/clickhouse-client