使用 google 工作流执行 BigQuery 以获取 table 的最后修改时间。在工作流程中得到错误的结果,但在 BIGQUERY UI 中同样有效

Executing a BigQuery using google workflow to get last modified of a table. getting wrong results in workflow but same works fine in BIGQUERY UI

这是我的另一个 post 的延续,我的工作流程出现了问题。进一步调试后,我意识到大查询工作流中的“last_modified_time”没有显示正确的结果,但当我在大查询 UI 中执行它时同样工作正常。请参阅以下详细信息。 Google Cloud Workflow error as "Syntax error: Unclosed string literal

下面是我的工作流程代码,只是为了查看“last_modified_time”的值是多少

main:
  steps:
    - getupdatedatetime:
        call: googleapis.bigquery.v2.jobs.query
        args:
          projectId: ${sys.get_env("GOOGLE_CLOUD_PROJECT_ID")}
          body:
            useLegacySql: false
            query: >
              SELECT 
              TIMESTAMP_MILLIS(last_modified_time) AS last_modified_time,
              DATE(TIMESTAMP_MILLIS(creation_time)) AS creation_date,
              FROM `project-dataset.__TABLES__` where table_id='table_name'
        result: queryResult
    - documentFound:
        return: ${queryResult}

上述查询在工作流中的输出为json格式,如下

{
  "cacheHit": false,
  "jobComplete": true,
  "jobReference": {
    "jobId": "job__EmSzEzXNUAKBTebWTieYIQVNKf7",
    "location": "EU",
    "projectId": "project_id"
  },
  "kind": "bigquery#queryResponse",
  "rows": [
    {
      "f": [
        {
          **"v": "1.625481329263E9"**
        },
        {
          "v": "2021-07-05"
        }
      ]
    }
  ],
  "schema": {
    "fields": [
      {
        "mode": "NULLABLE",
        "name": "last_modified_time",
        "type": "TIMESTAMP"
      },
      {
        "mode": "NULLABLE",
        "name": "creation_date",
        "type": "DATE"
      }
    ]
  },
  "totalBytesProcessed": "0",
  "totalRows": "1"
}

last_modified_time 不正确。 creation_date 没问题。因为 last_modified_time 在这里不好。我工作流程中的其他子工作流程无法正常工作。

当我在大查询中执行相同的查询时,得到以下结果

      SELECT 
      TIMESTAMP_MILLIS(last_modified_time) AS last_modified_time,
      DATE(TIMESTAMP_MILLIS(creation_time)) AS creation_date,
      FROM `project.dataset.__TABLES__` where table_id='table_name'

任何人都可以为我做错的事情提供一些帮助和指导。

您的工作流程中的结果是正确的。时间戳是一个整数。在BQ UI中,时间戳被转换为DateTime格式。您可以根据需要将 last_modified_time 时间戳值转换为 DateTime 格式。

我使用 https://www.epochconverter.com/ 将您的时间戳结果转换为 DateTime 格式,结果如下:GMT: Monday, July 5, 2021 10:35:29.263.