Apache Spark BatchのtRedshiftOutputプロパティ - 7.2

Amazon Redshift

Version
7.2
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 Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
Module
Talend Studio
Content
ジョブデザインと開発 > サードパーティーシステム > Amazonサービス > Amazon Redshift
データガバナンス > サードパーティーシステム > Amazonサービス > Amazon Redshift
データクオリティとプレパレーション > サードパーティーシステム > Amazonサービス > Amazon Redshift

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

Spark Batch tRedshiftOutputコンポーネントはデータベースファミリーのコンポーネントです。

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

基本設定

[Property type] (プロパティタイプ)

[Built-In] (組み込み)または[Repository] (リポジトリー)のいずれか。

[Built-In] (組み込み): プロパティデータは一元的に保存されません。

[Repository] (リポジトリー): プロパティを保存するリポジトリーファイルを選択します。

このアイコンをクリックすると、データベース接続ウィザードが開き、コンポーネント[Basic settings] (基本設定)ビューに設定したデータベース接続パラメーターが保存されます。

データベース接続パラメーターの設定と保管の詳細は、Talend Studioユーザーガイドを参照してください。

[Use an existing connection] (既存の接続の使用)

定義済みの接続の詳細を再利用するには、このチェックボックスをオンにして、[Component List] (コンポーネントリスト)で該当する接続コンポーネントをクリックします。

[Host] (ホスト)

Redshiftで、接続する必要のあるデータベースのエンドポイントを入力します。

[Port] (ポート)

Redshiftで、接続する必要のあるデータベースのポート番号を入力します。

関連情報は、RedshiftのWebコンソールの[Cluster Database Properties] (クラスターデータベースプロパティ)エリアにあります。

詳細は、Managing clusters consoleを参照してください。

[Username] (ユーザー名)[Password] (パスワード)

接続先とする必要のあるRedshiftデータベースに認証情報を入力します。

パスワードを入力するには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符の間に入力し、[OK] をクリックして設定を保存します。

[Database] (データベース)

Redshiftで、接続する必要のあるデータベースの名前を入力します。

関連情報は、RedshiftのWebコンソールの[Cluster Database Properties] (クラスターデータベースプロパティ)エリアにあります。

詳細は、Managing clusters consoleを参照してください。

使用するバケットとRedshiftデータベースは、Amazon上の同じリージョンに存在している必要があります。これにより、Amazonで既知のS3ServiceExceptionエラーが回避できる可能性があります。これらのエラーについては、S3ServiceExceptionエラーを参照してください。

[Schema] (スキーマ)

Redshiftで使用するデータベーススキーマの名前を入力します。デフォルトスキーマはPUBLICという名前です。

Redshiftに関するスキーマは、オペレーティングシステムのディレクトリーと似ています。Redshiftのスキーマについては、Schemasを参照してください。

[Additional JDBC Parameters] (追加のJDBCパラメーター)

作成する接続の追加のJDBCプロパティを指定します。プロパティはアンパサンド(&)で区切られ、各プロパティはキー/値ペアです。たとえば、ssl=true & sslfactory=com.amazon.redshift.ssl.NonValidatingFactoryになります。これは、SSLを使用して接続が作成されることを意味します。

[S3 configuration] (S3設定)

S3に接続するための設定の詳細をSparkに使用させるtS3Configurationコンポーネントを選択します。

使用するtS3Configuration[S3 configuration] (S3設定)リストに表示されるように、このtS3Configurationコンポーネントと共にtRedshiftConfigurationを同じジョブにドロップする必要があります。

[S3 temp path] (S3一時パス)

Redshiftと送受信するデータの一時的な保存先にするS3内の場所を入力します。

このパスは、tS3Configuration[Basic settings] (基本設定)タブで設定する必要のある一時パスからは独立しています。

[Table] (テーブル)

データが書き込まれるテーブルの名前を入力します。一度に1つのテーブルしか書き込めないことにご注意ください。

このテーブルが存在しない場合は、[Save mode] (保存モード)リストから[Create] (作成)を選択して、tRedshiftOutputがテーブルを作成できるようにする必要があります。

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

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

 

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

 

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

 

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

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

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

  • [Update repository connection] (リポジトリー接続を更新): リポジトリーに保存されているスキーマに変更を加え、変更後にそのコンテンツをすべてのジョブにプロパゲートするかどうかを決める場合は、このオプションを選択します。変更を現在のジョブにのみ反映する場合は、変更後、[No] (いいえ)を選択し、[Repository Content] (リポジトリーのコンテンツ)ウィンドウで再びこのスキーマのメタデータを選択します。

[Save mode] (保存モード)

指定したテーブルでtRedshiftOutputに実行させるアクションを選択します。

  • [Create] (作成): tRedshiftOutputは指定のテーブルを作成し、そのテーブルにデータを書き込みます。

  • [Append] (追加): tRedshiftOutputは既存のテーブルにデータを追加します。

  • [Overwrite] (上書き): tRedshiftOutputは指定したテーブルのデータを上書きします。

    この上書きは、ターゲットテーブルの可用性に影響を与えます。このため、このテーブルの高可用性を維持する必要がある場合は、[Advanced settings] (詳細設定)タブの[Use staging table] (ステージングテーブルを使用)チェックボックスをオンにして、tRedshiftOutputがデータを作成し、ステージングテーブルに書き込むことができるようにする必要があります。この書き込みが成功したら、ターゲットテーブルをステージングテーブルに置き換えます。ステージングテーブルが有効な場合は、書き込みが失敗した時に、ターゲットテーブルをすばやく復元できます。

詳細設定

[Distribution style] (ディストリビューションスタイル)

書き込むデータにtRedshiftOutputが適用するディストリビューションスタイルを選択します。

各ディストリビューションスタイルの詳細は、Distribution stylesを参照してください。

[Define sort key] (ソートキーを定義)

データの特定のカラムをベースに書き込むデータをソートするには、このチェックボックスをオンにします。

選択したら、ソートのキーとして使用するカラムを選択する必要があります。各種のソートキーについては、Choosing sort keysを参照してください。

[Use staging table] (ステージングテーブルを使用)

[Use staging table] (ステージングテーブルを使用)チェックボックスをオンにして、tRedshiftOutputがデータを作成し、ステージングテーブルに書き込むことができるようにします。この書き込みが成功したら、ターゲットテーブルをステージングテーブルに置き換えます。

この機能は、[Save mode] (保存モード)リストで[Overwrite] (上書き)を選択している場合にのみ使用できます。また、上書きのターゲットテーブルの高可用性を維持する必要がある場合にお勧めします。

[Define pre-actions] (プレアクションを定義)

このチェックボックスをオンにして、フィールドが表示されたら、tRedshiftOutputがデータの書き込みを開始する前に実行される、セミコロン(;)で区切られたSQLステートメントのリストを追加します。

たとえば、次のステートメントを使用すると、MovieテーブルとDirectorテーブルの条件を満たすすべての行がMovieテーブルから削除されます。
delete from movie using director where movie.movieid=director.directorid;

[Define post-actions] (ポストアクションを定義)

このチェックボックスをオンにして、フィールドが表示されたら、tRedshiftOutputがデータの書き込みに成功した後で実行される、セミコロン(;)で区切られたSQLステートメントのリストを追加します。

たとえば、次のステートメントを使用して、Movieテーブルに対する[Select] (選択)権限をユーザーychenに付与します。
grant select on table movie to ychen;

[Define extra copy options] (追加コピーオプションを定義)

このチェックボックスをオンにして、フィールドが表示されたら、データの書き込みと共に実行される、セミコロン(;)で区切られたSQLステートメントのリストを追加します。

tRedshiftOutputは、Redshift SQLの[Copy] (コピー)ステートメントを使用してデータを書き込みます。ここに追加するSQLステートメントのリストは、[Copy] (コピー)ステートメントに実際に追加されます。したがって、この[Copy] (コピー)コマンドの末尾で意味をなすステートメントのみを使用すべきです。たとえば、圧縮エンコーディングが[Copy] (コピー)の実行中に自動的に適用されるかどうかを制御するために使用されるCOMPUPDATEです。

選択可能な追加オプションの詳細は、Optional parametersを参照してください。

[Use Timestamp format for Date type] (日付タイプにタイムスタンプ形式を使用)

日付タイプデータに含まれている日付、時、分、秒を出力するには、チェックボックスをオンにします。このチェックボックスをオフにすると、年、月、日のみが出力されます。

Deltalakeで使われる形式はyyyy-MM-dd HH:mm:ssです。

使用方法

使用ルール

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

このコンポーネントは、Redshiftに接続するために同じジョブ内にあるtRedshiftConfigurationコンポーネントを使用する必要があります。tRedshiftConfigurationを使用するには、このコンポーネントと共にtRedshiftConfigurationコンポーネントをドロップし、このコンポーネントの[Basic settings] (基本設定)を指定する必要があります。

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

特に明記していない限り、このドキュメントのシナリオでは、[Standard] (標準)ジョブ、つまり従来の Talend データ統合ジョブだけを扱います。

[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を指定します。
    • Quboleを使用する場合は、ジョブにtS3Configurationを追加し、QuboleでS3システム内に実際のビジネスデータを書き込みます。tS3Configurationを使用しないと、このビジネスデータはQubole HDFSシステムに書き込まれ、クラスターをシャットダウンすると破棄されます。
    • オンプレミスのディストリビューションを使用する場合は、クラスターで使用されているファイルシステムに対応する設定コンポーネントを使用します。一般的に、このシステムはHDFSになるため、tHDFSConfigurationを使用します。

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

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

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