PDTのリジェネレータープロセスについて

日本語で情報が少ないトピックの記事を翻訳しています。

今回はLookerでPDTの構築を管理しているリジェネレーターというプロセスについて紹介します。

この記事はこちらの英語バージョンの日本語訳です。

元の記事の最終情報更新日時:2020 年 11 月 4 日

リジェネレーターの役割:

リジェネレーターの役割は、スクラッチスキーマでの PDT の構築を管理することです。主には、datagroupのtriggerをチェックし、本番環境にプッシュされた新しい PDT を構築し、トリガー値が更新された既存の本番環境の PDT を再構築します。

リジェネレーターのスレッド数:

それぞれのConnectionに対して リジェネレータースレッドは1つあります。リジェネレーターは 1 つのスレッドのみであるため、一度に 1 つの操作しか実行できません。つまり、一度に 1 つのトリガーのみをチェックしたり、1 つの PDTのみをビルド/再ビルドしたりできるということです。

(ConnectionのMax PDT Builder Connections設定でParallel  PDT が有効になっている場合は一度に複数の PDT をビルドできます)

インスタンス全体では最大 25 個のリジェネレータースレッドが使用できますが、Connectionごとに 1 つのスレッドしか使用できません。つまり、Lookerの インスタンスに 25 の異なるデータベースが接続されている場合にのみ、理論的には 25 の PDT を同時に構築できることを意味します。インスタンスで PDT が有効になっているConnectionが 25 を超える場合、複数のConnectionが同じリジェネレータースレッドを共有します。

Regeneratorの実行スケジュール: 

リジェネレーターは、接続設定のPDT And Datagroup Maintenance Scheduleセクションで設定されたスケジュールで実行されます。デフォルト値の実行間隔は5分です。このスケジュールはcron式を使用して設定されます。デフォルトcron 式は、一連の時間を表す空白で区切られた 5 つまたは 6 つのフィールドで構成される文字列です。 cron 式の詳細については、こちらを参照してください。

注意: リジェネレーターの最頻の実行間隔は5分です。「PDT And datagroup Maintenance Schedule」の設定では、5 分よりも頻繁な頻度の cron 文字列を受け入れますが、設定されているように見えてもリジェネレーターは最大で5 分ごとにしか実行されません。

リジェネレータのプロセス:

  1. datagroupのトリガーをチェックする
    • まず初めに、リジェネレーターはすべてのdatagroupトリガーをチェックします。つまり、sql_triggerで設定されたSQLを実行します。返ってきた値が、保存されている前回のトリガー値から変更されていた場合、値を更新し、datagroupを「トリガー済み」としてマークします。すべてのdatagroupトリガーがチェックされた後、リジェネレーターは PDT の構築/再構築に進みます。
  2. PDTを構築する
    • PDTがsql_trigger_valueを使用して永続化されている場合、リジェネレーターは最初にデータベースでトリガーSQLを実行します。トリガーSQL の結果が前回の実行結果の値から変更されていた場合、リジェネレーターは PDT を再構築します。
    • PDT が datagroupを使用して永続化されている場合、リジェネレーターは最初にそのdatagroupがトリガー済みとしてマークされているかどうかを確認します。datagroupがトリガー済みとしてマークされている場合、リジェネレーターは PDT を再構築します。
    • リジェネレーターが PDT をビルド/再ビルドする順序はランダムですが、依存関係にあるPDTの場合はその関係が優先されます。PDTビルドプロセスの詳細については、The PDT Build Processの記事を参照してください。

この記事の内容は限定的なサポートの対象となります。                


 

2 0 226