跳到主要内容
版本:Latest-3.2

CREATE PIPE

功能

创建一个 Pipe,用于定义一个实现数据导入的 INSERT INTO SELECT FROM FILES 语句。该命令自 3.2 版本起支持。

语法

CREATE [OR REPLACE] PIPE [db_name.]<pipe_name> 
[PROPERTIES ("<key>" = "<value>"[, "<key> = <value>" ...])]
AS <INSERT_SQL>

StarRocks 自 3.2.3 版本起支持 CREATE [OR REPLACE] PIPE。使用 CREATE [OR REPLACE] PIPE 时,如果指定的 pipe_name 与当前数据库里的某个已有的 Pipe 名称相同,则新建的 Pipe 会取代已有的 Pipe。

参数说明

db_name

Pipe 所属的数据库的名称。

pipe_name

Pipe 的名称。该名称在 Pipe 所在的数据库内必须唯一。命名要求参见系统限制

NOTICE

每个 Pipe 从属于一个数据库。删除 Pipe 所在的数据库后,该 Pipe 也会随之删除,并且该 Pipe 不会随数据库的恢复而恢复。

INSERT_SQL

INSERT INTO SELECT FROM FILES 语句,用于从指定的源数据文件导入数据到目标表。

有关如何使用表函数 FILES(),参见 FILES

PROPERTIES

用于控制 Pipe 执行的一些参数。格式:"key" = "value"

参数默认值参数描述
AUTO_INGESTTRUE是否启用自动增量导入。取值范围:TRUEFALSETRUE 表示开启自动增量导入。FALSE 表示只导入作业启动时指定的数据文件内容,后续新增或修改的文件内容不导入。对于批量导入来说,可以将其设置为 FALSE
POLL_INTERVAL300 (second)自动增量导入的轮询间隔。
BATCH_SIZE1 GB导入批次大小。如果参数取值中不指定单位,则使用默认单位 Byte。
BATCH_FILES256导入批次文件数量。

示例

在当前数据库下,创建一个名为 user_behavior_replica 的 Pipe,用于把 s3://starrocks-examples/user_behavior_ten_million_rows.parquet 中的数据导入到表 user_behavior_replica 中:

CREATE PIPE user_behavior_replica
PROPERTIES
(
"AUTO_INGEST" = "TRUE"
)
AS
INSERT INTO user_behavior_replica
SELECT * FROM FILES
(
"path" = "s3://starrocks-examples/user_behavior_ten_million_rows.parquet",
"format" = "parquet",
"aws.s3.region" = "us-east-1",
"aws.s3.access_key" = "AAAAAAAAAAAAAAAAAAAA",
"aws.s3.secret_key" = "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
);

说明

把上面命令示例中的 AAABBB 替换成真实有效的 Access Key 和 Secret Key 作为访问凭证。由于这里使用的数据对象对所有合法的 AWS 用户开放,因此您填入任何真实有效的 Access Key 和 Secret Key 都可以。

该示例以基于 IAM User 的认证鉴权方式为例,并假设 Parquet 源文件与 StarRocks 目标表的结构相同。有关认证方式和语句详情,参见配置 AWS 认证信息FILES

相关文档