Конференция разработчиков
высоконагруженных систем
Хочу быть в курсе событий!
Распределенные системы хранения данных для аналитики: Vertica и другие системы
Многие компании сталкиваются с необходимостью хранить и анализировать большие объемы данных (порядка терабайт и более). Рано или поздно системы хранения перерастают возможности отдельного сервера, и перед разработчиками и архитекторами встает проблема выбора распределенной системы, а также стандартные вопросы вроде производительности, масштабируемости, отказоустойчивости и т. д. Существует несколько подходов к созданию распределенных систем хранения данных, которые по-разному выполняют перечисленные требования. Однако не все из них хорошо подходят для анализа больших объемов данных. Универсальных инструментов не существует.
В докладе будут рассмотрены специфические требования к распределенным системам хранения данных, выведенные из примеров анализа, в частности, многомерного анализа данных. Из этих требований следуют определенные технические трудности, которые можно преодолевать по-разному. Я расскажу о способах их преодоления на примерах разных систем, включая специализированную аналитическую RDBMS Vertica, которой будет уделено основное внимание (другие сравниваемые распределенные системы: key-value Dynamo-like, ShardQuery, Hadoop, HadApt, MemSQL, Paraccel). Наша компания с успехом использует Vertica уже три года в качестве основной платформы для анализа эффективности и оптимизации работы рекламной сети, обрабатывая и анализируя до 10 ТБ "сырых" данных или 3.5-4 миллиарда событий в сутки (см. мой прошлогодний доклад: http://www.highload.ru/2012/abstracts/430.html). Мы попробовали разные решения, поэтому очень хорошо понимаем не только преимущества, но и компромиссы, с которыми приходиться мириться. Архитектурные решения Vertica очень хорошо продуманы и подходят именно для решения задач распределенного анализа больших данных. Понимание границ их применимости, преимуществ и недостатков будет полезно не только пользователям Vertica, но и пользователям и разработчикам других распределенных систем.