腾讯云数据仓库 TCHouse-X Iceberg

对于已存储于 对象存储(COS)上的 Iceberg 表,可以以使用 CREATE EXTERNAL TABLE 命令将其元数据信息添加到 TCHouse-X 服务。TCHouse-X 实例即可对该表进行读操作。

相关产品
腾讯云数据仓库 TCHouse-X 产品页,含版本规格、价格与购买入口。

一、前置准备

根据你的数据存储位置,请完成以下相应准备工作:

二、存储于 COS 上的 Iceberg 表

1. 创建 TCHouse-X 实例,操作指南请参见 实例创建与销毁。

2. 准备对象存储资源:

·创建存储桶

·控制台创建

·API 创建

·上传文件

·控制台上传对象

·SDK/API-PUT Objects

·获取文件的 cosn 路径:cosn 路径为 'cosn://' 前缀 + 复制的路径名。

·相关工具概览:对象存储 > 工具概览

三、场景 1:仅创建外表,不导入数据至 TCHouse-X

本场景适用于将已有的 Iceberg 表元数据映射到 TCHouse-X,实现对外表的查询分析。

四、创建 Iceberg 外表

参考语法如下:

CREATE EXTERNAL TABLE [IF NOT EXISTS] [db_name.]table_name [COMMENT 'table_comment'] STORED AS ICEBERG [LOCATION 'table_path'] [TBLPROPERTIES ('key1'='value1', 'key2'='value2', …)]

五、场景 2:创建外表,并导入数据至 TCHouse-X 内表

本场景适用于将 Iceberg 外部存储系统中的数据迁移或同步到 TCHouse-X 的内部管理表,以实现数据的高效存储和查询优化。

六、Step 1:创建 Iceberg 外表

操作详情与“场景 1:仅创建外表,不导入数据至 TCHouse-X”完全相同。

七、Step 2:创建 TCHouse-X 内表

在执行数据导入之前,你需要创建用于存储数据的 TCHouse-X 内表。内表的 Schema 应与 Iceberg 外表的 Schema 保持一致。

八、Step 3:写入数据

使用 INSERT INTO…SELECT 语句,将数据从已创建的 Iceberg 外表查询出来,并写入 TCHouse-X 的内表。为了确保数据导入操作的性能和稳定性,强烈推荐使用离线(Batch)引擎执行数据写入任务。

/*+engine=batch*/insert into inner_item select * from external_item;

注意:说明:

九、数据类型映射

Iceberg 与 TCHouse-X 数据类型略有差异,其映射关系如下:

Iceberg DATA Type DATA Type in TCHouse-X
BOOLEAN BOOLEAN
INT INTEGER
LONG BIGINT
FLOAT FLOAT
DOUBLE DOUBLE
DECIMAL(P, S) DECIMAL(P, S)
DATE DATE
TIME Not supported
TIMESTAMP TIMESTAMPNTZ
TIMESTAMPTZ TIMESTAMPLTZ/TIMESTAMP
STRING STRING
UUID Not supported
FIXED(L) Not supported
BINARY Not supported
STRUCT STRUCT (read only)
LIST ARRAY (read only)
MAP MAP (read only)
赞 (0)
上一篇 4天前
下一篇 4天前