从 BigQuery 查询 (PUT/POST) 调用 REST API

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

我正在探索通过 POST/PUT 方法从 BQ 获取一些数据到另一个工具的方法。

用例:我们有一些数据完整性查询,定期检查一个表中的总和是否匹配另一个表中的总和。

理想情况下,我们希望将此计划查询的结果发布到我们的数据目录工具(具有 API 端点)。

有什么办法吗?

谢谢, 多尔

google-bigquery
1个回答
0
投票

这里是查询 bq 表并检查结果是否匹配的示例代码。例如,这里我使用的是计数,而如果要在代码中求和,您可以更改它

直到 - 检查结果的代码正在运行。下面的代码是调用外部端点的示例代码,它不起作用,因为我没有要测试的外部端点。希望这有帮助吗?

- init:
    assign:
    - project_id: "myproject"
    - bq_datasetset: "zz_DataSet"
    - bq_table_1: "tblOne"
    - bq_table_2: "tblTwo"
    - bq_query: "SELECT if(count(*)=1,true,false) as resultsFlag FROM ( SELECT count(1) as freq FROM `myproject.zz_DataSet.tblOne` UNION DISTINCT SELECT count(1) as freq FROM `myproject.zz_DataSet.tblTwo` );"

- bq-table-results:
    call: googleapis.bigquery.v2.jobs.query
    args:
        projectId: ${project_id}
        body:
            useLegacySql: false
            defaultDataset:
                datasetId: ${bq_datasetset}
                projectId: ${project_id}
            query: ${bq_query}
    result: queryResult
- check-result:
    return: ${queryResult}
- post_message:
    call: http.post
    assign:
    - bqResult: ${items[i].f[0].v}
    args:
      url: https://python.new
      body:
        language: python
    result: the_message
- return_value:
    return: ${the_message.body}
© www.soinside.com 2019 - 2024. All rights reserved.