Apache Spark BatchのtKuduOutputプロパティ - Cloud - 8.0

Kudu

Version
Cloud
8.0
Language
日本語
Product
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > DBコンポーネント > Kudu
データガバナンス > サードパーティーシステム > DBコンポーネント > Kudu
データクオリティとプレパレーション > サードパーティーシステム > DBコンポーネント > Kudu

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

Spark BatchtKuduOutputコンポーネントは、データベースファミリーに属しています。

このフレームワーク内のコンポーネントは、ビッグデータ対応のサブスクリプションTalend 製品すべて、およびTalend Data Fabricで利用できます。

基本設定

[Use an existing configuration] (既存の設定を使用)

定義済みの接続の詳細を再利用する場合は、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストで目的の接続コンポーネントを選択します。

[Server connection] (サーバー接続)

[+]ボタンをクリックして、使う必要があるKuduマスターと同じ数の行を追加します。各行はマスター用です。

次に、使うKuduサービスのマスターノードの場所とリスニングポートを入力します。

このコンポーネントは、ClouderaにインストールされたApache Kuduサービスのみをサポートします。

Apache KuduとClouderaの間の互換性情報については、Clouderaの関連ドキュメンテーション(Compatibility Matrix for Apache Kudu)をご覧ください。

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

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

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

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

 
注: Kuduテーブルのスキーマは、1つ以上のカラムで構成されるプライマリキーを宣言する必要があります。これらのカラムはNULL不可である必要があり、ブール型、浮動小数点型、または倍精度型であってはなりません。

スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。

  • [View schema] (スキーマの表示): スキーマのみを表示する場合は、このオプションを選択します。

  • [Change to built-in property] (組み込みのプロパティに変更): ローカルで変更を行うためにスキーマを組み込みに変更する場合は、このオプションを選択します。

  • [Update repository connection] (リポジトリー接続をアップデート): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。

    変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーのコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

[Kudu table] (Kuduテーブル)

作成、変更、または削除するテーブルの名前を入力します。

[Action on table] (テーブルでのアクション)

定義されたテーブルに対して実行する操作を選択します。

  • [None] (なし): 操作は行われません。

  • [Drop and create table] (ドロップしてテーブルを作成): テーブルが削除され、再作成されます。

  • [Create table] (テーブルを作成): テーブルが存在しないため、作成されます。

  • [Create table if not exists] (テーブルが存在しない場合は作成): テーブルが存在しない場合は作成されます。

  • [Drop table if exist and create] (テーブルが存在する場合はドロップして作成): テーブルが既に存在する場合は削除されて再作成されます。

[Action on data] (データでのアクション)

定義されたテーブルのデータに対して実行する操作を選択します。

  • [Insert] (挿入): テーブルに新しいエントリーを追加します。重複が見つかると、ジョブは停止します。

  • [Update] (アップデート): 既存のエントリーが変更されます。

  • [Upsert]: 指定された参照を使用してレコードをアップデートします。レコードが存在しない場合は、新しいレコードが挿入されます。

  • [Delete] (削除): 入力フローに対応するエントリーを削除します。

[Replicas] (レプリカ)

このテーブルのレプリカファクターを二重引用符なしで入力して、テーブルとそのタブレットのコピーを作成します。

KuduタブレットとKudu複製ポリシーの詳細は、Distribution and Fault Toleranceをご覧ください。

[Hash partitions] (ハッシュパーティション)

Kuduテーブルを作成する時は、このテーブルのパーティション方法を定義することをお勧めします。デフォルトでは、テーブルはパーティション分割されていません。

  1. [+]ボタンをクリックして、どの行がハッシュパーティション分割されているかを基準にカラムを追加します。たとえば、hostカラムとmetricカラムです。

    これらのカラムは、データおよびtKuduOutputで定義したスキーマに存在する必要があります。

  2. [Number of buckets] (バケット数)には、パーティションの保管に使用するバケットの数を二重引用符なしで入力します。これらのバケットはオンザフライで作成されます。

ランタイムに、行はこれらのバケットの1つにハッシュ値によって分散されます。この [Hash partitions] (ハッシュパーティション)テーブルを空のままにすると、テーブルの作成中にハッシュパーティション分割は適用されません。

Kuduでのハッシュパーティションの詳細は、Hash partitioningをご覧ください。

[Range partitions] (範囲パーティション)

Kuduテーブルを作成する時は、このテーブルのパーティション方法を定義することをお勧めします。デフォルトでは、テーブルはパーティション分割されていません。

  1. [+]ボタンをクリックして、どの行が連続セグメントにパーティション分割されているかを基準にプライマリキーカラムを追加します。たとえばtimeカラムです。

    これらのカラムは、データおよびtKuduOutputで定義したスキーマに存在する必要があります。

  2. [N. Partition] (N.パーティション)に、作成するパーティションのID番号として使う数字を二重引用符なしで入力します。たとえば、1を入力してパーティション1を作成します。
  3. [Lower boundary] (下限)[Upper boundary] (上限)に、行を分割する境界を入力します。上限は除外され、境界間のデータ(下限を含む)のみがKuduテーブルに書き込まれます。

    たとえば、[Date] (日付)タイプのtimeカラムに基づいてデータをパーティション分割していて、時間データの形式がyyyy-mm-ddである場合は、二重引用符なしでTalendDate.parseDate("yyyy-MM-dd", "2016-01-01")と入力することにより、下限を2016-01-01に設定できます。また、同じようにして上限を2018-01-01に設定できます。このように設定すると、2つの境界の間で日付を持つ行のみがこのパーティションに入ります。

ランタイムにこれらのカラムの行は、この[Range partitions] (範囲パーティション)テーブルに追加したカラムの値を使って分散されます。このテーブルを空のままにすると、テーブルの作成中には範囲パーティション分割が適用されません。

Kuduでのハッシュパーティションの詳細は、Range partitioningをご覧ください。

[Die on error] (エラー発生時に強制終了)

このチェックボックスをオンにすると、エラー発生時にジョブの実行が停止されます。

使用方法

使用ルール

このコンポーネントは終了コンポーネントとして使用され、入力リンクを必要とします。

[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になるため、https://help.talend.com/access/sources/content/topic?pageid=thdfsconfiguration&mapid=hdfs&afs:lang=ja&EnrichVersion=8.0を使用します。

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

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

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