我是Google BigQuery的新手.我需要有关查询错误的帮助:
"遇到""与""与""在第1行,第1列.期待:EOF"
with
t1 as
(
select
date(USEC_TO_TIMESTAMP(event_dim.timestamp_micros)) date, event_dim.name
from
[myfoody-1313:it_rawfish_myfoody_ANDROID.app_events_20160727]
where
event_dim.name='pv_detail' and event_dim.params.key='item_id' and
event_dim.params.value.string_value='31'
)
select
date(d) as day, count(event_dim.name)
from
generate_series(current_date - interval '6 day', current_date, '1 day') d
left join t1 on t1.date = d
group by day
order by day;
Run Code Online (Sandbox Code Playgroud) 我将 Cloud Build 与gcloud构建器一起使用。我将其覆盖,entrypoint以便bq可以在构建步骤中运行一些 BigQuery SQL。以前,我将 SQL 直接嵌入到 Cloud Build 的 YAML 配置中。这工作正常:
steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'bq'
args: ['query', '--use_legacy_sql=false', 'SELECT 1']
Run Code Online (Sandbox Code Playgroud)
现在我想将 SQL 从 YAML 重构到一个文件中。根据这里,您可以将cat文件或管道传送到bq. 这可以在命令行上运行,没有任何问题。
但是,我无法让它与 Cloud Build 一起使用。我尝试了很多不同的组合,以及转义字符等,但无论我尝试什么,shell 都不会评估/执行反引号cat my_query.sl,而是认为它是查询本身:
在 Cloud Build 中构建它不会工作:
steps:
- name: gcr.io/cloud-builders/gcloud
entrypoint: 'bq'
args: ['query', '--use_legacy_sql=false', '`cat my_query.sql`']
Run Code Online (Sandbox Code Playgroud)
我也尝试通过管道而不是使用cat,但我得到了同样的错误。
我一定在这里遗漏了一些明显的东西,但我看不到它。我可以构建一个自定义 docker 映像,并将所有内容包装在 shell 脚本中,但如果可能的话,我宁愿不必这样做。
如何在构建步骤中使用 Cloud Build 和 shell 评估?
sql ×2