使用 Amazon Redshift,您可以将半结构化数据从 Amazon Redshift 集群导出到 Amazon S3,格式多种多样,包括文本、Apache Parquet、Apache ORC 和 Avro。以下各节将指导您完成在 Amazon Redshift 中配置和执行半结构化数据卸载操作的过程。
您可以将带有 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] 选项。