Airflow:如何在多个数据库上运行相同的查询

时间:2018-04-02 23:36:19

标签: mysql python-3.x airflow

我需要在具有相同架构的多个数据库(10K)上执行SQL查询,并使用气流将结果插入到单独的主机中。

您是否知道如何以最有效的方式为此类项目设计DAG?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

Airflow中每个数据库一个连接 然后定义这些连接id字符串的列表 然后在每个连接字符串上重复相同任务的任务定义。

E.G。使用MysqlOperator(另请参阅MssqlOperator或PostgresOperator)

conns = ('db1','db2','db3')
tasks = [MysqlOperator("""
show tables;
""",
                       task_id="update_" + conn,
                       mysql_conn_id=conn,
          ) for conn in conns]