检查Airflow中是否存在Bigquery分区

问题描述

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

解决方法

我查看了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以获得更多详细信息。