Comments 6
А потом начинается хайлоад и выясняется что терабайты данных в день дорого по 10 раз записывать в промежуточные хранилища. И сеть и хранилища в никуда уходят и стоят много денег.
И начинается слияние всех маленьких этапов обработки в один большой.
Я точно не знаю, что означает термин "хайлоад", но событий в Badoo/Bumble для хранения поступает несколько миллионов в секунду. Это именно что терабайты в день.
Обычно такой объем данных означает, что фирма уже может себе позволить некоторое резервирование данных.
Можно посчитать для любых цифр. Почем оно выходит в месяц.
Гигабайты в день точно нет.
100 терабайт в день точно да.
1 терабайт — вопрос.
Никто никуда петабайты не двигает :-)
Суточные данные приходят и обрабатываются большими пакетами. Каждый пакет оказывается в 3-5 хранилищах. В разных хранилищах этот пакет занимает разный объем места. Сырые и неэффективно сжатые данные перепаковываются под эффективные колоночные форматы, и дальше по конвейеру занимают уже меньше места.
Опять же, у разных данных разная политика удаления. Какие-то данные сохраняются до конца обработки пакета — минуты, другие защищаются в конце дня и т.д.
И, кстати, именно место на медленных дисках в наши дни необычайно дёшево, дороже стали лишние вычисления.
Понятно что он идет пакетами, но это поток и пакеты сравнительно небольшие.
Далеко не все эффективно жмется. Раза в 2 конечно. Но это как раз покрывает необходимость записи и хранения двух копий данных. То на то и выходит.
Хранить на обычных дисках дешево. А вот писать и читать уже проблема. Иопсов мало. В них все и упирается как правило в сценарии поэтапной обработки и быстрых оперативных хранилищ. ssd еще и дешевле могут выйти, за счет уменьшения количества необходимых дисков.
дороже стали лишние вычисления.
При красивом слиянии всех этапов обработки вычислений особо больше не становится. Делаем то тоже самое. С чего бы там сильно больше ЦПУ тратить?
Некий оверхед есть, но он вполне покрывается за счет уменьшения ожидания io, все уже в памяти.
А оперативку так и вообще сэкономить можно. Когда все в одном месте в сумме выходит меньше копий одних и тех данных в памяти на весь конвеер. Тут уже думать надо, в среднем получается.
Опять же, у разных данных разная политика удаления. Какие-то данные сохраняются до конца обработки пакета — минуты, другие защищаются в конце дня и т.д.
Запас минимум на день в любом случае нужен во всех местах.
Факапы бывают. Надо иметь возмжность сохранить данные и не останавливать еще работающую обработку.
Можно смело и делать хранение минимум 24 часа везде, будет гарантия что места и производительности хранилищ хватит на любой типовой факап.
К порядку: правила создания конвейеров обработки данных