Также часто возникают задачи, когда некоторые данные из озера обрабатываются и загружаются в слои хранилища для использования в витринах и аналитических приложениях.
DataLake в архитектуре хранилища можно также рассматривать, как стейджинговый слой. В нем данные хранятся в исходном необработанном виде, и к нему напрямую могут подключаться пользователи, например дата-саентисты.
Как повлияли озера данных и большие данных на архитектуру хранилищ?
Когда мы говорили про послойную архитектуру хранилищ данных мы упоминали 3 слоя: ODS, DDS и DM. На самом деле есть еще один технический слой — Staging, в который данные выгружаются из систем источников в исходном виде — в исходных форматах, с исходными настройками данных.
Если мы создаем аналитику для небольшого интернет магазина, скорее всего мы будем строить отчетность в БД операционной системы. Это не сильно повлияет на производительность и не будет смысла инвестировать время в создание отдельного хранилища.
Если у нас 3−4 системы источника, в которые информацию вносят только пользователи — нам подойдет хранилища с монолитной архитектурой (SMP).
Если же у нас сотни систем-источников, то SMP подход не сработает — нужны специальные решения, которые способны хранить и обрабатывать петабайты данных. Это MPP системы.
Для конечного пользователя хранилища (аналитика) — MPP и SMP БД не сильно отличаются. Обе эти технологии работают с данными в табличном виде и поддерживают обычные SQL-запросы к данным.
Но бурное развитие интернет-технологий принесло еще одно изменение — данных стало не просто много, они стали очень разные: логи интернет-трафика, видео-потоки, изображения, данные с датчиков и устройств. Всю эту информацию очень сложно и неэффективно сохранять в табличном виде.
Для решения задачи хранения неструктурированных данных придумали технологию озер данных (DataLake).
Пример такой архитектуры — база данных Greenplum — данные распределяются по множеству мелких серверов, объединенных в кластер.
Пример такой архитектуры — классическая база данных Oracle — все данные хранятся в едином месте.
Существует два вида масштабирования:
Появился термин «большие данные» и появились разные подходы к архитектуре и масштабированию систем, в том числе аналитических — хранилищ данных.
Но потом случился бум доткомов, интернет начал бурно развиваться, появились смартфоны, интернет вещей и у нас изменились представление о том, что значит «много информации» и «большая нагрузка». Если все данные CRM-системы можно хранить на едином монолитном сервере, то поисковые логи Google или Яндекс уместить в одну базу на одном сервере невозможно.
Мы также говорили, что нельзя совмещать разные виды нагрузок в одной системе. Но вряд ли существует хотя бы одна операционная система (CRM, биллинг или бухгалтерская система), которая не предоставляет пользователям возможность выгрузить отчетность из интерфейса. Может показаться, что оба вида нагрузок вполне способна потянуть одна система?
Операционные системы, также, как и аналитические, строятся на СУБД — системах управления базами данных. И до конца 90х для обоих видов систем использовались реляционные СУБД — (Oracle, Microsoft) — системы, которые хранят информацию в табличном виде.
Создаются для расчета статистики и глубоких, тяжелых запросов.
OLAP – аналитические системы
Предназначены для выполнения множества коротких операций.
OLTP – операционные системы
Разберем вопросы программной архитектуры хранилищ и инфраструктуры.
В прошлой статье мы обсудили разные типы систем — операционные и аналитические.
Когда в компании очень много данных