# tHiveWarehouseOutput

Hive Warehouse Connectorを使って、特定のHiveデータベースに接続し、受信したデータを特定のHiveテーブルまたはHDFS内のディレクトリーに書き込みます。

Hive Warehouse ConnectorではHiveの内部テーブルがサポートされているので、Apache Hive 3テーブルを使ってSparkからACIDテーブルデータにアクセスできます。

デフォルトで、このコンポーネントはTalend Studioと共には出荷されていません。機能マネージャーを使ってインストールする必要があります。 詳細は、[機能マネージャーを使って機能をインストール](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/install-features-to-talend-studio)をご覧ください。

## Apache Spark BatchのtHiveWarehouseOutputプロパティ

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

Spark BatchのtHiveWarehouseOutputコンポーネントは、ストレージファミリーに属しています。

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

## 基本設定

| [Properties] (プロパティ) | 説明 |
| --- | --- |
| プロパティタイプ | 接続の詳細を設定する方法を選択します。<br><br><ul> <li> <p> <span>[Built-In] (組み込み)</span>: このコンポーネントの接続の詳細がローカルに設定されます。関連するすべての接続のプロパティ値を手動で指定する必要があります。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: <span><span>[Repository] (リポジトリー)</span><abbr> &gt; </abbr><span>[Metadata] (メタデータ)</span></span>で一元的に保存された接続の詳細が、このコンポーネントによって再使用されます。 </p> <p>このチェックボックスの横にある <span>[...]</span> ボタンをクリックし、表示された <span>[Repository Content] (リポジトリーのコンテンツ)</span>ダイアログボックスで、再使用する接続の詳細をオンにすると、関連するすべての接続のプロパティに値が自動的に入力されます。</p> </li> </ul> |
| [Hive Storage Configuration] (Hiveストレージ設定) | Hiveに接続できるようSparkに設定の詳細を使わせるtHiveWarehouseConfigurationコンポーネントを選択します。 |
| [HDFS Storage Configuration] (HDFSストレージ設定) | 特定のHDFSシステムに接続し、依存するjarファイルをこのHDFSシステムに転送するために、設定の詳細を取ってSparkで使用するtHDFSConfigurationコンポーネントを選択します。このフィールドは、オンプレミスのディストリビューションを使用している場合にのみ該当します。 |
| [Schema] (スキーマ)と[Edit Schema] (スキーマを編集) | スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。<br><br>見えないところで行われる処理でフィールド名を強制的に小文字にする可能性もあるため、フィールドは必ず小文字で命名してください。<br><br>使用するスキーマのタイプを[Schema] (スキーマ)ドロップダウンリストから選択します。<br><br><ul> <li> <p> <span>[Built-in] (組み込み)</span>: そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。</p> </li> <li> <p> <span>[Repository] (リポジトリー)</span>: スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。</p> </li> </ul><br><br>スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。<br><br><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> |
| [Output source] (出力ソース) | tHiveWarehouseOutputを使って変更する出力データのタイプを選択します。<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> <li> <p> <span>[ORC file] (ORCファイル)</span>: <span>[Output folder] (出力フォルダー)</span>フィールドが表示され、Hiveストレージ設定リストが無効になります。ORCファイルはHiveをホストしているHDFSシステムに保存する必要があるためです。出力データが書き込まれるディレクトリーを入力する必要があります。</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] (カラムをアルファベット順にソート) | スキーマのカラムをアルファベット順にソートする場合は、このチェックボックスをオンにします。このチェックボックスをオフのままにすると、これらのカラムはスキーマエディターで定義された順序に従います。 |

## [Global Variables] (グローバル変数)

| 変数 | 説明 |
| --- | --- |
| グローバル変数 | ERROR\_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。<br><br>Flow変数はコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。<br><br>フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。<br><br>変数の詳細は、[コンテキストと変数を使用](https://help.qlik.com/talend/r/ja-JP/8.0/studio-user-guide/contexts-and-variables)をご覧ください。 |

## 使用方法

| 使用方法のガイダンス | 説明 |
| --- | --- |
| **使用ルール** | このコンポーネントは終了コンポーネントとして使用され、入力リンクを必要とします。<br><br>このコンポーネントは、Hiveに接続するために同じジョブ内にあるtHiveWarehouseConfigurationコンポーネントを使う必要があります。<br><br>このコンポーネントは、所属するSpark Batchコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。 |