事务数据操作 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

事务数据操作

Lake Formation ACID 事务提供快照隔离,通过添加和删除 Amazon S3 对象,使多个任务能够同时可靠地更新受管控的表,同时保持针对数据湖的每次查询的读取一致性。

ACID 事务提供的读取一致性的一个示例是用户在中启动查询时Amazon Athena它会扫描表的所有分区以汇总销售数据。在扫描进行期间和扫描完成之前,ETL 任务会向表中添加一个分区。如果用户在事务中执行查询,他们将在查询开始时看到反映表状态的查询结果。结果将不包括作业创建的新分区中的数据。

参与交易访问和修改受管表的 Lake Formation 操作Amazon Glue Data Catalog. 一个事务可能涉及多个受管控的表。

事务还为涉及元数据的更改提供 ACID 属性,元数据定义了构成受管表的 Amazon S3 对象(表现)以及表架构。有关受管控表的更多信息,请参阅Lake Formation 中的受管桌子.

集成Amazon当涉及受管理的表时,诸如 Athena 之类的服务会自动在事务中执行查询。要在您的账户中使用交易Amazon GlueETL 任务,作业脚本在对数据湖执行任何读取或写入操作之前开始事务,引用事务内任何操作的交易 ID,并在完成时提交事务。如果读取或写入操作失败,作业脚本可以重试该操作,也可以选择取消事务。您还可以通过指定要读取的过去时间点来在查询中使用事务。

如果 Lake Formation 检测到某些故障(例如写入冲突),Lake Formation 可能会自动取消交易。取消事务会导致所有操作被回退,如中所述在事务中读取和写入数据湖.

为了让 Lake Formation 能够区分长时间运行的事务(例如,运行数小时的 Spark ETL 作业)和由于崩溃而放弃的事务,长时间运行的写入事务应调用 Heartbeat API 操作ExtendTransaction定期地。对于只读交易,这不是必需的。Lake Formation 会自动取消闲置时间过长的交易。