Doris基础:修订间差异

来自牛奶河Wiki
跳到导航 跳到搜索
(创建页面,内容为“ ==== 数据模型 ==== ===== Aggregate ===== 聚合模型 * Value 列会按照设置的 AggregationType 进行聚合,如:sum, max, replace 等 * AGGREGATE KEY() 指定 key,未被指定的,需要提供 AggregationType,如:`cost` BIGINT SUM DEFAULT "0" * 读时合并(merge on read),因此在一些聚合查询上性能不佳 ===== Unique ===== 唯一模型 * 保持 key 列的唯一,新值替换旧值 * 写时合并(merge on write) *…”)
 
无编辑摘要
第1行: 第1行:
==== 数据模型 ====
==== 数据模型 ====
===== Aggregate =====
===== Aggregate =====
聚合模型
聚合模型
* Value 列会按照设置的 AggregationType 进行聚合,如:sum, max, replace 等
* Value 列会按照设置的 AggregationType 进行聚合,如:sum, max, replace 等
* AGGREGATE KEY() 指定 key,未被指定的,需要提供  AggregationType,如:`cost` BIGINT SUM DEFAULT "0"  
* AGGREGATE KEY() 指定 key,未被指定的,需要提供  AggregationType,如:`cost` BIGINT SUM DEFAULT "0"  
* 读时合并(merge on read),因此在一些聚合查询上性能不佳
* 读时合并(merge on read),因此在一些聚合查询上性能不佳
create table test_a
(
    ky  int,
    name varchar(10),
    val  int sum default "0"
)
aggregate key(ky, name)
distributed by hash(`ky`) buckets 1
properties (
    "replication_allocation" = "tag.location.default: 1")
;


===== Unique =====
===== Unique =====
唯一模型
唯一模型
* 保持 key 列的唯一,新值替换旧值
* 保持 key 列的唯一,新值替换旧值
* 写时合并(merge on write)
* 写时合并(merge on write)
* 可以在 be.conf 中添加配置项 disable_storage_page_cache=false,可能会优化数据导入性能
* 可以在 be.conf 中添加配置项 disable_storage_page_cache=false,可能会优化数据导入性能
create table test_u
(
    ky  int,
    name varchar(10),
    val  int
)
unique key(ky, name)
distributed by hash(ky) buckets 1
properties (
    "replication_allocation" = "tag.location.default: 1",
    "enable_unique_key_merge_on_write" = "true")
;


===== Duplicate =====
===== Duplicate =====
可重复模型
可重复模型
* 不对导入数据做任何操作
* 不对导入数据做任何操作
* 建表语句中指定的 DUPLICATE KEY,只是用来指明底层数据按照那些列进行排序。(更贴切的名称应该为 “Sorted Column”)
* 建表语句中指定的 DUPLICATE KEY,只是用来指明底层数据按照那些列进行排序。(更贴切的名称应该为 “Sorted Column”)
create table test
(
    ky  int,
    name varchar(10),
    val  int
)
distributed by hash(ky) buckets 1
properties (
    "replication_allocation" = "tag.location.default: 1",
    "enable_duplicate_without_keys_by_default" = "true")
;
[[分类:Develop]]
[[分类:DB]]
[[分类:Doris]]

2023年11月29日 (三) 11:34的版本

数据模型

Aggregate

聚合模型

  • Value 列会按照设置的 AggregationType 进行聚合,如:sum, max, replace 等
  • AGGREGATE KEY() 指定 key,未被指定的,需要提供 AggregationType,如:`cost` BIGINT SUM DEFAULT "0"
  • 读时合并(merge on read),因此在一些聚合查询上性能不佳
create table test_a
(
   ky   int,
   name varchar(10),
   val  int sum default "0" 
)
aggregate key(ky, name)
distributed by hash(`ky`) buckets 1
properties (
   "replication_allocation" = "tag.location.default: 1")
;
Unique

唯一模型

  • 保持 key 列的唯一,新值替换旧值
  • 写时合并(merge on write)
  • 可以在 be.conf 中添加配置项 disable_storage_page_cache=false,可能会优化数据导入性能
create table test_u
(
   ky   int,
   name varchar(10),
   val  int
)
unique key(ky, name)
distributed by hash(ky) buckets 1
properties (
   "replication_allocation" = "tag.location.default: 1",
   "enable_unique_key_merge_on_write" = "true")
;


Duplicate

可重复模型

  • 不对导入数据做任何操作
  • 建表语句中指定的 DUPLICATE KEY,只是用来指明底层数据按照那些列进行排序。(更贴切的名称应该为 “Sorted Column”)
create table test
(
   ky   int,
   name varchar(10),
   val  int
)
distributed by hash(ky) buckets 1
properties (
   "replication_allocation" = "tag.location.default: 1",
   "enable_duplicate_without_keys_by_default" = "true")
;