Найцікавіше в історії аналітичної бази Yahoo — те, що в архітектурі такого масштабу знайшлося місце для PostgreSQL. На той час рідко доводилося чути, що в аналітичному сховищі можна виконувати SQL-запити до таблиць із трильйонами рядків. У Yahoo таку роботу взяв на себе Everest, спеціалізований рушій для аналізу даних про поведінку користувачів, роботу сервісів і рекламу.
Що Yahoo показала у 2008 і 2009 роках
У презентації Everest за травень 2008 року команда Yahoo повідомляла, що обсяг даних наближався до 2 ПБ. Найбільша таблиця містила 3,5 трильйона рядків і була розділена на секції за часом. Завдяки такому поділу запит за конкретний період міг працювати з потрібними секціями таблиці.
У статті для SIGMOD 2009 інженери Yahoo описали наступний етап: понад 6 ПБ в одному сховищі й понад 30 ТБ даних, які завантажували щодня. Система працювала у виробничому середовищі з 2007 року. Це показники, які опублікувала сама команда Yahoo, а наведені в її матеріалах оцінки подальшого зростання були прогнозами.
Де в цій архітектурі PostgreSQL
На схемі Yahoo видно сервер PostgreSQL, розширення Everest і окремі служби зберігання. PostgreSQL давав знайомий SQL-інтерфейс, підключення клієнтів через звичні інструменти й механізми розширення. Everest додавав розподілене колоночне зберігання, стиснення та паралельну обробку запитів у кластері. Ці можливості стосувалися конфігурації Yahoo з її власними компонентами.
Припустімо, аналітик хоче порахувати покази реклами за тиждень. Йому потрібні дата, кампанія й тип події, а решта атрибутів запису у цьому запиті не використовується. Колоночне зберігання дає змогу прочитати потрібні стовпці, а розподіл даних за часом — обмежити сканування потрібним періодом. Паралельна обробка дозволяє кільком вузлам виконувати свою частину запиту одночасно.
Як порівнювати сховища такого масштабу
Розмір сховища, швидкість завантаження й час відповіді на запит вимірюють різні речі. Петабайти в архіві на стрічках показують, скільки даних зберігається. Для інтерактивної аналітики важливо ще знати, який обсяг доступний для запитів, які операції виконують користувачі та скільки часу займає відповідь. Так само добову кількість подій і добовий обсяг завантаження в терабайтах слід порівнювати з урахуванням розміру запису та способу підрахунку.
У початковій новині zolotukhin від 27 травня 2008 року був коментар Миколи Самохвалова. Він розглядав проєкт Yahoo як свідчення зрілості PostgreSQL і водночас зазначав, що йому не було відомо про плани відкрити напрацювання Yahoo. Саме поєднання знайомого SQL-інтерфейсу зі спеціалізованим рушієм робить цей проєкт показовим для розробників аналітичних систем.