【问题标题】:how to use BigQueryHook to read data from another project如何使用 BigQueryHook 从另一个项目中读取数据
【发布时间】:2021-12-02 09:00:24
【问题描述】:

我们在 GCP 项目 A 中有气流作曲家实例,我们的 BQ 数据集存在于项目 B 中。当我们尝试从 BQ 读取数据时,出现错误。我们将 hook 写成 hook = BigQueryHook(bigquery_conn_id='bigquery_default', delegate_to=None, use_legacy_sql=False)

我们如何在这个 BigQueryHook 函数中传递项目名称 B

【问题讨论】:

    标签: google-bigquery airflow hook


    【解决方案1】:

    第一个 bigquery_conn_id 已弃用。你应该使用gcp_conn_id

    项目 ID 是 GCP 连接的一个属性,您可以在 docs 中看到。如果您在连接级别上设置它,Airflow 会使用它。但是,如果需要,您可以在挂钩中覆盖它。

    BigQueryHook(gcp_conn_id='bigquery_default', project_id='other_project')
    

    您可以检查正在执行覆盖 here 的源代码。

    【讨论】:

    • 感谢@Elad,我尝试了这种方法,但出现错误“错误 - __init__() 得到了意外的关键字参数 'gcp_conn_id'”
    • 听起来你正在运行旧版本的课程。您是从谷歌提供商或contrib 导入的吗?您正在运行哪个气流版本?
    • 从airflow.contrib.hooks.bigquery_hook 导入BigQueryHook..我使用的是1.10.15+composer
    • 这是过时的版本。您应该安装 google backport 提供程序并从中导入类。见stackoverflow.com/a/68236614/14624409
    猜你喜欢
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多