我一直使用mysql来存储和查询我所有的数据。但由于现在表的大小变得如此之大,有时需要几个小时才能得到结果。我已经采取了所有可能的措施,比如优化查询和正确地为表建立索引。
所以我一直在考虑使用德鲁伊。我之前没有和德鲁伊合作过。我想我必须把所有的表,数据从mysql导入到德鲁伊。我不明白我应该从哪里开始。因此,如果有人能给我任何形式的指导,我将不胜感激。提前谢谢。
发布于 2014-02-06 13:01:47
首先请注意,Druid接收时间序列数据,因此数据的每一行都必须有一个时间戳。如果可能,请继续阅读。
输出您的数据到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
...
然后,您可以创建一个包含firehose部分的index task,您可以在其中指定文件的位置、格式和列:
"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 docs包含如何启动集群所需的信息),并按照Batch Ingestion Using the Indexing Service小节中的说明将任务提供给它。数据将被摄取并处理到您可以查询的Druid片段中。
发布于 2015-08-05 11:32:28
首先,我不认为druid更适合作为存储,当我们说它是一个实时查询和处理工具时,它更准确。此外,我更喜欢使用mysql组合来取代您的hive+hdfs,因为您的表的大小不断增加。更重要的是,德鲁伊可以将hdfs作为其深层存储
https://stackoverflow.com/questions/21180739
复制相似问题