マイクロバッチ処理

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

マイクロバッチ サイズ

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

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

レコード ID の使用

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

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

SOAP Web サービスでマイクロバッチ処理を実行するには、複数のレコードを SOAP リクエストに含めます。例えば、次のリクエストには 2 つのレコードが含まれています。

POST http://spectrum.example.com:8080/soap/ValidateAddress HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Authorization: Basic YWRtaW46YWRtaW4=
Content-Length: 782
Host: config813vm0:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:val="http://www.pb.com/spectrum/services/ValidateAddress">
   <soapenv:Header/>
   <soapenv:Body>
      <val:ValidateAddressRequest>
         <val:input_port>
            <val:Address>
               <val:AddressLine1>1 N. State St.</val:AddressLine1>
               <val:City>Chicago</val:City>
               <val:StateProvince>IL</val:StateProvince>
            </val:Address>
            <val:Address>
               <val:AddressLine1>3001 summer</val:AddressLine1>
               <val:City>stamford</val:City>
               <val:StateProvince>ct</val:StateProvince>
            </val:Address>
         </val:input_port>
      </val:ValidateAddressRequest>
   </soapenv:Body>
</soapenv:Envelope>