# Apache Spark BatchのtRedshiftOutputプロパティ

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

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

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

## 基本設定

| [Property type] (プロパティタイプ) | [Built-in] (組み込み)と[Repository] (リポジトリー)のいずれかです。<br><br>[Built-In] (組み込み): 一元的に保存されるプロパティデータはありません。<br><br>[Repository] (リポジトリー): プロパティが保存されているリポジトリーファイルを選択します。 |
| --- | --- |
| ![](https://help.qlik.com/talend/ja-JP/components/7.3/Resources/images/Save_Icon.png) | このアイコンをクリックすると、データベース接続ウィザードが開き、コンポーネント[Basic settings] (基本設定)ビューに設定したデータベース接続パラメーターが保存されます。<br><br>データベース接続パラメーターの設定と保管の詳細は、Talend Studioユーザーガイドをご覧ください。 |
| [Use an existing connection] (既存の接続を使用) | 定義済みの接続の詳細を再利用する場合は、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。 |
| [Host] (ホスト) | Redshiftで、接続する必要のあるデータベースのエンドポイントを入力します。 |
| [Port] (ポート) | Redshiftで、接続する必要のあるデータベースのポート番号を入力します。<br><br>関連情報は、RedshiftのWebコンソールの[Cluster Database Properties] (クラスターデータベースプロパティ)エリアにあります。<br><br>詳細は、[Managing clusters console](http://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html) (英語のみ)をご覧ください。 |
| [Username] (ユーザー名)と[Password] (パスワード) | 接続先とする必要のあるRedshiftデータベースに認証情報を入力します。<br><br>パスワードを入力するには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符の間に入力し、OKをクリックして設定を保存します。 |
| [Database] (データベース) | Redshiftで、接続する必要のあるデータベースの名前を入力します。<br><br>関連情報は、RedshiftのWebコンソールの[Cluster Database Properties] (クラスターデータベースプロパティ)エリアにあります。<br><br>詳細は、[Managing clusters console](http://docs.aws.amazon.com/redshift/latest/mgmt/managing-clusters-console.html) (英語のみ)をご覧ください。<br><br>使用するバケットとRedshiftデータベースは、Amazon上の同じリージョンに存在している必要があります。これにより、Amazonで既知のS3ServiceExceptionエラーが回避できる可能性があります。これらのエラーについては、[S3ServiceExceptionエラー](https://docs.aws.amazon.com/redshift/latest/dg/s3serviceexception-error.html) (英語のみ)をご覧ください。 |
| スキーマ | Redshiftで使用するデータベーススキーマの名前を入力します。デフォルトスキーマは*PUBLIC*という名前です。<br><br>Redshiftに関するスキーマは、オペレーティングシステムのディレクトリーと似ています。Redshiftのスキーマについては、[Schemas](http://docs.aws.amazon.com/redshift/latest/dg/r_Schemas_and_tables.html) (英語のみ)をご覧ください。 |
| [Additional JDBC Parameters] (追加のJDBCパラメーター) | 作成する接続の追加のJDBCプロパティを指定します。プロパティはアンパサンド(&)で区切られ、各プロパティはキー-値ペアです。たとえば、*ssl=true & sslfactory=com.amazon.redshift.ssl.NonValidatingFactory*になります。これは、SSLを使用して接続が作成されることを意味します。 |
| [S3 configuration] (S3設定) | S3に接続するための設定の詳細をSparkに使用させるtS3Configurationコンポーネントを選択します。<br><br>使用するtS3Configurationが[S3 configuration] (S3設定)リストに表示されるように、このtS3Configurationコンポーネントと共にtRedshiftConfigurationを同じジョブにドロップする必要があります。 |
| [S3 temp path] (S3一時パス) | Redshiftと送受信するデータの一時的な保存先にするS3内の場所を入力します。<br><br>このパスは、tS3Configurationの[Basic settings] (基本設定)タブで設定する必要のある一時パスからは独立しています。 |
| [Table] (テーブル) | データが書き込まれるテーブルの名前を入力します。一度に書き込みができるテーブルは1つだけです。<br><br>このテーブルが存在しない場合は、[Save mode] (保存モード)リストから[Create] (作成)を選択して、tRedshiftOutputがテーブルを作成できるようにする必要があります。 |
| [Schema] (スキーマ)と[Edit schema] (スキーマを編集) | スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 |
|  | [Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。 |
|  | [Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。 |
|  | スキーマを変更するには[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>: リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。変更を現在のジョブにのみ反映する場合は、変更後、<span>[No] (いいえ)</span>を選択し、<span>[Repository Content] (リポジトリーコンテンツ)</span>ウィンドウで再びこのスキーマのメタデータを選択します。</p> </li> </ul> |
| [Save mode] (保存モード) | 指定したテーブルでtRedshiftOutputに実行させるアクションを選択します。<br><br><ul> <li> <p> <span>[Create] (作成)</span>: <span>tRedshiftOutput</span>は指定のテーブルを作成し、そのテーブルにデータを書き込みます。</p> </li> <li> <p> <span>[Append] (追加)</span>: <span>tRedshiftOutput</span>は既存のテーブルにデータを追加します。</p> </li> <li> <p> <span>[Overwrite] (上書き)</span>: <span>tRedshiftOutput</span>は指定したテーブルのデータを上書きします。</p> <p>この上書きは、ターゲットテーブルの可用性に影響を与えます。このため、このテーブルの高可用性を維持する必要がある場合は、<span>[Advanced settings] (詳細設定)</span>タブの<span>[Use staging table] (ステージングテーブルを使用)</span>チェックボックスをオンにして、<span>tRedshiftOutput</span>がデータを作成し、ステージングテーブルに書き込むことができるようにする必要があります。この書き込みが成功したら、ターゲットテーブルをステージングテーブルに置き換えます。ステージングテーブルが有効な場合は、書き込みが失敗した時に、ターゲットテーブルをすばやく復元できます。</p> </li> </ul> |

## 詳細設定

| [Distribution style] (ディストリビューションスタイル) | 書き込むデータにtRedshiftOutputが適用するディストリビューションスタイルを選択します。<br><br>各ディストリビューションスタイルの詳細は、[Distribution styles](http://docs.aws.amazon.com/redshift/latest/dg/c_choosing_dist_sort.html) (英語のみ)をご覧ください。 |
| --- | --- |
| [Define sort key] (ソートキーを定義) | データの特定のカラムをベースに書き込むデータをソートする場合は、このチェックボックスを選択します。<br><br>選択したら、ソートのキーとして使用するカラムを選択する必要があります。各種のソートキーについては、[Choosing sort keys](http://docs.aws.amazon.com/redshift/latest/dg/t_Sorting_data.html) (英語のみ)をご覧ください。 |
| [Use staging table] (ステージングテーブルを使用) | [Use staging table] (ステージングテーブルを使用)チェックボックスをオンにして、tRedshiftOutputがデータを作成し、ステージングテーブルに書き込むことができるようにします。この書き込みが成功したら、ターゲットテーブルをステージングテーブルに置き換えます。<br><br>この機能は、[Save mode] (保存モード)リストで[Overwrite] (上書き)を選択している場合のみ利用できます。また、上書きのターゲットテーブルの高可用性を維持する必要がある場合にお勧めします。 |
| [Define pre-actions] (プレアクションを定義) | このチェックボックスをオンにして、フィールドが表示されたら、tRedshiftOutputがデータの書き込みを開始する前に実行される、セミコロン(;)で区切られたSQLステートメントのリストを追加します。<br><br>たとえば、次のステートメントを使用すると、*Movie*テーブルと*Director*テーブルの条件を満たすすべての行が*Movie*テーブルから削除されます。<br><br>```<br>delete from movie using director where movie.movieid=director.directorid;<br>``` |
| [Define post-actions] (ポストアクションを定義) | このチェックボックスをオンにして、フィールドが表示されたら、tRedshiftOutputがデータの書き込みに成功した後で実行されている、セミコロン(;)で区切られたSQLステートメントのリストを追加します。<br><br>たとえば、次のステートメントを使用して、*Movie*テーブルに対する[Select] (選択)権限をユーザー*ychen*に付与します。<br><br>```<br>grant select on table movie to ychen;<br>``` |
| [Define extra copy options] (追加コピーオプションを定義) | このチェックボックスをオンにして、フィールドが表示されたら、データの書き込みと共に実行される、セミコロン(;)で区切られたSQLステートメントのリストを追加します。<br><br>tRedshiftOutputは、Redshift SQLの[Copy] (コピー)ステートメントを使用してデータを書き込みます。ここに追加するSQLステートメントのリストは、[Copy] (コピー)ステートメントに実際に追加されます。したがって、この[Copy] (コピー)コマンドの末尾で意味をなすステートメントのみを使用すべきです。たとえば、圧縮エンコーディングが[Copy] (コピー)の実行中に自動的に適用されるかどうかを制御するために使用されるCOMPUPDATEです。<br><br>選択可能な追加オプションの詳細は、[Optional parameters](http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html#r_COPY-syntax-overview-optional-parameters) (英語のみ)をご覧ください。 |

## 使用方法

| **使用ルール** | このコンポーネントは、終了コンポーネントとして使用され、入力リンクを必要とします。<br><br>このコンポーネントは、Redshiftに接続するために同じジョブ内にあるtRedshiftConfigurationコンポーネントを使用する必要があります。tRedshiftConfigurationを使用するには、このコンポーネントと共にtRedshiftConfigurationコンポーネントをドロップし、このコンポーネントの[Basic settings] (基本設定)を指定する必要があります。<br><br>このコンポーネントは、所属するSpark Batchのコンポーネントのパレットと共に、Spark Batchジョブを作成している場合にだけ表示されます。<br><br>特に明記していない限り、このドキュメントのシナリオでは、標準ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。 |
| --- | --- |
| [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>Quboleを使用する場合は、ジョブに<span>tS3Configuration</span>を追加し、QuboleでS3システム内に実際のビジネスデータを書き込みます。<span>tS3Configuration</span>を使用しないと、このビジネスデータはQubole HDFSシステムに書き込まれ、クラスターをシャットダウンすると破棄されます。</li> <li> <p>オンプレミスのディストリビューションを使用する場合は、クラスターで使われているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、<a href="https://help.qlik.com/talend/r/ja-JP/7.3/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/7.3/components/hdfs/thdfsconfiguration-properties-for-apache-spark-batch">tHDFSConfiguration Apache Spark Batch</a>や<a href="https://help.qlik.com/talend/r/ja-JP/7.3/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>この接続は、ジョブごとに有効になります。 |