doris基础知识点:数据模型
·
一、doris的三种数据模型
Apache Doris 提供三种主要的数据模型,以满足不同的业务需求:
Duplicate(重复)模型
适用于需要完整保留原始数据的场景,即使两行数据完全相同也会保留。
适用于日志分析、审计追踪等需要存储详细数据的应用场景。
Aggregate(聚合)模型
适用于需要对数据进行聚合计算的场景,例如报表分析。
对于 Key 列(维度列)相同的行,会聚合成一行,而 Value 列(指标列)会按照指定的聚合方式(如 SUM、MAX、MIN、REPLACE)进行计算。
适用于固定模式的报表类查询,能够减少查询时的计算量,提高查询效率。
Unique(唯一)模型
适用于需要保证 主键唯一性 的场景,例如用户 ID、订单号等。
提供 写时合并(merge-on-write) 和 读时合并(merge-on-read) 两种实现方式,其中写时合并在数据写入阶段完成去重,查询性能更优。
适用于需要精准匹配唯一标识的数据存储场景。
二、doris的建表语句
在 Apache Doris 中,CREATE TABLE 命令用于在当前或指定的数据库中创建新表。一个表可以包含多个列,每个列的定义包括 名称、数据类型,以及以下可选属性:
-
是否为 主键
(KEY) -
是否具有 聚合语义
-
是否为 生成列
-
是否要求 非空
(NOT NULL) -
是否为 自增列
(AUTO_INCREMENT) -
是否在插入时有 默认值
-
是否在更新时有 默认值
此外,CREATE TABLE 还支持以下两种变体:
CREATE TABLE … AS SELECT(CTAS)
该语法用于创建一个 预填充数据的表,即新表的数据来源于 SELECT 查询的结果。
CREATE TABLE … LIKE
该语法用于创建一个 与现有表结构相同但为空的表,不会复制原表的数据。
在创建表时,还可以指定 分区、索引、分布方式 等属性,以优化数据存储和查询性能。
CREATE [ EXTERNAL ] TABLE [ IF NOT EXISTS ] <table_name>
(<columns_definition> [ <indexes_definition> ])
[ ENGINE = <table_engine_type> ]
[ <key_type> KEY (<key_cols>)
[ CLUSTER BY (<cluster_cols>) ]
]
[ COMMENT '<table_comment>' ]
[ <partitions_definition> ]
[ DISTRIBUTED BY { HASH (<distribute_cols>) | RANDOM }
[ BUCKETS { <bucket_count> | AUTO } ]
]
[ <roll_up_definition> ]
[ PROPERTIES (
-- Table property
<table_property>
-- Additional table properties
[ , ... ])
]
更多推荐


所有评论(0)