简介
对于已存储于 COS 的 Parquet、CSV 等文件,用户可以在 TCHouse-X 中创建外表直接分析使用。如需提升查询性能,用户还可将外表导入 TCHouse-X 内表。
前置条件
1. 创建 TCHouse-X 实例, 操作指南请参见 实例创建与销毁。
2. 创建对象存储 COS 桶、上传文件、获取文件 cosn 路径,操作指南可参阅:
创建存储桶:
控制台创建
API 创建
上传文件:
控制台上传对象
获取文件的 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| TIMESTAMPSupport 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
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:创建外表
Step 2:创建内表
若使用该 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;
说明:
/*+engine=batch*/ 是 TCHouse-X 的优化 Hint,用于调用离线计算引擎,以处理大规模数据的批量导入,推荐在数据迁移和初始化同步时使用。默认资源配置如下:Executor 节点规格: 2X-Small (4CU)
Executor 节点数量: 1 个
Driver 节点规格: 2X-Small (4CU)
Driver 节点数量: 1 个
如果您需要进一步配置离线计算引擎的资源,可使用 Hint 组合
/*+engine=batch, executor_specs=2x-small, executor_count=1, driver_specs=2x-small*/进行配置,其中 executor_specs、driver_specs 可选规格有:2X-Small (4CU)
X-Small (8CU)
Small (16CU)
Medium (32CU)
Large (64CU)
您可以替换
SELECT * 为特定的列名,或添加 WHERE 子句以实现增量或条件导入。