2017-04-14 4 views
0

クラスタを設定して、リアルタイムデータをKafkaから取り込みました。ドルイド - タイムスタンプ列でデータを注文する

質問

  1. timestampによって並べ替えのデータをフェッチDruidサポートしていますか?たとえば、データソースXから最新の10エントリを取得する必要があるとします。タイムスタンプフィールドを含むLimitSpecQuery JSON)を使用してこれを行うことはできますか?または、より良いオプションがDruidに対応していますか?

ありがとうございます。

答えて

0

凝集していない行を取得するには凝集していない行

を取得し、あなたは"queryType: "select"でクエリを行うことができます。

選択クエリは、ページサイズを設定したり、将来のクエリで使用するためのページング識別子を自動的に返すようにする場合にも便利です。

この例では、上位10行が必要な場合は、"pagingSpec": { "pageIdentifiers": {}, "threshold": 10 }を渡すことができます。あなたは"descending": "true"に渡すことができ、「タイムスタンプ」で、これらの行を注文するには、タイムスタンプ

によって

注文。 ほとんどのドルイド(Druid)クエリタイプはdescendingプロパティをサポートしているようです。

クエリ例:

{ 
    "queryType": "select", 
    "dataSource": "my_data_source", 
    "granularity": "all", 
    "intervals": [ "2017-01-01T00:00:00.000Z/2017-12-30T00:00:00.000Z" ], 
    "descending": "true", 
    "pagingSpec": { "pageIdentifiers": {}, "threshold": 10 } 
} 

Docs on "select" type queries

0

あなたはextraction function、すべての細かさを設定して動作します/制限をソートするlimitSpecを使用してこれを行うには、クエリでグループを使用するので、__timeでグループすることができます。今すぐtimeseriesクエリを使用したい場合は、最新の10を取得するのが難しいです。それを行う1つの方法は、希望のものに時間を設定してから、間隔を10Hに設定します。時間。これは実現するよりも簡単に言うことができます。あなたが大きなパフォーマンス上の問題がなければ、私は最初の道を行くでしょう。

{ 
    "queryType": "groupBy", 
    "dataSource": "wikiticker", 
    "granularity": "all", 
    "dimensions": [ 
    { 
     "type": "extraction", 
     "dimension": "__time", 
     "outputName": "extract_time", 
     "extractionFn": { 
     "type": "timeFormat" 
     } 
    }, 
    ], 
    "limitSpec": { 
    "type": "default", 
    "limit": 10, 
    "columns": [ 
     { 
     "dimension": "extract_time", 
     "direction": "descending" 
     } 
    ] 
    }, 
    "aggregations": [ 
    { 
     "type": "count", 
     "name": "$f2" 
    }, 
    { 
     "type": "longMax", 
     "name": "$f3", 
     "fieldName": "added" 
    } 
    ], 
    "intervals": [ 
    "1900-01-01T00:00:00.000/3000-01-01T00:00:00.000" 
    ] 
} 
+0

スリムあなたは例のクエリを書くことができますか? –

関連する問題