ユーザー定義のSQLテンプレートを使って、データベーステーブルで反復を実行し、そのコンテンツを削除する
以下のJavaシナリオでは、WHERE句を使用して 、MySQLデータベースからの特定のテーブル名で反復処理される3コンポーネントのジョブを作成します。次に、ユーザー定義のSQLテンプレートを使用して、DBMS上で直接テーブルのコンテンツを削除します。
Talendでサポートされているテクノロジーの詳細は、Talendコンポーネントをご覧ください。
高度な用途では、コンテンツを空にするテーブルを含むデータベースへの接続を作成することから始めます。
-
[Repository] (リポジトリー)ツリービューで[Metadata] (メタデータ)を展開し、[DB Connections] (データベース接続)を右クリックして、該当するデータベースへの接続を作成し、接続情報をローカルに保存します。
メタデータの詳細は、Talend Studioユーザーガイドをご覧ください。
またはtMysqlConnectionコンポーネントをデザインワークスペースにドロップし、接続の詳細を手動で入力します。
-
作成したデータベース接続を[Repository] (リポジトリー)からデザインワークスペースにドロップします。
[Components] (コンポーネント)ダイアログボックスが表示されます。
-
tMysqlConnectionを選択し、[OK]をクリックします。
デザインワークスペースにtDBConnection_1コンポーネントが表示され、接続の詳細がすべて[Basic settings] (基本設定)ビューに自動的に入力されます。
-
[Palette] (パレット)から、tMysqlTableListコンポーネント(tDBTableList_1として表示)とtSQLTemplateコンポーネントをデザインワークスペースにドロップします。
-
[On Subjob Ok] (サブジョブがOKの場合)リンクを使って、tDBConnection_1をtDBTableList_1に接続させます。
-
[Iterate] (反復処理)リンクを使って、tDBTableList_1をtSQLTemplate に接続させます。
-
必要であれば、tDBConnection_1をダブルクリックして[Basic settings] (基本設定)ビューを表示し、接続の詳細を確認します。
このサンプルでは、examplesという名前のMySQLデータベースに接続しようとしています。
-
デザインワークスペースでtDBTableList_1をダブルクリックして[Basic settings] (基本設定)ビューを表示し、設定を定義します。
-
複数の接続が使われている場合は、[Component list] (コンポーネントリスト)ドロップダウンリストで該当するMySQL接続コンポーネントを選択します。
-
対応するフィールドで適切な構文を使用してWHERE句を入力し、コンテンツを削除するテーブル名に反復を実行します。
このシナリオでは、名前がexで始まるすべてのテーブルでジョブを反復処理します。
-
デザインワークスペースでtSQLTemplate_1をダブルクリックして[Basic settings] (基本設定)ビューを表示し、設定を定義します。
-
[Database Name] (データベース名)フィールドに、処理するテーブルが含まれているデータベースの名前を入力します。
-
複数の接続が使われている場合は、[Component list] (コンポーネントリスト)ドロップダウンリストで該当するMySQL接続コンポーネントを選択します。
-
[Table name] (テーブル名)フィールドをクリックし、Ctrl + スペースを押してグローバル変数リストにアクセスします。
-
グローバル変数リストで、tDBTableList_1_CURRENT_TABLEを選択します。
ユーザー定義のSQLテンプレートを作成するには、次の手順に従います。
-
[Repository] (リポジトリー)ツリービューで、[SQL Templates] (SQLテンプレート)とMySQLを続けて展開します。
-
UserDefinedを右クリックし、ドロップダウンリストから[Create SQLTemplate] (SQLテンプレートの作成)を選択します。
[New SQLTemplate] (新しいSQLテンプレート)ウィザードが開きます。
-
新しいSQLテンプレートの名前を入力し、必要に応じてその他のフィールドに入力し、[Finish] (終了)をクリックしてウィザードを閉じます。
デザインワークスペースにSQLパターンエディターが開きます。
-
既存のコードを削除し、目的のアクションを実行するために必要なコードを入力し、このサンプルでは、名前が"ex"で始まるテーブルすべてのコンテンツを削除します。
SQLテンプレートコードでは、テーブル名パラメーター(この例では__TABLE-NAME__)に添付された正しい変数名を使用する必要があります。使用されている変数名を表示するためには、tSQLTemplate_1コンポーネントの基本設定で[Table Name] (テーブル名)フィールドにマウスポインターを置きます。
-
Ctrl + Sを押して、ユーザー定義の新しいSQLテンプレートを保存します。
次のステップは、ユーザー定義の新しいSQLテンプレートをtSQLTemplate_1コンポーネントのSQLテンプレートリストに追加することです。
ユーザー定義のSQLテンプレートをSQLテンプレートリストに追加するには、次の手順に従います。
-
tSQLTemplate_1の[Component] (コンポーネント)ビューで、[SQL Templates] (SQLテンプレート)タブをクリックして[SQL Template List] (SQLテンプレートリスト)を表示します。
-
[Add] (追加)ボタンをクリックし、2つのSQLテンプレート行を追加します。
-
最初の行をクリックしてドロップダウン矢印を表示し、矢印をクリックしてSQLテンプレートリストを表示します。
-
作成済みのユーザー定義SQLテンプレートをリストから選択します。
-
2行目のSQLテンプレートが[Commit] (コミット)であることを確認します。
-
ジョブを保存し、F6を押して実行します。
名前がexで始まるMySQL examplesデータベース内のテーブルがすべて、コンテンツから削除されます。