Как начинающий аналитик данных, вы, вероятно, слышали о базах данных, но не так много слышали о хранилище данных или озере данных.

Прочитав эту статью, вы будете готовы знать все три!

Что такое база данных?

Они предназначены для транзакционных данных. Более причудливый термин для транзакционных данных — OLTP — онлайн-обработка транзакций.

Обычно вы вставляете, удаляете или обновляете записи в базе данных.

В основном мы имеем дело со структурированными данными. информация о профиле клиента, заказы, банковские операции.

Например, вы покупаете что-то на Amazon, и эта активность регистрируется в базе данных заказов Amazon.

Допустим, у вас есть расчетный банковский счет в Chase. Chase ведет таблицу баланса чекового счета, где они увеличивают или уменьшают баланс в зависимости от того, что вы делаете (вносите или снимаете деньги).

Данные хранятся в таблицах со строками и столбцами. Причудливый термин, который мы используем для обозначения этой концепции, — RDMS — системы управления реляционными базами данных.

Oracle, MySQL, MSSQL и DB2 являются примерами реляционных баз данных.

С каждой таблицей связана жесткая схема (также известная как хорошо структурированные данные). Вы должны следовать схеме, когда хотите вставить данные в таблицу. Например, когда вы вставляете в таблицу заказов, у вас должны быть готовы идентификатор заказа, имя клиента, дата заказа, цена заказа и т. д.

Данные достаточно свежие и актуальные. Подумайте о таблице баланса банка. Вы вносите депозит, и если он сразу не отражается в базе данных, нас ждет катастрофа.

Благодаря свежести и способности обрабатывать данные транзакций у реляционных баз данных есть и обратная сторона. Стоимость хранения в таких базах данных выше по сравнению с двумя другими системами, которые мы рассмотрим сегодня.

На практике мы храним в базе данных только самые последние данные и выполняем операции создания-вставки-обновления-удаления в режиме реального времени для данных транзакционных данных.

Обычно содержит самые последние данные для повышения производительности. (Хорошей практикой является перемещение старых данных (скажем, 6 месяцев или старше) в другую систему хранения, чтобы вы продолжали поддерживать актуальность данных.)

Мы используем SQL для операций с базой данных.

В итоге,

  • Базы данных предназначены для сбора и записи данных (OLTP — онлайн-обработка транзакций) — предназначены для транзакций.
  • Данные хранятся в таблицах со строками и столбцами (RDMS — Relational Database Systems).
  • Данные свежие и довольно часто меняются (обновляются/удаляются/вставляются)
  • Данные очень подробные
  • Схема определяется, когда вы записываете в базу данных

Что такое хранилище данных (ХДД)?

Они используются для хранения больших объемов данных. Обычно исторические данные (например, данные о заказах за 10 лет).

Они используются для аналитической обработки. Причудливый термин, который мы используем для этого, — OLAP — Online Analytical Processing.

Например, Facebook хочет проанализировать пользователей, присоединившихся за последние 10 лет. Сначала они будут получать исторические данные о пользователях в DWH, а затем выполнять аналитические запросы.

Вы можете задаться вопросом, почему мы не можем сделать это в реляционной базе данных. В какой-то степени вы можете это сделать. Тем не менее, есть несколько причин, по которым вы можете избегать. Если ваша база данных уже используется для OLTP, если вы выполняете сложные аналитические запросы в той же базе данных, транзакции OLTP замедлятся (например, для размещения заказа потребуется вечность). Кроме того, обычный SQL в реляционных базах данных не поддерживает запросы OLAP.

Обычно мы переносим (извлекаем и преобразовываем) данные из баз данных/файлов в DWH, а затем выполняем аналитические запросы. Данные могут поступать из нескольких баз данных. Причудливый термин, который мы используем для этого процесса, — ETL (извлечение, преобразование и загрузка). Мы извлекаем данные из баз данных/файлов, а затем преобразуем их в нужный формат и, наконец, загружаем в ХД.

Преобразование обычно является сложной и трудоемкой задачей. Часто некоторые преобразования остаются после загрузки.

Как и базы данных, DWH имеет дело со структурированными данными. Однако стоимость хранения ниже, чем у баз данных.

Помимо обычных провайдеров баз данных (Oracle, Microsoft, SAP и IBM), хорошими примерами СХД являются Teradata и AWS Redshift.

Стандартный язык SQL расширен для поддержки запросов OLAP. В частности, инструкция GROUP BY содержит операторы CUBE, ROLLUP и GROUPING SETS для выполнения запросов OLAP.

Вы также можете использовать стек ELK (Elasticsearch, Logstash и Kibana) в качестве решения для хранилища данных.

В итоге,

  • СХД хранит большие объемы данных
  • Предназначен для аналитической обработки (OLAP) — аналитика и отчетность
  • Данные извлекаются из исходных систем — хранятся текущие и исторические — Мы делаем ETL, чтобы получить данные туда
  • Подобно базам данных, DWH имеет жесткую схему, которая определяется во время записи.

Что такое озеро данных?

Озера данных, очень похожие на DWH, позволяют хранить большие объемы данных, чтобы получать ценную информацию.

Однако ключевое отличие здесь в том, что они предназначены для сбора данных в их необработанных формах — данные могут быть структурированными, полуструктурированными или неструктурированными.

Мы выполняем ELT (извлечение, загрузка и затем преобразование).

Возьмем, к примеру, файл журнала. В DWH вы должны сначала преобразовать и загрузить в базу данных, тогда как в озере данных вы сохраняете файл журнала в его необработанном формате и преобразуете, когда хотите его использовать.

В то время как база данных и DWH следуют схеме при записи, озера данных следуют схеме при чтении.

Hadoop, Spark, Amazon S3 — хорошие примеры озер данных.

В итоге,

  • Озера данных предназначены для сбора необработанных данных (структурированных, полуструктурированных, неструктурированных) — вы, вероятно, не знаете, что с ними делать во время сбора (но рекомендуется хотя бы определить, для чего они будут использоваться). для)
  • Обычно хранят большие объемы данных
  • Обычно мы храним данные в озерах данных перед преобразованием и хранением в удобных для аналитики системах.

Это в значительной степени охватывает три системы, которые мы хотели обсудить сегодня.

Используйте эти знания, чтобы произвести впечатление на своих коллег и интервьюеров :)

Приятно получать ваши отзывы об этой статье. Это помогает мне улучшить мое письмо и охватить более широкую аудиторию.

Давайте превзойдем алгоритм Medium для начинающих писателей, поделившись им как можно больше!

PS: Вы проверяли, что происходит, когда вы нажимаете кнопку "Нравится" более одного раза?