Hive集成表引擎 Hive引擎允许对HDFS Hive表执行 SELECT 查询。目前它支持如下输入格式: -文本:只支持简单的标量列类型,除了 Binary ORC:支持简单的标量列类型,除了char; 只支持 array 这样的复杂类型 Parquet:支持所有简单标量列类型;只支持 array 这样的复杂类型 创建表 CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster] ( name1 [type1] [ALIAS expr1],…

2024年 1月 2日 0条评论 745点热度 0人点赞 张飞的猪 阅读全文

ODBC集成表引擎使得ClickHouse可以通过ODBC方式连接到外部数据库. 为了安全地实现 ODBC 连接,ClickHouse 使用了一个独立程序 clickhouse-odbc-bridge. 如果ODBC驱动程序是直接从 clickhouse-server中加载的,那么驱动问题可能会导致ClickHouse服务崩溃。 当有需要时,ClickHouse会自动启动 clickhouse-odbc-bridge。 ODBC桥梁程序与clickhouse-server来自相同的安装包. 该引擎支持Nullabl…

2024年 1月 2日 0条评论 649点热度 0人点赞 张飞的猪 阅读全文

JDBC 允许CH通过JDBC连接到外部数据库。 要实现JDBC连接,CH需要使用以后台进程运行的程序 clickhouse-jdbc-bridge。 该引擎支持Nullable数据类型。 建表 CREATE TABLE [IF NOT EXISTS] [db.]table_name ( columns list... ) ENGINE = JDBC(datasource_uri, external_database, external_table) 引擎参数 datasource_uri — 外部DBMS的URI…

2024年 1月 2日 0条评论 821点热度 0人点赞 张飞的猪 阅读全文

# 日志引擎系列 这些引擎是为了需要写入许多小数据量(少于一百万行)的表的场景而开发的。 这系列的引擎有: StripeLog Log TinyLog 共同属性 引擎: 数据存储在磁盘上。 写入时将数据追加在文件末尾。 不支持突变操作,也就是更新。 不支持索引。 这意味着 `SELECT` 在范围查询时效率不高。 非原子地写入数据。 如果某些事情破坏了写操作,例如服务器的异常关闭,你将会得到一张包含了损坏数据的表。 差异 Log 和 StripeLog 引擎支持: 并发访问数据的锁。 `INSERT` 请求执行过程…

2024年 1月 2日 0条评论 745点热度 0人点赞 张飞的猪 阅读全文

GraphiteMergeTree该引擎用来对Graphite数据(图数据)进行瘦身及汇总。对于想使用ClickHouse来存储Graphite数据的开发者来说可能有用。 如果不需要对Graphite数据做汇总,那么可以使用任意的ClickHouse表引擎;但若需要,那就采用GraphiteMergeTree引擎。它能减少存储空间,同时能提高Graphite数据的查询效率。 该引擎继承自MergeTree. 创建表 CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON C…

2024年 1月 2日 0条评论 701点热度 1人点赞 张飞的猪 阅读全文

VersionedCollapsingMergeTree引擎继承自MergeTree并将折叠行的逻辑添加到合并数据部分的算法中。VersionedCollapsingMergeTree用于相同的目的折叠树但使用不同的折叠算法,允许以多个线程的任何顺序插入数据。特别是,Version列有助于正确折叠行,即使它们以错误的顺序插入。相比之下,CollapsingMergeTree只允许严格连续插入。 VersionedCollapsingMergeTree引擎的作用如下: 允许快速写入不断变化的对象状态。 删除后台中的旧…

2023年 12月 27日 0条评论 631点热度 0人点赞 张飞的猪 阅读全文

该引擎继承于MergeTree,并在数据块合并算法中添加了折叠行的逻辑。CollapsingMergeTree会异步的删除(折叠)这些除了特定列Sign有1和-1的值以外,其余所有字段的值都相等的成对的行。没有成对的行会被保留。因此,该引擎可以显著的降低存储量并提高SELECT查询效率。 简单来说就是,clickhouse会自动的合并有效和无效的数据,减少数据存储,并减少update所产生的性能消耗。具体的逻辑,下面介绍。 建表 CREATE TABLE [IF NOT EXISTS] [db.]table_nam…

2023年 12月 26日 0条评论 647点热度 0人点赞 张飞的猪 阅读全文

AggregatingMergeTree引擎继承自 MergeTree,并改变了数据片段的合并逻辑。ClickHouse会将一个数据片段内所有具有相同主键(准确的说是排序键)的行替换成一行,这一行会存储一系列聚合函数的状态。 可以使用AggregatingMergeTree表来做增量数据的聚合统计,包括物化视图的数据聚合。 引擎使用以下类型来处理所有列: AggregateFunction SimpleAggregateFunction AggregatingMergeTree适用于能够按照一定的规则缩减行数的情况…

2023年 12月 26日 0条评论 1029点热度 0人点赞 张飞的猪 阅读全文

SummingMergeTree引擎继承自MergeTree。区别在于,当合并SummingMergeTree表的数据片段时,ClickHouse会把所有具有相同主键的行合并为一行,该行包含了被合并的行中具有数值数据类型的列的汇总值。如果主键的组合方式使得单个键值对应于大量的行,则可以显著的减少存储空间并加快数据查询的速度。 一般SummingMergeTree和MergeTree一起使用。例如,在准备做报告的时候,将完整的数据存储在MergeTree表中,并且使用SummingMergeTree来存储聚合数据。这…

2023年 12月 26日 0条评论 805点热度 1人点赞 张飞的猪 阅读全文

MergeTree拥有主键,但是它的主键却没有唯一键的约束。这意味着即便多行数据的主键相同,它们还是能够被正常写入。在某些使用场合,用户并不希望数据表中含有重复的数据。ReplacingMergeTree就是在这种背景下为了数据去重而设计的,它能够在合并分区时删除重复的数据。但是ReplacingMergeTree并不一定保证不会出现重复的数据。 ReplacingMergeTree是另外一个常用的表引擎,ReplacingMergeTree和MergeTree的不同之处在于它会删除排序键值相同的重复项。 数据的去…

2023年 12月 26日 0条评论 862点热度 0人点赞 张飞的猪 阅读全文