ETL/ELTプロセスでTalend Data Catalogを活用するためのベストプラクティス - 8.0

Version
8.0
Language
日本語
Product
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend Data Catalog
Content
インストールとアップグレード
Last publication date
2024-01-19

ETL/ELTプロセスでTalend Data Catalogを活用するためのベストプラクティス

Talend Data Catalogは、インテリジェントなデータディスカバリー(信頼できる単一のデータソースを一元管理型のデータカタログに提供する機能)だけでなく、Talend Data Integrationジョブを収集してインパクト分析と来歴追跡を行う機能を提供します。たとえば、Talend Data Integrationジョブの範囲内で、データフローのソースからデスティネーションへの特定の属性やカラムの使用を特定することもできます。

このドキュメントでは主にWindowsファイルシステムとリレーショナルデータベースをデータソースやデータのターゲットストレージとして取り上げ、Talend Data Catalogを最大活用するうえで役立つTalend Data Integrationジョブのデザイン方法について説明します。

組み込みの代わりにリポジトリープロパティタイプを使う

Talend Studioの大半のコンポーネントでは、データ入力の物理パスソースを定義できるプロパティタイプ属性があります。このソースは、組み込みとしてコンポーネントの一部として定義することも、リポジトリー(他のジョブで再利用が可能)としてメタデータリポジトリーの一部として定義することもできます。Talend Data Catalogの場合、特にデータソースまたはターゲットであるファイルシステムやデータベースコンポーネントで、プロパティタイプリポジトリーに設定することをお勧めします。

以下のサンプルジョブにあるtMapコンポーネントの例では、CSVファイルからMySQLデータベースにデータを格納します。

tMapコンポーネントは以下のように設定されます。

tFileInputDelimitedコンポーネントとtDBOutputコンポーネントで、プロパティタイプリポジトリーとして定義されていることを確認してください。これは正しい来歴やインパクトの追跡のために必要です。

次のスクリーンショットは、Talend Data Integrationジョブ内のtMap設定のためにlastnameカラムがcustomernameとして格納された場合のデータインパクト分析を表したもので、tMapの連結ファンクションが強調表示されています。

tJavaRowのようなカスタムコードコンポーネントでデータマッピングの仕様を使う

Talend Data Integrationのコンポーネント(tJavatJavaRowなど)では、選択したロジックを実装するカスタムコードを記述できます。このカスタムコードは、Talend Data Catalogで来歴を破損したり、すべてからすべてへの依存項目(デカルト積)を生成したりすることがあります。そのような結果を回避するため、コンポーネントの[Documentation] (ドキュメンテーション)タブでデータマッピング仕様を作成することをお勧めします。

データマッピングが含まれていなければカスタムコードごとに異なる結果が生じ、来歴が破損したりマッピングのデカルト積が形成されたりする可能性があります。下の図は、マッピングの仕様がない場合に起こりうるシナリオです。

このサンプルジョブでは、顧客が注文した数量をシンプルな条件付きでチェックするためにtJavaRowを使用します。

マッピングが定義されていなければ、このジョブはデカルト積になり、結果的に来歴が破損してしまいます。

データマッピングの仕様はコンポーネントの[Documentation] (ドキュメンテーション)タブに追加できます。

これによって、来歴の問題が解決されます:

動的に生成されるSQLクエリーでコンテキスト変数を使用

プログラムでのSQLクエリーの形成時に文字列の連結を行うことは、非常に一般的なプラクティスです。Talend Data Integrationのデータ統合ジョブでは、SQL関連コンポーネント(tDBRowなど)やカスタムコードコンポーネント(tJavaRowなど)でそのような文字列連結を行うことができます。ただし、SQLクエリーの形成で連結が行われるコンポーネントによっては、来歴の追跡で困難が生じることがあります。その解決策として、カスタムコードではなくSQLコンポーネント内のSQLクエリーの動的部分にコンテキスト変数を使用します。

以下の例は、テーブル名に対して定義されたコンテキスト変数を使用するtDBInputコンポーネントのみのシンプルなジョブです。