Структура данных для хранения HashMap в Druid

Я новичок в друидах. Моя проблема в том, как хранить и запрашивать HashMap в Druid, используя java для взаимодействия. У меня есть network table следующим образом:

Network    f1    f1    f3  .... fn
value       1    3      2  ..... 2

Кроме того, у меня есть range-time table

time             impression
2016-08-10-00      1000
2016-08-10-00      3000
2016-08-10-00      4000
2016-08-10-00      2000
2016-08-10-00      8000

В Druid я могу сохранить таблицу range-time как HashMap и запросить обе таблицы выше с помощью инструкции:

Filter f1 = 1 and f2 = 1 and range-time between [t1, t2].

Может кто-нибудь мне помочь ? Огромное спасибо.


person VanThaoNguyen    schedule 12.08.2016    source источник


Ответы (1)


@ВанТаоНгуйе,

Да, вы можете хранить хэш-карты в druid и выполнять запросы с помощью связанных фильтров.

Подробнее о связанных фильтрах можно прочитать здесь: http://druid.io/docs/latest/querying/filters.html#bound-filter

person 7H3 IN5ID3R    schedule 30.03.2017
comment
Пожалуйста, улучшите свой ответ, опубликовав фактический код в качестве ссылки. Гиперссылки когда-нибудь умрут, или контент переместится на другой URL. Ради потомков мы настоятельно рекомендуем включить код в свой ответ. - person Bram Vanroy; 30.03.2017
comment
Большое спасибо, но сегодня. Я эксперт по друиду. Ваш ответ приемлем, но запоздал. Druid развивает возможности хранения исторических данных и запросов временных рядов. - person VanThaoNguyen; 31.03.2017
comment
Опаздывать нормально. S/O - делиться знаниями. Это помогает опоздавшим, как я. Сказав, что я не понимаю этот ответ. Как вы храните хэш-карты? - person Kenji Noguchi; 08.04.2017
comment
@KenjiNoguchi Просто передайте объект JSON. Допустим, у вас есть объект JS, как показано ниже. var x = {event_type: 'hello', event_properties': { product: {id: 23432, name: 2342} }, user: {id: 2342, mail: '[email protected]' } }; у = JSON.stringify(x); а затем вы передаете y как сообщение кафке, тогда спокойствие кафка читает и сохраняет его. (в реальном времени). Вы можете сделать то же самое в пакетной обработке. - person 7H3 IN5ID3R; 12.04.2017
comment
по моему опыту, мне пришлось использовать flattenSpec для преобразования вложенных объектов в плоский объект пар ключ-значение. Без flattenSpec Друид подбирает только клавиши верхнего уровня. - person Kenji Noguchi; 12.04.2017