?
SQL query optimization for highly normalized Big Data
В данной статье описывается подход для быстрого анализа больших данных в реляционной модели данных. Целью данного подхода является достижение максимального использования высоконормализанных временных таблиц, объединяемых посредством алгоритма соединения слиянием («Merge join algorithm»). Подход был разработан для методологии Anchor Modeling, предполагающей крайне высокий уровень нормализации таблиц. Anchor Modeling – это новейшая методология построения хранилищ данных, разработанная для классических баз данных и адаптированная для задач больших данных и MPP (массивно-параллельных) баз данных авторами статьи. Anchor Modeling обеспечивает гибкость расширения и высокую скорость загрузки данных, в то время как представленный подход к оптимизации запросов дополняет методологию возможностью «на лету» проводить быстрый анализ больших выборок данных (десятки Тб). В статье описаны и оценены различные подходы к оптимизации планов выполнения запросов, для колоночных и обычных (строчных) баз данных. Представлены и сравнены результаты теоретических оцениваний и практических экспериментов на реальных данных, проведенных на платформе колоночной массивно-параллельной (MPP) базы данных HP Vertica. Результаты сравнения демонстрируют, что подход особенно эффективен для случаев нехватки доступной оперативной памяти, в результате чего оптимизатору запросов базы данных, при обработке аналитических запросов, приходится переходить от наиболее оптимального режима обработки в оперативной памяти (in-memory) к режиму подкачки с жесткого диска. Также изучен вопрос масштабирования нагрузки. Для этого один и тот-же анализ запускался на кластерах массивно-параллельной СУБД Вертика, состоящих из разного количества серверов. Были испытаны конфигурации из 5, 10 и 12 серверов. Для анализа применялись данные типа «поток кликов», обезличенные данные о кликах пользователей Авито, крупнейшего сайта объявлений РФ.