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

大型のルックアップテーブルを処理する場合のベストプラクティス

この記事では、億単位のレコードを処理するTalendジョブの設計時に採用すべきベストプラクティスについて説明します。
  • メインおよびルックアップデータを理解するためにプロファイリングを実行します。Talendデータプロファイリングを使用し、カラム分析、冗長性分析などの分析を実行することで、パターンとキーを理解します。
  • 小さなテーブルをルックアップに使用します。Talendはジョブの開始時にルックアップをメモリに読み込みます。そうすることで、ルックアップのサイズが小さいほどジョブによるルックアップデータの処理が高速になります。
  • ルックアップテーブルに必要なカラムの最小数をロードして、メモリの使用を最適化します。未使用のカラムをすべて削除します。
  • ルックアップテーブルが大きい場合はブロッキングキーを使用します。ただし、ルックアップキーはあまり変化しません。

    最初のステップとして、データ分析に基づいてルックアップキーをテーブルにロードし、このテーブルをルックアップジョブで実際のルックアップテーブルとして使用します。このようにして、ルックアップでレコードのサブセットのみが使用されます。ブロッキングキーはカラムの連結にもなります。実行されるルックアップの数と各ルックアップ内の行数を定義するディストリビューションを理解するために、ブロッキングキーに対して分析を行うことができます。一致分析におけるブロッキングキーの使い方については、一致分析を作成をご覧ください。この特定のシナリオでは、複合マッチを行いません。ただし、ブロッキングキーはルックアップのためにメモリにロードするデータセットを少なくするのに良い方法です。独自のカスタムブロッキングキーを設計できます。

  • ソーステーブルとルックアップテーブルが同じデータベースにある場合は、ルックアップにデータベース結合を使うことを検討してください。選択したカラムと結合条件を入力コンポーネントに追加できます。それに合わせてスキーマを更新する必要があります。
  • ルックアップとソーステーブルが同じデータベース内にある場合は、ELT (tELT*)コンポーネントを使用します。データベースにTalend SQLの処理に十分なリソースがある場合、これは良いオプションになり得ます。これは自動生成されます。また、必要な変換がすべてデータベースによって処理できる場合にも良いオプションになります。
  • "[Reload for every row] (すべての行にリロード)"オプションは、大きなルックアップには使用しないでください。ジョブがまだ実行中であるため、この設定はルックアップテーブルが変化している時に使用する必要があります。この設定は、ジョブがルックアップテーブルに最新の変更をロードする必要がある場合に使用します。
  • Talendルックアップジョブが実行されるインフラストラクチャーを理解します。ジョブ実行時にシステムがどの程度ビジーになるかを知っておくと役に立ちます。Talend JobServerで実行されるさまざまな処理またはその他のTalendジョブを知り、ルックアップのように多くのメモリを使用するジョブのスケジューリングを行うことが、ベストプラクティスです。

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

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