腾讯云数据仓库 TCHouse-X 对象存储 COS

对于已存储于 COS 的 Parquet、CSV 等文件,用户可以在 TCHouse-X 中创建外表直接分析使用。如需提升查询性能,用户还可将外表导入 TCHouse-X 内表。

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

一、前置条件

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

2. 创建对象存储 COS 桶、上传文件、获取文件 cosn 路径,操作指南可参阅:

·创建存储桶:

·控制台创建

·API 创建

注意:用于存储外表数据的 COS Bucket 必须为通用存储桶类型,目前暂不支持使用元数据加速桶。

·上传文件:

·控制台上传对象

·SDK/API-PUT Objects

·获取文件的 cosn 路径:

注意:说明:

注意:cosn 路径为 'cosn://' 前缀 + 复制的路径名。

·COS 工具概览:对象存储 > 工具概览

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

前置条件:已完成前置准备。

三、基于 Parquet、TextFile(CSV/TXT)文件创建外表

可参阅以下建表语法创建外表:

CREATE EXTERNAL TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT 'col_comment'] [, …] ) [PARTITIONED BY (col_name data_type [COMMENT 'col_comment'], …)] [SORT BY ([column [, column …]])] [COMMENT 'table_comment'] [ROW FORMAT row_format] [STORED AS file_format] LOCATION 'cosn://bucket-name/path';Support DataType: TINYINT | SMALLINT | INT | BIGINT | BOOLEAN | FLOAT | DOUBLE | DECIMAL | STRING | CHAR | VARCHAR | TIMESTAMP Support DataType for HASH: SMALLINT | INT | BIGINT | DATE | CHAR | VARCHAR | STRINGSupport DataType for VALUE: BOOLEAN | TINYINT | SMALLINT | INT | BIGINT | FLOAT | DOUBLE | DECIMAL | CHAR | VARCHAR | STRING | DATE

如操作时无可用数据,可下载 demo parquet 文件后,上传至 COS。该 demo parquet 文件的建表语句如下:

CREATE EXTERNAL TABLE default.external_item ( i_item_sk INT, i_item_id STRING, i_rec_start_date DATE, i_rec_end_date DATE, i_item_desc STRING, i_current_price DECIMAL(7,2), i_wholesale_cost DECIMAL(7,2), i_brand_id INT, i_brand STRING, i_class_id INT, i_class STRING, i_category_id INT, i_category STRING, i_manufact_id INT, i_manufact STRING, i_size STRING, i_formulation STRING, i_color STRING, i_units STRING, i_container STRING, i_manager_id INT, i_product_name STRING)STORED AS PARQUETLOCATION 'cosn://your-bucket-name/your-file-path';

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

前置条件:已完成前置准备。

五、Step 1:创建外表

操作步骤与场景1相同,详情请参见 基于 Parquet、TextFile(CSV/TXT)文件创建外表。

六、Step 2:创建内表

如操作时无可用数据,可下载 demo parquet 文件、上传至 COS、创建外表。

若使用该 demo parquet 文件, 则创建内表的建表语句如下:

CREATE TABLE default.inner_item ( i_item_sk INT, i_item_id STRING, i_rec_start_date DATE, i_rec_end_date DATE, i_item_desc STRING, i_current_price DECIMAL(7,2), i_wholesale_cost DECIMAL(7,2), i_brand_id INT, i_brand STRING, i_class_id INT, i_class STRING, i_category_id INT, i_category STRING, i_manufact_id INT, i_manufact STRING, i_size STRING, i_formulation STRING, i_color STRING, i_units STRING, i_container STRING, i_manager_id INT, i_product_name STRING);

七、Step 3:写入数据

使用 INSERT INTO … SELECT … 方式将数据从外表-自管表查询出来写入内表,推荐在 SQL 前添加/*+engine=batch*/调用离线引擎执行数据写入。

如在 Step 1和 Step 2中使用 demo parquet 文件构建了外表和内表,则写入语句为:

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

注意:说明:

赞 (0)
上一篇 4天前
下一篇 4天前