楼主: 时光永痕
937 0

[数据挖掘新闻] 数据工程101 – Apache Airflow入门 [推广有奖]

  • 0关注
  • 14粉丝

svip3

学术权威

12%

(VIP/贵宾)三级

23%

威望
0
论坛币
26 个
通用积分
49.7565
学术水平
4 点
热心指数
4 点
信用等级
4 点
经验
34070 点
帖子
2731
精华
0
在线时间
316 小时
注册时间
2020-7-21
最后登录
2024-4-19

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据工程101 – Apache Airflow入门
工作自动化在任何行业中都扮演着关键角色,并且是实现功能效率的最快方法之一。但是,我们中的许多人都无法理解如何使某些任务自动化,并最终一次又一次地手动执行相同的操作。
Apache Airflow
我们大多数人必须处理不同的工作流程,例如从多个数据库收集数据,对其进行预处理,上载和报告。因此,如果我们的日常任务只是在定义的时间自动触发,并且所有流程都按顺序执行,那就太好了。Apache Airflow就是这样一种工具,对您非常有帮助。无论您是数据科学家,数据工程师还是软件工程师,您都一定会发现此工具很有用。
在本文中,我们将讨论Apache Airflow,如何安装它以及创建示例工作流程并使用Python对其进行编码。
目录
什么是Apache Airflow?
Apache Airflow的功能
安装步骤
Apache Airflow的组件
网络服务器
排程器
执行者
元数据库
用户界面
定义您的第一个DAG
尾注
什么是Apache Airflow?
Apache Airflow是一个工作流引擎,可以轻松地计划和运行复杂的数据管道。这将确保数据管道中的每个任务将以正确的顺序执行,并且每个任务都将获取所需的资源。
它将为您提供令人惊叹的用户界面,以监视和修复可能出现的任何问题。
Apache Airflow徽标
Apache Airflow的功能
易于使用:如果您具有一些python知识,则可以在Airflow上进行部署。
开源:它是免费的,并且有很多活跃用户。
强大的集成:它将为您提供随时可用的操作员,以便您可以使用Google Cloud Platform,Amazon AWS,Microsoft Azure等。
使用标准Python进行编码:您可以使用python创建具有完全灵活性的简单到复杂的工作流。
惊人的用户界面:您可以监视和管理您的工作流程。它将允许您检查已完成和正在进行的任务的状态。
安装步骤
让我们开始安装Apache Airflow。现在,如果您的系统中已经安装了pip,则可以跳过第一个命令。要安装pip,请在终端中运行以下命令。
须藤apt-get install python3-pip
下一次气流需要在本地系统上运行。默认情况下,?/ airflow是默认位置,但是您可以根据需要进行更改。
出口 AIRFLOW_HOME =?/气流
现在,使用pip使用以下命令安装apache气流。
pip3安装apache-airflow
Airflow需要数据库后端来运行您的工作流程并进行维护。现在,要初始化数据库,请运行以下命令。
气流initdb
我们已经讨论过气流具有惊人的用户界面。要启动Web服务器,请在终端中运行以下命令。默认端口为8080,如果您将该端口用于其他用途,则可以对其进行更改。
气流网络服务器-p 8080
现在,在另一个终端上使用以下命令启动气流计划。它会一直运行并监视您的所有工作流程,并按照您的分配触发它们。
气流调度器
现在,在airflow目录中创建一个名为dags的文件夹,您将在其中定义工作流程或DAG,然后打开Web浏览器并打开:http:// localhost:8080 / admin /,您将看到类似以下内容:
Apache Airflow DAG
Apache Airflow的组件
DAG:这是有向无环图–您要运行的所有任务的集合,有组织并显示了不同任务之间的关系。它是在python脚本中定义的。
Web服务器:这是在Flask上构建的用户界面。它允许我们监视DAG的状态并触发它们。
元数据数据库:Airflow将所有任务的状态存储在数据库中,并从此处进行工作流的所有读/写操作。
调度程序:顾名思义,此组件负责调度DAG的执行。它检索并更新数据库中任务的状态。
用户界面
现在,您已经安装了Airflow,让我们快速浏览一下用户界面的某些组件。
达格视图
它是用户界面的默认视图。这将列出系统中存在的所有DAGS。它将为您提供DAGS的摘要视图,例如特定DAG成功运行了多少次,失败了多少次,最后一次执行时间以及一些其他有用的链接。
图形视图
在图形视图中,您可以可视化工作流程的每个步骤及其相关性和当前状态。您可以使用不同的颜色代码来检查当前状态,例如:
Apache Airflow图形视图
Apache Airflow-Lakshay
树视图
树形视图还表示DAG。如果您认为管道执行所需的时间比预期的要长,那么可以检查哪个部分需要花费较长的时间才能执行。
树视图
任务持续时间
在此视图中,您可以比较以不同时间间隔运行的任务的持续时间。您可以在此处优化算法并比较性能。
DAG任务持续时间

在此视图中,您可以快速查看用于生成DAG的代码。

定义您的第一个DAG
让我们开始定义第一个DAG。
在本部分中,我们将创建一个工作流程,第一步是在终端上打印“获取实时板球分数”,然后使用API??在终端上打印实时分数。让我们首先测试API,为此,您需要使用以下命令安装cricket-cli库。
sudo pip3安装板球cli
现在,运行以下命令并获取分数。
板球比分
根据您的互联网连接情况,可能需要花费几秒钟的时间,并将返回如下所示的输出:
DAG定义
导入库
现在,我们将使用Apache Airflow创建相同的工作流程。该代码将完全在python中定义DAG。让我们从导入所需的库开始。我们将仅使用BashOperator,因为我们的工作流程要求仅运行Bash操作。
定义DAG参数
对于每个DAG,我们需要传递一个参数字典。这是您可以传递的一些参数的描述:
owner:工作流所有者的名称,应为字母数字并且可以带有下划线,但不能包含任何空格。
depends_on_past:如果每次运行工作流时,数据都取决于过去的运行,则将其标记为True,否则将其标记为False。
start_date:工作流程的开始日期
email:您的电子邮件ID,以便任何任务由于任何原因失败时都可以接收电子邮件。
retry_delay:如果任何任务失败,则应等待多少时间才能重试。
定义DAG
现在,我们将创建一个DAG对象并传递dag_id,它是DAG的名称,并且应该是唯一的。传递我们在上一步中定义的参数,并添加描述和schedule_interval,它们将在指定的时间间隔后运行DAG
定义任务
我们的工作流程将有2个任务:
打印:在第一个任务中,我们将打印“获得实时板球比分!!!” 在终端上使用echo命令。
get_cricket_scores:在第二个任务中,我们将使用已安装的库打印实时板球比分。
现在,在首先定义任务时,我们需要为任务选择合适的运算符。这两个命令都是基于终端的,因此我们将使用BashOperator。
我们将传递task_id,它是任务的唯一标识符,您将在DAG的Graph View的节点上看到该名称。传递您要运行的bash命令,最后传递您要将此任务链接到的DAG对象。
最后,通过在任务之间添加“ >>”运算符来创建管道。
在Web UI中更新DAGS
现在,刷新用户界面,您将在列表中看到DAG。打开每个DAG左侧的切换开关,然后触发DAG。
Web UI中的DAG
单击DAG并打开图形视图,您将看到类似这样的内容。工作流中的每个步骤都将在单独的框中,一旦成功完成,其边框将变为深绿色。
单击节点“ get_cricket分数”以获取有关此步骤的更多详细信息。您会看到类似这样的内容。
细节
现在,单击查看日志以查看代码的输出。
Apache Airflow-输出
而已。您已经在Apache Airflow中成功创建了第一个DAG。
题库
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:apache 数据工程 flow LOW APA

已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
Nicolle + 100 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 100  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

本帖被以下文库推荐

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-19 20:22