【问题标题】:Cloud composer issue with datasets in Australia region澳大利亚地区数据集的云作曲家问题
【发布时间】:2019-02-12 23:28:04
【问题描述】:

我尝试使用 Cloud Composer 来安排和编排 Bigquery 作业。 Bigquery 表位于 australia-southeast1 地区。云作曲家环境是在 us-central1 地区创建的(因为作曲家在澳大利亚地区不可用)。当我尝试以下命令时,它会引发一个模糊的错误。当我尝试使用位于欧盟和美国的数据集时,相同的设置运行良好。

Command:
gcloud beta composer environments run bq-schedule --location us-central1 test -- my_bigquery_dag input_gl 8-02-2018

Error:

Traceback (most recent call last):
  File "/usr/local/bin/airflow", line 7, in <module>
    exec(compile(f.read(), __file__, 'exec'))
  File "/usr/local/lib/airflow/airflow/bin/airflow", line 27, in <module>
    args.func(args)
  File "/usr/local/lib/airflow/airflow/bin/cli.py", line 528, in test
    ti.run(ignore_task_deps=True, ignore_ti_state=True, test_mode=True)
  File "/usr/local/lib/airflow/airflow/utils/db.py", line 50, in wrapper
    result = func(*args, **kwargs)
  File "/usr/local/lib/airflow/airflow/models.py", line 1583, in run
    session=session)
  File "/usr/local/lib/airflow/airflow/utils/db.py", line 50, in wrapper
    result = func(*args, **kwargs)
  File "/usr/local/lib/airflow/airflow/models.py", line 1492, in _run_raw_task
    result = task_copy.execute(context=context)
  File "/usr/local/lib/airflow/airflow/contrib/operators/bigquery_operator.py", line 98, in execute
    self.create_disposition, self.query_params)
  File "/usr/local/lib/airflow/airflow/contrib/hooks/bigquery_hook.py", line 499, in run_query
    return self.run_with_configuration(configuration)
  File "/usr/local/lib/airflow/airflow/contrib/hooks/bigquery_hook.py", line 868, in run_with_configuration
    err.resp.status)
Exception: ('BigQuery job status check failed. Final error was: %s', 404)

Is there any workaround to resolve this issue? 

【问题讨论】:

    标签: google-cloud-platform airflow google-cloud-composer


    【解决方案1】:

    由于您的数据集位于australia-southeast1,BigQuery 默认在同一位置创建了一个作业,即australia-southeast1。但是,您的 Composer 环境中的 Airflow 试图在未指定位置字段的情况下获取作业的状态。

    参考:https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/get

    我的PR 已修复此问题,并已合并到master。

    要解决此问题,您可以扩展 BigQueryCursor 并使用位置支持覆盖 run_with_configuration() 函数。

    【讨论】:

    • 谢谢瑞恩。你介意分享一个相同的代码示例吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多