本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
以下是用于应用程序集成 API 操作的工作流:
-
某用户使用集成的第三方查询引擎提交数据查询或请求。查询引擎担任一个代表该用户或一组用户的 IAM 角色,并检索可信凭证,以便在调用应用程序集成 API 操作时使用。
-
查询引擎会调用
GetUnfilteredTableMetadata
,如果它是分区表,则查询引擎会调用GetUnfilteredPartitionsMetadata
以从数据目录中检索元数据和策略信息。 -
Lake Formation 为请求执行授权。如果用户对该表没有适当的权限,则会AccessDeniedException被抛出。
-
作为请求的一部分,查询引擎会发送它支持的筛选。可以在数组中发送以下两个标志:COLUMN_PERMISSIONS 和 CELL_FILTER_PERMISSION。如果查询引擎不支持这些功能中的任何一个,并且表上存在该功能的策略,则会抛出,查询失败。PermissionTypeMismatchException这是为了避免数据泄露。
-
返回的响应包含以下内容:
-
表的整个架构,以便查询引擎可以使用它来解析存储中的数据。
-
用户有权访问的授权列的列表。如果授权列的列表为空,则表示用户拥有
DESCRIBE
权限,但没有SELECT
权限,查询将失败。 -
一个标志
IsRegisteredWithLakeFormation
,用于指示 Lake Formation 是否可以针对此资源数据售卖凭证。如果返回 false,则应使用客户的凭证来访问 Amazon S3。 -
应该应用于各行数据的
CellFilters
的列表。此列表包含列和用于评估每一行的表达式。只有在将 CCELL_FILTER_PERMISSION 作为请求的一部分发送,并且有适用于调用用户的表数据筛选条件时,才会填充此字段。
-
-
检索到元数据后,查询引擎会调用
GetTemporaryGlueTableCredentials
或GetTemporaryGluePartitionCredentials
获取 AWS 证书,以便从 Amazon S3 位置检索数据。 -
查询引擎从 Amazon S3 读取相关对象,根据在第 2 步中收到的策略筛选数据,并将结果返回给用户。
的应用程序集成 API 操作 Lake Formation 包含用于配置与第三方查询引擎集成的其他内容。您可以在凭证售卖 API 操作一节查看操作详细信息。