盘点19种大数据处理的典型工具
|
实时数据入库 实时数据从实时数据到写入CK过程:
过滤算子,过滤掉不需要的数据,这个步骤非常重要,设置严格的数据评估标准,防止脏数据、不符合规则的数据写入集群。另外对脏数据的过滤要做好记录,在数据完整性测试过程中会用到。 数据加工算子,主要负责从实时数据流中解析出业务需要的数据,这个过程也要设置严格的校验逻辑,保证数据整洁;若涉及数据加工逻辑更新,要保证加工逻辑及时更新。 写入算子,采用批量写入方式,根据集群情况,设置合理的批次,实时查询和写入性能达到均衡。 写入ck过程可以通过域名连接分布式表,也可以通过nginx进程掌握一份集群机器IP列表,每个nginx进程自己轮询,均衡写入集群的每台机器,但需要保证写入ClickHouse的QPS不能太小,防止出现写入不均衡情况。 离线数据入库
批量写入 在前面merge章节有介绍,每次数据写入都会产生临时分区目录,后续会异步的将相同分区的目录进行合并。写入过程会消耗集群的资源,所以一定采用批量写入方式,每批次写入条数看集群和数据情况(1万、5万、10万每批次可作为参考)。采用JDBC方式实现批量写入程序如下:
JDBC驱动,可以使用官方提供的驱动程序: ClickHouse适合用于商业智能领域,广泛应用于广告流量、App流量、物联网等众多领域。借助ClickHouse可以实时计算线上业务数据,如资源位的点击情况,以及并对各资源位进行bi预警。 MergeTreeMergeTree系列引擎是最基础的表引擎,提供了主键索引、数据分区等基本能力。了解这部分内容,是后续开发和优化的基础和方向。 分区 指定表数据分区方式,支持多个列,但单个列分区查询效果最好。有数据写入时属于同一分区的数据最终会被合并到同一个分区目录,不同分区的数据永远不会被合并在一起。结合业务场景设置合理的分区可以减少查询时数据文件的扫描范围。 排序 在一个数据片段内,数据以何种方式排序。当使用多个字段排序时ORDER BY(T1,T2),先按照T1排序,相同值再按照T2排序。 MergeTree存储结构 一张数据表的完整物理结构依次是数据表、分区以及各分区下具体的数据文件。分区下具体的数据文件包括一级索引、每列压缩文件、每列字段标记文件,了解他们的存储和查询原理,为后面建表、聚合计算的优化提供方向。
在读取数据时,需通过标记数据的位置信息才能够找到所需要的数据,分为读取压缩数据块和读取数据块两个步骤。 掌握数据存储和查询的过程,后续建表和查询有理论支持。 1)数据写入
每批数据的写入,都会生成一个新的分区目录,后续会异步的将相同分区的目录进行合并。按照索引粒度,会分别生成一级索引文件、每个字段的标记和压缩数据文件。写入过程如下图: (编辑:怀化站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
