首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google-cloud-composer BigQuery交叉数据集加载

google-cloud-composer BigQuery交叉数据集加载
EN

Stack Overflow用户
提问于 2021-04-09 22:50:21
回答 1查看 58关注 0票数 0

我正在尝试运行一个简单的select查询(从biqquery),并使用Composer将结果集加载到另一个bq表中。然而,我在代码的最后一行得到了一个错误。

损坏的DAG: /home/airflow/gcs/dags/es_tc_etl_wkf_mtly.py无效语法(es_tc_etl_wkf_mtly.py,第47行)

代码:

代码语言:javascript
复制
import airflow
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.contrib.operators import bigquery_operator
from datetime import timedelta

default_args = {
    'start_date': airflow.utils.dates.days_ago(0),
    'retries': 1,
    'retry_delay': timedelta(minutes=5)
}

dag = DAG(
    'es_tc_etl_wkf',
    default_args=default_args,
    description='Job monitoring dag',
    schedule_interval=None,
    dagrun_timeout=timedelta(minutes=20))

# priority_weight has type int in Airflow DB, uses the maximum.
t1 = bigquery_operator.BigQueryOperator(
        task_id='bq_recent_questions_query',
        bql="""
        select * from bigquery.table.`projectid`.dataset_id.table_A;
        """,`enter code here`
        use_legacy_sql=False,
        destination_dataset_table=dataset_id.table_B)
EN

回答 1

Stack Overflow用户

发布于 2021-04-12 11:01:53

您有一个额外的enter code here,它没有分配给任何可识别的参数。bql已经是deprecated,建议使用sql。此外,查询语句中的整个数据集都应该用反记号(`)括起来。

sql (可以接收表示

语句的字符串、字符串(sql语句)的列表或对模板文件的引用。模板引用由以‘.sql’结尾字符串识别。)-(已弃用。改为使用sql参数)要执行的sql代码(模板化)

应用我上面提到的建议后,您的t1应该如下所示。

代码语言:javascript
复制
t1 = bigquery_operator.BigQueryOperator(
        task_id='bq_recent_questions_query',
        sql="""
        select * from `bigquery.table.projectid.dataset_id.table_A`;
        """,
        use_legacy_sql=False,
        destination_dataset_table=dataset_id.table_B)

有关BigQueryOperator的用法示例,请参阅此documentation

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67023357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档