メイン コンテンツをスキップする 補完的コンテンツへスキップ

Apache Spark BatchのtRuleSurvivorshipプロパティ

これらのプロパティは、[Spark Batch]ジョブのフレームワークで実行されているtRuleSurvivorshipを設定するために使われます。

[Spark Batch]tRuleSurvivorshipコンポーネントは、データクオリティファミリーに属しています。

このフレームワークのコンポーネントは、すべてのビッグデータ対応のTalendプラットフォーム製品およびTalend Data Fabricで使用できます。

基本設定

[Schema] (スキーマ)[Edit schema] (スキーマを編集)

スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。

このコンポーネントには次の2つの読み取り専用カラムがあります。
  • [SURVIVOR] (サバイバー): このカラムのタイプは[Boolean] (ブール値)です。これは、レコードがサバイバー(True)かそうでないか(False)を示します。各グループのサバイバーは1つだけです。

  • [CONFLICT] (競合): 特定のビジネスルールにマッチングするレコードが複数ある場合は、このカラムに表示されます。

サバイバーレコードが作成されると、競合が競合ルールによって解決済みである場合、[CONFLICT] (競合)カラムに競合するカラムが表示されません。

 

[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。

 

[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。

[Group identifier] (グループ識別コード)

必要なグループIDをコンテンツが示しているカラムを、入力スキーマから選択します。

[Rule package name] (ルールパッケージ名)

このコンポーネントで作成するルールパッケージの名前を入力します。

[Generate rules and survivorship flow] (ルールおよびサバイバーシップフローの生成)

このコンポーネントで、ルールパッケージのルールをすべて定義するか、またはその一部を変更したら、アイコンをクリックし、このルールパッケージを、Talend StudioのパースペクティブのIntegrationにある[Repository] (リポジトリー)内の[Metadata] (メタデータ)の下で、[Rules Management] (ルール管理)[Survivorship Rules] (サバイバーシップルール)ノード内に生成します。

情報メモ注:

このステップは、変更を確定し、ランタイムで有効にするために必要なものです。同じ名前のルールパッケージが[Repository] (リポジトリー)内に既に存在する場合は、変更を確定すると上書きされます。それ以外の場合は、実行中に[Repository] (リポジトリー)のルールパッケージが優先します。

情報メモ警告: ルールパッケージ内で、2つのルールに同じ名前を使用することはできません。

[Rule table] (ルールテーブル)

このテーブルに入力して、完全なサバイバー検証フローを作成します。基本的に、各ルールは実行ステップとして定義されます。したがって、このテーブル内で上から下に順番に、これらのルールがシーケンスを形成し、したがって、フローが形成されます。このテーブルのカラムは、以下のとおりです。

Order: サバイバー検証フローを定義するために、作成するルールの実行順序をリストから選択します。順序のタイプは以下の場合があります。
  • [Sequential] (順次): [Sequential] (順次)ルールは、サバイバー検証フローの実行ステップです。たとえば、この[Rule table] (ルールテーブル)の先頭にある最初のルールは最初のステップとなり、このルール以降、2番目の[Sequential] (順次)ルールが2番目のステップとなります。

    先頭に来る最初のルールは、[Sequential] (順次)ルールである必要があります。

  • [Multi-condition] (複数条件): [Multi-condition] (複数条件)ルールは、特定の実行ステップに対する追加のルールです。これは常に、このテーブル内で上にある最後の[Sequential] (順次)ルールに追加されます。また、このステップでは、2つのルールの両方を守ることが必要になります。たとえば、最初の[Sequential] (順次)ルールを定義したら、その下の[Multi-condition] (複数条件)ルールを定義します。すると、両方が最初のステップのルールになります。

  • [Multi-target] (マルチターゲット): 各ステップは、実行されると、特定の[Reference column] (参照カラム)からレコードフィールドの値を検証し、特定の[Target column] (ターゲットカラム)から対応する値をベストとして選択するため、[Multi-target] (マルチターゲット)ルールにより、同じステップにもう1つの[Target column] (ターゲットカラム)を追加することが許可されます。

    このテーブルで、各[Reference column] (参照カラム)[Target column] (ターゲットカラム)を手動で定義する必要があります。

[Rule Name] (ルール名): 作成する各ルールの名前を入力します。このカラムは[Sequential] (順次)ルールでのみ利用できます。[Sequential] (順次)ルールはサバイバー検証フローのステップを定義するからです。ルール名に特殊文字を使用しないでください。特殊文字を使用すると、ジョブが正しく実行されない場合があります。ルール名では大文字と小文字が区別されません。

[Reference column] (参照カラム): 特定のルールを適用する必要のあるカラムを選択します。このコンポーネントのスキーマで定義したカラムです。このカラムは[Multi-target] (マルチターゲット)ルールでは利用できません。このルールは[Target column] (ターゲットカラム)のみを定義するためです。

[Function] (ファンクション): 特定の[Reference column] (参照カラム)を対象に実行する検証オペレーションのタイプを選択します。利用できるタイプは次のとおりです。
  • [None] (なし): 検証オペレーションは実行されません。

  • [Most common] (最も一般的): 各重複グループで最も頻度の高いフィールド値を検証します。

  • [Most recent] (最新)または[Most ancient] (最古): 前者は各重複グループで最新の日付の値を検証し、後者は最古の日付の値を検証します。当該の参照カラムは、日付型にする必要があります。

  • [Most Complete] (最も完全): 属しているレコードに空のフィールドが最も少ない場合に、フィールドを検証します。

  • [Longest] (最長)または[Shortest] (最短): 前者は各重複グループで最長のフィールド値を、後者は最短のフィールド値を検証します。

  • [Largest] (最大)または[Smallest] (最小): 前者は重複グループで最大の数値を検証し、後者は最小の数値を検証します。

  • [Match regex] (正規表現にマッチング): フィールドが[Value] (値)カラム内の正規表現に準拠している場合に、そのフィールドを検証します。

  • [Expression] (式): フィールドが[Value] (値)カラムに入力する式に準拠している場合に、そのフィールドを検証します。式の値はDrools言語で書かれている必要があります。

[Value] (値): [Function] (ファンクション)カラムで選択した[Match regex] (正規表現にマッチング)または[Expression] (式)ファンクションに対応する、目的の式を入力します。

[Target column] (ターゲットカラム): ステップが実行されると、特定の[Reference column] (参照カラム)からレコードフィールド値を検証し、特定の[Target column] (ターゲットカラム)から対応する値をベストとして選択します。このコンポーネントのスキーマカラムから、この[Target column] (ターゲットカラム)を選択します。

[Ignore blanks] (空白を無視する): 空白の値が無視されるようにしたいカラムの名前に対応するチェックボックスをオンにします。

[Define conflict rule] (競合ルールの定義)

競合を解決するルールを[Conflict rule table] (競合ルールテーブル)内に作成できるようにする場合は、このチェックボックスを選択します。

[Conflict rule table] (競合ルールテーブル)

このテーブルに入力して、競合を解決するルールを作成します。このテーブルのカラムは、以下のとおりです。

[Rule name] (ルール名): 作成する各ルールの名前を入力します。ルール名に特殊文字を使用しないでください。特殊文字を使用すると、ジョブが正しく実行されない場合があります。

[Conflicting column] (競合するカラム): ステップが実行されると、特定の[Reference column] (参照カラム)からレコードフィールド値を検証し、特定の[Conflicting column] (競合するカラム)から対応する値をベストとして選択します。このコンポーネントのスキーマカラムから、この[Conflicting column] (競合するカラム)を選択します。

[Function] (ファンクション): 特定の[Conflicting column] (競合するカラム)を対象に実行する検証オペレーションのタイプを選択します。利用できるタイプは、[Rule table] (ルールテーブル)内のタイプと、以下のタイプです。
  • [Fill empty] (空に埋める): このファンクションは、空のフィールドに指定の値を入力します。

  • [Remove duplicate] (複製の削除): このファンクションは、[Conflicting column] (競合するカラム)内に同じフィールド値が生き残った場合に、[Reference column] (参照カラム)内のフィールド値を削除します。

  • [Not match regex] (正規表現にマッチングしない): このファンクションは、フィールドが[Value] (値)カラムに入力した正規表現に準拠しない場合に、そのフィールドを検証します。

  • [Survive as] (生き残る): [Reference column] (参照カラム)からのフィールド値が生き残った場合、このファンクションは[Conflicting column] (競合するカラム)から対応するフィールド値をベストとして選択します。

[Value] (値): [Function] (ファンクション)カラムで選択した[Match regex] (正規表現にマッチング)または[Expression] (式)ファンクションに対応する、目的の式を入力します。

[Reference column] (参照カラム): 特定の競合ルールを適用する必要のあるカラムを選択します。このコンポーネントのスキーマで定義したカラムです。

[Ignore blanks] (空白を無視する): 空白の値が無視されるようにしたいカラムの名前に対応するチェックボックスをオンにします。

[Disable] (無効化): 対応するルールを無効にするには、チェックボックスをオンにします。

詳細設定

[Set the number of partitions by GID] (GIDごとのパーティション数の設定)

各グループを分割して作成するパーティションの数を入力します。

グローバル変数

グローバル変数

ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。

Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。

フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。

変数の詳細は、コンテキストと変数を使用をご覧ください。

使用方法

使用ルール

このコンポーネントは中間ステップとして使用されます。

このコンポーネントは、所属するSpark Batchのコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。

特に明記していない限り、このドキュメンテーションのシナリオでは、標準ジョブ、つまり従来の Talend Data Integrationジョブだけを扱います。

[Spark Connection] (Spark接続)

[Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。
  • Yarnモード(YarnクライアントまたはYarnクラスター):
    • Google Dataprocを使用している場合、[Spark configuration] (Spark設定)タブの[Google Storage staging bucket] (Google Storageステージングバケット)フィールドにバケットを指定します。

    • HDInsightを使用している場合、[Spark configuration] (Spark設定)タブの[Windows Azure Storage configuration] (Windows Azure Storage設定)エリアでジョブのデプロイメントに使用するブロブを指定します。

    • Altusを使用する場合は、[Spark configuration] (Spark設定)タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。
    • オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、tHDFSConfigurationを使用します。

  • [Standalone mode] (スタンドアロンモード): クラスターで使われているファイルシステム(tHDFSConfiguration Apache Spark BatchtS3Configuration Apache Spark Batchなど)に対応する設定コンポーネントを使用します。

    ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。

この接続は、ジョブごとに有効になります。

Databricksと共にSpark 3.Xでジョブを実行する場合は、Databricksクラスターに移動し、Databricksランタイムバージョン10.1 (Apache Spark 3.2.0、Scala 2.12を含む)以降を選択します。それ以前のバージョンはサポートされていません。

Scalaのバージョンが2.12.13以降であることをチェックします。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。