動的に生成されるSQLクエリーでコンテキスト変数を使用
プログラムでのSQLクエリーの形成時に文字列の連結を行うことは、非常に一般的なプラクティスです。Talend Data Integrationのデータ統合ジョブでは、SQL関連コンポーネント(tDBRowなど)やカスタムコードコンポーネント(tJavaRowなど)でそのような文字列連結を行うことができます。ただし、SQLクエリーの形成で連結が行われるコンポーネントによっては、来歴の追跡で困難が生じることがあります。その解決策として、カスタムコードではなくSQLコンポーネント内のSQLクエリーの動的部分にコンテキスト変数を使用します。
以下の例は、テーブル名に対して定義されたコンテキスト変数を使用するtDBInputコンポーネントのみのシンプルなジョブです。
![](/ja-JP/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_concatenate_context_variables.png)
データ来歴は問題なく動作します。
![](/ja-JP/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_correct_lineage.png)
2番目のサンプルジョブにはtJavaRowが含まれており、SQLクエリーは連結によって生成されます。テーブル名には最初のジョブと同じコンテキスト変数が使われています。
![](/ja-JP/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_sql_query_with_concatenate.png)
sqlという出力行を持つtDBRowによって、これはクエリーに対して定義されます。
![](/ja-JP/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_sql_defined_for_query.png)
データフローは全体的にリンクを描いていますが、データの来歴は途切れています。
![](/ja-JP/best-practices-for-utilizing-talend-data-catalog-in-your-etl-elt-processes/8.0/Content/Resources/images/tdi_best_practice_lineage_break.png)
このページは役に立ちましたか?
このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。