声明式完成Airflow DAGs
项目描述
Airflow声明式DAGs通过YAML。
兼容性
Python 2.7 / 3.5+
Airflow 1.10.4+
主要功能
声明式DAGs以纯文本YAML形式,有助于更好地理解DAG的外观。专为人类设计,而非程序员。
这使得将DAGs转换为代码混乱变得极为困难。即使你使用复杂的YAML生成器,结果也应该是人类可读的。
不再有关于将业务逻辑与任务管理系统(Airflow)耦合的罪恶感。它们现在可以分开存在。
静态分析变得轻而易举。
它是创建与原始Airflow兼容的自定义调度器/工作进程的好抽象。
示例
请检查tests/dags目录中的DAG示例,这些示例将工作,哪些不会。使用src/airflow_declarative/schema.py模块了解YAML文件架构。它应该是自描述的。
不要害羞去实验:trafaret-config将帮助您了解出了什么问题以及为什么和在哪里。
用法
我们提供了两种安装选项
作为上游Airflow的补充侧包。
作为使用Airflow补丁的内置Airflow功能。
上游Airflow
想法是将Python脚本放入dags_folder,该脚本将通过airflow_declarative加载声明性dags。更多详情:[使用上游Airflow安装](https://airflow-declarative.readthedocs.io/en/latest/installation.html#upstream-airflow)。
import os
import airflow_declarative
# Assuming that the yaml dags are located in the same directory
# as this Python module:
root = os.path.dirname(__file__)
dags_list = [
airflow_declarative.from_path(os.path.join(root, item))
for item in os.listdir(root)
if item.endswith((".yml", ".yaml"))
]
globals().update({dag.dag_id: dag for dags in dags_list for dag in dags})
修改过的Airflow
我们在patches目录中提供了可用的补丁。要使用它们,您需要将补丁应用到相应的Airflow版本,然后自行构建。更多详情:[使用修改过的Airflow安装](https://airflow-declarative.readthedocs.io/en/latest/installation.html#patched-airflow)。
项目详情
airflow-declarative-1.1.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b9b3f3bb52c4e1f7620bccf89700c9a56c67f738b5b43ec59d4b2218e2ffb934 |
|
MD5 | 2b98a649b8c5628e82797f165ab85596 |
|
BLAKE2b-256 | 82b2cb077c51cf29a653f0f920c1292a1a7ae334b40c25b046f0fb64383e1ff3 |
airflow_declarative-1.1-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ebdddaef9436155839732d3ac9635551a46b90ed20b43e3ec5d96499d658a625 |
|
MD5 | b184f5d2d317c99e0a72909cab994a9c |
|
BLAKE2b-256 | 6c03c41df4e3df2ebfdbbebb02294b3ce636b64361a6fd540682fe77b0725068 |