COPY JOB(预览版) - Amazon Redshift

COPY JOB(预览版)

这是面向预览版中的自动复制(SQL COPY JOB)的预发行文档。文档和特征都可能会更改。我们建议您仅在测试环境中使用此特征,不要在生产环境中使用。公开预览版将于 2024 年 10 月 31 日结束。在预览结束两周后,将自动删除预览集群。有关预览条款和条件,请参阅 AWS 服务条款中的测试版和预览

有关在预览版中使用此命令的信息,请参阅 通过从 Amazon S3 持续摄取文件来加载表(预览版)

管理将数据加载到表中的 COPY 命令。COPY JOB 命令是 COPY 命令的扩展,可自动从 Amazon S3 桶加载数据。当您创建 COPY 作业时,Amazon Redshift 会检测何时在指定路径中创建新的 Amazon S3 文件,然后自动加载这些文件,无需您的干预。加载数据时使用的参数与原始 COPY 命令中使用的参数相同。Amazon Redshift 会跟踪加载的文件,以确认它们只加载一次。

注意

有关 COPY 命令的信息,包括用法、参数和权限,请参阅 COPY

所需的权限

要运行 COPY JOB 的 COPY 命令,必须对要加载的表具有 INSERT 权限。

使用 COPY 命令指定的 IAM 角色必须具有访问待加载数据的权限。有关更多信息,请参阅 COPY、UNLOAD 和 CREATE LIBRARY 的 IAM 权限

语法

创建复制作业。COPY 命令的参数与复制作业一起保存。

COPY copy-command JOB CREATE job-name [AUTO ON | OFF]

更改复制作业的配置。

COPY JOB ALTER job-name [AUTO ON | OFF]

运行复制作业。使用存储的 COPY 命令参数。

COPY JOB RUN job-name

列出所有复制作业。

COPY JOB LIST

显示复制作业的详细信息。

COPY JOB SHOW job-name

删除复制作业。

COPY JOB DROP job-name

参数

copy-command

COPY 命令将数据从 Amazon S3 加载到 Amazon Redshift。该子句包含用于定义 Amazon S3 桶、目标表、IAM 角色的 COPY 参数,以及加载数据时使用的其他参数。支持用于 Amazon S3 数据加载的所有 COPY 命令参数,但以下参数除外:

  • COPY JOB 不会摄取 COPY 命令指向的文件夹中已有的文件。只有在 COPY JOB 创建时间戳之后创建的文件才会被摄取。

  • 不能使用 MAXERROR 或 IGNOREALLERRORS 选项指定 COPY 命令。

  • 不能指定清单文件。COPY JOB 需要指定的 Amazon S3 位置来监控新创建的文件。

  • 不能使用访问密钥和私有密钥等授权类型指定 COPY 命令。仅支持使用 IAM_ROLE 参数进行授权的 COPY 命令。有关更多信息,请参阅 授权参数

  • COPY JOB 不支持与集群关联的默认 IAM 角色。必须在 COPY 命令中指定 IAM_ROLE

有关更多信息,请参阅 从 Amazon S3 执行 COPY 操作

job-name

用于引用 COPY JOB 的作业的名称。

[AUTO ON | OFF]

该子句指示 Amazon S3 数据是否自动加载到 Amazon Redshift 表中。

  • 选项为 ON 时,Amazon Redshift 会监控源 Amazon S3 路径中新创建的文件,如果找到新创建的文件,则使用作业定义中的 COPY 参数运行 COPY 命令。这是默认模式。

  • 选项为 OFF 时,Amazon Redshift 不会自动运行 COPY JOB。

使用说明

COPY 命令的选项要等到运行时才会验证。例如,在 COPY JOB 启动时,无效的 IAM_ROLE 或 Amazon S3 数据来源会导致出现运行时错误。

如果暂停集群,则不运行 COPY JOB。

要查询已加载的 COPY 命令文件和加载错误,请参见 STL_LOAD_COMMITSSTL_LOAD_ERRORSSTL_LOADERROR_DETAIL。有关更多信息,请参阅 验证是否正确加载了数据

示例

以下示例显示创建 COPY JOB 以从 Amazon S3 桶加载数据。

COPY public.target_table FROM 's3://amzn-s3-demo-bucket/staging-folder' IAM_ROLE 'arn:aws:iam::123456789012:role/MyLoadRoleName' JOB CREATE my_copy_job_name AUTO ON;