用于应用程序集成 API 操作的 Lake Formation 工作流 - Amazon Lake Formation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

用于应用程序集成 API 操作的 Lake Formation 工作流

以下是用于应用程序集成 API 操作的工作流:

  1. 某用户使用集成的第三方查询引擎提交数据查询或请求。查询引擎担任一个代表该用户或一组用户的 IAM 角色,并检索可信凭证,以便在调用应用程序集成 API 操作时使用。

  2. 查询引擎会调用 GetUnfilteredTableMetadata,如果它是分区表,则查询引擎会调用 GetUnfilteredPartitionsMetadata 以从数据目录中检索元数据和策略信息。

  3. Lake Formation 为请求执行授权。如果用户对该表没有适当的权限,则会AccessDeniedException被抛出。

  4. 作为请求的一部分,查询引擎会发送它支持的筛选。可以在数组中发送以下两个标志:COLUMN_PERMISSIONSCELL_FILTER_PERMISSION。如果查询引擎不支持这些功能中的任何一个,并且表上存在该功能的策略,则会抛出,查询失败。PermissionTypeMismatchException这是为了避免数据泄露。

  5. 返回的响应包含以下内容:

    • 表的整个架构,以便查询引擎可以使用它来解析存储中的数据。

    • 用户有权访问的授权列的列表。如果授权列的列表为空,则表示用户拥有 DESCRIBE 权限,但没有 SELECT 权限,查询将失败。

    • 一个标志 IsRegisteredWithLakeFormation,用于指示 Lake Formation 是否可以针对此资源数据售卖凭证。如果返回 false,则应使用客户的凭证来访问 Amazon S3。

    • 应该应用于各行数据的 CellFilters 的列表。此列表包含列和用于评估每一行的表达式。只有在将 CCELL_FILTER_PERMISSION 作为请求的一部分发送,并且有适用于调用用户的表数据筛选条件时,才会填充此字段。

  6. 检索到元数据后,查询引擎会调用 GetTemporaryGlueTableCredentialsGetTemporaryGluePartitionCredentials 以获取 Amazon 凭证,从而从 Amazon S3 位置检索数据。

  7. 查询引擎从 Amazon S3 读取相关对象,根据在第 2 步中收到的策略筛选数据,并将结果返回给用户。

Lake Formation 的应用程序集成 API 操作包含用于配置与第三方查询引擎的集成的其他内容。您可以在凭证售卖 API 操作一节查看操作详细信息。