Озера данных vs обычные БД
Data lake — огромное хранилище, где данные хранятся в неупорядоченном и необработанном виде. Данные в Data lake можно сравнить с рыбой в озере, которая приплыла из реки. Вы не можете точно сказать, какая рыба в озере есть и где конкретно она находится. А чтобы ее приготовить (обработать данные), эту рыбу еще нужно поймать.
Итак, Data lake принимает любые файлы и любых форматов, причем источник данных тоже не имеет значения. При этом могут приниматься данные из CRM- либо ERP-систем, а также банковских программ, продуктовых каталогов, датчиков, умных устройств и т. д., то есть любых систем, которые сегодня использует бизнес.
Когда эти данные сохранены, вы можете с ними работать, извлекая по определенному шаблону в классические БД либо анализируя и обрабатывая непосредственно прямо внутри Data lake (в этих целях можно использовать, к примеру, Hadoop).
Таким образом, ключевым отличием озер данных от стандартных БД является структура. Если в БД хранятся лишь четко структурированные данные, то в озерах — неструктурированные данные, которые никак не систематизированы и не упорядочены.
Пример
Представьте, что у нас есть некий пул данных, и этих данных довольно много. В случае с классической БД нам надо определить тип имеющихся данных, проанализировать их, потом структурировать. Лишь после выполнения всех этих действий мы сможем записать данные в четко определенное место в БД. А потом создать алгоритм, который будет работать с конкретными ячейками (мы же знаем, что и в каких ячейках хранится).
В случае с озером данных все обстоит иначе: информация структурируется на выходе, то есть в тот момент, когда нам потребуется извлечь данные либо их проанализировать. Причем анализ сам по себе никак не влияет на данные в озере — они так и останутся неструктурированными.
Говоря простым языком, озеро данных — это жесткий диск, где хранятся все, имеющиеся у вас файлы. База данных — это таблица, где все эти файлы учтены.
Другие различия:
- Полезность данных. В БД все данные актуальны для компании, то есть полезны, причем прямо сейчас (бесполезные данные отсеивают и удаляют). В озерах данных хранят и полезные, и бесполезные данные, которые могут как пригодиться в ближайшем будущем, так и не пригодиться вовсе.
- Типы данных. В БД хранятся таблицы, имеющие конкретные цифры и текст, т. е. распределенные по структуре. В озерах — любые данные: аудио, видео, картинки, файлы, документы и т. п.
- Гибкость. Гибкость классической БД невысока, а актуальные для нее типы данных, как и структуру, надо определять еще на старте. Когда появляются данные новых форматов, БД надо перестраивать. У озер же гибкость максимальна, ведь заранее определять ничего не надо, как и перестраивать при появлении данных нового формата.
- Цена. Обслуживание БД стоит недешево, особенно если речь идет о хранении большого объема данных. Организация сложной инфраструктуры, фильтрация — все это стоит денег. В этом плане Data lake дешевле, ведь платить надо лишь за занятые гигабайты.
- Доступность данных и их понятность. А вот тут уже плюс на стороне БД, ведь данные в базе способны прочитать и понять практически любые сотрудники компании. Что касается Data lake, то тут для структуризации данных в озере нужны специально подготовленные техспециалисты (Data Scientists/Engineers).
- Сценарии применения. Классические БД идеальны для хранения важной информации, к примеру, основной аналитики, которая должна быть под рукой всегда. В озерах данных лучше хранить архивы неочищенных данных, которые могут пригодиться потом. Данные можно накапливать, что называется, про запас, а не под конкретный запрос бизнеса.
Статья написана по материалам блога MCS.Mail.ru.