メタデータの作成と使用
メタデータを使用することで、開発時間を大幅に短縮できます。このチュートリアルでは、メタデータを作成して使用する方法について説明します。
このチュートリアルでは、Talend Open Studio for Data Integrationバージョン6を使用します。Talend Open Studioでは、事前定義済みコンポーネントを使用してJava ETLプログラム(ジョブ)を作成・実行できます。
各コンポーネントは、「Built-In」(組み込み)コンポーネントまたは「Repository」(リポジトリ)コンポーネントとして構成できます。
「Built-In」コンポーネントの場合、ファイルの読み込み方法や含まれる内容などの情報は次のような特性を持ちます。
- コンポーネント内で定義される。
- そのコンポーネントにのみ適用される。
- ほかのコンポーネントで再利用できない。
「Repository」コンポーネントの情報は次のような特性を持ちます。
- メタデータとして保存される。
- 効率的かつ一貫性のある方法で再利用できる。
- メタデータを変更すると、そのメタデータを使用するすべてのジョブに変更が伝播されるため、維持管理が簡単である。
1. 区切り記号付きファイルのメタデータ定義を作成する
- プロジェクトリポジトリで[Metadata]をクリックし、[File delimited]を右クリックし、[Create file delimited]をクリックします。
- ウィザードの[Name]フィールドにmoviesと入力して、[Next]をクリックします。
- サンプルファイルを指定するには、[File]フィールドの横の[Browse]をクリックし、ローカルディスクからファイル[moviesSorted]を選択し、[Open]をクリックします。ウィザードの[File Viewer]セクションにファイルが表示されます。
- [Property Type]の設定を定義するには、[Next]をクリックします。表示されるウィザードウィンドウで、ファイルの読み込み方法、ファイル読み込み時にスキップする行数(該当する場合)、行の最大処理数などの設定を定義できます。
- ファイルの最初の行を列の名前として無視するよう指定するには、[Preview]タブで[Set heading row as column names]のチェックをオンにします。このとき、[Header]チェックボックスが自動的にオンになり、値1が表示されます。
- ファイルを更新して変更を表示に反映させるには、[Refresh Preview]ボタンをクリックして[Next]をクリックします。
- [Name]フィールドにmoviesSchemaを入力します。サンプルファイルの最初の行が列の名前の場合は、列の名前が表示されます。それ以外の場合は、列には「Column 0」「Column 1」のように表示され、手動で名前を変更する必要があります。
スキーマを推測するとき、Talendはサンプルファイルの最初の50行だけを読み込み、これらの行に含まれるデータに基づいて列のタイプと長さを定義します。表示される情報を確認してそのまま使用するか、または必要に応じて修正する必要があります。 - 表示されたスキーマを更新して、サンプルファイルの構造を反映します。ここでは、[title]フィールドと[url]フィールドの長さをそれぞれ100と250に変更します。また、[directorID]フィールドのタイプを[Integer]に変更します。[Finish]をクリックします。
プロジェクトリポジトリの[Metadata]の下に、エントリーmovies 0.1とそのファイルプロパティが表示されます。エントリーmovies 0.1の下に、メタデータファイルのスキーマmoviesSchemaが表示されます。
スキーマのプロパティタイプを変更する必要がある場合は、プロジェクトリポジトリ内のコンポーネントを右クリックして、[Edit File Delimited]または[Edit Schema]を選択します。
2. メタデータを使用してコンポーネントを構成する
- 新しいジョブを作成してuseMetadataという名前を付け、これにtFileInputDelimitedコンポーネントを追加します。
注:デフォルトでは、コンポーネントの構成に[Built-In]パラメーターが使用されます。 - [Component]ビューの[Property Type]フィールドで[Repository]を選択します。
- メタデータを選択するには、表示されるフィールドの横の[…]をクリックし、[movies 0.1]をクリックし、[OK]をクリックします。
メタデータのパラメーターセットが表示されます。また、すべてのフィールドはコンポーネントではなくメタデータによって定義されているため、グレー表示されます。
スキーマを変更するには、[Edit schema]の横に表示される[…]をクリックし、次のいずれかのオプションを選択します。
- [Built-In]プロパティに変更し、このコンポーネント専用としてスキーマを編集する。
- リポジトリの接続を更新し、リポジトリ内のメタデータスキーマを編集する。
. - スキーマを表示するには、[Edit schema]の横に表示される[…]をクリックし、[View schema]を選択します。
3. メタデータを使用して第2のコンポーネントを構成する
メタデータを使用するための代替の方法:リポジトリからデザイナーに直接ドラッグし、tFileInputDelimitedコンポーネントを選択して使用します。
Talendでは、データベース、SAP接続、いくつかのファイルタイプなど、複数のパラメーターに基づいてメタデータを作成できます。
注:ここでは、MySQL Workbench 6.3 CEでtalend_dqというテストデータセットを使用しています。皆さんも同様の構成を使用するか、または独自のデータベースを使用して試すことができます。
4. データベース接続を作成し、メタデータとして定義する
- プロジェクトリポジトリで[Metadata]をクリックし、[Db Connections]を右クリックし、[Create connection]をクリックします。
- [Database Connection]ウィザードの[Name]フィールドにMySqlと入力して、[Next]をクリックします。
- [DB Type]フィールドで[MySQL]を選択します。
- 接続パラメーターを入力します。
- データベースへの接続をチェックするには、[Check]をクリックします。
- ウィザードを閉じてメタデータを作成するため、[Finish]をクリックします。
- すべてのテーブルスキーマを自動的に取得するには、プロジェクトリポジトリで[MySql 0.1]メタデータを右クリックして[Retrieve Schema]をクリックします。
- [Next]をクリックします。接続されたデータベースが表示されます。
- すべてのテーブルとビューを選択するには、データベース名の左のチェックボックスをオンにして、[Next]をクリックします。データベースとすべてのテーブルおよび詳細が表示されます。
すべてのテーブルスキーマはメタデータとしてインポートされており、これらを使用できます。
テーブルとビューは、プロジェクトリポジトリのmysql 0.1接続の下に表示されます。フィールドをテーブルに表示するには、テーブルをクリックします。
5. メタデータを使用してデータベーステーブルを読み込む
- リストからテーブルを読み込むには、テーブルを選択してジョブデザイナーにドロップします。
- [Components]ウィンドウで、[tMySqlInput]をクリックし、[OK]をクリックします。
リポジトリの情報を使用してtMysqlInputコンポーネントが作成されます。MySql 0.1接続が使用され、スキーマにはメタデータテーブルtdq_valuesからのリポジトリ情報が使用されます。
さらに、TalendはSQLクエリーを生成し、テーブルtdq_valuesに送信します。
. - テーブルのデータを表示するには、tLogRowコンポーネントを追加し、tdq_valuesコンポーネントをtLogRow_1コンポーネントにリンクします。
- ジョブを実行するには、[Run]ビューで[Run]をクリックします。table tdq_valuesからのデータが表示されます。