2017-04-07 13 views
0

私はcfgで私は並列性を設定することができます知っているが、タスクごとに、または少なくともダッグごとにそれを行う方法はありますか?タスクごとの並列性を指定しますか?

DAG1 =

task_id: 'download_sftp' 
parallelism: 4 #I am fine with downloading multiple files at once 


task_id: 'process_dimensions' 
parallelism: 1 #I want to make sure the dimensions are processed one at a time to prevent conflicts with my 'serial' keys 

task_id: 'process_facts' 
parallelism: 4 #It is fine to have multiple tables processed at once since there will be no conflicts 

DAG2(別ファイル)=

task_id: 'bcp_query' 
parallelism: 6 #I can query separate BCP commands to download data quickly since it is very small amounts of data 

答えて

-1

は、Web GUIを使用してタスクのプールを作成し、そのプールを使用するために特定のタスクを指定することで、実行の並列処理を制限することができます。

ご覧ください:https://airflow.apache.org/concepts.html#pools

+0

さらにプールについて読むことができますか?文字列としてプールに名前を付けるだけで、気流によって魔法のようにすべてが処理されますか?私はこの分野に枝分かれしていないので、何が起こっているのかを理解したいと思っています。私が避けたいのは、2つのタスクがディメンションテーブルなどを更新して競合を引き起こすことです(データをロードするためにpostgresとpsycopg2 COPY EXPERTを使用しています)。したがって、ディメンションテーブルの更新については、各ソースで一度に1つずつ実行するようにしたいと思いますが、SFTPのダウンロードとファクトテーブルの読み込みでは、一度にいくつかのプロセスを実行できます。 – trench

関連する問題