检查 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 网络服务器失败并出现 sqlalchemy.exc.NoInspectionAvailable:没有可用的检查系统
Airflow DAG - 如何首先检查BQ(必要时删除)然后运行数据流作业?