备案后怎么建设网站,企业网站怎么查,WordPress插件引入,个体户查名字是否被注册目录 ClickHouse的特点和应用优势
应用场景
操作数据库 建表
同步数据
数据查询分析
注意事项 Clickhouse 官网地址#xff1a;
https://clickhouse.tech
ClickHouse是一个由俄罗斯的Yandex于2016年开源的面向OLAP#xff08;联机分析处理#xff09;的列式数据库管理…目录 ClickHouse的特点和应用优势
应用场景
操作数据库 建表
同步数据
数据查询分析
注意事项 Clickhouse 官网地址
https://clickhouse.tech
ClickHouse是一个由俄罗斯的Yandex于2016年开源的面向OLAP联机分析处理的列式数据库管理系统DBMS。它采用C语言开发以卓越的查询性能著称并且在基准测试中超越了众多主流的列式数据库。
ClickHouse的特点和应用优势
列式存储ClickHouse采用列式存储方式对于列的聚合、计数、求和等统计操作其性能优于行式存储。同时由于某一列的数据类型都是相同的这使得数据压缩更为高效可以节省磁盘空间并提高cache的利用率。高性能ClickHouse充分利用所有可用的硬件资源以尽可能快地处理每个查询。其单个查询解压缩后仅使用的列的峰值处理性能超过每秒2TB。此外ClickHouse集群的每台服务器每秒能处理数亿到十亿多行和数十千兆字节的数据。实时查询ClickHouse允许使用类SQL实时查询生成分析数据报告这对于需要快速响应的在线分析场景非常有用。多样化引擎ClickHouse提供了丰富的数据类型、数据库引擎和表引擎以满足不同场景的需求。简单易用ClickHouse的安装和维护相对简单同时支持跨数据中心部署方便用户进行扩展和管理。
应用场景 ClickHouse数据库的应用场景主要集中在那些需要高效处理和分析大量数据的领域。
商业智能BIClickHouse常被用于商业智能领域为企业提供实时的数据分析和报告功能。它能够处理大量的数据并快速生成分析结果帮助企业做出更明智的决策。广告流量和Web/App流量分析对于需要分析大量广告流量或Web/App用户行为的场景ClickHouse能够高效地处理这些数据并提供详细的用户行为分析报告帮助企业优化广告策略或提升用户体验。电信行业电信行业需要处理大量的通信数据包括通话记录、用户信息等。ClickHouse能够高效地存储和查询这些数据为电信企业提供实时的数据分析服务。金融领域金融行业对数据的实时性和准确性要求极高。ClickHouse能够处理金融交易数据、用户行为数据等为金融机构提供实时的风险控制和决策支持。电子商务电子商务企业需要分析用户的购物行为、商品销售情况等数据以优化商品推荐、提升用户体验。ClickHouse能够快速处理这些数据并生成相应的分析报告。信息安全和日志分析对于需要分析大量日志数据以检测潜在安全威胁的场景ClickHouse能够提供高效的日志处理和分析能力帮助企业及时发现并应对安全风险。网络游戏和物联网网络游戏和物联网领域也产生了大量的数据需要处理和分析。ClickHouse能够应对这些领域的数据处理需求为企业提供实时的数据分析和价值挖掘服务。
操作数据库 建表
1. 本地表 - 用来批量写数据使用通常后缀带_local标识
CREATE TABLE pricing.t_test_local
(UPDATED_DATE DateTime,SCORE_RUN_ID String,ORGAN2 String,CHANNEL Nullable(String),RENEW_TYPE Nullable(String),PRICING_COUNT Decimal(3, 0),ACTUAL_PREMIUMN Nullable(Decimal(3, 0)),)
ENGINE ReplicatedReplacingMergeTree(/clickhouse/tables/t_test_local/{shard},{replica},UPDATED_DATE)
PARTITION BY tuple(ORGAN2)
ORDER BY tuple(SCORE_RUN_ID)
SETTINGS index_granularity 8192;--释义
pricing: 指具体数据库用户名
Nullable:修饰列类型标识该列可能为空
ReplicatedReplacingMergeTree多副本去重合并树表引擎具体可参考其他表引擎如ReplicatedMergeTree可以使用ENGINE ReplicatedMergeTree(/clickhouse/tables/{layer}-{shard}/t_test_local,{replica})
ORGAN2用来做数据分区的列
SCORE_RUN_ID主键索引列
2. 分布式表 - 用来应用对接查询使用指向本地表通常后缀带_all标识
CREATE TABLE IF NOT EXISTS t_test_all ON CLUSTER cluster_2_shard_2_replicas AS pricing.t_test_localENGINE Distributed(cluster_2_shard_2_replicas,pricing,t_test_local,rand())
--释义
cluster_2_shard_2_replicas集群名称建库时提前会创建好 同步数据
可以借助数据同步工具同步也可自行编写同步程序进行同步可以采用Clickhouse JDBC进行PreparedStatement.addBatch()批量方式提交不推荐使用Mybatis方式处理
dependencygroupIdcom.clickhouse/groupIdartifactIdclickhouse-jdbc/artifactIdversion0.4.1/versionclassifierhttp/classifier
/dependency 数据查询分析
可采用MyBatis或JDBC方式分析数据基本与Oracle语法一致一般分析结构SELECT 列,SUM(指标) FROM 表名 WHERE ... GROUP BY 列 注意事项
1建议Clickhouse的分析维度列使用字符类型String指标列则使用数值类型Decimal
2建议分区数量按总体表数量提前计算每个分区可均匀分布1000万的数据量假设一张表有1亿条那么分区数为10个左右
3建议同步数据时批量提交的量为2000一组
4存在空值或不确定的列请务必加上Nullable()将列类型包含进去否则数据会写不进去导致最终的数量对不上
5上亿数据表统计查询耗时一般都在毫秒级别如果达到秒级或更久需检查程序是否存在性能问题可在数据库查询工具中对比如dbeaver
6Clickhouse的数据压缩率常规表结构一般都在10%~20%之间这也是其列式结构对于数据存储相比于OLTP数据库的优势