数据仓库服务 GAUSSDB(DWS)-CREATE TABLE:参数说明
参数说明
- IF NOT EXISTS
- table_name
- column_name
- data_type
- kv_type
列的kv_type属性:维度属性(TSTAG),指标属性(TSFIELD),时间属性(TSTIME);
时序表必须指定一个时间属性(TSTIME),且只能指定一个,tstime类型的列不能被删除。至少存在一个TSTAG和TSFIELD列,否则建表报错。
TSTAG列支持类型:text、char、boo、int、big int。
TSTIME列支持类型:timestamp with time zone、timestamp without time zone。在兼容Oracle语法的数据库中,也支持date类型。涉及到时区相关操作时,请选择带时区的时间类型。
TSFIELD列支持类型见TSFIELD支持的数据类型。
- LIKE source_table [like_option...]
LIKE子句声明一个表,新表自动从这个表中继承所有字段名及其数据类型。
新表与原表之间在创建动作完毕之后是完全无关的。在原表做的任何修改都不会传播到新表中,并且也不可能在扫描原表的时候包含新表的数据。
被复制的列并不使用相同的名字进行融合。如果明确的指定了相同的名字或者在另外一个LIKE子句中,将会报错。
时序表只能从时序表中进行继承。
- WITH( { storage_parameter = value } [, ...] )
- ORIENTATION
指定表数据的存储方式,即时序方式、行存方式、列存方式,该参数设置成功后就不再支持修改。
取值范围:- TIMESERIES,表示表的数据将以时序方式存储。
- COLUMN,表示表的数据将以列存方式存储。
- ROW,表示表的数据将以行方式存储。
默认值:ROW。
- COMPRESSION
指定表数据的压缩级别,它决定了表数据的压缩比以及压缩时间。一般来讲,压缩级别越高,压缩比也越大,压缩时间也越长;反之亦然。实际压缩比取决于加载的表数据的分布特征。
取值范围:
时序表和列存表的有效值为YES/NO和/LOW/MIDDLE/HIGH,默认值为LOW。当设置为YES时,压缩级别默认为LOW。- 暂不支持行存表压缩功能。
- ORC格式迁移到 GaussDB (DWS)列存表,如果使用low级别压缩,单副本大小大约是ORC的1.5~2倍;如果使用high级别压缩,单副本大小基本与ORC持平,在新建GaussDB(DWS)集群规模时,需考虑该转换关系。
- 列存middle压缩固定使用字典压缩,对于数据特征不适合字典压缩的数据,使用middle压缩的结果可能比low压缩更大。
GaussDB(DWS)内部提供如下压缩算法。
表1 列存压缩算法 COMPRESSION
NUMERIC
STRING
INT
LOW
delta压缩+RLE压缩
lz4压缩
delta压缩(RLE可选)
MIDDLE
delta压缩+RLE压缩+lz4压缩
dict压缩或lz4压缩
delta压缩或lz4压缩(RLE可选)
HIGH
delta压缩+RLE压缩+zlib压缩
dict压缩或zlib压缩
delta压缩或zlib压缩(RLE可选)
- COMPRESSLEVEL
指定表数据同一压缩级别下的不同压缩水平,它决定了同一压缩级别下表数据的压缩比以及压缩时间。对同一压缩级别进行了更加详细的划分,为用户选择压缩比和压缩时间提供了更多的空间。总体来讲,此值越大,表示同一压缩级别下压缩比越大,压缩时间越长;反之亦然。该参数只对时序表和列存表有效。
取值范围:0~3,默认值为0。
- MAX_BATCHROW
指定了在数据加载过程中一个存储单元可以容纳记录的最大数目。该参数只对时序表和列存表有效。
取值范围:10000~60000
默认值60000
- PARTIAL_CLUSTER_ROWS
指定了在数据加载过程中进行将局部聚簇存储的记录数目。该参数只对时序表和列存表有效。
取值范围:600000~2147483647
- ENABLE_DELTA
指定了在时序表是否开启delta表。该参数只对时序表和列存表有效。
默认值:on
- SUB_PARTITION_COUNT
指定时序表二级分区的个数。该参数用于设置在导入阶段二级分区个数。在建表时进行设置,建表后不支持修改。不建议用户随意设置该默认值,可能会影响导入和查询的性能。
取值范围:1~1024,默认值为32
- DELTAROW_THRESHOLD
指定时序表导入时小于多少行(SUB_PARTITION_COUNT * DELTAROW_THRESHOLD)的数据进入delta表,enable_delta开启时生效。该参数只对时序表和列存表有效。
取值范围:0~60000
默认值:10000
- COLVERSION
指定时存储格式的版本,仅时序表和列存表支持该参数,时序表不支持不同存储格式版本之间的切换。时序表只支持2.0版本。
取值范围:
1.0:列存表的每列以一个单独的文件进行存储,文件名以relfilenode.C1.0、relfilenode.C2.0、relfilenode.C3.0等命名。
2.0:时序表/列存表的每列合并存储在一个文件中,文件名以relfilenode.C1.0命名。
默认值:2.0
- TTL
设置时序表定时删除分区task任务。默认不创建删除分区task任务。
取值范围:
1 hour ~ 100 years
- PERIOD
设置时序表定时创建分区task任务。如果设置TTL,PERIOD不能大于TTL。
取值范围:
1 hour ~ 100 years, 默认值:1 day
- ORIENTATION
- TABLESPACE tablespace_name
- DISTRIBUTE BY
取值范围:
HASH (column_name ) :对指定的列进行Hash,通过映射,把数据分布到指定DN。
时序表当前默认按照所有TAG列进行分布。
- TO { GROUP groupname | NODE ( nodename [, ... ] ) }
TO GROUP指定创建表所在的Node Group,目前不支持hdfs表使用。TO NODE主要供内部扩容工具使用,一般用户不应该使用。
- PARTITION BY
- TTL(Time To Live)指明该表的数据保存周期,超过TTL周期的数据将被清理。Period指明按照时间划分的周期对数据进行分区,分区的大小可能对查询性能有影响,同时每隔周期时间会创建一个新的周期大小的分区。TTL和Period值为Interval类型,例如:“1 hour”, “1 day”, “1 week”, “1 month” ,“1 year”, “1 month 2 day 3 hour”...
- Storage_parameter存储参数中的orientation指明是否为时序存储方式,只有当orientation为timeseries时存储方式才支持Key Value存储。
- 时序表不需要手动指定DISTRIBUTE BY和PARTITION BY,默认按照所有tag列分布,同时以TSTIME列为分区键,创建具有自动分区管理功能的分区表。
- 数据仓库服务GaussDB(DWS)_SQL on Anywhere
- GaussDB(DWS)常用SQL_常用SQL命令_SQL语法
- DWS安全_数据仓库服务安全_DWS数据安全管理_DWS安全保障_DWS安全策略
- 调用GaussDB(DWS) API接口_数据仓库服务调用API_如何调用API_在DWS中调用API
- GAUSS(DWS)工具_gsql工具_DataStudio工具_DSC工具
- DWS产品介绍_DWS产品优势_DWS功能_DWS使用场景_DWS是什么
- DWS资源管理_GaussDB(DWS)资源管理作用_DWS资源管控
- GaussDB行转列_数据中台架构pdf_高斯数据库行转列_华为云
- GaussDB版本查询_华为云GaussDB的作用_高斯数据库版本查询_华为云
- 什么是Flink OpenSource SQL_数据湖探索_Flink OpenSource SQL