Airflow
文章平均质量分 92
梦想画家
开源软件爱好者,乐于博客分享,业余时间喜欢跑步和科幻,希望与意趣相投朋友一起学习交流。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SQLMesh调度系统深度解析:内置调度与Airflow集成实践
内置调度器:适合快速验证和小规模项目Airflow集成:满足企业级生产环境的严苛需求最佳实践建议开发阶段优先使用内置调度器提升迭代效率生产环境部署建议:数据量<100M:继续使用内置调度数据量>1G:采用Airflow + 专用调度数据库(如PostgreSQL)定期执行检查调度系统健康状态通过合理选择调度方案,企业可以在保证数据一致性的前提下,显著提升数据分析流水线的可靠性与可维护性。原创 2025-03-30 17:03:58 · 660 阅读 · 0 评论 -
Airflow:用XComs在数据管道中跨任务通信
Apache Airflow xcom是数据管道中跨任务通信的强大机制。理解它们的目的、用法和实现的最佳实践对于确保高效、可维护和可靠的工作流至关重要。合理地使用xcom,优化数据库性能,并遵循其他最佳实践,你可以有效地在任务之间共享数据,并在Airflow中构建健壮的动态工作流。原创 2025-02-06 18:02:29 · 1510 阅读 · 0 评论 -
Airflow:选择合适执行器扩展任务执行
在某些情况下,你可能需要编写自定义执行程序。例如,如果你希望与内置执行器不支持的特定基础设施或专有服务进行更紧密的集成。编写自定义执行器涉及到继承BaseExecutor类并实现所需的方法。选择正确的执行者对于优化工作流执行在Airflow至关重要。当扩展执行或处理更复杂的工作流时,从LocalExecutor转换到CeleryExecutor或Kubernetes executor可以提供必要的资源和灵活性。了解Airflow执行器及相关配置,你可以使Airflow流程保持健壮、可扩展、易维护。原创 2025-02-02 11:36:35 · 1214 阅读 · 0 评论 -
Airflow:深入理解Apache Airflow Task
任务是Airflow工作流(也称为有向无环图或DAG)中最小的工作单元。任务表示单个操作、功能或计算,是更大工作流的一部分。在数据管道上下文中,任务可能包括数据提取、转换、加载或任何其他数据处理操作。任务类型Apache Airflow中的三种基本任务类型:操作员,传感器和taskflow装饰任务。OperatorsOperator是预定义的任务模板,可以很容易地组合起来创建大多数dag。它们代表单一的工作或操作单元,并且气流具有广泛的内置Operator,以适应各种应用场景。Sensors。原创 2025-01-31 19:55:18 · 1653 阅读 · 0 评论 -
Airflow:深入理解Apache Airflow 调度器
Apache Airflow 调度器是管理dag中任务执行的中心组件。它监视任务的状态,并根据它们的依赖关系和调度需求协调它们的执行。调度器负责在满足其依赖项时触发任务,并在任务失败时管理重试。它还处理任务的回填,并确保您的数据管道高效可靠地运行。Airflow 调度器工作机制解析DAG:调度程序定期扫描DAG目录,解析DAG文件,并使用DAG结构和任务信息更新元数据数据库。评估任务实例:调度程序检查任务实例的状态,以确定它们是否应该根据它们的依赖关系和调度约束执行。原创 2025-01-30 15:05:40 · 1862 阅读 · 0 评论 -
Airflow:掌握Airflow调度器基本原理
调度器(Scheduler)是Apache Airflow的关键组件,负责确定何时在工作流中执行任务。它读取Airflow中定义的有向无环图(dag),并根据它们的依赖关系和指定的调度间隔调度任务。调度器体系结构Apache Airflow中的调度器被设计为具有高度可伸缩性和容错性。DAG定义:使用Python脚本或配置文件定义DAG。这些dag指定要执行的任务及其依赖项。DAG解析:调度器解析DAG以提取任务依赖项、调度间隔和其他元数据。原创 2025-01-29 18:40:35 · 898 阅读 · 0 评论 -
Airflow:精通Airflow任务依赖
使用set_upstream和set_downstream方法:使用位移操作符使用链和函数实现复杂依赖chain函数chain函数用于创建一系列任务的线性依赖关系,也就是让任务按照传入的顺序依次执行。chain函数接受多个任务对象作为参数,这里传入了task1task2和task3三个任务。执行后,task1完成后task2才能开始执行,task2完成后task3才能开始执行,即task1->task2->task3。cross_downstream函数。原创 2025-01-27 19:14:49 · 1192 阅读 · 0 评论 -
Airflow:Airflow子流程应用实践
Apache Airflow SubDAG提供了一种强大的方式来组织和管理复杂的工作流。通过将大型工作流分解成更小、更易于管理的部分,可以提高任务的可维护性、可重用性和并行性。但是,必须了解有效使用SubDAG的限制和最佳实践。此外,在单个DAG中组织任务时,可以考虑使用taskgroup作为subdag的替代方案,以获得更简单、更直观的体验。原创 2025-01-26 16:29:35 · 1012 阅读 · 0 评论 -
Airflow:解码Airflow执行日期
执行日期代表了任务实例(Task Instance)逻辑上应该执行的时间点,并不是任务实际开始或结束的时间。它主要用于数据处理的时间边界界定、任务依赖关系的确定以及数据分区等场景,为工作流中的任务提供了一个统一的时间参考基准。执行日期在Apache Airflow中起着至关重要的作用,它为数据管道中正在处理的时间段提供一致和准确的参考。通过掌握工作流中执行日期的处理,你可以构建高效、可靠和可维护的数据管道,这些管道尊重基于时间的依赖关系,并适应不断变化的需求。原创 2025-01-24 10:45:33 · 1278 阅读 · 0 评论 -
Airflow:BranchOperator实现动态分支控制流程
Apache的Airflow BranchOperator是一个强大的工具,用于创建动态的、有条件的工作流,可以适应不同的情况和需求。通过了解BranchOperator的工作原理并遵循最佳实践,你可以创建更高效、更灵活的dag,从而最大限度地发挥Airflow的潜力。将BranchOperator与其他操作员结合使用,可以解锁更多可能性,并创建满足独特需求的高级、适应性强的工作流程。原创 2025-01-22 19:51:09 · 573 阅读 · 0 评论 -
Airflow:深入理解Airflow Sensor
在Apache Airflow 中,Sensor是一种特殊类型的任务,它在允许工作流继续进行之前等待外部事件或条件发生。与执行一次并完成的常规任务不同,传感器不断轮询或监视指定的条件,直到满足为止。一旦满足条件,Sensor就会触发工作流中的下游任务。Apache Airflow Sensor在协调复杂的工作流程中发挥着至关重要的作用,它允许任务在继续之前等待外部条件得到满足。通过了解Airflow Sensor的类型、工作原理和常见用例,您可以设计有弹性和自适应的数据管道,有效地处理动态的外部依赖关系。原创 2025-01-13 09:50:16 · 1467 阅读 · 0 评论 -
Airflow:无名英雄DummyOperator详解
Apache Airflow DummyOperator可能看起来是一个微不足道的组件,但它可以显著增强dag的组织和可读性。通过了解它的应用场景并将其与其他操作系统结合使用,你可以创建干净、结构化和高效的工作流程。当你继续使用Apache Airflow时,不要忘记了无名英雄DummyOperator,它可以帮助管理复杂的依赖项、创建分支点并保持dag的组织。原创 2025-01-11 12:31:27 · 958 阅读 · 0 评论 -
Airflow:TimeSensor感知时间条件
时间感知与触发:Airflow 的是一种传感器(Sensor)类型的操作符(Operator)。它的主要作用是按照指定的时间规则来感知时间,并且根据时间条件来触发后续的任务流程。例如,它可以等待到某个特定的时间点,如每天的下午 3 点,然后再启动相关的数据处理任务。阻塞任务执行:在满足时间条件之前,会阻塞当前任务实例(Task Instance)所在的分支流程。这意味着在指定时间到来之前,后续依赖于该传感器输出的任务不会被执行,从而确保任务是在期望的时间之后才开始运行。原创 2025-01-10 09:55:39 · 1366 阅读 · 0 评论 -
Airflow:ExternalTaskSensor监控外部任务状态
ExternalTaskSensor是Apache Airflow中的一个Sensor,用于监控外部DAG中的任务状态。它继承自BaseSensorOperator类,并通过定期检查指定任务的状态来工作,直到满足特定条件,例如任务成功完成。当一个DAG中的任务依赖于另一个DAG中的任务完成时,ExternalTaskSensor特别有用,支持使用相互关联的DAG创建复杂的工作流。external_dag_id:需要监控的外部DAG的ID。external_task_id:要监控的外部DAG内的任务ID。原创 2025-01-09 09:28:40 · 1620 阅读 · 0 评论 -
Airflow:SQL Sensor 监控数据库业务变化
Apache Airflow SQL Sensor 提供了一种灵活而强大的机制,用于监控SQL数据库中的变化或条件,并基于这些条件触发任务。通过将SQL传感器集成到您的Airflow dag中,可以构建健壮可靠的数据工作流,以适应数据环境的动态变化。在你的Airflow项目中试验SQL Sensor,以提高数据管道的效率和可靠性。原创 2025-01-07 10:12:57 · 1076 阅读 · 0 评论 -
Airflow:使用FileSensor监控文件系统
FileSensor是Apache Airflow中的一个Sensor,它监视文件系统中指定文件的存在。它继承自BaseSensorOperator类,并通过连续检查文件是否存在来工作,直到找到该文件,或者达到指定的超时。在任务依赖于外部文件的情况下,或者在转到下一个任务之前需要确保文件生成或可用的情况下,FileSensor特别有用。Airflow FileSensor 主要用于监测文件系统中文件或目录的状态变化。数据处理场景。原创 2025-01-06 09:25:32 · 1132 阅读 · 0 评论 -
Airflow:HttpSensor实现API驱动数据流程
定义HttpSensor是 Airflow 中的一个传感器(Sensor)。传感器在 Airflow 中用于等待某些条件满足后再继续执行后续任务。HttpSensor专门用于检查 HTTP 端点是否返回预期的状态码,以此来判断某个 HTTP 服务是否可用或者某个网页是否可以正常访问等。工作原理:它会发送 HTTP 请求到指定的端点(URL),然后检查响应的状态码。如果状态码符合预期(默认是 200),则传感器任务完成,允许工作流继续执行后续任务;原创 2025-01-04 09:46:15 · 1616 阅读 · 0 评论 -
Airflow : EmailOperator实现通知告警
在Apache Airflow中的EmailOperator提供了一个方便的方式来集成电子邮件通知到您的工作流程。通过了解其功能、用法和最佳实践,您可以有效地让利益相关者了解气流dag中任务的进度和状态。要注意电子邮件作为沟通渠道的潜在复杂性和局限性,并在适当的时候考虑使用其他通知方法来优化工作流程。原创 2025-01-02 21:08:48 · 1730 阅读 · 0 评论 -
Airflow :快速掌握Database Operator
Apache Airflow中的Database Operator提供了一种针对各种数据库执行SQL语句的方法。它使你能够在工作流中执行诸如创建表、插入数据和运行复杂查询等操作。这些操作符中的每一个都对应于某个数据库系统,并继承自BaseOperator类。虽然Airflow为许多流行的数据库提供了内置操作符,但你可能会发现自己需要使用没有专用操作符的数据库。在这种情况下,可以通过子类化BaseOperator并实现所需的方法来创建自定义Database Operator。try:",原创 2025-01-02 16:00:43 · 979 阅读 · 0 评论 -
Airflow:如何使用jinja模板和宏
Jinja 是一个现代的、功能强大的模板引擎,它是用 Python 语言编写的。模板引擎是一种工具,用于将数据与模板文件结合起来,生成最终的文本输出。Jinja 主要用于 Web 开发,但也在其他许多场景下发挥作用,比如在代码生成、配置文件管理等领域。在 Jinja 模板中,可以使用双花括号来表示变量。例如,在一个 HTML 模板中,如果有一个变量page_title。当模板被渲染时,会被替换为实际的变量值。过滤器(Filters)Jinja 提供了过滤器来修改变量的值。过滤器通过管道符。原创 2025-01-01 21:06:04 · 1488 阅读 · 0 评论 -
Airflow:介绍常用Airflow Cli命令
Apache Airflow的命令行界面(CLI)是用于管理和与Airflow环境交互的强大工具。它提供了一系列命令,允许用户在dag上执行操作、管理服务以及帮助开发和测试。下面是一个结构化的指南,一些关键功能的气流命令行,确保您有一个方便的apache气流备查表在您的处置。Airflow UI提供了可视化的界面来管理工作流,Airflow命令行是Airflow UI的功能补充。然而,对于那些喜欢或需要脚本和自动化的人来说,CLI是不可或缺的工具。原创 2025-01-01 19:51:39 · 1246 阅读 · 0 评论 -
Airflow : 执行任务触发规则详解
Airflow触发规则使用简单,但功能强大,因为它们可以解决实际场景问题。不要犹豫,使用触发规则比回调更可靠、高效处理错误。触发规则对于管理资源非常有用,但是需要你采用更好的方法来创建或和拆除任务。原创 2024-12-30 11:38:03 · 2083 阅读 · 0 评论 -
Scrapy结合Airflow构建完整数据流程
ScrapyScrapy 是一个用于爬取网页数据的 Python 框架。它提供了高效的抓取机制,能同时处理多个请求。通过定义提取规则,如 XPath 或 CSS 选择器,可以精准地从网页中抽取数据,如文本、链接等。其架构清晰,包括引擎、调度器、下载器等组件。引擎控制整个流程,调度器管理请求队列,下载器获取网页内容。Scrapy 还支持中间件来处理请求和响应,如设置代理、处理 cookies 等。它的异步 I/O 机制让爬取速度更快,适合大规模数据采集,常用于数据挖掘、信息聚合等场景。Airflow。原创 2024-12-28 10:03:09 · 2257 阅读 · 0 评论 -
Airflow:认证及授权管理最佳实践
通过遵循这些实践,并利用Airflow的灵活性、以及外部身份验证和授权服务集成,你可以创建一个健壮的安全模型,保护您的Airflow及部署流程免受未经授权的访问。原创 2024-12-27 14:58:56 · 1811 阅读 · 0 评论 -
精通Airflow任务: Sensors, Operators & Hooks !
如果预构建的Hooks不能满足你的需求,你可以扩展airflow.hooks.base.BaseHook类。在BaseHook类中包含任何必要的依赖项。创建自己的派生自BaseHook的Hook类。使用必要的技术与外部系统进行连接和通信。假设已经在 Airflow 的连接配置中设置好了对应的 MySQL 连接(比如连接 ID 为"""一个简单的 Python 函数,使用自定义 Hook 对 MySQL 数据库进行查询操作"""# 这里可以对查询结果进行进一步处理,比如打印结果等。原创 2024-12-04 16:01:13 · 1540 阅读 · 0 评论 -
Apache Airflow 快速入门教程
Apache Airflow 是一个开源的平台,用于编排、调度和监控工作流,工作流是由一系列任务(Tasks)组成的,这些任务可以是数据处理、数据分析、机器学习模型训练、文件传输等各种操作。因此,它是ETL和MLOps用例的理想解决方案。从多个数据源提取数据,对其进行聚合、转换,并将其存储在数据仓库中。从数据中提取见解并将其显示在分析仪表板中训练、验证和部署机器学习模型。原创 2024-11-30 19:21:40 · 2691 阅读 · 0 评论 -
使用Airflow变量和模板使流程更灵活
Apache Airflow是一个开源平台,用于编排复杂的计算工作流和数据处理管道。气流的优势之一是它能够参数化工作流,这允许更多的动态和可重用代码。在本文中,我们将探讨支持参数化的两个强大的airflow特性:变量和模板。原创 2024-12-12 16:05:31 · 1687 阅读 · 0 评论 -
Ubuntu安装Apache Airflow详细指南
本文介绍了适合顺序执行和本地执行的非集群Airflow安装,主要用于测试开发环境准备。要在生成环境运行Airflow,通常需要集群环境,采用分布式或容器方式执行。原创 2024-12-26 20:15:44 · 1817 阅读 · 0 评论
分享