Apache Spark BatchのtJDBCInputプロパティ - 7.3

JDBC

EnrichVersion
Cloud
7.3
EnrichProdName
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
EnrichPlatform
Talend Studio
task
ジョブデザインと開発 > サードパーティーシステム > DBコンポーネント > JDBC
データガバナンス > サードパーティーシステム > DBコンポーネント > JDBC
データクオリティとプレパレーション > サードパーティーシステム > DBコンポーネント > JDBC

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

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

また、このコンポーネントを使用すると、RDS MariaDB、RDS PostgreSQL、またはRDS SQLServerデータベースからデータを接続および読み取ることができます。

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

基本設定

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

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

 

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

 

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

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

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

JDBC URL

使用するデータベースのJDBC URL。たとえば、Amazon RedshiftデータベースのJDBC URLはjdbc:redshift://endpoint:port/databaseです。

Spark V1.3を使用している場合、このURLには次のような認証情報が含まれている必要があります:
jdbc:mysql://XX.XX.XX.XX:3306/Talend?user=ychen&password=talend

[Driver JAR] (ドライバーJAR)

必要なドライバーJARをロードするには、このテーブルに記入してください。これを行うには、テーブルの下の[+]ボタンをクリックして、必要に応じてドライバーJAR用行数を増やします。セルを選択し、セルの右側にある[...]ボタンをクリックして、[Module] (モジュール)ダイアログボックスを開くと使用するドライバーJARを選択できます。たとえば、RedshiftデータベースのドライバーjarはRedshiftJDBC41-1.1.13.1013.jarです。

詳細は、[Importing a database driver] (データベースドライバのインポート)を参照してください。

クラス名

指定したドライバーのクラス名を二重引用符で囲んで入力します。たとえば、RedshiftJDBC41-1.1.13.1013.jarドライバーの場合、入力する名前はcom.amazon.redshift.jdbc41.Driverになります。

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

接続するデータベースに対する認証情報を入力します。

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

Spark V1.4以降でのみ使用できます。

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

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

 

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

 

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

 

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

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

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

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

[Table Name] (テーブル名)

データを読み取るテーブルの名前を入力します。

This field is only available when you select Table from the Read from drop-down list.

[Read from] (読み取り元)

読み取るデータのソースのタイプを選択します。
  • Table: tJDBCInput reads the data of the table you specify in the Table name field.

  • Query: tJDBCInput reads the result of the query you write in the Query field.

[Query type] (クエリータイプ)[Query] (クエリー)

スキーマ定義に対応する必要がある、フィールドの適切な順序に特に注意を払うデータベースクエリーステートメントを指定します。

Spark V2.0以降を使用している場合、Spark SQLはデータベーステーブルのプレフィックスを認識しません。つまり、たとえば、このテーブルが属するスキーマを示すプレフィックスを追加せずに、テーブル名のみを入力する必要があります。

たとえば、system.mytableテーブルでクエリーを実行する必要がある場合(systemプレフィックスはmytableテーブルが属するスキーマを示す)、mytableのみを入力する必要があります。

You can use pushdown predicate in the query to filter the data from the database. Spark supports the following operators:
  • [Filter] (フィルター)
  • [Limit] (制限事項)

These fields are only available when you select Query from the Read from drop-down list.

[Guess Query] (クエリーの推測)

[Guess Query] (クエリーの推測)ボタンをクリックして、クエリーフィールド内のテーブルスキーマに対応するクエリーを生成します。

[Guess schema] (スキーマの推測)

[Guess schema] (スキーマの推測)ボタンをクリックしてテーブルスキーマを取得します。

詳細設定

[Additional JDBC parameters] (その他のJDBCパラメーター)

作成するデータベース接続に追加の接続プロパティを指定します。プロパティはセミコロンで区切られ、各プロパティはキー/値ペアです。たとえば、encryption=1;clientname=Talendになります。

このフィールドは、[Use an existing connection] (既存の接続を使用する)チェックボックスがオンの場合には使用できません。

[Spark SQL JDBC parameters] (Spark SQL JDBCパラメーター)

Spark SQLでサポートされているJDBCプロパティをこのテーブルに追加します。ユーザーが設定可能なプロパティのリストについては、「JDBCと他のデータベース」を参照してください。

このコンポーネントは、urldbtabledriverのプロパティを、[Basic settings] (基本設定)タブの設定を使って自動的に設定します。

[Trim all the String/Char columns] (すべての文字列/文字カラムをトリミング)

このチェックボックスを選択すると、先行ホワイトスペースおよび後続ホワイトスペースがすべての文字列/文字カラムから削除されます。

[Trim column] (カラムのトリミング)

このテーブルは使用されているスキーマで自動入力されます。トリミングするカラムに対応するチェックボックスを選択します。

[Enable partitioning] (パーティショニングを有効化)

このチェックボックスを選択してパーティション内のデータを読み取ります。

次のパラメーターを二重引用符内に定義して、パーティションを設定します。
  • Partition column (パーティションカラム): パーティションキーとして使用する数値の列。

  • [Lower bound of the partition stride] (パーティションストライドの下限)[Upper bound of the partition stride] (パーティションストライドの上限): パーティションストライドを決定する上限と下限を入力します。これらの制限はテーブルの行をフィルタリングしません。テーブルのすべての行がパーティション化され、返されます。

  • Number of partitions (パーティション数): テーブルの行を分割するパーティションの数。各Sparkワーカーは一度に1つのパーティションだけを処理します。

パーティションの平均サイズは、パーティションの数で分割された上限と下限から生じる相違の結果で、(upperBound - lowerBound)/partitionNumberとなります。その一方で、最初と最後のパーティションには、他のパーティションに含まれない他のすべての行もあります。

たとえば、1000行を4つのパーティションに分ける場合、下限に0、上限に1000を入力すると、各パーティションには250行が含まれるので、パーティション化は均等になります。下限に250、上限に750を入力した場合、2番目と3番目のパーティションにはそれぞれ125行ずつ保管され、最初と最後のパーティションにはそれぞれ375行入ります。この設定では、パーティションに偏りが生じます。

使用方法

使用ルール

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

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

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

特に明記していない限り、このドキュメントのシナリオでは、[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)に直接書き込まれます。

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