6

私はすべてのデータ ストレージとクエリに mysql を使用しています。しかし、テーブルのサイズが非常に大きくなったため、結果を得るまでに数時間かかる場合があります。クエリの最適化やテーブルの適切なインデックス作成など、可能な限りの対策を講じました。

だから私はドルイドを使うことを考えていました。私は以前にドルイドを扱ったことがありません。すべてのテーブル、データを mysql から druid にインポートする必要があると思います。どこから始めればよいかわかりません。ですから、誰かが親切に私を助けてくれれば、本当に感謝しています。前もって感謝します。

4

2 に答える 2

9

最初に、Druid は時系列データを取り込むため、データの各行にタイムスタンプが必要になることに注意してください。それが可能な場合は、読み進めてください。

データを CSV または TSV に出力します。これらは、バッチ インジェストでサポートされている 2 つの形式です。したがって、データは次のようになります。

2013-08-31T01:02:33Z,"someData","true","true","false","false",57,200,-143
2013-08-31T03:32:45Z,"moreData","false","true","true","false",459,129,330
...

次に、ファイル、形式、および列の場所を指定する firehose セクションを持つインデックス タスクを作成できます。

"firehose" : {
   "type" : "local",
   "baseDir" : "my/directory/",
   "filter" : "my.csv",
   "parser" : {
     "timestampSpec" : {
       "column" : "timestamp"
     },
     "data" : {
       "type" : "csv",
       "columns" : ["timestamp","data1","data2","data3",...,"datan"],
       "dimensions" : ["data1","data2","data3",...,"datan"]
     }
   }
 }

タイムスタンプ列に与えられた特別な処理に注意してください。

ここでインデックス サービスを実行し ( Druid のドキュメントには、必要なクラスターを開始する方法に関する情報が含まれています)、「インデックス サービスを使用したバッチ インジェスト」のセクションで説明されているように、それにタスクをフィードします。データは取り込まれ、クエリ可能な Druid セグメントに処理されます。

于 2014-02-06T05:01:46.607 に答える
1

まず第一に、druid がストレージとして優れているとは思いません。リアルタイムのクエリおよびプロセス ツールであると言った方が正確です。さらに、テーブルのサイズが大きくなるため、ハイブ + hdfs コンボを使用して mysql を置き換えることを好みます。さらに、druid は hdfs をディープ ストレージとして使用できます。

于 2015-08-05T03:32:28.307 に答える