0

https://groups.google.com/forum/#!topic/druid-user/SY​​Wcqcr504kで質問し ましたが、これを回避するのに誰も助けてくれません。

大規模なデータセットを処理しています。サム「queryGranularity」の2つのケース(日ごとのsegmentGranularityと時間ごとのsegmentGranularity)のtopNクエリでは、「時間」ごとです。

Case 01: 日別

"granularitySpec" : {
        "type" : "uniform",
        "segmentGranularity" : "day",
        "queryGranularity" : "hour",
        "intervals" : ["2016-08-22/2016-08-23"]
      }

ケース 02: 時間単位

"granularitySpec" : {
        "type" : "uniform",
        "segmentGranularity" : "hour",
        "queryGranularity" : "hour",
        "intervals" : ["2016-08-22/2016-08-23"]
      }

ただし、「segmentGranularity」:「day」のクエリの時間は、「segmentGranularity」:「hour」よりも遅くなります。誰かこの事件について説明してくれませんか? 日単位のセグメントが時間単位よりも遅いのはなぜですか? また、店舗データ セグメントを日単位と時間単位で区別する場合、セグメント タイプを選択するにはどうすればよいですか? そして、それは私のクエリにどのように影響しますか? 本当にありがとう !

4

1 に答える 1

1

次のことを考慮して、セグメントの粒度を決定できます。

  • リアルタイム インジェストの場合、セグメント粒度によって、リアルタイム インデックス作成タスクが実行される時間が決まります。セグメント粒度が粗いほど、これらのリアルタイム インデックス作成タスクの実行時間が長くなります。リアルタイム タスクは、完了した場合にのみディープ ストレージにデータを保持します。ある時間間隔のリアルタイム タスクのすべてのレプリカが強制終了されると、その時間間隔のデータが失われます。したがって、セグメントの粒度は、データが失われるリスクに影響します。複数の短いタスクが並行して実行されるため、セグメントの粒度が細かくなると、中間管理職のリソースが増えます。
  • セグメントの粒度は、作成されるセグメントのサイズにも影響します。基本的なセットアップでは、時間間隔ごとに 1 つのセグメント ファイルが作成されます。時間間隔は、segmentGranularity によって構成できます。一般に、セグメント サイズを 300 ~ 700 MB 程度、最大 500 万行に維持することをお勧めします。したがって、この推奨事項を使用してセグメントの粒度を決定することもできます。非常に少数の大きなセグメントが生成されている場合は、並列処理の単位はセグメントであるため、クエリの並列処理に影響を与えます。したがって、大規模なセグメントはクエリの速度を低下させることがあります。これは、日レベルでセグメントを作成した場合に発生する可能性があります。

また、クエリ ノードによって発行されたさまざまなドルイド メトリック (つまり、履歴およびリアルタイム) を調べて、クエリが遅い場合のボトルネックを見つけることをお勧めします。さまざまなメトリックについては、 http://druid.io/docs/latest/operations/metrics.htmlを参照してください。

于 2016-08-26T13:36:18.670 に答える