静态多任务
造点假数据
from faker import Faker
import pymongo
faker = Faker(locale='zh_CN')
client = pymongo.MongoClient("mongodb://localhost:27018")
coll = client.get_database("test_db").get_collection("10w")
docs = [{
"username": faker.language_name(), "age": faker.random_int(0, 100), "email": faker.email(), "ipv4": faker.ipv4()} for i in range(100000)]
coll.insert_many(docs)
编写DAG
从数据集合中读取10w条数据,再用一个任务去处理这些数据,假设每条数据的处理时间是0.0005秒。
import time
from datetime import datetime
from airflow import DAG
from airflow.models.taskinstance import TaskInstance
from airflow.operators.python import PythonOperator, task
from airflow.providers.mongo.sensors.mongo import MongoHook
default_args = {
'owner': 'airflow',
}
with DAG(
'test_static_mongo',
default_args=default_args,
description='connect MongoDB tutorial',
schedule_interval=None,
start_date=datetime(2021, 1, 1),
catchup=False,
tags=['test'],
) as dag:
def read():
# 读取指定的连接id,并与数据库建立连接
conn = MongoHook(conn_id=

本文介绍如何使用Airflow结合MongoDB实现静态与动态多任务处理,通过动态生成任务数来适应不同规模的数据处理需求。
最低0.47元/天 解锁文章
280

被折叠的 条评论
为什么被折叠?



