非结构化数据的数据洞见功能使用 Vertex AI 将 Cloud Storage 中的原始非结构化文件转换为 BigQuery 中可查询的结构化资产。非结构化数据的数据洞见功能已针对 PDF 文件进行了优化。
本文档介绍了如何设置必要的权限、发现非结构化数据、查看生成的分析洞见,以及将数据提取到 BigQuery 中。
准备工作
在使用非结构化数据的数据洞见之前,请确保您拥有所需的权限并已启用相关 API。
启用 API
在项目中启用以下 API:
dataplex.googleapis.combigquery.googleapis.comaiplatform.googleapis.com(Vertex AI)
启用 API 所需的角色
如需启用 API,您需要拥有 Service Usage Admin IAM 角色 (roles/serviceusage.serviceUsageAdmin),该角色包含 serviceusage.services.enable 权限。了解如何授予角色。
所需的角色和权限
如需为非结构化数据配置和运行数据分析,请确保您以及 Knowledge Catalog 和 BigQuery 使用的服务账号拥有所需的 Identity and Access Management (IAM) 角色和权限。
您需要进行发现扫描,才能自动在 Cloud Storage 中找到非结构化文件并将其编入对象表中,以便进行分析。如需了解在 Cloud Storage 存储分区上运行发现扫描作业所需的一般权限,请参阅发现和编目 Cloud Storage 数据。
所需身份和角色摘要
| 身份类型 | 典型的主账号格式 | 所需 IAM 角色 | 核心用途 |
|---|---|---|---|
| 最终用户 | 您的 Google Cloud 用户账号 |
|
您可以使用这些角色来启用 API、配置和查看发现扫描,以及触发最终的数据提取。 |
| Knowledge Catalog Universal Catalog 发现代理 | service-<var>PROJECT_NUMBER</var>@gcp-sa-dataplex.iam.gserviceaccount.com |
|
此 Google 代管式服务代理会查找 Cloud Storage 中的非结构化文件,对其进行编目,并调用 Vertex AI 来生成推断出的架构和元数据。 |
| BigQuery 连接服务账号 | service-<var>PROJECT_NUMBER</var>@gcp-sa-bigqueryconnection.iam.gserviceaccount.com |
|
它将 BigQuery 连接到外部存储空间,使 BigQuery 能够读取原始文件、创建对象表并运行 AI 推理,而不会泄露您的个人用户凭据。 |
| 流水线执行服务账号(可选) | 用户代管式服务账号 |
|
如果您选择使用自动化流水线提取数据,则此身份会运行后台作业,以将 AI 生成的实体具体化到 BigQuery 表中。 |
| 默认的 Dataform 服务账号(可选) | service-<var>PROJECT_NUMBER</var>@gcp-sa-dataform.iam.gserviceaccount.com |
|
使用流水线提取方法时,Dataform 需要获得模拟流水线执行服务账号的权限才能编排工作流。 |
最终用户角色和权限
如需确保您的用户账号具有创建发现扫描、查看分析洞见和提取数据所需的权限,请让您的管理员向您的用户账号授予项目的以下 IAM 角色:
-
创建和管理发现扫描:
Dataplex DataScan Administrator (
roles/dataplex.dataScanAdmin) -
查看探索性扫描和数据洞见:
Dataplex DataScan DataViewer (
roles/dataplex.dataScanDataViewer) -
使用 SQL 或流水线提取数据:
-
BigQuery Data Editor (
roles/bigquery.dataEditor) -
BigQuery Job User (
roles/bigquery.jobUser)
-
BigQuery Data Editor (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含创建发现扫描、查看数据分析和提取数据所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建发现扫描、查看分析洞见和提取数据,需要具备以下权限:
-
发现扫描:
-
dataplex.datascans.create -
dataplex.datascans.get -
dataplex.datascans.getData -
dataplex.datascans.list
-
-
数据提取:
-
bigquery.tables.create -
bigquery.tables.update -
bigquery.tables.getData -
bigquery.jobs.create
-
您的管理员也可以使用自定义角色或其他预定义角色为用户账号授予这些权限。
Knowledge Catalog 发现服务代理角色和权限
Knowledge Catalog 发现服务代理是一种服务代理,需要访问权限才能使用 Vertex AI 运行发现扫描和执行推理。
为确保 Knowledge Catalog 发现服务代理(通常为 service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com)拥有运行发现扫描和使用 Vertex AI 执行推理所需的权限,请让您的管理员为项目中的 Knowledge Catalog 发现服务代理(通常为 service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com)授予以下 IAM 角色:
-
Vertex AI User (
roles/aiplatform.user) -
Discovery 服务代理 (
roles/dataplex.discoveryServiceAgent)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含运行发现扫描和使用 Vertex AI 执行推理所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需运行发现扫描并使用 Vertex AI 执行推理,需要具备以下权限:
-
aiplatform.endpoints.predict -
bigquery.datasets.create -
bigquery.datasets.get -
storage.buckets.get -
storage.objects.get -
storage.objects.list
您的管理员也可以使用自定义角色或其他预定义角色为 Knowledge Catalog 发现服务代理(通常为 service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com)授予这些权限。
BigQuery 连接服务账号角色和权限
通过 BigQuery Cloud 资源连接,Knowledge Catalog 可以安全地访问和发现存储在 BigQuery 外部(例如 Cloud Storage 中)的非结构化数据。创建连接时,BigQuery 会自动代表您创建一个专用服务账号。此服务账号用作连接到外部数据源的身份。
默认情况下,此服务账号不具备任何权限。您必须明确向此服务账号授予包含数据的 Cloud Storage 存储分区所需的 IAM 角色。您可以使用现有的 BigQuery 连接,也可以在与源 Cloud Storage 存储桶相同的位置创建新的 BigQuery 连接。
如需确保 BigQuery 连接服务账号(通常为 service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com)拥有创建对象表和运行推理所需的权限,请让您的管理员为 BigQuery 连接服务账号(通常为 service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com)授予以下 IAM 角色:
-
针对包含非结构化数据的存储桶的 Storage Object Viewer (
roles/storage.objectViewer) -
Vertex AI User (
roles/aiplatform.user) on the project
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含创建对象表和运行推理所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需创建对象表和运行推理,您需要具备以下权限:
-
针对包含非结构化数据的存储桶的
storage.buckets.get -
针对包含非结构化数据的存储桶的
storage.objects.get -
针对项目的
aiplatform.endpoints.predict权限
您的管理员也可以使用自定义角色或其他预定义角色为 BigQuery 连接服务账号(通常为 service-PROJECT_NUMBER@gcp-sa-bigqueryconnection.iam.gserviceaccount.com)授予这些权限。
流水线执行服务账号角色和权限(可选)
如果您选择使用自动化流水线提取推断出的数据,则必须创建或提供专用服务账号来执行流水线。此服务账号充当身份,用于安全地验证和运行 BigQuery 中的后台数据提取和分析任务。此外,您还必须向默认 Dataform 服务账号授予模拟此执行服务账号的权限。
为确保流水线执行服务账号具有使用流水线提取推理出的实体和关系所需的权限,请让您的管理员为项目中的流水线执行服务账号授予以下 IAM 角色:
-
BigQuery Data Editor (
roles/bigquery.dataEditor) -
BigQuery Job User (
roles/bigquery.jobUser) -
BigQuery User (
roles/bigquery.user) -
Vertex AI User (
roles/aiplatform.user)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
这些预定义角色包含使用流水线提取推理出的实体和关系所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
您需要具备以下权限才能使用流水线提取推理出的实体和关系:
-
bigquery.tables.create -
bigquery.tables.update -
bigquery.tables.get -
bigquery.tables.getData -
bigquery.jobs.create -
aiplatform.endpoints.predict
您的管理员也可以使用自定义角色或其他预定义角色为流水线执行服务账号授予这些权限。
为了确保默认 Dataform 服务账号 (service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com) 具有模拟流水线执行服务账号的必要权限,请让您的管理员向流水线执行服务账号上的默认 Dataform 服务账号 (service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com) 授予 Service Account Token Creator (roles/iam.serviceAccountTokenCreator) IAM 角色。
此预定义角色包含 iam.serviceAccounts.getAccessToken 权限,模拟流水线执行服务账号需要此权限。
您的管理员也可以使用自定义角色或其他预定义角色为默认 Dataform 服务账号 (service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com) 授予此权限。
准备非结构化数据
在运行发现扫描之前,您必须将非结构化数据上传到 Cloud Storage 存储桶。非结构化数据的数据洞见功能经过优化,可用于分析 PDF 文档。
如需详细了解如何在 Cloud Storage 中存储和管理文件,请参阅上传对象。
为非结构化数据创建发现扫描
如需从非结构化数据中提取语义分析洞见,您必须先创建发现扫描。此扫描会自动在 Cloud Storage 中查找非结构化文件,并将其编入对象表中。在此过程中启用“数据洞见”选项后,Knowledge Catalog 会使用 Vertex AI 分析文件并生成推断的元数据、架构和关系。
在 Google Cloud 控制台中,前往元数据整理页面。
在 Cloud Storage 发现标签页中,点击创建。
为扫描任务输入一个名称。
如需选择包含非结构化数据的 Cloud Storage 存储桶,请点击浏览。
对于非结构化数据选项,选中启用语义推理复选框。
在连接 ID 字段中,指定用于访问文件的 BigQuery 连接。
发现扫描会通过创建对象表,自动将非结构化数据编入 BigQuery 目录。由于对象表可安全地将数据访问凭据与执行查询的用户分离,因此需要连接才能通过 Cloud Storage 进行身份验证并读取文件。
点击立即运行(对于按需扫描)或创建(对于定期扫描)。
如需详细了解所有可用配置,请参阅发现和编目 Cloud Storage 数据。
Knowledge Catalog 会创建一个对象表,并使用 AI 生成的元数据丰富目录条目。对于标准数据集,此过程通常需要几分钟的时间。
找到对象表
发现扫描完成后,Knowledge Catalog 会创建一个或多个对象表,并使用 AI 生成的元数据填充 Knowledge Catalog 中的相应条目。如果因发现扫描而创建了多个条目,则每个条目都有自己的“数据洞见”标签页。您可以查看自动生成的表格说明、推断出的架构和关系图。
在 Google Cloud 控制台中,前往 BigQuery 页面。
在导航菜单中,依次点击治理 > 元数据整理。
在 Cloud Storage 发现窗格中,点击您针对非结构化数据运行的发现扫描。
- 扫描详情部分显示有关发现扫描的详细信息。
- 扫描状态部分显示最新扫描作业的发现结果。
点击已发布的数据集的链接。
在 BigQuery 数据集显示的表列表中,选择为发现数据扫描生成的对象表。
复制表格 ID。您将在下一部分中用到该值。
查看推断的实体图
您可以在 Knowledge Catalog 中查看发现扫描的对象表。
在 Google Cloud 控制台中,前往 Knowledge Catalog 搜索页面。
粘贴并搜索您在上一部分中选择的 ID 所对应的对象表。
在搜索结果中,点击相应表格以打开其条目页面。
在详细信息标签页的方面下,验证是否存在图谱个人资料方面。此方面包含实体和关系的推断出的架构。
点击数据分析标签页。在数据洞见标签页上,您可以查看以下信息:
语义提取。横幅表示系统检测到可提取的实体和关系。它包含一个提取按钮,用于使用 SQL 或流水线部署来实现数据具体化。
说明。AI 生成的直观易懂的摘要可说明非结构化数据的内容。它描述了发现的主要节点(实体),以及它们如何通过边(关系)相互关联。
流水线。与此资源关联的之前部署的数据提取流水线的列表。您可以查看流水线的显示名称、区域、创建时间和创建者。
推断出的实体和关系。一个直观的交互式图表,用于显示非结构化数据的发现语义结构。 该图包含表示不同实体的节点(例如“食谱”和“食材”)以及表示它们之间连接的边(例如“具有过敏原状态”)。您可以使用图例过滤和探索特定节点和边。
实体。发现的主要实体的详细列表。您可以展开每个实体,查看其 AI 生成的说明和推断出的架构,其中包括字段名称、数据类型和字段说明。
关系。实体之间发现的连接的详细列表。您可以展开每种关系,查看其说明以及定义实体之间如何相互映射的架构。
更新了推断出的数据分析
推理出的分析洞见存储在 Knowledge Catalog Catalog 中,作为附加到对象表的切面。您可以使用 Google Cloud 控制台或 entry.patch API 手动更新这些数据洞见。
控制台
如需在 Google Cloud 控制台中更新推断出的数据洞见,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Knowledge Catalog 搜索页面。
粘贴并搜索对象表 ID。
在搜索结果中,点击相应表格以打开其条目页面。
点击数据分析标签页。
点击推断出的实体和关系旁边的修改。
在 JSON 编辑器中,修改
graph-profile方面。点击保存。
REST
如需使用 REST API 更新推断出的数据洞见,请按以下步骤操作:
创建一个名为
payload.json的文件,并添加要更新的方面的 JSON 内容。例如:{ "aspects": { "dataplex-types.global.graph-profile": { "data": { // Your updated inferred insights data } } } }在终端中运行以下命令:
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d @payload.json \ "https://dataplex.googleapis.com/v1/projects/<var>PROJECT_ID</var>/locations/<var>LOCATION</var>/entryGroups/<var>ENTRY_GROUP_ID</var>/entries/<var>ENTRY_ID</var>?updateMask=aspects"替换以下内容:
PROJECT_ID:您的项目的 ID,例如example-projectLOCATION:条目的位置,例如us-central1ENTRY_GROUP_ID:条目组的 ID,例如example-entry-groupENTRY_ID:条目的 ID,例如example-entry
如需了解详情并查看其他语言的代码示例,请参阅更新条目的方面。
将数据提取到 BigQuery
您可以使用 SQL 或自动化流水线,将推理出的实体和关系具体化为 BigQuery 中的结构化表或视图。
在数据分析标签页中,点击提取。
根据您的分析需求和非结构化数据的规模,选择以下方法之一:
通过 SQL 提取:如果需要快速进行临时分析、处理中小型数据集,或者希望使用 BigQuery 远程模型实现零基础架构方法,请选择此选项。
如需使用 SQL 提取数据,请按以下步骤操作:
- 选择 Extract by SQL。
- 在使用 SQL 提取窗格中,选择目标数据集。数据集必须与来源位于同一位置。
- 点击提取。
- 在 BigQuery 编辑器中,系统会打开一个预填充的查询。 运行查询以创建标准表和视图。
如需详细了解如何使用 SQL 提取文档分析数据,请参阅使用
ML.PROCESS_DOCUMENT函数处理文档。按流水线提取:如果需要大规模数据处理,或者需要强大的重试逻辑、错误处理和自动化编排来处理大量文档,请选择此选项。
如需使用流水线提取数据,请按以下步骤操作:
- 选择按流水线提取。
- 在使用流水线提取窗格中,输入流水线的显示名称。
- 选择区域。
- 选择目标数据集。数据集必须与来源位于同一位置。
- 点击提取。这会创建一个用于编排数据具体化的 BigQuery 流水线。
- 运行流水线中的所有任务,以生成结构化节点和边视图。
如需详细了解如何运行数据工作流,请参阅 Dataform 简介。
将语义数据洞见提取并具体化到 BigQuery 中后,您可以执行以下任务:
查询结构化数据。针对新创建的表运行标准 SQL 查询,以分析提取的实体和关系。
与现有数据联接。将从非结构化文件中提取的定性分析洞见与现有的结构化 BigQuery 数据集相结合(例如,将已解析的账单数据与会计表联接)。
探索数据洞见。使用 BigQuery Studio 中的数据分析洞见功能,为新的结构化资产自动生成自然语言问题和 SQL 查询。
使用 Gemini 分析数据。使用 BigQuery 中的 Gemini 执行对话式分析、总结趋势,或根据提取的数据在数据洞察中创建信息中心。