Druid は、リアルタイム データ分析のためのオープンソースの分散データ ストレージ テクノロジであり、高性能、低レイテンシ、およびスケーラビリティの特徴を備えています。 Druid 開発チームは、Druid のパフォーマンスと信頼性をさらに向上させるためにキャッシュ技術を開発しましたが、この記事では主に Druid キャッシュに関する関連知識を紹介します。
1. Druid キャッシュの概要
Druid キャッシュは 2 つのタイプに分けられます: 1 つは Broker 上の結果キャッシュ、もう 1 つは Historical ノード上のデータ キャッシュです。キャッシュの役割は主に、Druid がデータをクエリするのにかかる時間を短縮し、クエリの負荷を軽減することです。
Broker の結果キャッシュはクエリ結果のキャッシュです。結果がキャッシュされると、後続のクエリはキャッシュから直接取得できます。得る。結果キャッシュはブローカーのローカル ディスクに保存され、クエリ結果のライフサイクルは構成可能で、デフォルトでは 5 分です。クエリ キャッシュは通常、高いクエリ応答速度が必要なシナリオで使用されます。
履歴ノードのデータ キャッシュは、データ ブロックのキャッシュです。履歴ノードはデータ ブロックの保存を担当します。履歴ノードがクエリ リクエストを受信したとき、クエリされたデータ ブロックがすでにローカル キャッシュ内にある場合、履歴ノードはキャッシュからデータ ブロックを直接読み取り、結果を返します。データ ブロックがキャッシュにない場合、履歴ノードはクラスターまたはデータ ソース内の他のノードからデータ ブロックを取得してキャッシュする必要があります。データ キャッシュは Druid の最も重要な機能の 1 つであり、多くのシナリオでクエリのパフォーマンスと応答速度を大幅に向上させることができます。
2. Druid キャッシュの使用方法
Druid でキャッシュを使用する場合は、次の点に注意する必要があります:
Druid はデフォルトではキャッシュを有効にしていないため、クエリ時にキャッシュを明示的に指定する必要があります。クエリを実行するときに、対応するパラメーターを設定することで、結果キャッシュまたはデータ ブロック キャッシュを有効にすることができます。クエリ パラメーターは次のとおりです:
(1) useResultCache: 結果のキャッシュを有効にする場合は true に設定します (デフォルトは false);
(2) useCache: データ ブロックのキャッシュを有効にする場合は true に設定します、デフォルトは false です。
Druid のキャッシュは構成可能であり、ユーザーは実際のニーズに応じてキャッシュのサイズ、ライフサイクル、その他のパラメーターを設定できます。キャッシュ構成のパラメータは次のとおりです:
(1) QueryCacheSize: 結果キャッシュの最大サイズ、デフォルト値は 500MB;
(2)セグメントQueryCacheSize: 結果キャッシュの最大サイズデータ ブロック キャッシュ、デフォルトは 0;
(3) resultCacheMaxSizeBytes: 単一クエリ結果キャッシュの最大サイズ、デフォルトは 10485760 バイト (10MB);
(4) resultCacheExpire : クエリ結果キャッシュのライフサイクル。デフォルトは 5 分です。
3. キャッシュの最適化
Druid キャッシュの最適化には主に次の点が含まれます:
キャッシュ時最大容量に達するか、特定の条件が満たされると、キャッシュの一部をクリアする必要があります。デフォルトでは、Druid キャッシュは期限切れのキャッシュをいくつかクリアして、より多くのスペースを解放します。さらに、ユーザーは独自の清算戦略を定義し、対応するインターフェイスを実装できます。
キャッシュ サイズの設定は、ストレージ容量とキャッシュの効率に直接影響します。キャッシュ サイズの設定が小さすぎると、キャッシュに十分なデータ ブロックやクエリ結果を保存できなくなり、Druid クエリのパフォーマンスに影響します。キャッシュ サイズの設定が大きすぎると、占有されるメモリ リソースが多すぎて、クエリのパフォーマンスが低下します。したがって、最適なパフォーマンスを達成するには、実際のシナリオに応じて調整する必要があります。
キャッシュ ライフ サイクルを長く設定しすぎると、キャッシュによって占有されているメモリ リソースが長時間解放されなくなり、 Druid クエリのパフォーマンスへの影響; キャッシュのライフ サイクル 短すぎると、キャッシュ ヒット率が低下し、Druid クエリのパフォーマンスにも影響します。したがって、最適なパフォーマンスを達成するには、実際のシナリオに従ってキャッシュのライフサイクルを調整する必要があります。
概要:
Druid キャッシュは、Druid クエリのパフォーマンスを最適化する重要な方法です。結果キャッシュとデータ ブロック キャッシュにはそれぞれ異なる長所と短所があり、ユーザーは特定のシナリオに基づいて適切なキャッシュ方法を選択する必要があります。 Druid キャッシュを使用する場合は、キャッシュの有効化と構成に注意を払い、実際のシナリオに応じて調整および最適化する必要があります。
以上がDruid キャッシュ テクノロジーについて学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。