【问题标题】:BigQueryValueCheckOperator and standard sqlBigQueryValueCheckOperator 和标准 sql
【发布时间】:2018-05-31 19:57:54
【问题描述】:

我想知道是否有办法在apache气流1.9中将​​标准sql与气流BigQueryValueCheckOperator一起使用气流BigQueryOperator通常有这样的标志

use_legacy_sql=False 禁用旧版 sql。我找不到使用 BigQueryValueCheckOperator 实现此目的的方法。

由于我想在 where 子句中使用 _PARTITIONTIME,所以暂时不能在旧 sql 中重写查询。

谢谢。

【问题讨论】:

  • 如果你把#standardSQL放在查询的开头是否有效?
  • @ElliottBrossard 不幸的是,没有,因为 BigQueryHook 会将 use_legacy_sql 标志默认设置为 True,这与 #standardSql 冲突一旦此问题得到解决 issues.apache.org/jira/browse/AIRFLOW-1874,它将起作用。

标签: google-bigquery airflow


【解决方案1】:

目前,您不能将 StandardSQL 与此运算符一起使用。

但是,对于您的用例,您仍然可以将 _PARTITIONTIMELegacy Sql 一起使用,如文档中所述:https://cloud.google.com/bigquery/docs/querying-partitioned-tables#querying_ingestion-time_partitioned_tables_using_time_zones

示例查询:

#legacySQL
SELECT
  field1
FROM
  mydataset.partitioned_table
WHERE
  _PARTITIONTIME BETWEEN TIMESTAMP("2016-05-01")
  AND TIMESTAMP("2016-05-06")
  AND DATE_ADD([MY_TIMESTAMP_FIELD], 8, 'HOUR') BETWEEN TIMESTAMP("2016-05-01 12:00:00")
  AND TIMESTAMP("2016-05-05 14:00:00");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-27
    • 2018-08-27
    • 2013-02-21
    相关资源
    最近更新 更多