在交易中读取数据湖并向数据湖写入 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在交易中读取数据湖并向数据湖写入

Amazon Lake Formation读取和写入由 Amazon S3 对象组成的受管理的表以及在数据目录中创建和更新表元数据时,支持 ACID(原子、隔离和持久)事务。事务保持受管理表清单的完整性(交易数据操作) 和其他表元数据,例如模式 (事务元数据操作)。以下是针对受管辖表进行事务的典型使用案例:

  • ETL 转入新表格— 在此用例中,您可能会有Amazon Glue提取、转换和加载 (ETL) 作业,用于启动事务、从数据源读取、写入数据湖中注册的 Amazon S3 位置的数据汇,以及在数据目录中为数据汇创建受管理的表。如果 ETL 脚本在某个时候检测到故障,该脚本可以取消交易,结果会发生以下情况:

    • 受管理的表将从目录中删除。

    • 如果脚本调用 Lake FormationDeleteObjectsOnCancel在将每个新对象写入 Amazon S3 之前的 API 操作,然后 Lake Formation 还会删除交易中写入 Amazon S3 的所有对象。有关更多信息,请参阅 回滚 Amazon S3 写入

  • 表更新— 假设对于现有的受管理表,您的 ETL 任务启动交易,将新对象写入 Amazon S3 并使用UpdateTableObjectsAPI 操作。如果脚本检测到故障,它可以取消事务,因此会发生以下情况:

    • 表清单将恢复到事务开始之前的状态。

    • 如果脚本调用 Lake FormationDeleteObjectsOnCancelAPI 操作在每个新对象写入 Amazon S3 之前,Lake Formation 还会删除交易中写入 Amazon S3 的所有对象。

  • 架构更新— 对于 Amazon S3 中具有流式处理数据接收器的现有受管理表,如果流式 ETL 作业确定数据中还有其他表列,则可以更新事务中的表架构。如果发生故障,作业可以取消事务,在这种情况下,表架构将恢复到事务开始之前的状态。

  • 时间旅行查询— Lake Formation 维护多个版本(快照)随着数据湖中的数据发生变化而导致的元数据。即使模式发生了更改,也可以及时返回查询数据。

有关受管理表的更多信息,请参见Lake Formation 中受管理的表.