Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
卸载半结构化数据
使用 Amazon Redshift,您可以将半结构化数据从 Amazon Redshift 集群导出到 Amazon S3,格式多种多样,包括文本、Apache Parquet、Apache ORC 和 Avro。以下各节将指导您完成在 Amazon Redshift 中配置和执行半结构化数据卸载操作的过程。
- CSV or text formats
-
您可以将带有 SUPER 数据列的表以逗号分隔值 (CSV) 或文本格式卸载到 Amazon S3 中。Amazon Redshift 使用导航和非嵌套子句的组合,以 CSV 或文本格式将 SUPER 数据格式的分层数据卸载到 Amazon S3。随后,您可以根据已卸载的数据创建外部表,并使用 Redshift Spectrum 对其进行查询。有关使用 UNLOAD 和所需的 IAM 权限的信息,请参阅UNLOAD。
在运行下面的示例之前,请使用 将半结构化数据加载到 Amazon Redshift 中的进程填充 region_nations 表。有关以下示例中使用的表的信息,请参阅SUPER sample 数据集。
以下示例将数据卸载到 Amazon S3 中。
UNLOAD ('SELECT * FROM region_nations')
TO 's3://xxxxxx/'
IAM_ROLE 'arn:aws:iam::xxxxxxxxxxxx:role/Redshift-S3-Write'
DELIMITER AS '|'
GZIP
ALLOWOVERWRITE;
与用户定义的字符串表示 null 值的其他数据类型不同,Amazon Redshift 使用 JSON 格式导出 SUPER 数据列,并根据 JSON 格式将其表示为 null。因此,SUPER 数据列会忽略 UNLOAD 命令中使用的 NULL [AS] 选项。
- Parquet format
-
您可以将包含 SUPER 数据列的表以 Parquet 格式卸载到 Amazon S3。Amazon Redshift 将 Parquet 格式的超级列表示为 JSON 数据类型。这使得半结构化数据可以以 Parquet 格式表示。您可以使用 Redshift Spectrum 查询这些列,或使用 COPY 命令将它们提取回 Amazon Redshift。有关使用 UNLOAD 和所需的 IAM 权限的信息,请参阅UNLOAD。
以下示例以 Parquet 格式将数据卸载到 Amazon S3。
UNLOAD ('SELECT * FROM region_nations')
TO 's3://xxxxxx/'
IAM_ROLE 'arn:aws:iam::xxxxxxxxxxxx:role/Redshift-S3-Write'
FORMAT PARQUET;