---
title: "映写作業員"
slug: "projection-worker"
abstract: "プロジェクションワーカーの概要。これはデータを表形式に投影し、その結果をCortex Processing Engine Storageデータベースに保存する分散ワーカーです。"
---
# 映写作業員

プロジェクションワーカー(ProjectionWorker)は分散ワーカーであり、データを表形式に投影し、その結果をCortex Processing Engine Storageデータベース(ストレージデータベース)に保存する責任を負います。プロジェクションワーカーのデフォルトの用途には、接触データやインタラクションデータを機械学習モデルの学習に使用できるフォーマットに投影することが含まれます。

プロジェクションワーカーを使用するには、プロジェクションワーカーのオプション辞書とデータソースを含むプロジェクションワーカータスクを登録してください:

// Syntax example only
Guid taskId = await taskManager.RegisterDistributedTaskAsync(
 new ContactDataSourceOptionsDictionary(new ContactExpandOptions(), 5, 10),
 new ContactProjectionWorkerOptionsDictionary(typeof(SampleModel).AssemblyQualifiedName, TimeSpan.MaxValue, "SampleSchemaName", new Dictionary<string, string> { "TestCaseId" = "Id" }),
 new TimeSpan(0, 10, 0));

> !重要マージワーカータスクは、プロジェクションワーカータスクの後にタスクチェーンに登録されるべきです。

## プロジェクションワーカーオプション辞書

予測労働者のオプション辞書は次のように定義しています:

-   Sitecore.Processing.Engine.ML.Abstractions.IModelの実装例であり、以下が含まれます:
    -   投影自体が、投影データの構造を決定するものです。

> !注注:機械学習以外の環境で投影を使っていても、そのIModelが必要です。このインターフェースに含まれるトレーニングや評価手法を必要としない場合は、空の結果を返すことができます。

基本ProjectionWorkerOptionsDictionaryクラスを継承するデフォルトのオプション辞書は2つあります:

-   ContactProjectionWorkerOptionsDictionary
-   InteractionProjectionWorkerOptionsDictionary

カスタムオプション辞書を定義してProjectionWorkerOptionsDictionaryを継承することもできます。例えば、注文のデータベースからデータを投影したい場合などです。

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

プロジェクションワーカーは分散型ワーカーであり、データソースが必要です。

## 投影とマージを組み合わせて使う

複数の投影ワーカーは単一の投影タスクを並行して作業できます。ワーカーは別々のテーブルに書き込み、投影タスクが完了したらそれらを1つのテーブルに統合する必要があります。マージは別のマージワーカー(MergeWorker)によって行われ、マージタスクも登録せずにプロジェクションタスクを登録することはほとんどありません。