Airflow 开发DAG,将大量的csv文件并行上传到数据库

Airflow 开发DAG,将大量的csv文件并行上传到数据库,airflow,Airflow,我想开发一个DAG,它可以将大量的csv文件并行上传到Clickhouse,那么有什么建议吗 这是最好的方法,还是有其他方法 现在我有一个DAG的原型,它根据行数从csv创建块,并动态生成DAG任务。(因此每次根据csv文件大小生成不同的任务计数) def生成_块(*args,**kwargs): 打开(kwargs['file_path'],'r')作为f: 读卡器=csv。读卡器(f) #TODO:来自变量的块大小 chunks=列表(gen_chunks(reader,chunk_size

我想开发一个DAG,它可以将大量的csv文件并行上传到Clickhouse,那么有什么建议吗

这是最好的方法,还是有其他方法

现在我有一个DAG的原型,它根据行数从csv创建块,并动态生成DAG任务。(因此每次根据csv文件大小生成不同的任务计数)

def生成_块(*args,**kwargs):
打开(kwargs['file_path'],'r')作为f:
读卡器=csv。读卡器(f)
#TODO:来自变量的块大小
chunks=列表(gen_chunks(reader,chunk_size=10000))
chunks\u count=len(块)
#TODO:来自主\u dag\u id的变量名
系统(f'airflow variables--set-WebsiteStatisticsChunks{chunks\u count})
对于范围内的i(块数):
重置任务状态('chunks_u'+str(i),str(kwargs['execution_date']))
返回块
WebsiteStatisticsChunks=Variable.get(“WebsiteStatisticsChunks”)
info(“当前WebsiteStatisticsChunks值为”+str(WebsiteStatisticsChunks))
对于范围内的索引(int(WebsiteStatisticsChunks)):
dynamicTask=蟒蛇算子(
任务id='chunks'+str(索引),
dag=dag,
提供上下文=True,
python\u callable=做一些工作,
op_args=['chunks',index],
奥普·夸格斯={
'chunks':“{{task_instance.xcom_pull(task_id='create_chunks')}”,
'文件路径':“{{task\u instance.xcom\u pull(task\u id='extract\u cards\u plugin')}”,
“clickhouse\u conn\u id”:“clickhouse\u测试”,
'数据库':'开发测试',
‘表’:‘pg_原始_cms_卡’,
},
)
创建\u块。设置\u下游(dynamicTask)
dynamicTask.set_下游(结束_任务)

我做类似的事情已经有一段时间了,我发现这项技术非常有效。我做类似的事情已经有一段时间了,我发现这项技术非常有效