tMysqlOutputの標準プロパティ
これらのプロパティは、標準ジョブのフレームワークで実行されているtMysqlOutputを設定するために使われます。
標準のtMysqlOutputコンポーネントは、データベースファミリーに属しています。
このフレームワーク内のコンポーネントは、すべてのTalend製品で使用できます。
基本設定
データベース |
目的のデータベースタイプをリストから選択し、[Apply] (適用)をクリックします。 |
[Property type] (プロパティタイプ) |
[Built-in] (組み込み)と[Repository] (リポジトリー)のいずれかです。 [Built-In] (組み込み): 一元的に保存されるプロパティデータはありません。 [Repository] (リポジトリー): プロパティが保存されているリポジトリーファイルを選択します。 |
[DB Version] (データベースバージョン) |
使用するMySQLのバージョンを選択します。 |
このアイコンをクリックすると、データベース接続ウィザードが開き、コンポーネント[Basic settings] (基本設定)ビューに設定したデータベース接続パラメーターが保存されます。 データベース接続パラメーターの設定と保存の詳細は、データベースメタデータを一元管理をご覧ください。 |
|
[Use an existing connection] (既存の接続を使用) |
定義済みの接続の詳細を再利用する場合は、このチェックボックスを選択して、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。 情報メモ注: ジョブに親ジョブと子ジョブが含まれている時は、親ジョブと子ジョブの間の既存の接続を共有したい場合(たとえば、親ジョブで作成した接続を子ジョブと共有するなど)には、次のように実行します。
ジョブレベル全体でデータベース接続を共有する方法の例は、データベース接続を共有をご覧ください。 |
[Host] (ホスト) |
データベースサーバーのIPアドレス。 |
[Port] (ポート) |
データベースサーバーのリスニングポート番号。 |
[Database] (データベース) |
データベースの名前。 |
[Username] (ユーザー名)と[Password] (パスワード) |
データベースユーザー認証データ。 パスワードを入力するためには、パスワードフィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。 |
[Table] (テーブル) |
書き込まれるテーブルの名前。一度に書き込みができるテーブルは1つだけです。 |
[Action on table] (テーブルでのアクション) |
定義済みのテーブルで、次のオペレーションの1つを実行できます。 [Default] (デフォルト): 操作は行われません。 [Drop and create a table] (ドロップしてテーブルを作成): テーブルが削除され、再び作成されます。 [Create a table] (テーブルを作成): テーブルが存在しないため、作成されます。 [Create a table if not exists] (テーブルが存在しない場合は作成): テーブルが存在しない場合は作成されます。 [Drop a table if exists and create] (テーブルが存在する場合はドロップして作成): テーブルが既に存在する場合は削除されて再作成されます。 [Clear a table] (テーブルをクリア): テーブルのコンテンツが削除されます。 [Truncate table] (テーブルを切り詰め): テーブルのコンテンツがすぐに削除されます。ただし、オペレーションをロールバックすることはできません。 |
[Action on data] (データでのアクション) |
定義されたテーブルのデータで実行できる操作は次のとおりです。 [Insert] (挿入): テーブルに新しいエントリーを追加します。重複が見つかると、ジョブは停止します。 [Update] (アップデート): 既存のエントリーが変更されます。
情報メモ注: スキーマカラムがすべてキーとして設定されている場合は、このアクションによってエラーが発生し、ジョブが失敗します。
[Insert or update] (挿入またはアップデート): 新しいレコードを挿入します。指定された参照を持つレコードが既に存在する場合は、アップデートされます。
情報メモ注: スキーマカラムがすべてキーとして設定されている場合は、このアクションによって警告メッセージが発生し、ジョブが続行されます。
[Update or insert] (アップデートまたは挿入): 指定された参照を使用してレコードをアップデートします。レコードが存在しない場合は、新しいレコードが挿入されます。
情報メモ注: スキーマカラムがすべてキーとして設定されている場合は、このアクションによって警告メッセージが発生し、ジョブが続行されます。
[Delete] (削除): 入力フローに対応するエントリーを削除します。 [Replace] (置換): テーブルに新しいエントリーを追加します。プライマリキーまたはユニークなインデックスで、テーブル内の古い行に新しい行と同じ値のものがある場合は、新しい行が挿入される前に古い行が削除されます。 [Insert or update on duplicate key or unique index] (重複キーまたはユニークなインデックスの挿入またはアップデート): 挿入する値が存在しない場合は、エントリーを追加します。挿入する値が既に存在し、ユニークなインデックスまたはプライマリキーに違反するリスクがある場合は、エントリーをアップデートします。
情報メモ注: スキーマカラムがすべてキーとして設定されている場合は、このアクションによってエラーが発生し、ジョブが失敗します。
[Insert Ignore]: 重複キーエラーを防ぐために新しい行のみ追加します。 情報メモ警告:
[Update] (アップデート)と[Delete] (削除)操作のベースとなるプライマリキーとして、少なくとも1つのカラムを指定する必要があります。それには、[Edit Schema] (スキーマを編集)をクリックし、プライマリキーに指定するカラムの横にあるチェックボックスをオンにします。高度な設定を行う場合は、[Advanced settings] (詳細設定)ビューをクリックして、アップデート操作と削除操作のプライマリキーを同時に定義できます。これを設定するには、以下のようにします:[Use field options] (フィールドオプションの使用)チェックボックスをオンにし、[Key in update column] (アップデートカラムの入力)で、アップデート操作のベースとするカラム名の横にあるチェックボックスをオンにします。削除操作についても、[Key in delete column] (削除カラムのキー)で同じ手順を実行します。 情報メモ注:
ダイナミックスキーマ機能は以下のモードで使用できます: [Insert] (挿入)、[Update] (アップデート)、[Insert or update] (挿入またはアップデート)、[Update or insert] (アップデートまたは挿入)、[Delete] (削除)。 |
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 このコンポーネントは、ダイナミックスキーマ機能の利点を備えているので、ソースファイルから不明なカラムを取得したり、各カラムを個別にマッピングしなくてもソースからカラムを一括してコピーしたりできます。ダイナミックスキーマの詳細は、ダイナミックスキーマをご覧ください。 ダイナミックスキーマ機能は、テーブルの不明なカラムを取得するしくみになっており、その他の目的には使用しないことをお勧めします。テーブルの作成には推奨しません。 |
|
[Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。 |
|
[Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。 再利用するスキーマに整数またはファンクションのデフォルト値が指定されている場合は、これらのデフォルト値を引用符で囲まないようにご注意ください。引用符で囲まれている場合は手動で削除します。 詳細は、テーブルスキーマを取得をご覧ください。 |
スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。
|
|
[Die on error] (エラー発生時に強制終了) |
このチェックボックスはデフォルトで選択されています。エラーの発生した行をスキップし、エラーが発生していない行の処理を完了するには、このチェックボックスをオフにします。必要に応じて[Row] (行) > [Rejects] (リジェクト)リンクを使用してエラーの発生している行を取得できます。 |
[Specify a data source alias] (データソースエイリアスを指定) |
このチェックボックスを選択して、データソース設定で定義した共有接続プールを使用するために、 Talend Runtime 側で作成したデータソースのエイリアスを指定します。このオプションは、 Talend Runtime 内にジョブをデプロイして実行する時にのみ機能します。 情報メモ警告:
コンポーネント自体のデータベース設定を使用する場合、データソース接続はコンポーネントの末尾で閉じることになります。これを防ぐには、データソースエイリアスを指定して、共有データベース接続を使用してください。 このチェックボックスは、[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている場合は利用できません。 |
詳細設定
[Use alternate schema] (代替スキーマを使用) |
このオプションを選択すると、データベース接続を確立するコンポーネント(つまり[Basic settings] (基本設定)ビューの[Component list] (コンポーネントリスト)ドロップダウンリストから、選択されたコンポーネント)によって指定されたスキーマ以外のスキーマを使用できます。このオプションを選択した後、[Schema] (スキーマ)フィールドに目的のスキーマの名前を入力します。 このオプションは、[Basic settings] (基本設定)ビューで[Use an existing connection] (既存の接続を使用)がオンの場合に利用できます。 |
[Additional JDBC parameters] (追加のJDBCパラメーター) |
作成するデータベース接続の接続の追加プロパティを指定します。このオプションは、[Basic settings] (基本設定)の[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている場合は利用できません。 情報メモ注:
事前定義済みのグローバル変数のリストにアクセスするには、Ctrl + スペースを押します。 |
挿入の拡張 |
行を1つずつ挿入するのでなく、指定した一連の行を一括挿入するには、このチェックボックスを選択します。システムパフォーマンスが大幅に向上します。 [Number of rows per insert] (挿入ごとの行数): オペレーションごとに挿入される行数を指定します。指定する値が大きいほどメモリの使用量が増えるため、パフォーマンスがその分低下します。 情報メモ注:
このオプションは[Reject] (リジェクト)リンクと互換性がありません。したがって、このコンポーネントに[Row] (行) > [Rejects] (リジェクト)リンクを使用する場合は、このチェックボックスをオフにする必要があります。 情報メモ警告:
このコンポーネントをtMysqlLastInsertIDと一緒に使っている場合は、[Advanced Settings] (詳細設定)の[Extend Insert] (挿入を延長)チェックボックスがオンになっていないことをご確認ください。[Extend Insert] (挿入を延長)を使うとバッチローディングが可能になりますが、このチェックボックスをオンにしていると、最後のバッチの最後の行のIDのみが返されます。 |
[Use Batch] (バッチを使用) |
このチェックボックスを選択して、データ処理のバッチモードを有効にします。 情報メモ注:
このチェックボックスは、[Action on data] (データでのアクション)フィールドで[Update] (アップデート)または[Delete] (削除)オプションを選択している場合にのみ使用できます。 |
Batch Size (バッチサイズ) |
各バッチで処理するレコードの数を指定します。 このフィールドは、[Use batch mode] (バッチモードを使用)チェックボックスがオンの場合のみ表示されます。 |
[Commit every] (コミットする間隔) |
DBにコミットされる前にバッチに含める行数。このオプションにより、トランザクションの質(ただしロールバックは含まない)、特に高いパフォーマンスレベルが保証されます。 |
[Additional Columns] (追加のカラム) |
このオプションは、データベーステーブルを作成したばかりの時は使用できません(事前に削除した場合でも)。このオプションにより、SQLファンクションを呼び出してカラムにアクションを実行できます。ただし、挿入、アップデート、削除のアクションでないこと、または特定の事前処理を必要とするアクションでないことが条件です。 |
|
[Name] (名前):変更または挿入するスキーマカラムの名前を入力します。 |
|
[SQL expression:] (SQL式)対応するカラム内のデータを変更する、またはカラム内にデータを挿入するために実行するSQLステートメントを入力します。 |
|
[Position] (位置): 参照カラムに対して実行されるアクションに従って、[Before] (実行前)、[Replace] (置換)、[After] (実行後)のいずれかを選択します。 |
|
[Reference column] (参照カラム): 新しいカラム、または変更するカラムを探すか、または置換するためにtMysqlOutputが使用できる参照カラムを入力します。 |
[Use field options] (フィールドオプションを使用) |
リクエストをカスタマイズする場合、特に、データに対して複数のアクションが実行される場合に、このチェックボックスを選択します。 |
[Use Hint Options] (Hint句を使用) |
クエリーの実行に役立つHint設定エリアを有効にするには、このチェックボックスを選択します。このエリアのパラメーターは次のとおりです。 - [HINT] (ヒント): 構文/*+ */を使用して、必要とするヒントを指定します。 - [POSITION] (位置): SQLステートメントのどこにヒントを置くかを指定します。 - SQL STMT: 使用する必要のあるSQLステートメントを選択します。 |
[Debug query mode] (デバッグクエリーモード) |
このチェックボックスを選択すると、データベースのエントリーの処理中に各ステップが表示されます。 |
[Use duplicate key update mode insert] (重複キーアップデートモードの挿入を使用) |
プライマリキーに重複がある場合に、指定したカラムの値をアップデートします。 [Column] (カラム): アップデートするカラムの名前を二重引用符で囲んで入力します。 [Value] (値): カラムに対して実行するアクションをここに入力します。 情報メモ注:
このオプションを使用するには、まず最初に、[Basic Settings] (基本設定)ビューにある[Action on data] (データでのアクション)リストで、[Insert] (挿入)モードを選択する必要があります。 |
[tStatCatcher Statistics] (tStatCatcher統計) |
このチェックボックスを選択すると、コンポーネントレベルでログデータを収集できます。 |
[Enable parallel execution] (並列実行を有効化) |
このチェックボックスを選択すると、複数のデータフローを同時に処理することにより、高速データ処理を実行できます。このフィーチャーは、データベースまたは複数の挿入を並行して処理するアプリケーションの機能と、関係するCPUの数に依存していることにご注意ください。[Number of parallel executions] (並列実行の数)フィールドで次のいずれかの操作を行います。
並列実行を有効にすると、グローバル変数を使ってサブジョブで戻り値を取得することはできないことにご注意ください。 情報メモ警告:
|
グローバル変数
グローバル変数 |
NB_LINE: 入力コンポーネントによって読み取られた行の数、または出力コンポーネントに転送された行の数。これはAfter変数で、整数を返します。 NB_LINE_UPDATED: アップデートされた行の数。これはAfter変数で、整数を返します。 NB_LINE_INSERTED: 挿入された行の数。これはAfter変数で、整数を返します。 NB_LINE_DELETED: 削除された行の数。これはAfter変数で、整数を返します。 NB_LINE_REJECTED: 拒否された行の数。これはAfter変数で、整数を返します。 QUERY: 処理されたクエリーステートメント。これはAfter変数で、文字列を返します。 フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。 変数の詳細は、コンテキストと変数を使用をご覧ください。 Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。 |
使用方法
使用ルール |
このコンポーネントでは、DBクエリーの柔軟性によるメリットが提供されており、使用可能なすべてのSQLクエリーが網羅されています。 このコンポーネントは、出力コンポーネントとして使用する必要があります。このコンポーネントを使用して、MySQLデータベース内のテーブルまたはテーブルのデータにアクションを実行できます。また、[Row] (行) > [Rejects] (リジェクト)リンクを使用して、エラーのあるデータをフィルタリングするリジェクトフローを作成することもできます。tMysqlOutputの使用例については、リジェクトリンクを使用してエラーデータを取得するをご覧ください。 |
[Dynamic settings] (ダイナミック設定) |
[+]ボタンをクリックしてテーブルに行を追加し、[Code] (コード)フィールドにコンテキスト変数を入力して、ジョブ内で計画した複数の接続からデータベース接続をダイナミックに選択します。この機能は、データストラクチャーが同じでデータベースが異なるデータベーステーブルにアクセスする必要がある場合、特に、Talend Studioを介さずにジョブをデプロイおよび実行する必要がある時など、ジョブの設定を変更できない環境で作業している場合に役立ちます。 [Dynamic settings] (ダイナミック設定)テーブルは、[Basic settings] (基本設定)ビューで[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている場合のみ利用できます。ダイナミックパラメーターを定義すると、[Basic settings] (基本設定)ビューの[Component List] (コンポーネントリスト)ボックスは利用できなくなります。 ダイナミックパラメーターの定義法を示すユースケースについては、コンテキストベースのダイナミック接続によってデータベースからデータを読み取りと、ダイナミックにロードされた接続パラメーターを使って異なるMySQLデータベースからデータを読み取りをご覧ください。ダイナミック設定とコンテキスト変数の詳細は、ダイナミックスキーマとコンテキストグループを作成し、その中でコンテキスト変数を定義をご覧ください。 |