Google 数据目录搜索中如何使用 includeProjectIds?

How is includeProjectIds used in Google data catalog search?

searching using Google's data catalog时,需要一个scope参数,其字段之一是includeProjectIds。根据文档,这个参数代表:

The list of project IDs to search within.

但是,返回的结果不限于该projectid。我是否错误地理解了参数?我可以在查询中使用 projectid=myproject 限制结果,但我试图理解 includeProjectIds 字段。

示例请求正文:

{
  "scope": {
    "includeProjectIds": [
      "MY-PROJECT"
    ]
  },
  "query": "type=dataset"
}

示例响应:

{
  "results": [
    # I expect this result:
    {
      "searchResultType": "ENTRY",
      "searchResultSubtype": "entry.dataset",
      "relativeResourceName": "projects/MY-PROJECT/locations/us/entryGroups/@bigquery/entries/....",
      "linkedResource": "//bigquery.googleapis.com/projects/MY-PROJECT/datasets/dataset_name",
      "modifyTime": "2000-01-01T00:00:00Z",
      "integratedSystem": "BIGQUERY",
      "description": "My description"
    },
    # But I don't expect this:
    {
      "searchResultType": "ENTRY",
      "searchResultSubtype": "entry.dataset",
      "relativeResourceName": "projects/NOT-MY-PROJECT/locations/us/entryGroups/@bigquery/entries/....",
      "linkedResource": "//bigquery.googleapis.com/projects/NOT-MY-PROJECT/datasets/dataset_name",
      "modifyTime": "2000-01-01T00:00:00Z",
      "integratedSystem": "BIGQUERY",
      "description": "My description"
    },
    ...
  ]
}

您可以尝试使用 curl 方法,因为它使用您的服务帐户的服务帐户密钥。对于服务帐户和密钥创建,您可以参考此 documentation。我试过了,输出是正确的,结果中只显示了我的项目数据集。

命令:

-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://datacatalog.googleapis.com/v1/catalog:search"

里面 request.json:

{
  "scope": {
    "includeProjectIds": [
      "my-project"
    ]
  },
  "query": "type=dataset"
}

输出:

a@cloudshell:~ (a)$ curl -X POST \
-H "Authorization: Bearer "$(gcloud auth application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://datacatalog.googleapis.com/v1/catalog:search"
{
  "results": [
    {
      "searchResultType": "ENTRY",
      "searchResultSubtype": "entry.dataset",
      "relativeResourceName": "projects/my-project/locations/us/entryGroups/@bigquery/entries/cHJvamVjdHMvdGlwaC1hbmplbGFiL2RhdGFzZXRzLzIwMjIwMTEx",
      "linkedResource": "//bigquery.googleapis.com/projects/my-project/datasets/2",
      "modifyTime": "2022-01-11T01:15:11Z",
      "integratedSystem": "BIGQUERY"
    },
    {
      "searchResultType": "ENTRY",
      "searchResultSubtype": "entry.dataset",
      "relativeResourceName": "projects/my-project/locations/us/entryGroups/@bigquery/entries/cHJvamVjdHMvdGlwaC1hbmplbGFiL2RhdGFzZXRzL0dDUFF1aWNrU3RhcnQ",
      "linkedResource": "//bigquery.googleapis.com/projects/my-project/datasets/G",
      "modifyTime": "2022-01-07T07:54:58Z",
      "integratedSystem": "BIGQUERY"
    },
    {
      "searchResultType": "ENTRY",
      "searchResultSubtype": "entry.dataset",
      "relativeResourceName": "projects/my-project/locations/us-east1/entryGroups/@bigquery/entries/cHJvamVjdHMvdGlwaC1hbmplbGFiL2RhdGFzZXRzLzIwMjExMjI4",
      "linkedResource": "//bigquery.googleapis.com/projects/my-project/datasets/20",
      "modifyTime": "2021-12-28T02:00:47Z",
      "integratedSystem": "BIGQUERY"
    },
    {
      "searchResultType": "ENTRY",
      "searchResultSubtype": "entry.dataset",
      "relativeResourceName": "projects/my-project/locations/us-central1/entryGroups/@bigquery/entries/cHJvamVjdHMvdGlwaC1hbmplbGFiL2RhdGFzZXRzL2JxbWxfdHV0b3JpYWw",
      "linkedResource": "//bigquery.googleapis.com/projects/my-project/datasets/b",
      "modifyTime": "2021-12-14T14:58:09Z",
      "integratedSystem": "BIGQUERY"
    },
    {
      "searchResultType": "ENTRY",
      "searchResultSubtype": "entry.dataset",
      "relativeResourceName": "projects/my-project/locations/us-central1/entryGroups/@bigquery/entries/cHJvamVjdHMvdGlwaC1hbmplbGFiL2RhdGFzZXRzL2JhYnluYW1lcw",
      "linkedResource": "//bigquery.googleapis.com/projects/my-project/datasets/ba",
      "modifyTime": "2021-12-14T14:01:46Z",
      "integratedSystem": "BIGQUERY"
    }
  ]
}