# Integrate.ioによるRest APIの並列実行

**Published:** Apr 03, 2026
**Author:** Mark Smallcombe
**Category:** xplenty

## Summary

Integrate.ioが持つ並列実行の特性を活かし、どのようにREST APIへの書き込みを劇的に高速化できるかについて紹介します。


![Integrate.ioによるRest APIの並列実行](https://cdn.buttercms.com/n6mWMtYTiWw6FvoL8svA)


## Content

サードパーティのREST APIに膨大な量のデータをスピーディに書き込まなければならない場合があるかと思います。APIをシングルスレッドで実行するのは非常に時間がかかります。理想としては、データスループットを高速化するために、APIを何度も並列で実行するのが良いでしょう。

Integrate.ioはHadoop MapReduceを使用してサーバーのクラスタ上にコンピューティングタスクを分散させるため、（メモリやディスクの制約により）単一のサーバーでは処理できない大規模なデータセットに理想的な製品です。これにより、ペタバイト級のデータの並列処理が可能になります。

MapReduceの処理は、4つの主要なフェーズに分けられます。

1. Map　キーによってグループ化されたキー・バリューペアです。
2. Shuffle　同じキーを持つすべての値が、Reducerによって一緒に束ねられます。
3. Sort　すべてのレコードはReducerによりキーごとにソートされます。
4. Reduce　Reducerによりデータ値が集計されます、

サードパーティAPIへのデータ書き込みを高速化するために、Curリクエストを並列で実行することができます。**Curl()を実行するSelectコンポーネントの直前にSortコンポーネントを追加することで**、タスクが複数のクラスタノードに渡り分散されるようになります（タスクはMapperではなくReducerによって処理されるため）。 

デフォルトでは、Integrate.ioは単一のHadoop Reducerを使用します(Integrate.ioのシステム変数「***_D**EFAULT_PARALLELISM***」は0に設定されています)が、「***_DEFAULT_PARALLELISM***」はシングルノード（1 node）のHadoopクラスタでは5に設定することができ、5つの並列スレッドを処理できるようになります。

Integrate.ioの変数「 ***_DEFAULT_PARALLELISM***」を増やすのは、Hadoopクラスタが複数のノードを持っている場合にのみ有効です。例えば15の並列スレッドであれば、「***_DEFAULT_PARALLELISM***」は3ノードのクラスタが必要となります。

**Regular Curl Vs Parallel Curl**

サードパーティのAPIが書き込み負荷を処理できることを確認することが重要です。でないと、ジョブがレート制限で失敗します。Intercom、Salesforceなどのサービスは、1分あたりの追加のAPIコールとデータスループットに対して、上のレベルのプランを必要とすることがよくあります。

Integrate.ioのコンポーネントの多くは、データベース接続やワークフローを含め、デフォルトで並列で動作するように設計されています。


## Tags

Japanese, mapreduce, Rest API, 並列実行

## Categories

xplenty