从 Amazon DynamoDB 执行 COPY 操作
要从现有 DynamoDB 表加载数据,请使用 FROM 子句指定 DynamoDB 表名称。
重要
如果 DynamoDB 表未驻留在您的 Amazon Redshift 集群所在的区域内,则必须使用 REGION 参数指定该数据所在的区域。
语法
FROM 'dynamodb://table-name' authorization READRATIO ratio | REGION [AS] 'aws_region' | optional-parameters
示例
以下示例从 DynamoDB 表加载数据。
copy favoritemovies from 'dynamodb://ProductCatalog' iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole' readratio 50;
参数
- FROM
-
要加载的数据的源。
- 'dynamodb://table-name'
-
包含数据的 DynamoDB 表的名称,例如
'dynamodb://ProductCatalog'
。有关 DynamoDB 属性如何映射到 Amazon Redshift 列的详细信息,请参阅从 Amazon DynamoDB 表中加载数据。DynamoDB 表名称对于由 AWS 访问凭证标识的 AWS 账户是唯一的。
- 授权
-
COPY 命令需要授权才能访问其他 AWS 资源(包括 Amazon S3 、Amazon EMR、DynamoDB 和 Amazon EC2)中的数据。您可通过引用附加到您的集群的 AWS Identity and Access Management (IAM) 角色(基于角色的访问控制)或者通过为用户提供访问凭证(基于密钥的访问控制)来提供授权。为了提高安全性和灵活性,我们建议使用基于 IAM 角色的访问控制。有关更多信息,请参阅 授权参数。
- READRATIO [AS] ratio
-
DynamoDB 表的预配置吞吐量中要用于数据加载的部分所占的百分比。从 DynamoDB 执行 COPY 的操作需要 READRATIO。它不能在从 Amazon S3 执行 COPY 的操作中使用。我们强烈建议您将此比率设置为一个低于平均的未使用预配置吞吐量的值。有效值为整数 1–200。
重要
将 READRATIO 设置为 100 或更大值将使 Amazon Redshift 消耗 DynamoDB 表的全部预配置吞吐量,从而严重降低 COPY 会话期间对同一个表进行的并行读取操作的性能。写入流量不受影响。允许使用大于 100 的值来应对 Amazon Redshift 无法满足表的预配置吞吐量的罕见情况。如果将 DynamoDB 中的数据持续加载到 Amazon Redshift,请考虑按时间序列组织 DynamoDB 表以将实时流量与 COPY 操作分离。
可选参数
对于从 Amazon DynamoDB 执行 COPY 的操作,还可以指定以下参数:
不支持的参数
对于从 DynamoDB 执行 COPY 的操作,不能使用以下参数:
-
所有数据格式参数
-
ESCAPE
-
FILLRECORD
-
IGNOREBLANKLINES
-
IGNOREHEADER
-
NULL
-
REMOVEQUOTES
-
ACCEPTINVCHARS
-
MANIFEST
-
ENCRYPTED