Как записать результаты пакетного задания Spark SQL в Apache Druid? - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу записать данные результатов Spark в Apache Druid. Я знаю, что у друида есть нативной партии , такой как index_parallel. Друид выполняет задания Map-Reduce в том же кластере. Но я только хочу использовать Друид в качестве хранилища данных. Я хочу объединить данные внешнего кластера Spark, а затем отправить их в кластер Druid.

Друид имеет Tranquility для приема в реальном времени. Я могу отправить пакетные данные, используя Tranquility, но это неэффективно. Как я могу эффективно отправить результаты партии в Друид?

1 Ответ

0 голосов
/ 16 ноября 2019

Вы можете написать в тему Kafka и запустить задание индексирования Kafka для его индексации.

Мы использовали этот механизм для индексации данных, но в этом нет такого ограничения windowPeriod. Требуется даже более старая временная метка. Но если шард уже завершен, это приводит к созданию новых шардов в том же сегменте.

например, если я использую сегмент дневного размера, и я попаду в шарды в этом сегменте-11-11-2019-1100MB сегмент-11-11-2019-2 10MB (для данных, полученных 12 ноября с временем события 11 ноября).

При сжатии эти два фрагмента будут объединены с включенным автоматическим уплотнением.

https://druid.apache.org/docs/latest/development/extensions-core/kafka-ingestion.html

https://druid.apache.org/docs/latest/tutorials/tutorial-compaction.html

Или просто вы можете накапливать результаты в HDFS, а затем использовать пакетный прием Hadoop с помощью заданий cron. Автоматическое уплотнение хорошо работает и для этой опции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...