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

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

事务性元数据操作

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

  • 表架构

  • Amazon S3 表对象清单

  • 版本历史记录

  • 权限

在更改受管理表的清单时,应用程序还可以以事务方式更改 Data Catalog 中的架构。由于提供了元数据交易,您可以对数据执行时间旅行查询,也可以像以前一样查询数据。

例如,Amazon Glue表 API 操作使用可选的事务 ID 来允许应用程序创建、更新或删除受管理表的元数据。这是由StartTransactionAPI。

提交交易时,快照是由表元数据创建的,并与交易 ID 关联。API 操作可以通过传入事务 ID 来引用特定快照。例如,你打电话给UpdateTable使用事务 IDabc然后是另一次更新xyz来更改模式。然后你可以打电话给GetTable使用事务 IDabc,它像交易 ID 时一样接收模式abc已承诺。

事务性元数据的另一个用例是执行时间旅行查询,以便在指定时间内使用GetTable要么GetTables操作。

支持事务元数据操作的 API 操作

以下Amazon GlueAPI 操作支持事务性元数据操作。对于每个描述,假设交易 ID(返回StartTransaction要么start_transaction) 被传递给 API 调用,而且在某个时候,有一个提交。

API 操作 描述
CreateTable

当您提交事务时(当您调用CommitTransaction带交易 ID 的 API)。

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

或者需要一个TransactionId或者QueryAsOfTime参数。

如果你通过TransactionId,该操作将检索该匹配的快照并返回提交事务时的表元数据。

如果你通过QueryAsOfTime参数,返回截至指定时间的表元数据。

GetTables

或者需要一个TransactionId或者QueryAsOfTime参数。

如果两个参数都不传递,则操作将同时返回受管理表和未受管理的表。如果你通过了TransactionId或者QueryAsOfTime参数中,只返回受管理的表。

如果你通过TransactionId,返回提交事务时表的元数据。

如果你通过QueryAsOfTime参数中,该操作将返回截至指定时间表的元数据。

事务性元数据操作的限制

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

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

  • Lake Formation 不支持用于修改数据目录中数据库的时间旅行读取。

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