Clickhouse数据库应用

简介: Clickhouse数据库应用

Clickhouse 官网地址:

https://clickhouse.tech

ClickHouse是一个由俄罗斯的Yandex于2016年开源的面向OLAP(联机分析处理)的列式数据库管理系统(DBMS)。它采用C++语言开发,以卓越的查询性能著称,并且在基准测试中超越了众多主流的列式数据库。

ClickHouse的特点和应用优势

  1. 列式存储:ClickHouse采用列式存储方式,对于列的聚合、计数、求和等统计操作,其性能优于行式存储。同时,由于某一列的数据类型都是相同的,这使得数据压缩更为高效,可以节省磁盘空间并提高cache的利用率。
  2. 高性能:ClickHouse充分利用所有可用的硬件资源,以尽可能快地处理每个查询。其单个查询(解压缩后,仅使用的列)的峰值处理性能超过每秒2TB。此外,ClickHouse集群的每台服务器每秒能处理数亿到十亿多行和数十千兆字节的数据。
  3. 实时查询:ClickHouse允许使用类SQL实时查询生成分析数据报告,这对于需要快速响应的在线分析场景非常有用。
  4. 多样化引擎:ClickHouse提供了丰富的数据类型、数据库引擎和表引擎,以满足不同场景的需求。
  5. 简单易用:ClickHouse的安装和维护相对简单,同时支持跨数据中心部署,方便用户进行扩展和管理。

应用场景

ClickHouse数据库的应用场景主要集中在那些需要高效处理和分析大量数据的领域。

  1. 商业智能(BI):ClickHouse常被用于商业智能领域,为企业提供实时的数据分析和报告功能。它能够处理大量的数据,并快速生成分析结果,帮助企业做出更明智的决策。
  2. 广告流量和Web/App流量分析:对于需要分析大量广告流量或Web/App用户行为的场景,ClickHouse能够高效地处理这些数据,并提供详细的用户行为分析报告,帮助企业优化广告策略或提升用户体验。
  3. 电信行业:电信行业需要处理大量的通信数据,包括通话记录、用户信息等。ClickHouse能够高效地存储和查询这些数据,为电信企业提供实时的数据分析服务。
  4. 金融领域:金融行业对数据的实时性和准确性要求极高。ClickHouse能够处理金融交易数据、用户行为数据等,为金融机构提供实时的风险控制和决策支持。
  5. 电子商务:电子商务企业需要分析用户的购物行为、商品销售情况等数据,以优化商品推荐、提升用户体验。ClickHouse能够快速处理这些数据,并生成相应的分析报告。
  6. 信息安全和日志分析:对于需要分析大量日志数据以检测潜在安全威胁的场景,ClickHouse能够提供高效的日志处理和分析能力,帮助企业及时发现并应对安全风险。
  7. 网络游戏和物联网:网络游戏和物联网领域也产生了大量的数据需要处理和分析。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_local
   ENGINE = Distributed('cluster_2_shard_2_replicas','pricing','t_test_local',rand())
 

--释义

cluster_2_shard_2_replicas:集群名称,建库时提前会创建好

  • 同步数据

可以借助数据同步工具同步,也可自行编写同步程序进行同步,可以采用Clickhouse JDBC进行PreparedStatement.addBatch()批量方式提交,不推荐使用Mybatis方式处理

<dependency>
    <groupId>com.clickhouse</groupId>
    <artifactId>clickhouse-jdbc</artifactId>
    <version>0.4.1</version>
    <classifier>http</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)

6)Clickhouse的数据压缩率常规表结构一般都在10%~20%之间,这也是其列式结构对于数据存储相比于OLTP数据库的优势


相关文章
|
3月前
|
存储 关系型数据库 数据库
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
本文通过一个 Agentic RAG 应用的完整构建流程,展示了如何借助 RDS Supabase 快速搭建具备知识处理与智能决策能力的 AI 应用,展示从数据准备到应用部署的全流程,相较于传统开发模式效率大幅提升。
附部署代码|云数据库RDS 全托管 Supabase服务:小白轻松搞定开发AI应用
|
4月前
|
安全 druid Nacos
0 代码改造实现应用运行时数据库密码无损轮转
本文探讨了敏感数据的安全风险及降低账密泄漏风险的策略。国家颁布的《网络安全二级等保2.0标准》强调了企业数据安全的重要性。文章介绍了Nacos作为配置中心在提升数据库访问安全性方面的应用,并结合阿里云KMS、Druid连接池和Spring Cloud Alibaba社区推出的数据源动态轮转方案。该方案实现了加密配置统一托管、帐密全托管、双层权限管控等功能,将帐密切换时间从数小时优化到一秒,显著提升了安全性和效率。未来,MSE Nacos和KMS将扩展至更多组件如NoSQL、MQ等,提供一站式安全服务,助力AI时代的应用安全。
277 14
|
24天前
|
存储 弹性计算 Cloud Native
云原生数据库的演进与应用实践
随着企业业务扩展,传统数据库难以应对高并发与弹性需求。云原生数据库应运而生,具备计算存储分离、弹性伸缩、高可用等核心特性,广泛应用于电商、金融、物联网等场景。阿里云PolarDB、Lindorm等产品已形成完善生态,助力企业高效处理数据。未来,AI驱动、Serverless与多云兼容将推动其进一步发展。
93 8
|
13天前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
3月前
|
存储 监控 分布式数据库
ClickHouse分布式数据库动态伸缩(弹性扩缩容)的实现
实现ClickHouse数据库的动态伸缩需要持续的维护和精细的操作。从集群配置到数据迁移,再到监控和自动化,每一步都要仔细管理以确保服务的可靠性和性能。这些活动可以显著提高应用的响应性和成本效率,帮助业务根据实际需求灵活调整资源分配。
195 10
|
3月前
|
安全 Java Nacos
0代码改动实现Spring应用数据库帐密自动轮转
Nacos作为国内被广泛使用的配置中心,已经成为应用侧的基础设施产品,近年来安全问题被更多关注,这是中国国内软件行业逐渐迈向成熟的标志,也是必经之路,Nacos提供配置加密存储-运行时轮转的核心安全能力,将在应用安全领域承担更多职责。
|
2月前
|
存储 人工智能 数据库
视图是什么?为什么要用视图呢?数据库视图:定义、特点与应用
本文三桥君深入探讨数据库视图的概念与应用,从定义特点到实际价值全面解析。视图作为虚拟表具备动态更新、简化查询、数据安全等优势,能实现多角度数据展示并保持数据库重构的灵活性。产品专家三桥君还分析了视图与基表关系、创建维护要点及性能影响,强调视图是提升数据库管理效率的重要工具。三桥君通过系统讲解,帮助读者掌握这一常被忽视却功能强大的数据库特性。
404 0
|
5月前
|
关系型数据库 MySQL 定位技术
MySQL与Clickhouse数据库:探讨日期和时间的加法运算。
这一次的冒险就到这儿,期待你的再次加入,我们一起在数据库的世界中找寻下一个宝藏。
209 9
|
4月前
|
SQL 数据库
软考软件评测师——数据库系统应用
本文介绍了关系数据库的基础知识与应用,涵盖候选码定义、自然连接特点、实体间关系(如1:n和m:n)、属性分类(复合、多值与派生属性)以及数据库设计规范。同时详细解析了E-R图转换原则、范式应用(如4NF)及Armstrong公理体系。通过历年真题分析,结合具体场景(如银行信用卡额度、教学管理等),深入探讨了候选键求解、视图操作规范及SQL语句编写技巧。内容旨在帮助读者全面掌握关系数据库理论与实践技能。

热门文章

最新文章

推荐镜像

更多