2014-01-17 4 views
4

Я использую mysql для всех своих хранилищ данных и запросов. Но так как теперь размеры таблиц стали настолько высокими, для получения результатов требуется несколько часов. Я предпринял все возможные меры, такие как оптимизация запросов и правильная индексация таблиц.Импорт данных из mysql в друид

Так что я думал об использовании друида. Раньше я не работал с друидом. Я думаю, что мне нужно импортировать все таблицы, данные из mysql в друид. Я не могу понять, с чего начать. Поэтому, если кто-то любезно поможет мне с любым руководством, я буду очень благодарен. Заранее спасибо.

+0

Любой, кто нуждается в информации о сравнении производительности между MySQL и Друидом, см. В [блоге на druid.io] (http://druid.io/blog/2014/03/ 12/партии-ingestion.html). – user766353

ответ

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" : { 
    "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. Данные будут поступать и обрабатываться в сегменты друидов, которые вы можете запросить.

+0

Является ли вышеуказанная спецификация еще правильной с последней версией друида? – jagamot

+0

Что делать, если у меня несколько таблиц? – Crystal

+0

В последней версии есть документы, дающие пример как формата csv, так и config.json, используемого для глотания [здесь] (http://druid.io/docs/latest/ingestion/data-formats.html). – Max

0

Прежде всего, я не думаю, что друид работает лучше, как хранилище, точнее, когда мы говорим, что это инструмент запроса и обработки в реальном времени. Кроме того, я предпочитаю использовать hive + hdfs combo для замены вашего mysql с увеличением размера ваших таблиц. Более того, друид может принимать hdfs в качестве своего глубокого хранилища.