マイクロバッチ処理

マイクロバッチ処理は、サーバーに対する 1 回のリクエストに複数のレコードを含める手法です。各レコードを個別にリクエストする代わりに、リクエストの中に複数のレコードを含めることにより、サービスによってレコードの大規模コレクションを処理する場合のパフォーマンスを大幅に向上させることができます。Spectrum™ Technology Platformでは、REST および SOAP Web サービスと、Client SDK に対するマイクロバッチ処理がサポートされています。

マイクロバッチ サイズ

1 回のリクエストに含めることのできるレコード数に制限はありませんが、一般的に 1 回のマイクロバッチで送信するレコード数を 50 ~ 100 にすると最良のパフォーマンスが得られます。さまざまなサイズのマイクロバッチをテストして、お使いの環境における最適なマイクロバッチ サイズを確認することをお勧めします。各入力レコードのレスポンスで、複数のレコードが得られる場合もあることに注意してください。例えば、マイクロバッチに 10 件の住所を含めて住所検証を実行する場合、各住所が 2 件の検証済み住所候補に一致したとすると、レスポンスでは 10 件ではなく 20 件のレコードが得られます。

Spectrum™ Technology Platformに対するリクエストで、マイクロバッチと複数スレッドの両方を使用する場合は注意が必要です。各スレッドのマイクロバッチ サイズが大きすぎると、システムは複数スレッドに対応できない可能性があります。

レコード ID の使用

マイクロバッチの各レコードに ID を割り当てると、リクエスト内のレコードとレスポンスで返されるレコードを対応付けることができて便利かもしれません。これを行うには、ユーザ フィールドを使用します。ユーザ フィールドの詳細については、「REST インターフェイス」を参照してください。

REST におけるマイクロバッチ処理

REST Web サービスでマイクロバッチ処理を実行するには、複数のレコードを XML または JSON としてリクエスト本体に含め、POST メソッドを使用してリクエストを送信します。Spectrum™ Technology PlatformWeb サービスに POST リクエストを送信する詳しい方法については、「JSON POST リクエスト」と「XML POST リクエスト」を参照してください。

例えば、次のリクエストでは 2 つのレコードが XML としてリクエスト本体に含まれています。

POST http://spectrum.example.com:8080/rest/ValidateAddressPOST/results.xml HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/xml
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 533
Host: config813vm0:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<ValidateAddressPOSTRequest xmlns:svc="http://www.pb.com/spectrum/services/ValidateAddressPOST">
    <svc:Input>
       <svc:Row>
          <svc:AddressLine1>3001 Summer</svc:AddressLine1>
          <svc:City>Stamford</svc:City>
          <svc:StateProvince>CT</svc:StateProvince>
       </svc:Row>
       <svc:Row>
          <svc:AddressLine1>33 west monroe</svc:AddressLine1>
          <svc:City>Chicago</svc:City>
          <svc:StateProvince>IL</svc:StateProvince>
       </svc:Row>
    </svc:Input>
</ValidateAddressPOSTRequest>
注: サービスにおける POST のサポートは、デフォルトでは有効になっていません。これらのサービスでマイクロバッチ処理を実行する場合は、POST サポートを有効にする必要があります。詳細については、REST Web サービスに対する POST サポートの追加を参照してください。