tMSSqlOutputの標準プロパティ
これらのプロパティは、標準ジョブのフレームワークで実行されているtMSSqlOutputを設定するために使われます。
標準のtMSSqlOutputコンポーネントは、データベースファミリーに属しています。
このフレームワーク内のコンポーネントは、すべてのTalend製品で使用できます。
基本設定
データベース |
目的のデータベースタイプをリストから選択し、[Apply] (適用)をクリックします。 |
[Property type] (プロパティタイプ) | [Built-in] (組み込み)と[Repository] (リポジトリー)のいずれかです。
|
このアイコンをクリックすると、データベース接続ウィザードが開き、コンポーネント[Basic settings] (基本設定)ビューに設定したデータベース接続パラメーターが保存されます。 データベース接続パラメーターの設定と保存の詳細は、データベースメタデータを一元管理をご覧ください。 |
|
[Use an existing connection] (既存の接続を使用) |
定義済みの接続の詳細を再利用する場合は、このチェックボックスを選択して、[Component List] (コンポーネントリスト)ドロップダウンリストから、目的の接続コンポーネントを選択します。 情報メモ注: ジョブに親ジョブと子ジョブが含まれている時は、親ジョブと子ジョブの間の既存の接続を共有したい場合(たとえば、親ジョブで作成した接続を子ジョブと共有するなど)には、次のように実行します。
ジョブレベル全体でデータベース接続を共有する方法の例は、データベース接続を共有をご覧ください。 |
[JDBC Provider] (JDBCプロバイダー) |
使うJDBCドライバーのプロバイダー、[Microsoft] (マイクロソフト) (デフォルト、推奨)または[Open source JTDS] (オープンソースJTDS)を選択します。 Microsoftを選択した場合は、SQL Server用Microsoft JDBCドライバーを[Microsoftダウンロードセンター]からダウンロードし、ダウンロードしたzipファイルを解凍し、解凍したフォルダーからお使いのJREバージョンに基づいてjarを選択し、jarの名前をmssql-jdbc.jarに変更し、手動でインストールする必要があります。jarの選択については、Microsoftダウンロードセンターでシステム要件情報をご覧ください。 OSGiビルドには、オープンソースのjTDSJDBCドライバーが含まれないことにご注意ください。このコンポーネントが含まれているジョブをOSGiバンドルとしてビルドする必要がある時は、Microsoftの公式JDBCドライバーを使用してください。このドライバーを使用しない場合、このコンポーネントは、 Talend Runtimeに正しくインストールされたjTDSJDBCドライバーを使用するデータソースでのみ機能します。 |
[Host] (ホスト) | 使うデータベースサーバーかAzure Synapse AnalyticsのIPアドレスまたはホスト名を指定します。 サーバーが存在するマシンでSQL Server Browserサービスが実行中である場合は、このフィールドにホスト名とインスタンス名を{host_name}\{instance_name}という形式で指定すれば、TCPダイナミックポートを通じてネームドインスタンスに接続できるようになります。この場合は[Port] (ポート)フィールドを空白のまましておきます。関連情報は、SQL Server Browser serviceをご覧ください。 |
[Port] (ポート) | 使うデータベースサーバーかAzure Synapse Analyticsのリスニングポート番号を入力します。 サーバーが存在するマシンでSQL Server Browserサービスが実行中である場合は、[Host] (ホスト)フィールドにホスト名とインスタンス名を入力し、このフィールドを空にしておけば、TCPダイナミックポートを通じてネームドインスタンスに接続できるようになります。関連情報は、SQL Server Browser serviceをご覧ください。 |
スキーマ |
データベーススキーマの名前を入力します。 |
データベース |
データベースの名前を入力します。 |
[Username] (ユーザー名)と[Password] (パスワード) | 認証データを入力します。 パスワードを入力するためには、[Password] (パスワード)フィールドの横にある[...]ボタンをクリックし、ポップアップダイアログボックスにパスワードを二重引用符で囲んで入力して[OK]をクリックし、設定を保存します。 [Additional JDBC Parameters] (追加のJDBCパラメーター)フィールドにintegratedSecurity=trueを追加し、これら2つのフィールドを空にしておけば、Windowsで[Type 2 integrated authentication] (タイプ2のインテグレーション認証)を使用できるようになります。関連情報は、Building the connection URLでConnecting with integrated authentication On Windowsというセクションをご覧ください。 |
テーブル |
書き込むテーブルの名前を入力します。一度に1つのテーブルしか書き込めないことにご注意ください。 |
[Action on table] (テーブルでのアクション) | 定義済みのテーブルで、次のオペレーションの1つを実行できます。 [Default] (デフォルト): 操作は行われません。 [Drop and create table] (ドロップしてテーブルを作成): テーブルが削除され、再作成されます。 [Create table] (テーブルを作成): テーブルが存在しないため、作成されます。 [Create table if not exists] (テーブルが存在しない場合は作成): テーブルが存在しない場合は作成されます。 [Drop table if exists and create] (テーブルが存在する場合はドロップして作成): テーブルが既に存在する場合は削除されて再作成されます。 [Clear table] (テーブルをクリア): テーブルのコンテンツが削除されます。 [Truncate table] (テーブルを切り詰め): テーブルのコンテンツが削除されます。この操作はロールバックできません。 |
[Turn on identity insert] (ID挿入をオンにする) | このチェックボックスをオンすると、(SQL Serverに次の順次値を選択させるのではなく)挿入されたレコードのID値に独自のシーケンスを使用できます。 |
[Action on data] (データでのアクション) | 定義されたテーブルのデータで実行できる操作は次のとおりです。 [Insert] (挿入): テーブルに新しいエントリーを追加します。重複が見つかった場合、ジョブは停止されます。 [Single Insert Query] (単一挿入クエリー): バッチ内のテーブルにエントリーを追加します。 [Update] (アップデート): 既存のエントリーが変更されます。
情報メモ注: スキーマカラムがすべてキーとして設定されている場合は、このアクションによってエラーが発生し、ジョブが失敗します。
[Insert or update] (挿入またはアップデート): 新しいレコードを挿入します。指定された参照を持つレコードが既に存在する場合は、アップデートされます。
情報メモ注: スキーマカラムがすべてキーとして設定されている場合は、このアクションによって警告メッセージが発生し、ジョブが続行されます。
[Update or insert] (アップデートまたは挿入): 指定された参照を使用してレコードをアップデートします。レコードが存在しない場合は、新しいレコードが挿入されます。
情報メモ注: スキーマカラムがすべてキーとして設定されている場合は、このアクションによって警告メッセージが発生し、ジョブが続行されます。
[Delete] (削除): 入力フローに対応するエントリーを削除します。 [Insert if not exist] (存在しない場合は挿入) : テーブルに新しいエントリーが存在しない場合は追加します。 情報メモ警告: [Update] (アップデート)操作と[Delete] (削除)操作のベースとなるプライマリキーとして、カラムを少なくとも1つ指定する必要があります。この場合、[Edit Schema] (スキーマを編集)をクリックし、プライマリキーとして設定するカラムの横にあるチェックボックスをオンにします。高度な設定を行う場合は、[Advanced settings] (詳細設定)ビューをクリックして、アップデートおよび削除操作のプライマリキーを同時に定義できます。これを設定するには、以下のようにします:[Use field options] (フィールドオプションを使う)チェックボックスをオンにし、[Key in update column] (アップデートのキーカラム)で、アップデート操作のベースとして使うカラム名の横にあるチェックボックスをオンにします。削除操作についても、Key in deleteカラムで同じようにします。
情報メモ注: ダイナミックスキーマ機能は以下のモードで使用できます: [Insert] (挿入)、[Update] (アップデート)、[Insert or update] (挿入またはアップデート)、[Update or insert] (アップデートまたは挿入)、[Delete] (削除)。
|
[Specify identity field] (IDフィールドを指定) | IDフィールドを指定するには、このチェックボックスをオンにします。IDフィールドは自動的に増分するID番号で構成されています。 このチェックボックスをオンにすると、他の3つのフィールドが表示されます。 [Identity field] (IDフィールド): IDフィールドとして定義するカラムをリストから選択します。 [Start value] (開始値): テーブルにロードされる最初の行に使う開始値を入力します。 [Step] (ステップ): ロードされた前の行の値に追加する増分値を入力します。 このチェックボックスは、[Action on table] (テーブルでのアクション)リストで[Drop and create table] (ドロップしてテーブルを作成)、[Create table] (テーブルを作成)、[Create table if not exists] (テーブルが存在しない場合は作成)、[Drop table if exists and create] (テーブルが存在する場合はドロップして作成)のいずれかを選択している場合のみ利用できます。[Advanced settings] (詳細設定)ビューで[Enable parallel execution] (並列実行を有効化)チェックボックスをオンにしている場合は表示されません。[Turn on identity insert] (ID挿入をオンにする)チェックボックスがオフの状態で[Action on table] (テーブルでのアクション)リストから[Create table if not exists] (テーブルが存在しない場合は作成)オプションを選択し、このチェックボックスをオンにすると、指定したテーブルが存在しない場合、データが挿入されていないテーブルのみが作成されます。 情報メモ注: コンポーネントのスキーマからIDフィールドを指定することもできます。それには、関連するカラムの[DB Type] (DBタイプ)をINT IDENTITYに設定します。
情報メモ注: [Specify identity field] (IDフィールドの指定) チェックボックスが選択されている場合、スキーマ内のINT IDENTITY DB Typeは無視されます。
|
[Schema] (スキーマ)と[Edit schema] (スキーマを編集) |
スキーマとは行の説明のことです。処理して次のコンポーネントに渡すフィールド(カラム)数を定義します。Sparkジョブを作成する場合、フィールドの命名時は予約語のlineを避けます。 スキーマを変更するには[Edit schema] (スキーマを編集)をクリックします。現在のスキーマがリポジトリータイプの場合は、3つのオプションを利用できます。
このコンポーネントは、ダイナミックスキーマ機能の利点を備えているので、ソースファイルから不明なカラムを取得したり、各カラムを個別にマッピングしなくてもソースからカラムを一括してコピーしたりできます。ダイナミックスキーマの詳細は、ダイナミックスキーマをご覧ください。 ダイナミックスキーマ機能は、テーブルの不明なカラムを取得するしくみになっており、その他の目的には使用しないことをお勧めします。テーブルの作成には推奨しません。 [Built-in] (組み込み): そのコンポーネントに対してのみスキーマを作成し、ローカルに保管します。 [Repository] (リポジトリー): スキーマは作成済みで、リポジトリーに保管されています。さまざまなプロジェクトやジョブデザインで再利用できます。 再利用するスキーマに整数またはファンクションのデフォルト値が指定されている場合は、これらのデフォルト値を引用符で囲まないようにご注意ください。引用符で囲まれている場合は手動で削除します。 詳細は、テーブルスキーマを取得をご覧ください。 |
[Specify a data source alias] (データソースエイリアスを指定) |
このチェックボックスを選択して、データソース設定で定義した共有接続プールを使用するために、 Talend Runtime 側で作成したデータソースのエイリアスを指定します。このオプションは、 Talend Runtime 内にジョブをデプロイして実行する時にのみ機能します。 このチェックボックスは、[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている場合は利用できません。 |
[Data source alias] (データソースエイリアス) |
Talend Runtime 側で作成したデータソースのエイリアスを入力します。 このフィールドは、[Specify a data source alias] (データソースエイリアスを指定)チェックボックスがオンの場合のみ利用できます。 |
[Die on error] (エラー発生時に強制終了) | このチェックボックスはデフォルトで選択されています。エラーの発生した行をスキップし、エラーが発生していない行の処理を完了するには、このチェックボックスをオフにします。必要に応じて[Row] (行) > [Rejects] (リジェクト)リンクを使用してエラー発生時に行を取得できます。 |
詳細設定
[Additional JDBC parameters] (追加のJDBCパラメーター) |
作成するデータベース接続に接続の追加プロパティを指定します。プロパティはセミコロンで区切られ、各プロパティはキー-値ペアです。たとえばAzure SQLデータベース接続の場合は、encrypt=true;trustServerCertificate=false; hostNameInCertificate=*.database.windows.net;loginTimeout=30;となります。 このフィールドは、[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている場合は利用できません。 |
[Authenticate using Azure Active Directory] (Azure Active Directoryを使って認証) |
このオプションを選択すると、接続を確立する時にAzure Active Directory認証を使用できます。関連情報は、Azure AD Authenticationをご覧ください。 このオプションは、[Basic settings] (基本設定)ビューの[JDBC Provider] (JDBCプロバイダー)ドロップダウンリストからMicrosoftが選択されている場合のみ利用できます。 |
[Enable always encrypted (Column encryption)] (常に暗号化を有効にする(カラムの暗号化)) | このオプションを選択すると、MicrosoftのAlways encrypted機能が使用され、データが暗号化および保護されます。このオプションを使用するためには、事前にAzure Key Vaultでシークレットを保存しておく必要があります:
この機能には、クエリー操作とステートメントに関する制限がいくつか適用されます。制限事項の包括的なリストは、Microsoft SQL Serverのドキュメンテーションをご覧ください。 |
[Commit every] (コミットする間隔) |
ノードのバッチがDBにコミットされるまでに完了しているべき行数を入力します。このオプションにより、トランザクションの質(ただしロールバックは含まない)、特に実行時のパフォーマンスの向上が保証されます。 |
[Additional Columns] (追加のカラム) | このオプションは、データベーステーブルを作成する場合(ドロップありまたはドロップなし)には提供されません。このオプションにより、SQLファンクションを呼び出してカラムにアクションを実行できます。ただし、挿入、アップデート、削除のアクションでないこと、特定の事前処理を必要とするアクションでないことが条件です。
|
[Use field options] (フィールドオプションを使用) | 特にデータに二重のアクションがある場合、リクエストをカスタマイズするには、このチェックボックスをオンにします。 |
[Ignore date validation] (日付の検証を無視する) | のチェックボックスをオンにすると、日付検証を無視し、DATE、DATETIME、DATETIME2、DATETIMEOFFSETのデータ型に対してデータをデータベースに直接挿入できます。 |
[Debug query mode] (デバッグクエリーモード) |
このチェックボックスを選択すると、データベースのエントリーの処理中に各ステップが表示されます。 |
[Support null in "SQL WHERE" statement] ("SQL WHERE"ステートメントでnullをサポート) | DBテーブルに含まれているNull値を処理する場合は、このチェックボックスをオンにします。 情報メモ注: スキーマ内の対応するカラムで[Nullable] (nullを許可)チェックボックスがオンになっていることをご確認ください。
|
[Use Batch] (バッチを使用) |
このチェックボックスを選択して、データ処理のバッチモードを有効にします。 情報メモ注: [Action on data] (データでのアクション)リストで[Single Insert Query] (単一挿入クエリー)オプションを選択する場合は、バッチサイズをカラム数で除した数値がJDBCドライバーによって許可されているパラメーターマーカーの上限(一般に2000)を超えないようにご注意ください。詳細は、下記の [Limitation] (制限事項)ご覧ください。
|
[Batch Size] (バッチサイズ) |
各バッチで処理するレコードの数を指定します。 このフィールドは、[Use batch mode] (バッチモードを使用)チェックボックスがオンの場合のみ表示されます。 |
[Set Query Timeout] (クエリータイムアウトを設定) | このオプションを選択して、クエリーまたはバッチクエリーのタイムアウト期間を設定するために使われます。クエリーまたはバッチクエリーがタイムアウトするとジョブは終了します。[Timeout] (タイムアウト)フィールドで、タイムアウト期間(秒)を設定できます。 情報メモ注:
|
[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変数で、文字列を返します。 ERROR_MESSAGE: エラーが発生した時にコンポーネントによって生成されるエラーメッセージ。これはAfter変数で、文字列を返します。この変数はコンポーネントにこのチェックボックスが存在し、[Die on error] (エラー発生時に強制終了)がオフになっている場合のみ機能します。 Flow変数はのコンポーネントの実行中に機能し、After変数はコンポーネントの実行後に機能します。 フィールドまたは式に変数を入力する場合は、Ctrl + スペースを押して変数リストにアクセスし、使用する変数を選択します。 変数の詳細は、コンテキストと変数を使用をご覧ください。 |
使用方法
使用ルール | このコンポーネントでは、DBクエリーの柔軟性によるメリットが提供されており、使用可能なすべてのSQLクエリーが網羅されています。 このコンポーネントは、出力コンポーネントとして使用する必要があります。このコンポーネントを使用して、MSSqlデータベース内のテーブルまたはテーブルのデータにアクションを実行できます。また、[Row] (行) > [Rejects] (リジェクト)リンクを使用して、エラーのあるデータをフィルタリングするリジェクトフローを作成することもできます。tMysqlOutputの使用例については、リジェクトリンクを使用してエラーデータを取得するをご覧ください。 |
[Dynamic settings] (ダイナミック設定) |
[+]ボタンをクリックしてテーブルに行を追加し、[Code] (コード)フィールドにコンテキスト変数を入力して、ジョブ内で計画した複数の接続からデータベース接続をダイナミックに選択します。この機能は、データストラクチャーが同じでデータベースが異なるデータベーステーブルにアクセスする必要がある場合、特に、Talend Studioを介さずにジョブをデプロイおよび実行する必要がある時など、ジョブの設定を変更できない環境で作業している場合に役立ちます。 [Dynamic settings] (ダイナミック設定)テーブルは、[Basic settings] (基本設定)ビューで[Use an existing connection] (既存の接続を使用)チェックボックスがオンになっている場合のみ利用できます。ダイナミックパラメーターを定義すると、[Basic settings] (基本設定)ビューの[Component List] (コンポーネントリスト)ボックスは利用できなくなります。 ダイナミックパラメーターの定義法を示すユースケースについては、コンテキストベースのダイナミック接続によってデータベースからデータを読み取りと、ダイナミックにロードされた接続パラメーターを使って異なるMySQLデータベースからデータを読み取りをご覧ください。ダイナミック設定とコンテキスト変数の詳細は、ダイナミックスキーマとコンテキストグループを作成し、その中でコンテキスト変数を定義をご覧ください。 |
制限事項 | [Action on data] (データでのアクション)リストで[Single Insert Query] (単一挿入クエリー)オプションが選択されている場合は、SQLの準備されたステートメントが生成されます。例: INSERT INTO table (col1, col2, col3) VALUES (?,?,?) , (?,?,?) , (?,?,?) ,(?,?,?) . 括弧内は数が2000を超えることができないパラメーターのグループです。これは一般に、JBDCドライバーによって左右されます。したがって、バッチサイズはこの制限を守って設定する必要があります。 ライセンスの互換性の問題のため、このコンポーネントの使用に必要な1つ以上のJARが提供されていません。この特定のコンポーネントに不足しているJARをインストールするには、Component (コンポーネント)タブビューの[Install] (インストール)ボタンをクリックします。Talend StudioのIntegrationパースペクティブにある[Modules] (モジュール)タブでも、不足しているすべてのJARを簡単に見つけて追加できます。詳細は、外部モジュールをインストールをご覧ください。 |