6

我一直在使用 mysql 进行所有数据存储和查询。但是现在表格大小变得如此之高,有时需要几个小时才能获得结果。我已采取一切可能的措施,例如优化查询和正确索引表。

所以我一直在考虑用druid。我之前没有与德鲁伊合作过。我想我必须将所有表、数据从 mysql 导入 druid。我不明白我应该从哪里开始。因此,如果有人在任何形式的指导方面帮助我,我将不胜感激。提前致谢。

4

2 回答 2

9

首先请注意,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 部分,您可以在其中指定文件、格式​​和列的位置:

"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 作为存储更好,当我们说它是一个实时查询和处理工具时更准确。此外,我更喜欢使用 hive+hdfs 组合来替换你的 mysql,因为你的表的大小在增加。更重要的是,druid 可以将 hdfs 作为其深度存储

于 2015-08-05T03:32:28.307 回答