计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive

CREATE TABLE

更新时间:2025-01-07 GMT+08:00

功能描述

在当前数据库中创建一个新的空白HStore表,该表由命令执行者所有。

实时数仓提供创建HStore表DDL语句。创建HStore表DDL需要指定enable_hstore为true,同时需要将orientation属性设置为column。

说明:
  • 如需使用实时数仓能力,请在DWS控制台创建集群时,选择存算一体1:4云盘规格,了解更多参见存算一体规格
  • 创建DWS集群选择1:8云盘规格为标准数仓,1:4云盘规格为实时数仓,以下内容描述的“实时数仓”、“标准数仓”即通过以上规格区分。

注意事项

  • 创建HStore表的用户需要拥有schema cstore的USAGE权限。
  • 表级参数enable_delta与enable_hstore无法同时开启,因为enable_delta用于控制普通列存表的delta开启,会与enable_hstore冲突。
  • 每一个HStore表绑定一张delta表,delta表的oid记录在pg_class中reldeltaidx字段(reldelta字段被列存表的delta表使用)。

语法格式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
CREATE TABLE [ IF NOT EXISTS ] table_name
({ column_name data_type 
    | LIKE source_table [like_option [...] ] }
}
    [, ... ])
[ WITH ( {storage_parameter = value}  [, ... ] ) ]
[ TABLESPACE tablespace_name ]
[ DISTRIBUTE BY  HASH ( column_name [,...])]
[ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ]
[ PARTITION BY { 
        {RANGE (partition_key) ( partition_less_than_item [, ... ] )} 
 } [ { ENABLE | DISABLE } ROW MOVEMENT ] ]; 
其中like选项like_option为
{ INCLUDING | EXCLUDING } { DEFAULTS | CONSTRAINTS | INDEXES | STORAGE | COMMENTS | PARTITION | RELOPTIONS | DISTRIBUTION | ALL }

列存表的Delta表差异

表1 HStore表与列存表的辅助Delta表差异

数仓类型

列存的delta表

HStore的delta表

表结构

与列存主表的表定义一致。

与主表表定义不一样。

功能

用于暂存小批量insert的数据,满阈值后再merge到主表,避免直接insert到主表产生大量小CU。

用于持久化存储update/delete/insert信息。在故障拉起后用于恢复内存更新链等管理并发更新的内存结构。

缺陷

来不及merge导致delta表膨胀,影响查询性能,同时无法解决并发update的锁冲突问题。

依赖后台常驻autovacuum来做merge操作。

参数说明

  • IF NOT EXISTS

    指定IF NOT EXISTS时,如果不存在同名表,则可以成功创建表。如果已存在同名表,创建时不会报错,仅会提示该表已存在并跳过创建。

  • table_name

    要创建的表名。

    表名长度不超过63个字符,以字母或下划线开头,可包含字母、数字、下划线、$、#。

  • column_name

    新表中要创建的字段名。

    字段名长度不超过63个字符,以字母或下划线开头,可包含字母、数字、下划线、$、#。

  • data_type

    字段的数据类型。

  • LIKE source_table [ like_option ... ]

    LIKE子句声明一个表,新表自动从这个表中继承所有字段名及其数据类型。

    新表与原表之间在创建动作完毕之后是完全无关的。在原表做的任何修改都不会传播到新表中,并且也不可能在扫描原表的时候包含新表的数据。

    被复制的列并不使用相同的名字进行融合。如果明确的指定了相同的名字或者在另外一个LIKE子句中,将会报错。

    HStore表只能从HStore表中进行继承。

  • WITH ( { storage_parameter = value } [, ... ] )

    这个子句为表指定一个可选的存储参数。

    • ORIENTATION

      指定表数据的存储方式,即时序方式、行存方式和列存方式,该参数设置成功后就不再支持修改。对于HStore表,应当使用列存方式,同时设置enable_hstore为on。

      取值范围:

      • TIMESERIES:表示表的数据将以时序方式存储。
      • COLUMN:表示表的数据将以列存方式存储。
      • ROW:表示表的数据将以行方式存储。

      默认值:ROW

    • COMPRESSION

      指定表数据的压缩级别,它决定了表数据的压缩比以及压缩时间。一般来讲,压缩级别越高,压缩比也越大,压缩时间也越长;反之亦然。实际压缩比取决于加载的表数据的分布特征。

      取值范围:

      HStore表列存表的有效值为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)内部提供如下压缩算法。

      表2 列存压缩算法

      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表。对HStore表不能开启该参数。

      默认值:off

    • enable_hstore

      指定了是否创建为H-Store表(基于列存表实现)。该参数只对列存表有效。该参数仅8.2.0.100及以上集群版本支持。

      默认值:off

      说明:

      打开该参数时必须设置以下GUC参数用于保证H-Store表的清理,推荐值如下:

      autovacuum=true,autovacuum_max_workers=6,autovacuum_max_workers_hstore=3。

    • SUB_PARTITION_COUNT

      指定二级分区的个数。该参数用于设置在导入阶段二级分区个数。在建表时进行设置,建表后不支持修改。不建议用户随意设置该默认值,可能会影响导入和查询的性能。

      取值范围:1~1024

      默认值:32

    • DELTAROW_THRESHOLD

      指定HStore表导入时小于多少行(SUB_PARTITION_COUNT * DELTAROW_THRESHOLD)的数据进入delta表。

      取值范围:0~60000

      默认值:60000

    • COLVERSION

      指定存储格式的版本。 HStore表只支持2.0版本。

      取值范围:

      • 1.0:列存表的每列以一个单独的文件进行存储,文件名以relfilenode.C1.0、relfilenode.C2.0、relfilenode.C3.0等命名。
      • 2.0:列存表的每列合并存储在一个文件中,文件名以relfilenode.C1.0命名。

      默认值:2.0

    • DISTRIBUTE BY

      指定表如何在节点之间分布或者复制。

      取值范围:

      HASH (column_name ) :对指定的列进行Hash,通过映射,把数据分布到指定DN。

    • TO { GROUP groupname | NODE ( nodename [, ... ] ) }

      TO GROUP指定创建表所在的Node Group,目前不支持hdfs表使用。TO NODE主要供内部扩容工具使用,一般用户不应该使用。

    • PARTITION BY

      指定HStore表的初始分区。

示例

创建简单的HStore表:

CREATE TABLE warehouse_t1
(
    W_WAREHOUSE_SK            INTEGER               NOT NULL,
    W_WAREHOUSE_ID            CHAR(16)              NOT NULL,
    W_WAREHOUSE_NAME          VARCHAR(20)                   ,
    W_WAREHOUSE_SQ_FT         INTEGER                       ,
    W_STREET_NUMBER           CHAR(10)                      ,
    W_STREET_NAME             VARCHAR(60)                   ,
    W_STREET_TYPE             CHAR(15)                      ,
    W_SUITE_NUMBER            CHAR(10)                      ,
    W_CITY                    VARCHAR(60)                   ,
    W_COUNTY                  VARCHAR(30)                   ,
    W_STATE                   CHAR(2)                       ,
    W_ZIP                     CHAR(10)                      ,
    W_COUNTRY                 VARCHAR(20)                   ,
    W_GMT_OFFSET              DECIMAL(5,2)
)WITH(ORIENTATION=COLUMN, ENABLE_HSTORE=ON);

CREATE TABLE warehouse_t2 (LIKE warehouse_t1 INCLUDING ALL);

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容