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

Fra*_*nez 1 google-bigquery google-cloud-platform google-cloud-sdk

我试图通过 BigQuery 中预定查询的命令行 (CLI) 获取 SQL 代码。我也很感兴趣是否有办法通过 Google Cloud Platform 用户界面来做到这一点。

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

预先感谢您的所有回答。

gui*_*ere 6

我找到了如何使用bqCLI查询预定查询。您必须依赖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
Run Code Online (Sandbox Code Playgroud)

要查看详细信息,请复制名称并使用 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'}
Run Code Online (Sandbox Code Playgroud)

您可以使用 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`"
Run Code Online (Sandbox Code Playgroud)

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

在 GUI 上,它更容易。

  • 转到 BigQuery(新 UI,蓝色)
  • 单击左侧菜单上的计划查询

在此处输入图片说明

  • 单击您的预定查询名称
  • 单击屏幕顶部的配置 在此处输入图片说明