卸载半结构化数据 - Amazon Redshift
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;