---
title: "労働者"
slug: "workers"
abstract: ""
---
# 労働者

ワーカーは、外部データソースから一時的なストレージにデータを投影したり、訓練済みモデルに対してコンタクトを評価したりするなどのタスクを実行する責任があります。ワーカーはタスクエージェントによって呼び出され、これらは並列に実行されます。

開発者として、あなたは以下のようなことができます:

-   既存のワーカーが処理するタスクやタスクの連鎖を登録します。
-   カスタムワーカーを作成しましょう。

## 労働者の種類

労働者には分散型労働者と延期労働者の2種類があります。

機械学習モデルの訓練のような複雑なビジネスシナリオでは、分散ワーカーとディファードワーカーの組み合わせが特定の順序で一連のタスクを完了します。

### 分散型労働者

分散型ワーカーは外部データソースからバッチ単位でデータを読み取り、そのデータを機械学習に適した形式に投影するなどの処理を行います。データセットはカーソルに分割され、複数のエージェントが並行して処理されるため、複数のワーカーが同じタスクに取り組んでいます。分散ワーカーの例には以下があります:

-   映写作業員(ProjectionWorker)

> !重要外部システムは並列読み取りをサポートしなければなりません。並列読み取りをサポートしていない場合、分散ワーカーを使ってデータ抽出を行わないでください。代わりにディフェアドワーカーを使用してください。

分散ワーカーのその他の用途には以下があります:

-   大量の連絡先を更新するビジネスロジックの実行。例えば、訓練済みモデルに対して連絡先を評価し、ファセットを更新するなどです。
-   xDBコレクションデータベースからデータをレポートデータベースに集約すること。

> !注処理を行わずにxConnectにデータをインポートする場合は、処理エンジンではなくData Exchange Frameworkを使用してください。

### 延期労働者

ディファードワーカーは単一のタスクエージェントによって一度だけ呼び出され、デフォルトではデータソースを受け入れません。デファードワーカーの例には以下があります:

-   マージワーカー(MergeWorker)
-   トレーニングワーカー(TrainingWorker)

延期労働者のその他の用途には以下があります:

-   訓練済みのモデルを他のシステムにエクスポートすること。
-   すでに訓練済みのモデルをインポートすること。
-   計算をしている。
-   並列読み取りをサポートしていないシステムからデータをインポートすること。

## ワーカーオプション辞書

すべてのワーカーは、ワーカーの種類に応じてDeferredWorkerOptionsDictionaryまたはDistributedWorkerOptionsDictionaryを継承するオプション辞書オブジェクトを受け入れます。タスク登録時にはワーカーオプション辞書を入力する必要があります。

オプション辞書は主に2つの目的を持っています。

-   そこには、タスクを処理するべきワーカーの完全限定型名が含まれています。
-   作業者がタスクを完了するために必要なすべての情報を含みます。例えば、 ContactTrainingWorkerOptions クラスには以下の情報が含まれています:
    -   トレーニングにどのモデルを使うか
    -   一時的なストレージでトレーニングデータをどこで見つけるか
    -   トレーニングデータスキーマ

### デフォルトのワーカーオプション辞書

すべてのデフォルトワーカーは、1つ以上の強型労働者オプション辞書によってマッチングされます。以下の表は、いくつかのデフォルトワーカーおよびマッチングワーカーオプション辞書を一覧にしています。

労働者

労働者の選択肢

TrainingWorker

InteractionTrainingWorkerOptionsDictionary  
  
ContactTrainingWorkerOptionsDictionary

MergeWorker

MergeWorkerOptionsDictionary

ProjectionWorker

InteractionProjectionWorkerOptionsDictionary  
  
ContactProjectionWorkerOptionsDictionary

> !注タスク登録時には、専門的なオプション辞書を使用することが推奨されます。ただし、技術的には、DeferredWorkerOptionsDictionaryまたはDistributedWorkerOptionsDictionaryの基本クラスを使って任意のワーカーのタスクを登録します。

## 分散労働者データソース

分散型ワーカーは、ワーカーオプション辞書に加えてデータソースオプション辞書も受け入れます。分散タスクを登録する際には、データソースを指定する必要があります。

xConnectからデータ抽出または検索を通じてデータを取得するデフォルトのデータソースは4つあります:

データソース

データソースオプション辞書

ContactDataSource

ContactDataSourceOptionsDictionary (データ抽出を使用)

InteractionDataSource

InteractionDataSourceOptionsDictionary (データ抽出を使用)

ContactSearchDataSource

ContactSearchDataSourceOptionsDictionary (xConnect検索を使用)

InteractionSearchDataSource

InteractionSearchDataSourceOptionsDictionary (xConnect検索を使用)

すべてのxConnectデータソースは、拡張オプションとサンプリングに対応しています。また、自分でデータソースを作成することも可能です。

## モデルラッパー

一部のワーカーは、タスク登録時にワーカーオプション辞書の一部として [モデルラッパー](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/model-wrappers.html "Model wrappers") を渡すことを求めます。モデルラッパーは次のように定義します:

-   [データ投影ロ](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/projection-framework.html "Projection framework") ジック
-   トレーニングロジック(機械学習に特化)
-   評価ロジック(機械学習に特化)

## サンプルおよびベースワーカー

以下のベースワーカーは引き継ぎ、あなたのビジネスシナリオに合わせて適応できます:

-   評価担当者

> !注デフォルトの評価ワーカーは存在しません。例えば、xConnectの側面にデータを書き込むなどの評価の結果は実装によって異なるためです。