从MySQL导入数据到Druid

8

我一直使用mysql进行数据存储和查询。但是现在表的大小已经变得非常大,有时需要数小时才能获得结果。我已经采取了尽可能的措施,如优化查询和正确索引表格。

因此,我一直在考虑使用druid。我以前没有使用过druid。我认为我必须将所有表格和数据从mysql导入到druid中。我不知道从哪里开始。所以如果有人能够提供任何指导,我将非常感激。谢谢。


需要了解MySQL和Druid之间性能比较的信息的任何人,请参阅druid.io上的博客。 - user766353
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" : {
   "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片段。


以上规格是否仍然适用于最新版本的Druid? - jagamot
如果我有多个表怎么办? - Crystal
1
最新版本的文档提供了一个示例,展示了csv格式和config.json用于摄取数据这里 - Max
仅返回翻译文本,无需导出CSV数据。使用SQL输入摄取https://druid.apache.org/docs/latest/ingestion/native-batch.html#sql-input-source。 - noleto

1
首先,我认为Druid更适合作为实时查询和处理工具,而不是作为存储工具。此外,随着您的表格大小增加,我更倾向于使用Hive+HDFS组合来替换您的MySQL。另外,Druid可以将HDFS作为其深度存储。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接