从本地文件设置和工作流加载数据 - Amazon Redshift

从本地文件设置和工作流加载数据

您可从本地文件将数据加载到现有表或新表中。

管理员设置从本地文件加载数据

查询编辑器 v2 管理员必须在 Account settings(账户设置)窗口中指定常用 Amazon S3 桶。必须为账户用户配置适当的权限。

  • 所需的 IAM 权限 – 从本地文件加载的用户必须拥有 s3:ListBuckets3:GetBucketLocations3:putObjects3:getObjects3:deleteObject 权限。可以指定 optional-prefix,以将查询编辑器 v2 对此桶相关的使用限制为具有此前缀的对象。将同一 Amazon S3 桶用于查询编辑器 v2 以外的用途时,您可以使用此选项。有关桶和前缀的更多信息,请参阅《Amazon Simple Storage Service 用户指南》中的管理用户对特定文件夹的访问权限。为确保不允许跨用户访问数据,我们建议查询编辑器 v2 管理员使用 Amazon S3 存储桶策略来限制基于 aws:userid 的对象访问权限。以下示例允许 Amazon S3 对 <staging-bucket-name> 拥有权限,并仅对前缀为 aws:userid 的 Amazon S3 对象进行读/写访问。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::<staging-bucket-name>" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*" ] } ] }
  • 数据分离 – 我们建议用户不要访问彼此的数据(即使是短暂的访问)。从本地文件加载将使用查询编辑器 v2 管理员设置的暂存 Amazon S3 桶。为暂存桶配置桶策略,以在用户之间提供数据分离。以下示例显示了在 <staging-bucket-name> 的用户之间分离数据的桶策略。

    { "Version": "2012-10-17", "Statement": [ {"Sid": "userIdPolicy", "Effect": "Deny", "Principal": "*", "Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"], "NotResource": [ "arn:aws:s3:::<staging-bucket-name>[/<optional-prefix>]/${aws:userid}/*" ] } ] }

从本地文件加载数据

将本地文件数据加载到现有表中

您的查询编辑器 v2 管理员必须在账户设置窗口中指定公共 Amazon S3 存储桶。查询编辑器 v2 会自动将本地文件上传到账户使用的公共 Amazon S3 存储桶,然后使用 COPY 命令加载数据。在查询编辑器 v2 加载本地文件窗口中生成和运行的 COPY 命令支持从 Amazon S3 复制的 COPY 命令语法可用的许多参数。有关 COPY 命令及其用于从 Amazon S3 加载数据的选项的信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 Amazon S3 中的 COPY 命令

  1. 确认表已在要加载数据的数据库中创建。

  2. 在查询编辑器 v2 的树视图面板中确认您已连接到目标数据库。使用上下文菜单(右键单击)创建与将要加载数据的集群或工作组的连接。

  3. 选择 LoadLoad data(加载数据)

  4. 对于 Data source(数据来源),选择 Load from local file(从本地文件中加载)。

  5. 选择浏览以查找包含数据的文件来加载文件。默认情况下,会显示扩展名为 .csv.avro.parquet.orc 的文件,但您可以选择其他文件类型。最大 文件大小为 100MB。

  6. 为要上载的文件选择 File format(文件格式)。支持的数据格式有 CSV、JSON、DELIMITER、FIXEDWIDH、SHAPEFILE、AVRO、PARQUET 和 ORC。根据指定的文件格式,您可以选择相应的 File options(文件选项)。如果数据已加密,您还可以选择 Data is encrypted(数据已加密),并输入用于加密数据的 KMS 密钥 Amazon Resource Name(ARN)。

    如果您选择 CSV 或 DELIMITER,则还可以选择分隔符字符,以及在指定的行编号实际上是列名而不是要加载的数据时是否忽略标题行

  7. (可选)Advanced settings(高级设置)支持各种 Data conversion parameters(数据转换参数)和 Load operations(加载操作)。根据文件的需要输入此信息。

    有关数据转换和数据加载参数的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的数据转换参数数据加载操作

  8. 选择下一步

  9. 选择加载现有表

  10. 确认或选择 Target table(目标表)的位置,包括在其中加载数据的 Cluster or workgroup(集群或工作组)、Database(数据库)、Schema(模式)和 Table(表)名称。

  11. (可选)您可以选择列名称以输入到 Column mapping(列映射)中,以按输入数据文件的顺序映射列。

  12. 选择 Load data(加载数据)开启数据加载。

    加载完成后,无论加载成功与否,都会显示一条消息。如果成功,您现在可以使用 SQL 从加载的表中选择数据。当出现错误时,请查询系统视图 STL_LOAD_ERRORS 以获取更多详细信息。有关 COPY 命令错误的信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 STL_LOAD_ERRORS

    用于加载数据的 COPY 命令模板出现在您的 Query history(查询历史记录)中。此 COPY 命令模板显示了一些使用的参数,但它不能直接在编辑器选项卡中运行。有关查询历史记录的更多信息,请参阅查看查询和选项卡历史记录

将数据加载到新表时,查询编辑器 v2 首先在数据库中创建表,然后作为同一个工作流中的单独操作加载数据。

将本地文件数据加载到新表

查询编辑器 v2 管理员必须在 Account settings(账户设置)窗口中指定常用 Amazon S3 桶。本地文件会自动上载到您的账户使用的一个公共 Amazon S3 桶,然后查询编辑器 v2 使用 COPY 命令加载数据。在查询编辑器 v2 加载本地文件窗口中生成和运行的 COPY 命令支持从 Amazon S3 复制的 COPY 命令语法可用的许多参数。有关 COPY 命令及其用于从 Amazon S3 加载数据的选项的信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 Amazon S3 中的 COPY 命令

  1. 在查询编辑器 v2 的树视图面板中确认您已连接到目标数据库。使用上下文菜单(右键单击)创建与将要加载数据的集群或工作组的连接。

  2. 选择 LoadLoad data(加载数据)

  3. 对于 Data source(数据来源),选择 Load from local file(从本地文件中加载)。

  4. 选择浏览以查找包含数据的文件来加载文件。默认情况下,会显示扩展名为 .csv.avro.parquet.orc 的文件,但您可以选择其他文件类型。最大 文件大小为 100MB。

  5. 为要上载的文件选择 File format(文件格式)。支持的数据格式有 CSV、JSON、DELIMITER、FIXEDWIDH、SHAPEFILE、AVRO、PARQUET 和 ORC。根据指定的文件格式,您可以选择相应的 File options(文件选项)。如果数据已加密,您还可以选择 Data is encrypted(数据已加密),并输入用于加密数据的 KMS 密钥 Amazon Resource Name(ARN)。

    如果您选择 CSV 或 DELIMITER,则还可以选择分隔符字符,以及在指定的行编号实际上是列名而不是要加载的数据时是否忽略标题行

  6. (可选)Advanced settings(高级设置)支持各种 Data conversion parameters(数据转换参数)和 Load operations(加载操作)。根据文件的需要输入此信息。

    有关数据转换和数据加载参数的更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的数据转换参数数据加载操作

  7. 选择下一步

  8. 选择加载新表

  9. 确认或选择目标表的位置,包括在其中加载数据的集群或工作组数据库架构。输入要创建的的名称。

  10. 选择创建表即可使用所示的定义创建表。

    此时将显示表定义的复查摘要。系统会在数据库中创建表。以后要删除该表时,请运行 DROP TABLE SQL 命令。有关更多信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 DROP TABLE

  11. 选择 Load data(加载数据)开启数据加载。

    加载完成后,将会显示一条消息,指示加载是否成功。如果成功,您现在可以使用 SQL 从加载的表中选择数据。当出现错误时,请查询系统视图 STL_LOAD_ERRORS 以获取更多详细信息。有关 COPY 命令错误的信息,请参阅《Amazon Redshift 数据库开发人员指南》中的 STL_LOAD_ERRORS

    用于加载数据的 COPY 命令模板出现在您的 Query history(查询历史记录)中。此 COPY 命令模板显示了一些使用的参数,但它不能直接在编辑器选项卡中运行。有关查询历史记录的更多信息,请参阅查看查询和选项卡历史记录