DBMSでのテーブル列の直接のフィルタリングと集計
以下のシナリオでは、MySQLデータベースの接続をオープンするジョブを作成し、さらに:
-
フィルターで指定されたカラム名と一致する行が存在するデータベーステーブルからスキーマをインスタンス化し、
-
同じデータベーステーブルのカラムをフィルタリングして、WHERE句に一致するデータのみを保管します。
-
フィルタリングされたカラムから特定の値によってグルーピングされたデータを収集し、ターゲットデータベーステーブルに集計データを書き込みます。
データベーステーブルのカラムをフィルタリングして集計するには:
-
[Palette] (パレット)からtELTMysqlconnection、tSQLTemplateFilterColumns、tSQLTemplateFilterRows、tSQLTemplateAggregate、tSQLTemplateCommit、tSQLTemplateRollbackをデザインワークスペースにドロップします。
-
[OnComponentOk]リンクを使用して、最初の5つのコンポーネントを接続します。
-
[OnComponentError]リンクを使用してtSQLTemplateAggregateをtSQLTemplateRollbackに接続します。
-
デザインワークスペースでtMysqlConnectionを選択し、[Component] (コンポーネント)タブをクリックしてtMysqlConnectionの基本設定を定義します。
-
[Basic settings] (基本設定)ビューで、データベース接続詳細を手動でセットするか、DB接続が[Repository] (リポジトリー)ツリービューの[Metadata] (メタデータ)エリアに定義され、保管されている場合[Property Type] (リポジトリータイプ)リストから[Repository] (リポジトリー)を選択します。
メタデータの詳細は、Talend Studioでメタデータを管理をご覧ください。
-
デザインワークスペースでtSQLTemplateFilterColumnsを選択し、[Component] (コンポーネント)タブをクリックして基本設定を定義します。
-
[Database type] (データベースタイプ)リストで、関連するデータベースを選択します。
-
[Component] (コンポーネント)リストで、複数の接続が使用されている場合は、関連するデータベース接続コンポーネントを選択します。
-
対応するフィールドにデータベース、ソーステーブル、およびターゲットテーブルの名前を入力し、[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックして、ソーステーブルおよびターゲットテーブルでデータストラクチャーを定義します。
ソーステーブルのデータストラクチャーを定義すると、カラム名が[Column filters] (カラムフィルター)パネルの[Column] (カラム)リストに自動的に表示されます。
このシナリオでは、ソーステーブルに[id]、[First_Name]、[Last_Name]、[Address]、および[id_State]という5つのカラムが含まれています。
-
[Column filters] (カラムフィルター)パネルで、ソーステーブルに書き込むカラムのチェックボックスをオンにして、カラムフィルターを設定するために使われます。
このシナリオでは、tSQLTemplateFilterColumnsコンポーネントにより、 ソーステーブルの[id]、[First_Name]、および[id_State]の3つのカラムのみがインスタンス化されます。
[Component] (コンポーネント)ビューでは、[SQL Template] (SQLテンプレート)タブをクリックし、システムSQLテンプレートを追加するか、独自に作成して、コード化された操作を実行するジョブで使用できます。詳細は、tSQLTemplateFilterColumnsの標準プロパティをご覧ください。
-
デザインワークスペースでtSQLTemplateFilterRowsを選択し、[Component] (コンポーネント)タブをクリックして基本設定を定義します。
-
[Database type] (データベースタイプ)リストで、関連するデータベースを選択します。
-
[Component] (コンポーネント)リストで、複数の接続が使用されている場合は、関連するデータベース接続コンポーネントを選択します。
-
対応するフィールドにデータベース、ソーステーブル、およびターゲットテーブルの名前を入力し、[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックして、ソーステーブルおよびターゲットテーブルでデータストラクチャーを定義します。
このシナリオでは、ソーステーブルには、最初にインスタンス化された[id]、[First_Name]、および[id_State]という3つのカラムがあり、ソーステーブルには、同じ3つのカラムのスキーマがあります。
-
[Where condition] (Where条件)フィールドに、指定した条件を満たすレコードのみを抽出するWHERE句を入力します。
このシナリオでは、tSQLTemplateFilterRowsコンポーネントは、ソーステーブルの[First_Name]カラムのフィルタリングを行い、「a」の文字を含む最初の名前のみを抽出します。
-
デザインワークスペースで、tSQLTemplateAggregateを選択し、[Component] (コンポーネント)タブをクリックして基本設定を定義します。
-
[Database type] (データベースタイプ)リストで、関連するデータベースを選択します。
-
[Component] (コンポーネント)リストで、複数の接続が使用されている場合は、関連するデータベース接続コンポーネントを選択します。
-
対応するフィールドにデータベース、ソーステーブル、およびターゲットテーブルの名前を入力し、[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックして、ソーステーブルおよびターゲットテーブルでデータストラクチャーを定義します。
ソーステーブルのスキーマは、id, First_Name、id_Stateという3つのカラムで構成されています。ターゲットテーブルのスキーマはcustomers_status、customers_numberという2つのカラムで構成されています。このシナリオでは、婚姻区分で顧客をグルーピングし、各グループの顧客数をカウントします。そうするには、パネルごとに[Operations] (操作)および[Group by] (グループ基準)を定義します。
-
[Operations] (操作)パネルで、[+]ボタンをクリックして1つまたは複数の行を追加し、[Output column] (出力カラム)の行をクリックして、カウントしたデータが含まれる出力カラムを選択します。
-
[Function] (ファンクション)ラインをクリックし、実行する操作を選択します。
-
[Group by] (グループ基準)パネルで、[+]ボタンをクリックして1つまたは複数の行を追加し、[Output column] (出力カラム)の行をクリックして、集計データを保持する出力カラムを選択します。
-
デザインワークスペースでtSQLTemplateCommitを選択し、[Component] (コンポーネント)タブをクリックして基本設定を定義します。
-
[Database type] (データベースタイプ)リストで、関連するデータベースを選択します。
-
[Component] (コンポーネント)リストで、複数の接続が使用されている場合は、関連するデータベース接続コンポーネントを選択します。
-
tSQLTemplateRollbackについても同じようにします。
-
ジョブを保存し、[F6]を押して実行します。
2カラムのテーブル[aggregate_customers]がデータベースに作成されます。婚姻区分に基づいて顧客をグルーピングし、各グループの顧客数をカウントします。