我的目标是使用 Redshift 读取 AWS S3 上的增量表。我已阅读了Redshift Spectrum to Delta Lake Integration,并注意到它提到使用 Apache Spark 生成清单:
GENERATE symlink_format_manifest FOR TABLE delta.`<path-to-delta-table>`
或
DeltaTable deltaTable = DeltaTable.forPath(<path-to-delta-table>);
deltaTable.generate("symlink_format_manifest");
但是,似乎不支持为 Apache Flink 及其使用的相应 Delta Standalone Library 生成这些清单文件。这是将数据写入Delta Table的底层软件。
我怎样才能绕过这个限制?
AWS 似乎现在支持此功能:
随着今天的发布,Glue 爬网程序添加了对为本机 Delta Lake 表创建 AWS Glue 数据目录表的支持,并且不需要生成清单文件。这改善了客户体验,因为现在只要有新分区可用或表的元数据发生更改,您就不必重新生成清单文件。
截至今天(2024-07-22),Redshift 频谱不适用于原生 Delta 表。它仅适用于多个集成。
这意味着您可以直接在 Amazon Athena、AWS Glue for Apache Spark 和 Amazon EMR 中查询 Delta 事务日志。
我几个月前向 AWS 提交了一张票,AWS 方面提到他们还没有 Redshift 频谱 - 原生 Delta 表集成的路线图。