Clickhouse作为发展最快的列式数据库,在过去的几年中取得非常迅速的发展,已构建起庞大的技术生态体系圈。在数据库集成、流数据/时序数据接入、数据分析、数据治理、云存储、分布式管理、运维、数据库管理软件方向已经有了有了一大批优秀的开源、稳定的技术组件。首先通过一张图来了解一下目前大数据领域常用的一些技术,当然clickhouse发展至今所涉及技术远不止这些!
数据库集成
1、直接集成MYSQL、Postgresql数据库
Clickhouse 的MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便在ClickHouse与MySQL之间进行数据交换。
clickhouse的PostgreSQL引擎允许连接到远程PostgreSQL服务。支持读写操作(SELECT和INSERT查询),以在ClickHouse和PostgreSQL之间交换数据。
在SHOW TABLES和DESCRIBE TABLE查询的帮助下,从远程PostgreSQL实时访问表列表和表结构。
2、JDBC集成
Clickhouse支持通过JDBC连接外部数据库,所有支持JDBC驱动的数据库都能直接接入clickhouse。要实现JDBC连接,clickhouse需要使用以后台进程运行的程序 clickhouse-jdbc-bridge。
DBH是万山数据研发的一款数据集成工具,能够实现多源异构数据之间灵活、快速、无侵入式的数据集成与转化,数据源通过DBH可以一键映射到clickhouse中,转化成对应的数据表和统一的操作视图,通过统一的SQL界面供分析工具或者应用系统使用。
目前可以接入的数据库包括MySQL、Oracle、SQLServer、Postgresql、SQLite、SAP HANA、GreenPlum、人大金仓、达梦……。
3、CDC集成
CDC技术(Change Data Capture)是一种用于实时捕获数据库变更的技术,它可以将数据库中发生的变更实时地捕获并传递给其他系统进行处理。CDC技术通常用于数据仓库、数据集成和数据同步等场景中。通过捕获数据变更,CDC可以帮助企业实现实时数据集成和数据同步,提高数据的可用性和可靠性。
下面介绍几个常见的CDC集成技术组件。
数据同步系统 WhaleTunnel
白鲸开源的数据同步系统 WhaleTunnel是一款高速、高准确率、高稳定、省资源、全场景数据同步的开源工具,支持百余种连接器,开箱即用。
WhaleTunnel支持直接将数据源数据实时同步到clickhouse中。WhaleTunnel Zeta 会将下面的作业优化成3 个pipeline 执行,每个pipeline 是独立进行容错的调度的,这就意味着即使某一个MySQL 实例挂了,也不会影响另外两个MySQL 实例上的数据同步到ClickHouse 中。
Oracle GoldenGate(OGG)
OGG软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库的同步。通过OGG实现源端数据到clickhouse的原理是,首先通过抽取源端的Redo日志或者Archive Log,然后通过TCP/IP投递到目标端KAFKA后,clickhouse中的KAFKA引擎表和物化视图会实时解析日志数据,并将其结构化后实时同步到clickhouse中,使目标端实现同源端的数据同步。
流数据/时序数据接入工具
借助KAFKA、RabbitMQ表引擎,完成时序数据的转换
Clickhouse支持Kafka引擎和RabbitMQ引擎,直接将消息数据接入clickhouse中。
1、KAFKA引擎
Clickhouse的kafka引擎需要与Apache Kafka 结合使用。KAFAK具有发布或者订阅数据流、容错存储机制、处理流数据等特性。只需在clickhouse建立一张kafka引擎的表,就能去消费kafka的数据。
由于SELECT 查询对于读取消息并不是很有用(调试除外),因为每条消息只能被读取一次,所以一般与物化视图搭配使用。
2、RabbitMQ引擎
同理,RabbitMQ引擎实现了clickhouse与RabbitMQ 进行集成。RabbitMQ发布或订阅数据流,clickhouse通过RabbitMQ引擎消费数据,建议与物化视图搭配使用。
数据分析
常见的报表工具、大屏系统只要支持通过JDBC连接的,就可以与clickhouse集成,例如帆软BI、思迈特BI、杰云BI等。
1、帆软BI
帆软BI是一款企业级的商业智能平台,旨在帮助企业从海量数据中获取可靠的洞察,支持决策和业务创新。它提供了丰富的数据分析和可视化功能,使用户能够轻松地创建、管理和分享自定义的报表、仪表板和数据分析应用。
2、杰云BI
杰云BI是北京国信杰云科技有限公司开发一款数据分析工具,能够满足用户快速自主分析的需求。
杰云BI应用架构图:
具有以下特性:
支持可用不可见的隐私计算。
支持跨平台适应性大屏交互。
支持业务导向的自主分析。
支持海量数据实时计算。
一次设计,多地使用。
数据治理
数据治理方面,clickhouse的生态在ETL、任务调度、可视化治理工具等方面都有相应的组件。
1、TOS
TOS(Talend Open Studio)是Talend(拓蓝)公司开发的一个数据集成的数据ETL软件,可以简化数据处理流程,降低入门门槛,不需要掌握专业的ETL知识,仅仅通过web界面和简单的组件拖拽就可实现数据处理。可以协助企业利用更多数据,不断提高其数据的可用性、可靠性以及有用性。
TOS与clickhouse集成只需要在TOS中添加Clickhouse的插件,以支持与Clickhouse的集成。
2、KETTLE
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle与clickhouse集成也是通过建立JDBC连接实现的。只需将clickhouse的JDBC驱动程序添加到lib文件中。在kettle中建立一个新的clickhouse数据库连接即可。
3、DolphinScheduler
DolphinScheduler是一个分布式和可扩展的开源工作流协调平台,具有强大的DAG可视化界面。它可以用于调度批量任务、数据ETL、定时任务等,支持任务调度和监控等功能。DolphinScheduler提供了可扩展的插件机制可以方便地扩展新的功能和任务类型。
Clickhouse与DolphinScheduler集成也很简单。在DolphinScheduler中添加 Clickhouse的插件,以支持与Clickhouse的集成。
4、数据治理平台ODGC
ODGC是万山数据打造的一款企业级可视化数据治理工具,实现数据治理流程所见即得所。ODGC与clickhouse的集成通过配置计算服务实现。
ODGC具有以下功能:
计算服务,支持添加clickhouse集群节点信息
数据治理,支持可视化任务设计,支持分布式任务调度
数据质量管理,支持实时、定时质量检测
数据血缘管理,支持字段级血缘分析
元数据管理,支持元数据自动发现、支持数据标准规范管理
云存储
1、MinIO
MinIO是个高性能,云原生的对象存储。它提供了与 Amazon S3 云存储服务兼容的 API,使用 MinIO 为机器学习、分析和应用程序数据工作负载构建高性能基础架构。
2、S3
Clickhouse提供了s3表引擎,这个引擎支持与Amazon S3生态系统的集成。clickhouse建表的时候使用S3协议,与Minio建立连接即可实现云原生数仓存算分离。
分布式管理工具
1、NGINX实现负载均衡
Nginx是一款高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP服务,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。
要借助NGINX实现clickhouse负载均衡,需要以下几步:
安装并配置Nginx: 首先,需要安装并配置Nginx作为ClickHouse的代理服务器。
配置多个后端ClickHouse节点: 然后,需要在Nginx配置中添加多个后端ClickHouse节点的配置,以实现负载均衡。
2、ProxySQL
ProxySQL 是基于 MySQL 的一款开源的中间件的产品,是一个灵活的 MySQL 代理层,可以实现读写分离,支持 Query 路由功能,支持动态指定某个 SQL 进行缓存,支持动态加载(无需重启 ProxySQL 服务),故障切换和一些 SQL 的过滤功能。
要借助proxySQL实现clickhouse负载均衡,需要以下几步:
安装并配置proxySQL: 首先,需要在ProxySQL上配置MySQL连接器,以便能够与ClickHouse建立连接。
配置proxySQL的查询路由: 然后,需要配置proxySQL的查询路由,以实现负载均衡。
配置客户端连接: 接下来,需要配置客户端连接,以使用proxySQL作为ClickHouse的代理。在客户端的连接配置中,将主机名设置为proxySQL的主机名,端口设置为proxySQL的MySQL端口。
3、分布式计算管理:ODGC
ODGC允许配置多个同步计算节点(clickhouse数据仓库集群节点)。当数据治理任务配置中选择了对应的计算节点,该任务就会听从日数据治理任务调度的指令,在各个节点上同步运行数据治理任务,从而实现对clickhouse分布式计算。
运维工具
1、ckman
ckman(ClickHouse Manager)是由擎创信息科技公司自主研发的一款管理ClickHouse的工具,目前已在GitHub上开源。它主要用来管理ClickHouse集群、节点以及数据监控等,致力于服务ClickHouse分布式的操作以及管理。同时提供简单的数据查询窗口。
通过网页端的可视化界面,ckman可以非常便捷的完成集群的导入、部署、节点的增删以及性能指标的监控等功能,可以大大简化集群部署的操作流程,从而起到事半功倍的效果。
ckman架构:
ckman支持多中心部署,使用nacos进行配置同步,可以对多个集群进行管理,在集群的每个节点下,如果配置node_exporter,则可以对对应的节点进行指标监控。node_exporter的数据传给prometheus,然后在前端展示。
2、Zabbix
Zabbix是一个企业级的分布式开源监控方案,能够监控各种网络参数以及服务器健康性和完整性,使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警,可以快速反馈服务器的问题。Zabbix支持主动轮询和被动捕获,所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问,基于Web的前端页面可以确保从任何方面评估网络状态和服务器的健康性。
数据库管理软件
为了快速管理数据库,我们一般都会选择一款顺手的数据库管理工具。Clickhouse常见的数据库管理软件有Tabix、HouseOps、DataGrip、Dbeaver等。
1、Tabix
Tabix是一个开源的简单商业智能应用和Sql编辑工具,用于Clickhouse,具有以下特点:
无需安装,与ClickHouse从浏览器直接工作,无需安装额外的软件。
查询编辑器,支持突出显示SQL语法ClickHouse,所有对象的自动完成,包括字典和内置函数的上下文敏感的帮助。
图形、图表和地理参考用于映射查询结果。
交互式设计器PivotTables(透 视)的查询结果。
用于分析ClickHouse的图形工具。
俄语和英语的字段和函数提示
重新格式化查询/自动格式化
显示数据库和表树
在对象树上进行搜索和过滤
2、DBeaver
DBeaver是一个通用数据库管理工具,可以用来连接和管理ClickHouse数据库。要连接ClickHouse,需要在DBeaver中新建一个连接并输入相关信息,包括主机名、端口号、用户名和密码。Dbeaver具有以下特点
平台支持广泛:DBeaver 可以在 Windows、macOS、Linux 等多个操作系统上运行,并支持多种数据库系统,包括 MySQL、Oracle、PostgreSQL、SQLite、Microsoft SQL Server 等。
功能强大:DBeaver 提供了丰富的功能,包括数据库连接和管理、SQL 编辑和执行、数据导入和导出、数据查询和可视化等。它支持高级特性如事务管理、存储过程编辑器、视图和索引管理等。
用户友好界面:DBeaver 的界面简洁直观,易于使用。它提供了丰富的导航树和面板,可以轻松浏览和管理数据库对象,同时还提供了强大的查询编辑器和结果集可视化功能。
多种数据库连接方式:DBeaver 支持多种数据库连接方式,包括基本的 JDBC 连接、SSH 隧道连接、HTTP 代理连接等。这使得它能够与各种类型的数据库服务器进行连接和通信。
扩展性和插件支持:DBeaver 提供了丰富的插件系统,用户可以根据自己的需求进行定制和扩展。
3、HouseOps
HouseOps 是一个开源项目,提供了一种简化和自动化 ClickHouse 集群管理的方式。ClickHouse 是一个用于实时分析的列式数据库管理系统。HouseOps 构建在 ClickHouse 之上,提供了一套工具和管理界面,用于部署、监控和维护 ClickHouse 集群。
它可以帮助用户简化 ClickHouse 集群的配置、扩展和管理,提高集群的可靠性和性能。通过 HouseOps,用户可以更方便地进行 ClickHouse 相关操作,如监控集群状态、执行数据备份和恢复、自动化任务调度等。总的来说,HouseOps 是一个用于简化 ClickHouse 集群管理的工具和框架。
3、sqlc86
sqlc86是一款开源的数据库管理工具,可以用来连接和管理ClickHouse数据库。具有以下特性:
开箱即用。与所有主流Web浏览器兼容,支持Internet Explorer 7+、Firefox、Opera、Chrome和Safari的开箱即用
零代码管理。在不编写查询的情况下创建/编辑表结构。用户可以在网格模式下快速创建和更改数据表。
智能SQL编辑。语法突出显示浏览器内的富文本SQL编辑器,无需任何插件。
便捷导入导出。将完整的数据库/表/查询结果导出到外部文件。可将结果导出为纯SQL、XML、HTML或简单文本格式。