このページでは、
persist_forパラメータについて説明します。このパラメータは Explore の一部です。
persist_forは、モデルの一部としても使用できます。詳細については、persist_for(モデル用) パラメータのドキュメント ページをご覧ください。
persist_forは、派生テーブルの一部としても使用できます。詳細については、persist_for(派生テーブル用)パラメータのドキュメント ページをご覧ください。
用途
explore: explore_name {
persist_for: "1 hour"
}
|
階層
persist_for |
デフォルト値
モデルの persist_for 設定
許可
整数と時間枠(秒、分、時間)を含む文字列
特別なルール
explore レベルの persist_for 設定は、モデルレベルの persist_for 設定をオーバーライドします
|
定義
Looker のキャッシュ ポリシーをデータベースの ETL(抽出、変換、読み込み)プロセスと同期するなど、より堅牢なキャッシュ管理を行うには、クエリのキャッシングのドキュメント ページで説明されているように、
datagroupとpersist_withの使用を検討してください。
persist_for を使用すると、特定の Explore でキャッシュされたクエリ結果が使用される時間を変更できます。Looker のデフォルトのキャッシュ期間は 1 時間です。キャッシュされた結果は Looker インスタンス上の暗号化ファイルに保存されます。
Looker におけるキャッシングの仕組みは次のとおりです。ユーザーが特定のクエリを実行すると、そのクエリの結果がキャッシュされます。まったく同じクエリ(行数制限など、すべてが同じである必要があります)が persist_for で指定された間隔よりも短い間隔で再度実行されると、キャッシュされた結果が返されます。それ以外の場合は、データベースに対して新しいクエリが実行されます。
persist_for 間隔が期限切れになると、データはキャッシュから削除されます。データがキャッシュに保存される期間については、クエリのキャッシングのドキュメント ページをご覧ください。
Explore と そのモデルの両方に persist_for が設定されている場合、その Explore に基づくクエリでは、Explore に設定された値が優先されます。
Explore から、クエリがキャッシュから返されたかどうかを確認したり、データベースから新しい結果を強制的に生成したりできます。詳細については、クエリのキャッシングのドキュメント ページをご覧ください。
例
キャッシュ期間を 2 時間に調整します。
explore: my_explore {
persist_for: "2 hours"
}
キャッシュ期間を 30 分に調整します。
explore: my_explore {
persist_for: "30 minutes"
}
キャッシュをオフにして、ユーザーがクエリのキャッシュされた結果を取得しないようにします。
explore: my_explore {
persist_for: "0 seconds"
}
注意点
persist_for が 0 seconds に設定されている場合、ユーザーのクエリはキャッシュからデータを取得しません。ただし、Looker では内部処理にディスクキャッシュが必要なため、persist_for が 0 seconds に設定されている場合でも、暗号化されたデータは常にキャッシュに書き込まれます。データがキャッシュに書き込まれると、削除フラグが設定されますが、最大 10 分間はディスク上に存在することがあります。詳細については、クエリのキャッシングのドキュメント ページをご覧ください。
persist_for は必ずしもデータのインポートと一致しません
多くの企業では、分析データベースに毎日データをインポートしています。データが常に更新されないのであれば、新しいクエリを実行する意味がないと判断し、キャッシュ期間を 24 時間に設定する(persist_for: 24 hours など)ことがあります。ただし、これにより、ユーザーが最新の更新よりも古いデータを取得することを防ぐことはできません。
たとえば、1 月 1 日の正午にクエリが実行され、1 月 2 日の朝に新しいデータがインポートされ、1 月 2 日の正午にクエリが再度実行されたとします。クエリは persist_for で指定された 24 時間以内に実行されたため、1 月 2 日に新しいデータが読み込まれた場合でも、1 月 1 日のデータが返されます。
キャッシュをデータのインポートと一致させる場合は、データグループと
persist_withを、クエリのキャッシングに関するドキュメントで説明されているように使用します。
スケジュールされた Look は結果をキャッシュに保存します
スケジュールされた Look が実行されると、ユーザーが実行したクエリと同じように、キャッシュされた結果セットが作成されます。特定の Look を事前にキャッシュするには、保存してスケジュールすることを検討してください。