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

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

交易元数据操作

受管表的元数据包括以下内容:

  • 表架构

  • Amazon S3 表对象清单

  • 版本历史记录

  • 权限

在更改受管控表的清单时,应用程序还可以事务性地更改数据目录中的架构。通过提供元数据交易,您可以对数据进行时空旅行查询,并可以查询以前存在的数据。

例如,Amazon Glue表 API 操作采用可选的交易 ID,以允许应用程序创建、更新或删除受管控表的元数据。这是StartTransaction API 返回的交易 ID。

提交事务后,将创建表元数据的快照并与事务 ID 相关联。API 操作可以通过传递事务 ID 来引用特定的快照。例如,您UpdateTable使用事务 ID 进行调用,abc然后进行另一次更新xyz以更改架构。然后,您可以GetTable使用事务 ID 进行调用abc,事务ID接收的架构与提交事务 IDabc 时的架构相同。

交易元数据的另一个用例是使用GetTableGetTables操作执行时空旅行查询,以读取指定时间表的元数据。

支持交易元数据操作的 API 操作

以下Amazon Glue API 操作支持事务性元数据操作。对于每个描述,都假设事务 ID(由StartTransaction或返回start_transaction)传递给 API 调用,并且在某个时候会提交。

API 操作 描述
CreateTable

当您提交事务时(当您使用事务 ID 调用CommitTransaction API 时),在数据目录中创建表。

UpdateTable 更新表的元数据。提交事务后,创建表元数据的新快照。快照按事务 ID 编入索引。
DeleteTable, BatchDeleteTable 在提交事务时删除表。所有快照都被删除。
GetTable

(可选)TransactionId使用或QueryAsOfTime参数。

如果您传递了TransactionId,则该操作将检索匹配的快照并返回截至该事务提交时的表元数据。

如果您传递QueryAsOfTime参数,则返回截至指定时间的表元数据。

GetTables

(可选)TransactionId使用或QueryAsOfTime参数。

如果两个参数均未传递,则该操作将返回受管控表和非受管控表。如果您传递一个TransactionId或一个QueryAsOfTime参数,则仅返回受管控的表。

如果您传递了 aTransactionId,则返回截至提交事务时表的元数据。

如果您传递QueryAsOfTime参数,则该操作将返回截至指定时间的表的元数据。

对交易元数据操作的限制

以下是事务元数据操作的当前限制:

  • 在数据目录中添加或修改数据库时,Lake Formation 不支持事务操作,例如CreateDatabaseUpdateDatabase、、GetDatabase、等。

  • Lake Formation 不支持对修改数据目录中的数据库进行时空旅行读取。

  • Lake Formation 在添加或修改表分区时不支持事务操作CreatePartitionBatchUpdatePartition,例如等。分区键可以通过查看表对象来识别。