检查 Airflow 中是不是存在 Bigquery 分区

Posted

技术标签:

【中文标题】检查 Airflow 中是不是存在 Bigquery 分区【英文标题】:Checking if a Bigquery partition exists in Airflow检查 Airflow 中是否存在 Bigquery 分区 【发布时间】:2020-08-17 03:59:17 【问题描述】:

我的下游 Airflow BigQuery 任务依赖于其他表(日期分区)中是否存在特定分区。 我知道BigQueryTableSensor 运算符检查表是否存在。有没有一种简单的方法来检查该表中是否存在特定分区?实际上,操作员应该等到这些分区存在才能成功退出。

【问题讨论】:

【参考方案1】:

我查看了 BigQuery 的 Airflow 运算符,但在 Airflow 的 stable version 中的表中找不到一个可以验证特定分区是否存在的运算符。

最近,Apache Airflow 社区接受了merge request,其中包含一个检查分区 BigQuery 表中是否存在分区的函数。投稿包含在latest version

如果此更改包含在下一个版本中,则新函数可能会这样调用:

包括图书馆
    from airflow.providers.google.cloud.sensors.bigquery import BigQueryTablePartitionExistenceSensor
调用函数
    check_table_partition_exists = BigQueryTablePartitionExistenceSensor(                
        task_id="check_table_partition_exists",
        project_id=PROJECT_ID,
        dataset_id=DATASET_NAME,
        table_id=TABLE_NAME,
        partition_id=PARTITION_NAME,
        )

您可以查看这些examples 了解更多详情。

【讨论】:

以上是关于检查 Airflow 中是不是存在 Bigquery 分区的主要内容,如果未能解决你的问题,请参考以下文章

Airflow - BigQuery 作业状态检查失败。最终错误是:%s'

airflow之SubDAGs(转载)

启动 Airflow 网络服务器失败并出现 sqlalchemy.exc.NoInspectionAvailable:没有可用的检查系统

Airflow DAG - 如何首先检查BQ(必要时删除)然后运行数据流作业?

Airflow 中是不是有操作员可以根据 BigQuery 中的查询创建表?

使用 Airflow 的 Impala 查询