[ 
https://issues.apache.org/jira/browse/AIRFLOW-1874?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guillermo Rodríguez Cano updated AIRFLOW-1874:
----------------------------------------------
    Description: 
BigQueryCheckOperator, BigQueryValueCheckOperator and 
BigQueryIntervalCheckOperator do not support disabling use of default legacy 
SQL in BigQuery.

This is a major blocker to support correct migration to standard SQL when 
queries are complicated. For example, a query that can be queried in legacy SQL 
may be blocked from any subsequent view done in standard SQL that this view 
uses as the queries are bound to either standard or legacy SQL but not a mix.

These operators inherit from base ones of the same name (without the BigQuery 
prefix) from Airflow which may make the process more complicated as the flag to 
use standard SQL should be enabled because the underlying BigQueryHook has the 
corresponding parameter, use_legacy_sql, set to True, when running a query. But 
it is not possible to pass parameters all the way to it via the aforementioned 
operators.

The workaround of including #standardSQL and a new line before the query 
doesn't work either as there is mismatch. BigQuery reports the following in 
fact: "Query text specifies use_legacy_sql:false, while API options 
specify:true"
A workaround for queries on views using standard SQL is to persist the result 
of the query in a temporary table, then run the check operation and thereafter 
delete the temporary table. 

  was:
BigQueryCheckOperator, BigQueryValueCheckOperator and 
BigQueryIntervalCheckOperator do not support disabling use of default legacy 
SQL in BigQuery.

This is a major blocker to support correct migration to standard SQL when 
queries are complicated. For example, a query that can be queried in legacy SQL 
may be blocked from any subsequent view done in standard SQL that this view 
uses as the queries are bound to either standard or legacy SQL but not a mix.

These operators inherit from base ones of the same name (without the BigQuery 
prefix) from Airflow which may make the process more complicated as the flag to 
use standard SQL should be enabled because the underlying BigQueryHook has the 
corresponding parameter, use_legacy_sql, set to True, when running a query. But 
it is not possible to pass parameters all the way to it via the aforementioned 
operators.

The workaround of including #standardSQL and a new line before the query 
doesn't work either as there is mismatch. BigQuery reports the following in 
fact: "Query text specifies use_legacy_sql:false, while API options 
specify:true"


> Support standard SQL in Check, ValueCheck and IntervalCheck BigQuery operators
> ------------------------------------------------------------------------------
>
>                 Key: AIRFLOW-1874
>                 URL: https://issues.apache.org/jira/browse/AIRFLOW-1874
>             Project: Apache Airflow
>          Issue Type: Bug
>          Components: contrib, gcp, operators
>            Reporter: Guillermo Rodríguez Cano
>
> BigQueryCheckOperator, BigQueryValueCheckOperator and 
> BigQueryIntervalCheckOperator do not support disabling use of default legacy 
> SQL in BigQuery.
> This is a major blocker to support correct migration to standard SQL when 
> queries are complicated. For example, a query that can be queried in legacy 
> SQL may be blocked from any subsequent view done in standard SQL that this 
> view uses as the queries are bound to either standard or legacy SQL but not a 
> mix.
> These operators inherit from base ones of the same name (without the BigQuery 
> prefix) from Airflow which may make the process more complicated as the flag 
> to use standard SQL should be enabled because the underlying BigQueryHook has 
> the corresponding parameter, use_legacy_sql, set to True, when running a 
> query. But it is not possible to pass parameters all the way to it via the 
> aforementioned operators.
> The workaround of including #standardSQL and a new line before the query 
> doesn't work either as there is mismatch. BigQuery reports the following in 
> fact: "Query text specifies use_legacy_sql:false, while API options 
> specify:true"
> A workaround for queries on views using standard SQL is to persist the result 
> of the query in a temporary table, then run the check operation and 
> thereafter delete the temporary table. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to