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_INGEST | TRUE | 是否启用自动增量数据加载。有效值:TRUE 和 FALSE 。如果将此参数设置为 TRUE ,则启用自动增量数据加载。如果将此参数设置为 FALSE ,则系统仅加载作业创建时指定的源数据文件内容,后续新的或更新的文件内容将不会被加载。对于批量加载,您可以将此参数设置为 FALSE 。 |
POLL_INTERVAL | 300 秒 | 自动增量数据加载的轮询间隔。 |
BATCH_SIZE | 1GB | 作为批次加载的数据大小。 如果您在参数值中不包含单位,则默认使用单位字节。 |
BATCH_FILES | 256 | 作为批次加载的源数据文件数。 |
示例
在当前数据库中创建一个名为 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"
);
注意
在上面的命令中,将您的凭据替换为
AAA
和BBB
。可以使用任何有效的aws.s3.access_key
和aws.s3.secret_key
,因为任何通过 AWS 身份验证的用户都可以读取该对象。
此示例使用基于 IAM 用户的身份验证方法和与 StarRocks 表具有相同 schema 的 Parquet 文件。 有关其他身份验证方法和 CREATE PIPE 用法的更多信息,请参见向 AWS 资源进行身份验证和FILES。