База данных, DWH и Data Lake
В далекие времена после университета, я работала специалистом по качеству данных.
Данные были клиентские: ФИО, адреса, телефоны, email. И надо было, чтобы данные были качественные. Для этого в компании использовалось ПО по стандартизации данных, надо было следить, чтобы ПО работало корректно, если замечаешь, что при обработке допущена ошибка, то выставляешь ТЗ на доработку, проверяешь, чтобы новый релиз работал как минимум не хуже чем предыдущий ну и т.д.
Так вот, хоть я и работала с клиентскими данными, но я не работала с БД. Хотя все данные лежали в БД. У меня там были выгрузки в Excel, их формировал кто-то другой. И я в Excel обрабатывала эти данных - надо было, чтобы процент плохих или неразобранных данных был меньше 3.
Перешла я в другую компанию - тоже на проект с качеством клиентских данных. И тут мне предлагают: "а давай мы тебе доступ к БД дадим, ты там будешь селектики делать, статистику считать". И тут у меня загорелись глаза. "Да, конечно, я хочу, но я ничего не знаю, не знаю как пользоваться, хотя в универе у меня был курс, связанный с базами данных. Но я ничего не помню. Так у меня началось осознанное знакомство с SQL.
А пока подписывайся на мой канал На связи: SQL Там я публикую посты про особенности и нюансы SQL. Этот канал про то, как не бояться баз данных, понимать, что такое JOIN, GROUP BY и почему NULL ≠ 0.
Его я веду с нуля подписчиков.
Разбор частых ошибок и задачи по накопительной сумме уже в канале.
Присоединяйся!
Глаза горели, а руки делали в тот момент. Я начала знакомится, что такое БД, DWH, а потом стали появляться Data Lake.
Все эти слова (База данных, DWH, Data Lake) - это про совокупность данных. Везде здесь могут быть связи. Везде может использоваться одна и та же технология (PostgreSQL, S3, ClickHouse и т.д.)
Почему же, если это все про совокупность данных, стали появляться разные слова для этого?
Посмотрим на кусок мяса.
Мы его можем варить, жарить, мариновать.
Но это все равно остается мясом.
Получается, что мясо - это сырье.
А стейк, бульон, котлета - это не мясо, а БЛЮДА.
А теперь попробуем сделать проекцию на данные.
Данные = мясо.
БД/DWH/Data Lake - не мясо, а способ организации этого мяса
База данных - это технология хранения
DWH и Data Lake - это концепции организации данных
У DWH есть своя БД
У Data Lake - своя БД
Но не каждая БД - это DWH
И не каждая БД - это Data Lake
База данных - это как холодильник. Он хранит еду, ему все равно, будет ли это суп или торт.
БД - это "контейнер + правила":
- как хранить данные
- как читать
- как писать
- как обеспечивать целостность
БД Не говорит - зачем хранить эти данные, как они буду использоваться.
Что же такое DWH?
Это ближе уже к готовому блюду. Его не переделывают, его едят и анализируют (это в идеале, конечно)
В DWH данные:
- приведены к единому виду
- нормализованы (чаше всего встречается 3-я форма нормализации - этого достаточно)
- уже очищены
- изменения задним числом недопустимы
Все это не про связи, это про правила жизни данных.
Тогда что включает в себя Data lake?
Озеро данных - это "склад без разборки"
Многие компании не знают, что пригодится завтра, поэтому максимально пытаются сохранить большее количество данных.
Данных действительно бывает много, не все они участвуют в бизнес-процессах и монетизируются. Но терять их никто не хочет.
Поэтому компании организовывают Озеро данных:
- данные хранятся как есть
- без очистки
- без структуры
- без гарантий
- связи между данными могут быть, а могут и нет
Но в некоторых данных встречала, что какие-либо отчеты формируются на данных из "озера".
Поэтому появляются термины, чтобы сказать:
- это БД, которая используется как DWH
- это БД, которая используется как Data Lake
В итоге, получается, что БД - это "где хранятся данные".
DWH и Data Lake - это как и в каком виде они там хранятся.
В моем канале На связи: SQL все простыми словами и с конкретными примерами.
Подписывайся!
