我一直在使用mysql进行所有数据存储和查询。但是现在表格大小已经变得非常高,有时需要几个小时才能得到结果。我已采取一切可能的措施,如优化查询和正确索引表。
所以我一直在考虑使用德鲁伊。我之前没有和德鲁伊合作过。我想我必须将所有表格,数据从mysql导入到德鲁伊。我无法理解我应该从哪里开始。所以,如果有人帮助我提供任何指导,我将非常感激。提前致谢。
答案 0 :(得分:9)
首先请注意,德鲁伊会提取时间序列数据,因此数据的每一行都必须有一个时间戳。如果可能,请继续阅读。
将您的数据输出到CSV或TSV。这些是批量提取支持的两种格式。所以你的数据看起来像这样:
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
...
然后你可以创建一个index task,它有一个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"]
}
}
}
请注意对timestamp列的特殊处理。
现在运行索引服务(Druid docs包含有关如何启动您需要的群集的信息)并按照Batch Ingestion Using the Indexing Service部分所述将任务提供给它。数据将被摄取并处理为您可以查询的德鲁伊片段。
答案 1 :(得分:0)
首先,我不认为德鲁伊作为存储更好地工作,当我们说它是一个实时查询和处理工具时更准确。 而且,我更喜欢使用hive + hdfs组合来替换你的mysql,因为你的表的大小越来越大。更重要的是,德鲁伊可以将hdfs作为其深层存储