メイン コンテンツをスキップする

DBMSでのテーブル列の直接のフィルタリングと集計

以下のシナリオでは、MySQLデータベースの接続をオープンするジョブを作成し、さらに:

Talendでサポートされているテクノロジーの詳細は、Talendコンポーネントをご覧ください。

  • フィルターで指定されたカラム名と一致する行が存在するデータベーステーブルからスキーマをインスタンス化し、

  • 同じデータベーステーブルのカラムをフィルタリングして、WHERE句に一致するデータのみを保管します。

  • フィルタリングされたカラムから特定の値によってグルーピングされたデータを収集し、ターゲットデータベーステーブルに集計データを書き込みます。

データベーステーブルのカラムをフィルタリングして集計するには:

  • [Palette] (パレット)からtELTMysqlconnectiontSQLTemplateFilterColumnstSQLTemplateFilterRowstSQLTemplateAggregatetSQLTemplateCommittSQLTemplateRollbackをデザインワークスペースにドロップします。

  • [OnComponentOk]リンクを使用して、最初の5つのコンポーネントを接続します。

  • [OnComponentError]リンクを使用してtSQLTemplateAggregatetSQLTemplateRollbackに接続します。

  • デザインワークスペースで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_Nameid_Stateという3つのカラムで構成されています。ターゲットテーブルのスキーマはcustomers_statuscustomers_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]がデータベースに作成されます。婚姻区分に基づいて顧客をグルーピングし、各グループの顧客数をカウントします。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。