View 从bq cmd工具执行现有参数化BigQuery视图
如何使用传递的参数(@param)执行现有的BigQuery,而不同时发送视图查询 我想用占位符为我的自定义参数执行现有视图 我的最小视图保存在View 从bq cmd工具执行现有参数化BigQuery视图,view,google-bigquery,bigquery-standard-sql,sql-parametrized-query,View,Google Bigquery,Bigquery Standard Sql,Sql Parametrized Query,如何使用传递的参数(@param)执行现有的BigQuery,而不同时发送视图查询 我想用占位符为我的自定义参数执行现有视图 我的最小视图保存在project.dataset.view中的BigQuery中: select * from `project.dataset.table` where column = @x 我的bqcmd看起来像: bq --location=EU query --use_legacy_sql=False \ --parameter='x:INT64:100'
project.dataset.view中的BigQuery中:
select * from `project.dataset.table`
where column = @x
我的bq
cmd看起来像:
bq --location=EU query --use_legacy_sql=False \
--parameter='x:INT64:100' \
--destination_table="dev.view_result" "[HERE IS THE SAME VIEW COPIED]"
就像我没有执行现有视图一样,我正在创建一个新的select查询(新视图)
是否可以这样称呼它:
bq --location=EU query --use_legacy_sql=False \
--parameter='x:INT64:100' \
--destination_table="dataset.view_result"
--view=[VIEW_URL like dataset.view]
BigQuery中还不支持带有参数的视图-请参阅相关的,但我想现在可以将select*from project.dataset.table
保存为BigQuery数据集中的myview,然后只执行select*from myview,其中column=5
(tableau)。筛选器将被下推到第一个select语句。确定。应该有用。请记住-由于SELECT*
的原因,整个表格扫描将正常进行,但如果使用SELECT*from table
并将其保存在BQ的视图中,然后使用select*from视图查询视图,其中分区\u ts\u或\u date\u字段=…
然后过滤器将立即推送到第一个select语句,并且您不会扫描整个表,因为只扫描一天。这是客户端(tableau)指定分区的变通方法,无需从bigquery视图复制/粘贴代码。相反,它们重用视图的代码,只定义分区。