入力

Import to Hub ステージでは、データフローに 2 つのチャンネルを含める必要があります。1 つはエンティティ ポート (上のポート) に入るエンティティのデータを渡すもので、もう 1 つは関連性ポート (下のポート) に入る関連性のデータを渡すものです。この要件は、2 つのソース ステージ (それぞれが 1 つの入力ファイルを含む) によって実現することも、複数のソース ステージから Record Combiner ステージにデータを渡し、最終的に 2 つのストリームにすることもできます。あるいは、1 つのソース ファイルからデータを Conditional Router ステージまたは Splitter ステージに送って、2 つのストリームに出力することもできます。最終的にエンティティ データのチャネルと関連性データのチャネルが Import to Hub ステージに入るのであれば、どの方法を用いても構いません。

エンティティ データ

エンティティ ポートに入るデータには、エンティティのタイプ情報と ID 情報の両方を含める必要があります。タイプ フィールド ("Person") と ID フィールド ("Bob") を持つことも、ID フィールドだけを持ち、タイプ情報と ID 情報をコロンで区切って結合する ("Person:Bob") こともできます。例えば、次のようなカンマ区切りデータのファイルがあるとします。タイプ フィールドからはエンティティが人物と場所であることがわかり、ID フィールドには人物と場所の名前が格納されています。

あるいは、タイプと ID の両方を結合した単一のフィールドを入力ファイルに含めることができます。

注: タイプと ID のデータを含むフィールドの名前を実際に "Type" と "ID" にする必要はありません。どのようなフィールド名でも許容されます。

関連性データ

関連性ポートに入るデータには、ソース タイプ、ソース ID、ターゲット タイプ、およびターゲット ID を識別するフィールドと、ソースとターゲットの関連性を識別するラベルを含める必要があります。すべてのソースおよびターゲット エンティティの情報は、エンティティ ポートに入るエンティティを参照する必要があることに注意してください。関連性データには、その関連性に関するプロパティを含めることもできます。例えば、次のようなデータのファイルがあるとします。この場合、SourceType フィールドからは、すべてのソースが人物であることがわかり、TargetType フィールドからは、ターゲットが人物と場所であることがわかります。SourceID フィールドにはすべてのソースの名前が格納され、TargetID フィールドには人物と場所の名前が格納されています。Label フィールドは、関連性を識別します。この場合は "works with"、"works at"、または "lives at" です。

ソート要件

Import to Hub ステージでは、入力データを特定の方法でソートする必要があります。エンティティの入力ファイルは、まずタイプで、次に ID で、昇順にソートする必要があります。前述のエンティティ データには必要なフィールドが含まれていますが、正しくソートされていません。Import to Hub データフローが正しく実行されるよう、このエンティティ データを次のようにソートする必要があります。
結合フィールドの場合は次のようになります。
関連性の入力ファイルも同様にソートする必要があります。関連性データでタイプと ID の両方が同じフィールドに含まれる場合、入力ファイルを次のように昇順でソートする必要があります。
  • ソース タイプ/ID
  • ターゲット タイプ/ID
  • ラベル
  • ユニーク ID (オプション)
関連性データでタイプ情報が個別のフィールドに含まれる場合は、次のフィールドを分けて、入力ファイルを昇順でソートする必要があります。
  • ソース タイプ
  • ソース ID
  • ターゲット タイプ
  • ターゲット ID
  • ラベル
  • ユニーク ID (オプション)
エンティティ データと同様に、前述の関連性データには必要なフィールドが含まれていますが、正しくソートされていません。Import to Hub データフローが正しく実行されるよう、この関連性データを次のようにソートする必要があります。
結合フィールドの場合は次のようになります。