Насколько хорошо это отвечает потребностям вашего бизнеса? Дилемма выбора.

Легко заблудиться в изобилии инструментов обработки данных, доступных на рынке прямо сейчас. В Интернете полно самоуверенных историй (часто спекулятивных) о том, какие инструменты данных использовать и как сделать наш стек данных современным в этом конкретном году. Какие инструменты обработки данных лучше всего? Кто лидер? Как выбрать правильные? Эта история для тех, кто находится в «космосе» и строит лучшую в мире платформу данных.

Что такое «современный стек данных» и насколько он современен?

Проще говоря, это набор инструментов, используемых для работы с данными. В зависимости от того, что мы собираемся делать с данными, эти инструменты могут включать следующее:

- услуги управляемого конвейера данных ETL/ELT

- облачное управляемое хранилище данных/озеро данных в качестве места назначения для данных

- инструмент преобразования данных

- платформа бизнес-аналитики или визуализации данных

- возможности машинного обучения и обработки данных

Иногда неважно, насколько он современный.

Действительно, если наш BI-инструмент суперсовременный, со специальными OLAP-кубами для моделирования данных и интеграцией с git, но не может отобразить отчет по электронной почте, это не имеет значения.

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

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

Redshift, Postgres, Google BigQuery, Snowflake, Databricks, Hadoop, Dataproc, Spark или Elastic Map Reduce?

Какой продукт выбрать для вашей платформы данных?

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

Типы архитектуры платформы данных

Помню, пару лет назад интернет кипел историями типа «Hasdoop мертв». Произошел заметный сдвиг в сторону архитектуры хранилища данных. В 2023 году все, кажется, одержимы потоковой передачей данных в реальном времени и масштабируемостью, предполагая, что Spark и Kafka скоро станут лидерами общедоступных тестов.

Так какой из них лучше? Кто лидер и какие инструменты обработки данных выбрать? Как выбрать?

Я понял, что эти эталонные суждения были очень субъективными и к ним нужно было относиться с долей скептицизма. Что действительно важно, так это то, насколько хорошо эти инструменты соответствуют нашим бизнес-требованиям, если мы хотим построить платформу данных.

Хранилище данных

Бессерверный распределенный механизм SQL (BigQuery, Snowflake, Redshift, Microsoft Azure Synapse, Teradata). Это SQL-first архитектура данных, в которой ваши данные хранятся в хранилище данных, и вы можете свободно использовать все преимущества использования денормализованная схема звезды. Конечно, мы можем это сделать, потому что большинство современных хранилищ данных распределены и хорошо масштабируются, а это означает, что вам не нужно беспокоиться о ключах и индексах таблиц. Он хорошо подходит для специальной аналитики, работающей с большими данными.

Большинство современных хранилищ данных могут обрабатывать структурированные и неструктурированные данные и действительно очень удобны, если большинство ваших пользователей являются аналитиками данных с хорошим Навыки SQL. Современные хранилища данных легко интегрируются с решениями бизнес-аналитики, такими как Looker, Tableau, Sisense или Mode, которые также во многом полагаются на ANSI-SQL. Он не предназначен для хранения изображений, видео или документов. Однако с помощью SQL вы можете делать практически все и даже обучать модели машинного обучения в решениях некоторых поставщиков.



Озеро данных (Databricks, Dataproc, EMR)

Тип архитектуры, в которой ваши данные хранятся в облачном хранилище, например, AWS S3, Google Cloud Storage, ABS. Конечно, естественно использовать его для изображений, видео или документов, а также любых других типов файлов (JSON, CSV, PARQUET, AVRO и т. д.), но для его анализа вашим пользователям придется написать несколько код.

Наиболее распространенным языком программирования для этой задачи будет Python с большим количеством доступных библиотек. JAVA, Scala или PySpark — еще один популярный выбор для этой задачи.

Удивительные преимущества приходят с кодом.

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

Дом у озера

Сочетание архитектуры хранилища данных и озера данных. Он сочетает в себе лучшее из двух миров и служит как программистам, так и обычным бизнес-пользователям, таким как аналитики данных. Это позволяет вашему бизнесу выполнять интерактивные SQL-запросы, оставаясь при этом очень гибким с точки зрения настройки. Большинство современных решений для хранилищ данных могут выполнять интерактивные запросы к данным, хранящимся в озере данных, т. е. к внешним таблицам. Один конвейер данных может выглядеть, например, так:



«Улучшите свои навыки работы с данными с помощью этого конвейера машинного обучения
Моделирование данных, Python, DAG, форматы файлов больших данных, затраты… Он охватывает всеpub.towardsai. сеть"



Сетка данных

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

У каждого бизнес-подразделения может быть сочетание различных навыков программирования, например SQL или Python, а также различные требования к рабочей нагрузке данных (гибкая обработка данных или интерактивные SQL-запросы). При этом каждое бизнес-подразделение может свободно выбирать свое собственное решение для хранилища данных/озера данных, но при этом сможет делиться данными с другими подразделениями без перемещения данных.



Реляционные и нереляционные системы управления базами данных

Система управления реляционными базами данных (RDS) хранит данные в таблице на основе строк со столбцами, которые соединяют связанные элементы данных. Он предназначен для записи и оптимизации для быстрого получения текущих данных. Популярными реляционными базами данных являются PostgreSQL, MySQL, Microsoft SQL Server и Oracle. Базы данных NoSQL поддерживают не только простые транзакции, тогда как реляционная база данных также поддерживает сложные транзакции с соединениями. База данных NoSQL используется для обработки данных, поступающих с высокой скоростью. Популярные базы данных NoSQL:

  • Базы данных документов: MongoDB и CouchDB
  • Базы данных «ключ-значение»: Redis и DynamoDB.

Хранилище данных имеет аналогичную структуру столбцов, как и RDS, оно является реляционным. Данные организованы в таблицы, строки и столбцы. Однако это отличается тем, что данные базы данных организованы и хранятся по строкам, а данные хранилища данных хранятся по столбцам, чтобы упростить онлайн-аналитическую обработку (OLAP), тогда как база данных использует онлайн-обработку транзакций (OLTP). Например, AWS Redshift поддерживает подходы как к хранилищу данных, так и к озеру данных, что позволяет ему получать доступ к большим объемам данных и анализировать их.

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

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

Вы должны решить, какой из них подходит именно вам.

Стек бизнес-аналитики

Современный стек данных должен включать инструменты бизнес-аналитики, помогающие в моделировании и визуализации данных. Некоторые обзоры высокого уровня можно найти ниже. Конечно, это неполный список, но это самые популярные инструменты бизнес-аналитики, доступные на рынке по состоянию на 2023 год:

Студия данных Looker (Google Looker Studio)

Основные функции:

  • Бесплатная версия, ранее называвшаяся Google Data Studio. Это отличный бесплатный инструмент для бизнес-аналитики с поддержкой сообщества.
  • Большая коллекция виджетов и диаграмм
  • Отличная коллекция коннекторов данных от сообщества
  • Бесплатное планирование и доставка электронной почты. Отлично переводит отчеты в электронную почту.
  • Бесплатные функции управления данными
  • Поскольку это бесплатный инструмент сообщества, у него немного неразвитый API.

Просмотр (платная версия)

Основные функции:

  • Надежные функции моделирования данных и возможности самообслуживания. Отлично подходит для средних и крупных компаний.
  • Функции API

Таблица

Основные функции:

  • Выдающиеся визуальные эффекты
  • Разумные цены
  • Запатентованный движок VizQL, обеспечивающий интуитивный аналитический опыт
  • Связь со многими источниками данных, такими как HADOOP, SAP и DB Technologies, повышает качество анализа данных.
  • Интеграция со Slack, Salesforce и многими другими.

Краткий обзор AWS

Основные функции:

  • Индивидуальные отчеты по электронной почте
  • Бессерверный и простой в управлении
  • Надежный API
  • Бессерверное автоматическое масштабирование
  • Плата за использование

Power BI

Основные функции:

  • Интеграция с Excel
  • Мощные возможности приема данных и подключения
  • Общие информационные панели из данных Excel, созданные с легкостью
  • Ряд визуальных и графических материалов легко доступен

Sisense (бывший Periscope)

Sisense — это комплексная платформа для анализа данных, которая делает обнаружение и анализ данных доступными как для клиентов, так и для сотрудников благодаря встраиваемой масштабируемой архитектуре.

Основные функции:

  • Предлагает соединители данных практически для всех основных служб и источников данных.
  • Обеспечивает работу без кода для нетехнических пользователей, хотя платформа также поддерживает Python, R и SQL.
  • Интеграция с Git и пользовательские наборы данных
  • Может быть немного дороже, так как он основан на оплате за лицензию для каждой модели пользователя.
  • Некоторые функции все еще находятся в стадии разработки, например, отчеты о доставке по электронной почте и рендеринге отчетов.

Точка зрения

Основные функции:

  • Естественный язык для запросов

Режим

Основные функции:

  • CSS дизайн для дашбордов
  • Функции совместной работы, позволяющие быстро создавать прототипы перед переходом на премиум-план.
  • Поддержка ноутбука
  • Git-поддержка

Метабаза

Основные функции:

  • Отлично подходит для начинающих и очень гибкий
  • Имеет образ докера, поэтому мы можем запустить его сразу
  • Аналитика самообслуживания

Решетка

Основные функции:

  • API
  • Пишите запросы в их естественном синтаксисе и изучайте схемы
  • Используйте результаты запроса в качестве источников данных для объединения разных баз данных.

Некоторые из этих инструментов имеют бесплатные версии. Например, Looker Data Studio бесплатна с базовыми функциями панели мониторинга, такими как электронная почта, конструктор виджетов с перетаскиванием и хороший выбор диаграмм. У других есть платные функции, например, моделирование данных, оповещения, записные книжки и интеграция с git.

Все они отличные инструменты со своими плюсами и минусами. Некоторые из них более удобны для пользователя, другие предлагают более надежные API, функции CI/CD и интеграцию с git. Для некоторых инструментов эти функции доступны только в платной версии.

Заключение

Современным приложениям, управляемым данными, потребуется база данных для хранения текущих данных приложения. Поэтому, если у вас есть приложение для запуска, рассмотрите архитектуру OLTP и RDS.

Озера данных, склады, дома у озера и базы данных имеют свои преимущества и служат каждой цели.

Компании, которые хотят выполнять анализ больших данных, выполняя сложные SQL-запросы к историческим данным, могут дополнить свои базы данных хранилищем данных (или домом у озера). Это делает стек данных гибким и современным.

В общем, ответ всегда будет один:

Выберите самый дешевый или тот, который лучше всего подходит для вашего стека разработки

Попробуйте, и вы увидите, что реляционную базу данных можно легко интегрировать в платформу данных. Неважно, озеро это или хранилище данных. Разнообразные коннекторы данных обеспечат простое и беспрепятственное извлечение данных.

Тем не менее, есть несколько вещей, которые следует учитывать.

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

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

Если есть какие-либо преимущества экономии средств, может быть лучше оставить инструменты данных у того же поставщика облачных услуг, что и ваш стек разработки.

Возможно, мы захотим проверить, есть ли дублирование функций между инструментами, т. е. действительно ли нам нужно решение BI, которое будет выполнять моделирование данных в своем собственном OLAP-кубе, когда мы уже делаем это в хранилище данных?

Моделирование данных важно

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

Переход к озеру или хранилищу данных будет зависеть в первую очередь от набора навыков ваших пользователей. Решение для хранилища данных обеспечит большую интерактивность и сузит наш выбор до продуктов, ориентированных на SQL (Snowflake, BigQuery и т. д.).

Озера данных предназначены для пользователей с навыками программирования, и мы хотели бы использовать продукты, ориентированные на Python, такие как Databricks, Galaxy, Dataproc, EMR.

Рекомендуем прочитать

  1. https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/how-to-build-a-data-architecture-to-drive-innovation-today-and-tomorrow
  2. https://aws.amazon.com/emr/
  3. https://cloud.google.com/learn/what-is-a-data-lake
  4. https://medium.com/towards-data-science/data-pipeline-design-patterns-100afa4b93e3
  5. https://www.snowflake.com/trending/data-architecture-principles