🚀Ускоряем аналитику Big Data: кейс Expedia Group с Apache Druid and DataSketches
При анализе больших данных часто возникают проблемные запросы, которые не масштабируются, поскольку требуют огромных вычислительных ресурсов и времени для получения точных результатов. Например, подсчет отдельных элементов, квантили, наиболее частые элементы, соединения таблиц в SQL-запросах, матричные вычисления и анализ графов. Если приблизительные результаты для таких вычислений приемлемы, есть специальные потоковые алгоритмы или эскизы (скетчи), которые выполняются на несколько порядков быстрее с допустимыми погрешностями. Скетчи помогли Yahoo успешно сократить время обработки данных с дней или часов до минут или секунд. Одним из таких инструментов является open-source библиотека Apache DataSketches.
Именно ее использует крупная туристическая компания Expedia Group, чтобы ускорить анализ временных рядов в Apache Druid, где соединения таблиц ограниченно поддерживаются, требуя помещения одного набора данных в память. DataSketches поддерживает операции с множествами, включая соединение, пересечение и разность, с небольшой потерей точности. Это полезно при поиске и бронировании билетов. С DataSketches можно запросить каждый набор данных независимо от Druid, чтобы получить нужный объект для каждого набора данных с целью предварительного, а затем и окончательного расчета. Поскольку изначально Druid не поддерживал слияние объектов DataSketches, инженерам Expedia Group пришлось написать собственный код на Java. Причем объект DataSketches занимает очень мало места в памяти, несмотря на большой размер множества. В итоге Apache Druid, колоночная СУБД для быстрого приема огромных объемов данных о событиях и предоставления запросов с малой задержкой, стала работать еще быстрее.
https://datasketches.apache.org/
https://medium.com/expedia-group-tech/fast-approximate-counting-using-druid-and-datasketch-f5f163131acd
Post #187
491