# Apache Spark BatchのtHiveOutputプロパティ

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

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

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

情報メモ重要: Talendは、複雑なデータ型(配列、ストラクチャー、マップなど)のスキーマのインポートをサポートしていません。

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Hive storage configuration] (Hiveストレージ設定) | Hiveに接続するための設定の詳細をSparkに使用させるtHiveConfigurationコンポーネントを選択します。<br><br>Spark UniversalでSparkジョブをYarn Clusterモードで実行している場合、このプロパティは使用できません。Hiveのストレージ設定は、Hadoop設定JARファイル内のXMLファイルから直接取得されます。詳細は、[Spark UniversalでYarnクラスター接続パラメーターを定義](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/defining-yarn-cluster-connection-parameters-with-spark-universal)をご覧ください。 |
| [HDFS Storage configuration] (HDFSストレージ設定) | 特定のHDFSシステムに接続し、依存するjarファイルをこのHDFSシステムに転送するために、設定の詳細を取ってSparkで使用するtHDFSConfigurationコンポーネントを選択します。このフィールドは、オンプレミスのディストリビューションを使用している場合にのみ該当します。<br><br>Spark UniversalでSparkジョブをYarn Clusterモードで実行している場合、このプロパティは使用できません。HDFSのストレージ設定は、Hadoop設定JARファイル内のXMLファイルから直接取得されます。詳細は、[Spark UniversalでYarnクラスター接続パラメーターを定義](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/defining-yarn-cluster-connection-parameters-with-spark-universal)をご覧ください。 |
| [Schema] (スキーマ)および[Edit schema] (スキーマを編集) | <ul> <li> <p>スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語の<kbd>line</kbd>を避けます。</p> <p>スキーマを変更するには<span>[Edit schema] (スキーマを編集)</span>をクリックします。現在のスキーマが<span>リポジトリー</span>タイプの場合は、3つのオプションを利用できます。</p> <ul> <li> <p> <span>[View schema] (スキーマを表示)</span>: スキーマのみを表示する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Change to built-in property] (組み込みのプロパティに変更)</span>: ローカルで変更を行うためにスキーマを<span>組み込み</span>に変更する場合は、このオプションを選択します。</p> </li> <li> <p> <span>[Update repository connection] (リポジトリー接続をアップデート)</span>: リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。</p> <p>変更を現在のジョブにのみ反映する場合は、変更後、<span>[No] (いいえ)</span>を選択し、<span>[Repository Content] (リポジトリーコンテンツ)</span>ウィンドウで再びこのスキーマのメタデータを選択します。</p> </li> </ul> </li> <li> <p> <span>[Built-in] (組み込み)</span>: そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。</p> </li> </ul> |
| [Output source] (出力ソース) | tHiveOutputに変更させる出力データのタイプを選択します。<br><br><ul> <li> <p> <span>[Hive table] (Hiveテーブル)</span>: <span>[Database] (データベース)</span>フィールド、<span>[Table name] (テーブル名)</span>フィールド、<span>[Table format] (テーブル形式)</span>リスト、および<span>[Enable Hive partitions] (Hiveパーティションを有効化)</span>チェックボックスが表示されます。接続先のHiveデータベースと変更する必要のあるHiveテーブルの関連情報を入力する必要があります。</p> <p>デフォルトでは、出力データの形式はJSONですが、<span>[Table format] (テーブル形式)</span>リストから対応するオプションを選択して、ORCまたはParquetに変更できます。</p> </li> </ul> |
| [Save mode] (保存モード) | ターゲットのHiveテーブルに関して行う変更のタイプを選択します。<br><br><ul> <li> <span>[Create] (作成)</span>: ターゲットのHiveテーブルを作成し、そのテーブルにデータを書き込みます。</li> <li> <span>[Append] (追加)</span>: 既存のテーブルにデータを追加します。</li> <li> <span>[Overwrite] (上書き)</span>: 既存のテーブルのデータを上書きします。</li> <li> <span>[Create if it does not exist] (存在しない場合は作成)</span>: テーブルがまだ存在しない場合はHiveテーブルを作成し、その中にデータを追加します。テーブルが既に存在する場合、入力データは保存されません。<p>このプロパティは、<span>Talend</span>が提供する8.0.1-R2024-03以降のStudioマンスリーアップデートをインストール済みである場合に利用できます。詳細は管理者にお問い合わせください。</p> </li> </ul> |
| [Enable Hive partitions] (Hiveパーティションを有効化) | [Enable Hive partitions] (Hiveパーティションを有効化)チェックボックスをオンにして、[Partition keys] (パーティションキー)テーブルで、作成または変更するHiveテーブルのパーティションを定義します。[Partition keys] (パーティションキー)テーブルで、パーティションキーとして使用するtHiveOutputの入力スキーマからカラムを選択します。<br><br>以下のことを考慮しておきます。<br><br><ul> <li> <p>使用する<span>[Save mode] (保存モード)</span>が<kbd>[Append] (追加)</kbd>である(つまり既存のHiveテーブルにデータを追加しようとしている)場合、<span>[Partition keys] (パーティションキー)</span>テーブルで選択するパーティションカラムは既に、アップデートするHiveテーブルのパーティションキーになっている必要があります。</p> </li> <li> <p>Spark固有の制限により、<span>tHiveOutput</span>によって作成されたパーティショニング済みのHiveテーブルを読み取ることができるのは、<span>tHiveInput</span>のみです。パーティショニングされたテーブルをHive自体を使用して読み取る必要がある場合は、標準ジョブで<span>tHiveRow</span>または<span>tHiveCreateTable</span>を使用してこのテーブルを作成してから、<span>tHiveOutput</span>を使用してそこにデータを追加することを推奨します。</p> </li> <li> <p>カラムをパーティションキーとして定義しても、データは変更されず、パーティションキーを使用してサブフォルダーが作成され、そこにデータが入るだけです。</p> </li> </ul> |

## 詳細設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| [Sort columns alphabetically] (カラムをアルファベット順にソート) | スキーマのカラムをアルファベット順にソートする場合は、このチェックボックスをオンにします。このチェックボックスをオフのままにすると、これらのカラムはスキーマエディターで定義された順序に従います。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは終了コンポーネントとして使用され、入力リンクを必要とします。<br><br>このコンポーネントは、Hiveに接続するために同じジョブ内にあるtHiveConfigurationコンポーネントを使用する必要があります。<br><br>このコンポーネントは、所属するSpark Batchコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。<br><br>特に明記していない限り、このドキュメンテーションのシナリオでは、標準ジョブ、つまり従来の Talend Data Integrationジョブだけを扱います。 |
| [Spark Connection] (Spark接続) | [Run] (実行)ビューの[Spark configuration] (Spark設定)タブで、ジョブ全体でのSparkクラスターへの接続を定義します。また、ジョブでは、依存jarファイルを実行することを想定しているため、Sparkがこれらのjarファイルにアクセスできるように、これらのファイルの転送先にするファイルシステム内のディレクトリーを指定する必要があります。<br><br><ul> <li> <div> <span>Yarnモード</span>(YarnクライアントまたはYarnクラスター):<ul> <li> <p>Google Dataprocを使用している場合、<span>[Spark configuration] (Spark設定)</span>タブの<span>[Google Storage staging bucket] (Google Storageステージングバケット)</span>フィールドにバケットを指定します。</p> </li> <li> <p>HDInsightを使用している場合、<span>[Spark configuration] (Spark設定)</span>タブの<span>[Windows Azure Storage configuration] (Windows Azure Storage設定)</span>エリアでジョブのデプロイメントに使用するブロブを指定します。</p> </li> <li>Altusを使用する場合は、<span>[Spark configuration] (Spark設定)</span>タブでジョブのデプロイにS3バケットまたはAzure Data Lake Storageを指定します。</li> <li> <p>オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration">tHDFSConfiguration</a>を使用します。</p> </li> </ul> </div> </li> <li> <p> <span>[Standalone mode] (スタンドアロンモード)</span>: クラスターで使われているファイルシステム(<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/hdfs/thdfsconfiguration-properties-for-apache-spark-batch">tHDFSConfiguration Apache Spark Batch</a>や<a href="https://help.qlik.com/talend/r/ja-JP/8.0/components/amazon-s3/ts3configuration-properties-for-apache-spark-batch">tS3Configuration Apache Spark Batch</a>など)に対応する設定コンポーネントを使用します。</p> <p>ジョブ内に設定コンポーネントがない状態でDatabricksを使用している場合、ビジネスデータはDBFS (Databricks Filesystem)に直接書き込まれます。</p> </li> </ul><br><br>この接続は、ジョブごとに有効になります。 |