赞
踩
ClickHouse被广泛应用于OLAP领域,其使用场景通常具有以下特点:
ClickHouse应用的场景多发生在数据已经批量导入之后, 对数据进行多维度分析,挖掘等操作。对其中数据进行的读取操作远大于写入操作,且通常要求实时返回结果。
ClickHouse中的表通常是大宽表,包含大量了columns。通常会对colunm进行大量读取,对row进行的操作极少,并且column的数据通常为短字符,并不会占用过多储存空间。另外,通常操作之后的结果集会限制小于原数据。
一般不进行数据更新,如果需要更新,通常是大批量的数据导入,少有删除操作。
基本上无transaction,通常会搭配一个OLTP数据库,两者相互链接来满足transaction需求。 数据一致性要求较低。
由于OLAP的场景限制,数据的维度可能会被多次改变,所用方法难以固定,所以不合适进行预先建模。
根据ClickHouse的数据流流向将其工作架构分为四个层级
这一层主要的工作是把外部数据输入到ClickHouse中, 在这一步中可以根据数据量和数据特性进行分类,采用不同的输入方法。
对于数据储存可以采用单机模式或分布式模式。 如果选择了分布式模式,则会采用双副本机制,同时用nginx代理clickhouse集群,通过域名的方式进行读写操作,实现了数据均衡及高可靠写入,且对于域名的响应时间及流量有对应的实时监控,一旦响应速度出现波动或异常会在第一时间发出告警。
nginx_one_replication:代理集群一半节点即一个完整副本,常用于写操作,在每次提交数据时由nginx均衡路由到对应的shard表,当某一个节点出现异常导致写入失败时,nginx会暂时剔除异常节点并报警,然后另选一台节点重新写入。
nginx_two_replication:代理集群所有节点,一般用作查询和无副本表数据写入,同时也会有对于异常节点的剔除和报警机制。
把集群封装为SCF服务(RPC),供外部调用;为内部数据分析师,开发人员提供了封装好的client工具。
埋点系统:对接实时clickhouse集群,提供秒级别的OLAP查询功能。
用户分析平台:通过标签筛选的方式,从用户访问总集合中根据特定的用户行为捕获所需用户集。
BI:提供数据应用层的可视化展示,对接单分片多副本Clickhouse集群,可横向扩展。
ClickHouse的数据分片是将数据横向切分,如表所示
ID |
Name |
Age |
1 |
A |
15 |
2 |
B |
12 |
3 |
C |
51 |
4 |
D |
24 |
5 |
E |
12 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。