Kev*_*sen 8 python docker airflow
这个问题与理解有关 DockerOperator 和 Apache Airflow 的概念有关,所以我不确定这个站点是否正确。如果没有,请告诉我可以在哪里发布。
情况如下:我正在使用 Windows 笔记本电脑,我开发了一个非常基本的 ETL 管道,它从某个服务器中提取数据,并使用 Apache-Airflow 按计划将未处理的数据写入 MongoDB。我有一个docker-compose.yml包含三个服务的文件:MongoDB 的 mongo 服务、作为 MongoDB 管理工具的 mongo-express 服务、Apache-Airflow 的网络服务器服务和作为 Apache-Airflow 数据库后端的 postgres 服务。
到目前为止,我已经在函数中开发了一些 Python 代码,这些函数正在被 Airflow 实例使用 PythonOperator 调用。由于使用 PythonOperator 进行调试非常困难,因此我现在想尝试使用 DockerOperator。我一直在关注本教程,该教程声称使用 DockerOperator,您可以独立于操作系统开发源代码,由于 Docker 的概念“一次构建,随处运行”,代码稍后将在其上执行。
我的问题是我没有完全理解使用 DockerOperator 运行代码所需的所有必要步骤。在教程中,我有以下关于任务开发和部署的问题:
感谢您的时间,我非常感谢!
小智 6
通常,您将拥有一个处理一种类型任务的 Docker 映像。因此,对于任何一个管道,您可能会使用各种不同的 Docker 镜像,每一步使用一个不同的镜像。
关于您的问题,这里有几个注意事项,特别是关于部署的问题。
DockerOperator默认为latest在图像上的标签。公开容器中的入口点以使用 DockerOperator 调用和参数化任务。==> 你是怎么做到的?
如果你已经构建了你的图像,并且可以用于 Airflow,你只需要DockerOperator像这样创建一个任务:
dag = DAG(**kwargs)
task_1 = DockerOperator(
dag=dag,
task_id='docker_task',
image='dummyorg/dummy_api_tools:v1',
auto_remove=True,
docker_url='unix://var/run/docker.sock',
command='python extract_from_api_or_something.py'
)
Run Code Online (Sandbox Code Playgroud)
我建议花一些时间来了解 Docker。一开始有点困难,但它是一个非常有价值的工具,特别是对于像 Airflow 这样的系统。
| 归档时间: |
|
| 查看次数: |
4918 次 |
| 最近记录: |