在 BigQuery Google Cloud 中获取我所有计划的 SQL 查询

Posted

技术标签:

【中文标题】在 BigQuery Google Cloud 中获取我所有计划的 SQL 查询【英文标题】:Get all my scheduled SQL queries in BigQuery Google Cloud 【发布时间】:2019-11-18 16:11:49 【问题描述】:

我试图通过我在 BigQuery 中的计划查询的命令行 (CLI) 获取 SQL 代码。如果 Google Cloud Platform 用户界面有办法做到这一点,我也很感兴趣。

我快速浏览了这篇相关帖子,但这不是我想要的答案。

List Scheduled Queries in BigQuery

提前感谢您的所有回答。

【问题讨论】:

【参考方案1】:

我找到了如何使用bq CLI 查询计划的查询。你必须依赖BigQuery Transfer API。为什么?我不知道,但这是正确的关键字。

要列出您的所有日程查询,请执行此操作(如果需要,请更改您的位置!):

bq ls --transfer_config --transfer_location=eu

# Result
                                             name                                               displayName    dataSourceId     state
 --------------------------------------------------------------------------------------------- ------------- ----------------- -------
  projects/763366003587/locations/europe/transferConfigs/5de1fc66-0000-20f2-bee7-089e082935bc   test          scheduled_query

要查看详细信息,请复制名称并使用bq show

bq show --transfer_config  \
projects/763366003587/locations/europe/transferConfigs/5de1fc66-0000-20f2-bee7-089e082935bc

# Result
       updateTime            destinationDatasetId   displayName      schedule       datasetRegion          userId                                            scheduleOptions                                       dataSourceId                  
                                                                         params
 ----------------------------- ---------------------- ------------- ----------------- --------------- ---------------------- -------------------------------------------------------------------------------------- ----------------- --------------
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2019-11-18T20:20:22.279237Z   bi_data                test          every day 20:19   europe          -7444165337568771239   u'endTime': u'2019-11-18T21:19:36.528Z', u'startTime': u'2019-11-18T20:19:36.497Z'   scheduled_query   u'query': u'
SELECT * FROM `gbl-imt-homerider-basguillaueb.bi_data.device_states`', u'write_disposition': u'WRITE_TRUNCATE', u'destination_table_name_template': u'test_schedule'

您可以使用 json 格式和 jq 来获取这样的查询

bq show --format="json" --transfer_config  \
projects/763366003587/locations/europe/transferConfigs/5de1fc66-0000-20f2-bee7-089e082935bc \
 | jq '.params.query'

# Result
"SELECT * FROM `gbl-imt-homerider-basguillaueb.bi_data.device_states`"

如果您愿意,我可以解释一下我是如何找到这个意想不到的解决方案的,但这不是这里的主题。我认为它没有记录在案

在 GUI 上,它更容易。

转到 BigQuery(新 UI,蓝色) 点击左侧菜单中的预定查询

点击您的预定查询名称 点击屏幕顶部的配置

【讨论】:

这正是我要问的!干杯纪尧姆!

以上是关于在 BigQuery Google Cloud 中获取我所有计划的 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

在 Google Cloud BigQuery 中存储句子嵌入

如何在 Google Cloud Datalab 中使用 Bigquery JSON 函数

如何在气流中配置 Google Cloud BigQuery

com.google.cloud.bigquery.BigQueryException:读取超时

本地 Google App Engine:ImportError:没有名为 google.cloud.bigquery 的模块

Python,AttributeError:模块'google.cloud.bigquery'在cx_Freeze构建后没有属性'Client'