BigQuery:表的上次修改日期不一致

问题描述 投票:0回答:1

我有一个基于 java 的定制云数据流作业,它更新目标项目中的 bigquery 表,我在一个月前的 2023 年 8 月 12 日停止了该作业。

但是我查看了云日志记录,我可以看到 8 月 12 日之后调用了 AppendRows 操作。


{
  "protoPayload": {
    "@type": "type.googleapis.com/google.cloud.audit.AuditLog",
    "status": {
      "message": "OK"
    },
    "authenticationInfo": {},
    "requestMetadata": {
      "requestAttributes": {},
      "destinationAttributes": {}
    },
    "serviceName": "bigquery.googleapis.com",
    "methodName": "google.cloud.bigquery.storage.v1.BigQueryWrite.AppendRows",
    "authorizationInfo": [
      {
        "resource": "projects/test-development/datasets/test_dataset/tables/test_table",
        "permission": "bigquery.tables.updateData",
        "granted": true,
        "resourceAttributes": {}
      }
    ],
    "resourceName": "projects/test-development/datasets/test_dataset/tables/test_table",
    "metadata": {
      "tableDataChange": {
        "streamName": "projects/test-development/datasets/test_dataset/tables/test_table/streams/Cic2NTA3YTM0My0wMDAwLTIzMjgtOGEyZS0wODllMDgyZmRhNzA6czY",
        "insertedRowsCount": "13",
        "reason": "WRITE_API"
      },
      "@type": "type.googleapis.com/google.cloud.audit.BigQueryAuditMetadata"
    }
  },
  "insertId": "ofg54hdtzg0",
  "resource": {
    "type": "bigquery_table",
    "labels": {
      "table_id": "test_table",
      "dataset_id": "test_dataset",
      "project_id": "test-development"
    }
  },
  "timestamp": "2023-08-26T20:40:17.174691Z",
  "severity": "INFO",
  "logName": "projects/test-development/logs/cloudaudit.googleapis.com%2Fdata_access",
  "operation": {
    "id": "7923749237482-projects/test-development/datasets/test_dataset/tables/test_table/streams/Cic2NTA3YTM0My0wMDAwLTIzMjgtOGEyZS0wODllMDgyZmRhNzA6czY",
    "producer": "bigquery.googleapis.com",
    "last": true
  },
  "receiveTimestamp": "2023-08-26T20:40:17.847787645Z"
}

但是,如果我去检查 BigQuery 控制台上的表格

Details
选项卡,它会将
Last modified
日期显示为
12th August 2023

我想知道为什么 BigQuery 表的上次修改日期不一致,或者是否有我遗漏的内容?

google-cloud-platform google-bigquery google-cloud-dataflow google-iam
1个回答
0
投票

您注意到 BigQuery 表中的上次修改日期与 Cloud Logging 中记录的 AppendRows 操作之间的不一致,可以通过检查 BigQuery 如何管理数据元数据更新来澄清。

您在 BigQuery 表详细信息页面上看到的“上次修改日期”通常表示对表的架构或元数据进行更改的时间。它通常不会更新以反映流式插入或向表中添加新行。该日期主要与表结构或属性的修改有关。另一方面,记录在

Cloud Logging
中的 AppendRows 操作对应于表中的流式插入或数据更新。当通过流数据源(例如 Cloud Dataflow)将新行引入表时,会发生这些操作。

在您的情况下,即使您停止 Dataflow 作业,您也应该在 Cloud Logging 中看到 AppendRows 操作,因为这些操作反映了表内数据的更改。表详细信息选项卡中的“上次修改”日期反映了表的元数据或架构的更改,而不是其数据。

总而言之,您所看到的不一致是由于 BigQuery 控制台中的“上次修改”日期(与元数据调整相关)和 Cloud Logging 中记录的 AppendRows 操作(与数据调整相关)的含义不同造成的。

© www.soinside.com 2019 - 2024. All rights reserved.