跳到主要内容
版本: 最新版本-3.5

CREATE PIPE

CREATE PIPE 用于创建一个新的 pipe,用于定义 INSERT INTO SELECT FROM FILES 语句,该语句由系统用来从指定的源数据文件加载数据到目标表中。该命令从 v3.2 版本开始支持。

语法

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

StarRocks 从 v3.2.3 版本开始支持 CREATE [OR REPLACE] PIPE。当您使用 CREATE [OR REPLACE] PIPE 创建 pipe,并且 pipe_name 中指定的 pipe 名称与当前数据库中现有 pipe 的名称相同时,现有数据库将被新 pipe 替换。

参数

db_name

pipe 所属数据库的唯一名称。

注意

每个 pipe 属于一个特定的数据库。 如果您删除 pipe 所属的数据库,则 pipe 将随数据库一起删除,即使恢复数据库也无法恢复。

pipe_name

pipe 的名称。 pipe 名称在创建 pipe 的数据库中必须是唯一的。 有关命名约定,请参见系统限制

INSERT_SQL

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

有关 FILES() 表函数的更多信息,请参见FILES

PROPERTIES

一组可选参数,用于指定如何执行 pipe。 格式:"key" = "value"

属性默认值描述
AUTO_INGESTTRUE是否启用自动增量数据加载。有效值:TRUEFALSE。如果将此参数设置为 TRUE,则启用自动增量数据加载。如果将此参数设置为 FALSE,则系统仅加载作业创建时指定的源数据文件内容,后续新的或更新的文件内容将不会被加载。对于批量加载,您可以将此参数设置为 FALSE
POLL_INTERVAL300自动增量数据加载的轮询间隔。
BATCH_SIZE1GB作为批次加载的数据大小。 如果您在参数值中不包含单位,则默认使用单位字节。
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。可以使用任何有效的 aws.s3.access_keyaws.s3.secret_key,因为任何通过 AWS 身份验证的用户都可以读取该对象。

此示例使用基于 IAM 用户的身份验证方法和与 StarRocks 表具有相同 schema 的 Parquet 文件。 有关其他身份验证方法和 CREATE PIPE 用法的更多信息,请参见向 AWS 资源进行身份验证FILES

参考