Поделиться через


Методология успешного внедрения Synapse: оценка среды

Примечание.

Эта статья входит в серию статей, посвященных успешному внедрению Azure Synapse, предпосылки к которому закладываются изначально. Общие сведения о серии см. в статье "Внедрение Azure Synapse — успешно по умолчанию".

Первым шагом при реализации Azure Synapse Analytics является проведение оценки среды. Оценка предоставляет возможность собрать все доступные сведения о существующей среде, требованиях к окружающей среде, требованиях к проекту, ограничениях, временных шкалах и слабых сторонах. Эти сведения станут основой для последующих оценок и контрольных проверок, а когда придет время для проверки и сравнения с проектным решением по мере его планирования, конструирования и разработки, их ценность вырастет на порядок. Мы рекомендуем выделить достаточно времени на сбор всей информации и обязательно обсудить все необходимые вопросы в соответствующих группах. В этих группах могут состоять лица, заинтересованные в проекте, бизнес-пользователи, конструкторы решений и профильные специалисты (SME) по использованию существующего решения и среды.

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

Оценка рабочей нагрузки

При оценке рабочей нагрузки рассматривается среда, роли аналитической рабочей нагрузки, ETL/ELT, сеть и безопасность, среда Azure и потребление данных.

Среда

При оценке среды обратите внимание на следующие аспекты.

  • Описать существующую аналитическую рабочую нагрузку:
    • Что такое рабочие нагрузки (например, хранилище данных или большие данные)?
    • Как эта рабочая нагрузка помогает компании вести деятельность? Каковы сценарии использования?
    • Каковы бизнес-цели внедрения этой аналитической платформы и возможной миграции?
    • Соберите сведения о существующей архитектуре, структуре и вариантах внедрения.
    • Соберите сведения обо всех существующих зависимых компонентах и потребителях более высокого и более низкого уровней.
  • Выполняется ли миграция существующего хранилища данных (например, Microsoft SQL Server, Microsoft Analytics Platform System (APS), Netezza, Snowflake или Teradata)?
  • Осуществляется ли миграция платформы больших данных (например, Cloudera или Hortonworks)?
  • Соберите схемы архитектуры и потока данных для текущей аналитической среды.
  • Где находятся источники данных для запланированных аналитических рабочих нагрузок (Azure, другие поставщики облачных служб или локальная среда)?
  • Каков общий размер существующих наборов данных (изначально полученных и добавочных)? Какова текущая скорость роста наборов данных? Каков прогнозируемый темп роста наборов данных в течение ближайших 2–5 лет?
  • У вас уже есть озеро данных? Соберите как можно больше сведений о типах файлов (например, Parquet или CSV), размерах файлов и конфигурации безопасности.
  • Есть ли у вас частично структурированные или неструктурированные данные для обработки и анализа?
  • Опишите характер обработки данных (пакетная или в режиме реального времени).
  • Требуется ли интерактивное исследование данных из реляционных данных, озера данных или других источников?
  • Требуется ли анализ данных в режиме реального времени и исследование содержимого рабочих источников данных?
  • Какие недостатки и ограничения имеет текущая среда?
  • Какую систему управления версиями и средства DevOps вы сейчас используете?
  • У вас есть вариант использования для создания гибридного (облачного и локального), только облачного или многооблачного аналитического решения?
  • Соберите сведения о существующей облачной среде. Ваш поставщик облачных служб предоставляет доступ к одному облаку или к нескольким?
  • Соберите планы, имеющие отношение к будущей облачной среде. Каким будет поставщик облачных служб: с одним облаком или с несколькими?
  • Каковы требования RPO/RTO/HA/SLA в существующей среде?
  • Каковы требования RPO/RTO/HA/SLA в планируемой среде?

Роли аналитической рабочей нагрузки

Для ролей аналитической рабочей нагрузки оцените следующие аспекты.

  • Опишите различные роли (специалист по обработке и анализу данных, инженер данных, аналитик данных и т. д.).
  • Опишите требования к управлению доступом к аналитической платформе для этих ролей.
  • Определите владельца платформы, ответственного за подготовку вычислительных ресурсов и предоставление доступа.
  • Опишите, как в настоящее время взаимодействуют разные роли по работе с данными.
  • Существует ли несколько команд, которые работают вместе на одной аналитической платформе? Если да, каковы требования к управлению доступом и изоляции для каждой из этих команд?
  • Какие клиентские средства используются конечными пользователями для взаимодействия с аналитической платформой?

ETL/ELT, преобразование и оркестрация

Для процессов ETL/ELT, преобразования и оркестрации оцените следующие аспекты.

  • Какие инструменты вы сейчас используете для приема данных (ETL или ELT)?
  • Где размещены эти инструменты в существующей среде (локально или в облаке)?
  • Каковы текущие требования к загрузке и обновлению данных (в режиме реального времени, в виде микропакета, каждый час, день, неделю или месяц)?
  • Описание требований к преобразованию для каждого слоя (большие данные, озеро данных, хранилище данных).
  • Каков текущий подход к программированию для преобразования данных (без кода, минимум кода, программирование на языке SQL, Python, Scala, C# или другое)?
  • Каков предпочтительный планируемый подход к программированию для преобразования данных (без кода, минимум кода, программирование на языке SQL, Python, Scala, C# или другое)?
  • Какие средства в настоящее время используются для оркестрации данных в рамках автоматизации процесса на основе данных?
  • Где находятся источники данных для существующего процесса ETL — извлечения, преобразования и загрузки данных (Azure, другой поставщик облачных служб или локальная среда)?
  • Какие существующие средства потребления данных (отчеты, инструменты бизнес-аналитики, средства с открытым кодом) требуют интеграции с аналитической платформой?
  • Какие планируемые средства потребления данных (отчеты, инструменты бизнес-аналитики, средства с открытым кодом) потребуют интеграции с аналитической платформой?

Сетевые подключения и безопасность

При оценке сети и безопасности обратите внимание на следующие моменты.

  • Какие нормативные требования предъявляются к вашим данным?
  • Если ваши данные включают содержимое клиента или информацию, подпадающую под действие требований индустрии платежных карт (PCI) или Акта о передаче и защите данных учреждений здравоохранения (HIPAA) от 1996 г., есть ли у вашей группы безопасности сертификат, позволяющий Azure работать с этими данными? Если да, то для каких служб Azure?
  • Опишите ваши требования к авторизации и проверке подлинности пользователей.
  • Существуют ли проблемы безопасности, которые могут ограничить доступ к данным во время внедрения?
  • Доступны ли тестовые данные для использования во время разработки и тестирования?
  • Опишите корпоративные требования к безопасности сети для аналитических вычислений и хранения (частные сети, общедоступные сети или ограничения брандмауэра).
  • Опишите требования к безопасности сети для клиентских средств доступа к аналитическим вычислениям и хранилищу (одноранговая сеть, частная конечная точка или другое).
  • Опишите текущую конфигурацию сети между локальной средой и Azure (Azure ExpressRoute, сеть — сеть или другое).

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

  • Защита данных:
    • Шифрование данных при передаче
    • Шифрование неактивных данных (ключи по умолчанию или ключи, управляемые клиентом)
    • Обнаружение и классификация данных
  • Управление доступом:
    • Безопасность на уровне объекта
    • Безопасность на уровне строк
    • Защита на уровне столбцов
    • Динамическое маскирование данных
  • Проверка подлинности:
    • Имя входа SQL
    • ИД Microsoft Entra
    • многофакторная проверка подлинности (MFA)
  • Безопасность сети:
    • Виртуальные сети
    • Брандмауэр
    • Azure ExpressRoute
  • Защита от угроз:
    • Обнаружение угроз
    • Аудит
    • Оценка уязвимостей

Дополнительные сведения см. в техническом документе по безопасности Azure Synapse Analytics.

Среда Azure

При оценке среды Azure обратите внимание на следующие аспекты.

  • Вы сейчас используете Azure? Используется ли эта среда для рабочих нагрузок?
  • Если вы используете Azure, то какие именно службы? Какие регионы вы используете?
  • Используете ли вы службу Azure ExpressRoute? Какая у нее пропускная способность?
  • Есть ли у вас утвержденный бюджет для подготовки необходимых служб Azure?
  • Как сейчас происходит подготовка и администрирование ресурсов (с помощью Azure Resource Manager (ARM) или Terraform)?
  • Знакома ли ваша основная команда с Synapse Analytics? Требуется ли обучение?

Потребление данных

В плане потребления данных оцените следующие аспекты.

  • Опишите, как сейчас выполняются такие действия, как прием, изучение, подготовка и визуализация данных, и какие инструменты для этого используются.
  • Укажите, какие инструменты вы планируете использовать для выполнения таких действий, как прием, изучение, подготовка и визуализация данных.
  • Согласно плану, какие приложения будут взаимодействовать с аналитической платформой (Microsoft Power BI, Microsoft Excel, Microsoft SQL Server Reporting Services, Tableau или другие)?
  • Определите всех потребителей данных.
  • Определите требования к экспорту и совместному использованию данных.

Оценка служб Azure Synapse

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

  • Synapse SQL: распределенная система запросов для Transact-SQL (T-SQL), которая обеспечивает сценарии хранения и виртуализации данных. Она также обеспечивает расширение T-SQL для адаптации к сценариям потоковой передачи и машинного обучения (ML). Synapse SQL предлагает бессерверные модели и модели выделенных ресурсов.
  • Бессерверный пул SQL: распределенная система обработки данных, рассчитанная на крупномасштабные данные и вычислительные функции. Не обладает инфраструктурой, нуждающейся в настройке, или кластерами, требующими обслуживания. Эта служба подходит для незапланированных или пиковых рабочих нагрузок. Рекомендуемые сценарии включают быстрое исследование данных в файлах непосредственно в озере данных, логическое хранилище данных и преобразование необработанных данных.
  • Выделенный пул SQL: представляет коллекцию аналитических ресурсов, которые подготавливаются при использовании Synapse SQL. Размер выделенного пула SQL (ранее — Хранилище данных SQL) определяется единицами использования хранилища данных (DWU). Эта служба подходит для хранилища данных с прогнозируемыми и высокопроизводительными непрерывными рабочими нагрузками, которые связаны данными, хранящимися в таблицах SQL. 
  • Пул Apache Spark: используется для тесной интеграции с Apache Spark — самой популярной подсистемой обработки больших данных с открытым кодом. Она обеспечивает подготовку, инжиниринг, извлечение, преобразование и загрузку данных, а также машинное обучение.
  • Конвейеры интеграции данных: Служба Azure Synapse содержит тот же механизм интеграции данных и обладает теми же возможностями, что и Фабрика данных Azure (ADF), что позволяет создавать полнофункциональные конвейеры ETL прямо в Azure Synapse.

Чтобы определить наиболее подходящий тип пула SQL (выделенный или бессерверный), оцените следующие аспекты.

  • Вы хотите создать традиционное реляционное хранилище данных путем резервирования вычислительной мощности для данных, хранящихся в таблицах SQL?
  • Требуется ли прогнозируемая производительность в ваших вариантах использования?
  • Вы хотите создать логическое хранилище данных на основе озера данных?
  • Вы хотите запрашивать данные непосредственно из озера данных?
  • Вы хотите изучить данные из озера данных?

В следующей таблице сравниваются два типа пулов Synapse SQL.

Сравнение Выделенный пул SQL Бессерверный пул SQL
Ценные предложения Полностью управляемые возможности хранилища данных. Прогнозируемая, высокая производительность для непрерывных рабочих нагрузок. Оптимизирован для управляемых (загружаемых) данных. Легко начать работу и изучать данные озера данных. Более выгодная совокупная стоимость владения (TCO) для нерегламентированных и нерегулярных рабочих нагрузок. Оптимизирован для запросов данных в озере данных.
Рабочие нагрузки Идеально подходит для непрерывных рабочих нагрузок. При загрузке повышается производительность, но сложность выше. Начисление оплаты за DWU (при правильно подобранных размерах) обеспечит экономию затрат. Идеально подходит для нерегламентированных или нерегулярных рабочих нагрузок. Загрузка данных не требуется, поэтому запуск и выполнение осуществить проще. Начисление оплаты за использование обеспечит экономию затрат.
Производительность запросов Обеспечивает высокий параллелизм и низкую задержку. Поддерживает расширенные параметры кэширования, включая материализованные представления. Можно подобрать компромиссные варианты в плане управления рабочими нагрузками (WLM). Не подходит для запросов панели мониторинга. Время отклика вряд ли будет исчисляться миллисекундами. Работает только с внешними данными.

Оценка выделенного пула SQL

Для оценки выделенного пула SQL обратите внимание на следующие аспекты платформы.

  • Какова текущая платформа хранилища данных (Microsoft SQL Server, Netezza, Teradata, Greenplum или другая)?
  • Для рабочей нагрузки миграции определите марку и модель устройства для каждой среды. Укажите сведения об ЦП, GPU и памяти.
  • Для миграции устройства — когда было приобретено оборудование? Было ли устройство полностью амортизировано? Если нет, когда ожидается окончательная амортизация? И сколько осталось средств на капитальные расходы?
  • Существуют ли схемы архитектуры оборудования и сети?
  • Где размещаются источники данных для запланированного хранилища данных (Azure, другой поставщик облачных служб или локальная среда)?
  • На каких платформах размещаются источники данных для хранилища данных (Microsoft SQL Server, База данных SQL Azure, DB2, Oracle, Хранилище BLOB-объектов Azure, AWS, Hadoop или другая)?
  • Являются ли какие-либо источники данных хранилищами данных? Если да, какие именно?
  • Определите все сценарии ETL, ELT и загрузки данных (пакетная служба для Windows, потоковая передача, режим почти реального времени). Определите существующие соглашения об уровне обслуживания (SLA) для каждого сценария и запишите, какие соглашения об уровне обслуживания планируются в новой среде.
  • Каков текущий размер хранилища данных?
  • Какой показатель роста набора данных намечается для выделенного пула SQL?
  • Опишите среды, которые вы сейчас используете (для разработки, тестировании или непосредственной работы).
  • Какие средства в настоящее время используются для перемещения данных (ADF, Microsoft SQL Server Integration Services (SSIS), robocopy, Informatica, SFTP или другие)?
  • Вы планируете загружать данные в реальном или почти в реальном времени?

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

  • Сколько объектов (схем, таблиц, представлений, хранимых процедур, функций) содержит каждое хранилище данных?
  • Какая используется схема: "звезда", "снежинка" или другая?
  • Какой размер у самых больших таблиц и сколько в них записей?
  • Сколько столбцов в самых широких таблицах?
  • Разработана ли уже модель данных для хранилища данных? Какая она: Kimball, Inmon или схема типа "звезда"?
  • Используются ли медленно изменяющиеся измерения (SCD)? Если да, каких типов?
  • Будет ли реализован семантический слой с помощью реляционных киосков данных, служб Analysis Services (табличных или многомерных) или другого продукта?
  • Каковы требования к HA/RPO/RTO/архивации данных?
  • Каковы требования к репликации в регионе?

Оцените следующие характеристики рабочей нагрузки.

  • Каково предполагаемое количество пользователей или заданий, которые будут одновременно обращаться к хранилищу данных в часы пиковой нагрузки?
  • Каково предполагаемое количество пользователей или заданий, которые будут одновременно обращаться к хранилищу данных в часы не самой большой нагрузки?
  • Существует ли период времени, когда пользователей или заданий не будет вообще?
  • Какие показатели производительности ожидаются при выполнении интерактивных запросов?
  • Какие показатели производительности ожидаются для ежедневных, еженедельных и ежемесячных загрузок или обновлений данных?
  • Какие показатели ожидаются при выполнении запросов для отчетов и аналитических запросов?
  • Насколько сложными будут наиболее часто выполняемые запросы?
  • Какой процент от общего размера набора данных является активным набором данных?
  • Примерно какой процент рабочей нагрузки ожидается для загрузок или обновлений, пакетной обработки или создания отчетов, интерактивного запроса и аналитической обработки?
  • Определите шаблоны и платформы, используемые данными:
    • Текущий и запланированный способ и инструменты создания отчетов.
    • Какие приложения или инструменты аналитики будут получать доступ к хранилищу данных?
    • Количество параллельных запросов?
    • Среднее количество активных запросов в любой момент времени?
    • Характер доступа к данным (интерактивный, нерегламентированный, экспорт или другой)?
    • Роли по работе с данными и полное описание их требований к данным.
    • Максимальное число одновременных подключений
  • Шаблон обслуживания обслуживания по производительности запросов:
    • пользователям панели мониторинга;
    • пакетным отчетам;
    • пользователям машинного обучения;
    • процессу извлечения, преобразования и загрузки (ETL).
  • Каковы требования к безопасности для существующей и новой среды (безопасность на уровне строк или столбцов, управление доступом, шифрование и др.)?
  • Есть ли требования к интеграции оценки модели машинного обучения с T-SQL?

Оценка бессерверного пула SQL

Бессерверный пул Synapse SQL поддерживает три основных варианта использования.

  • Простое обнаружение и исследование позволяет быстро принимать решения о том, как извлечь полезные сведения из данных в разных форматах (Parquet, CSV, JSON), сохраненных в озере данных, и планировать соответствующие действия.
  • Логическое хранилище данных обеспечивает реляционную абстракцию для необработанных или разнородных данных, не требуя их перемещения и (или) преобразования, что позволяет постоянно сохранять актуальность представления данных.
  • Преобразование данных обеспечивает простой, масштабируемый и производительный способ преобразования данных в озере данных с помощью T-SQL для передачи в службу бизнес-аналитики и другие средства или в реляционное хранилище данных (базы данных Synapse SQL, База данных SQL Azure и т. п.).

Бессерверный пул SQL предоставляет преимущества различным ролям по работе с данными.

  • Инженеры данных могут с помощью этой службы исследовать озера данных, преобразовывать и подготавливать данные, а также упрощать конвейеры преобразования данных.
  • Специалисты по обработке и анализу данных могут быстро оценить содержимое и структуру данных в озере данных благодаря таким функциям, как OPENROWSET и автоматическое определение схемы.
  • Аналитики данных могут использовать знакомые инструкции T-SQL или любые привычные инструменты запросов, чтобы исследовать данные и внешние таблицы Spark, созданные специалистами по инжинирингу, обработке и анализу данных.
  • Специалисты по бизнес-аналитике могут быстро создавать отчеты Power BI на основе данных в озере данных и таблиц Spark.

Примечание.

Язык T-SQL используется как в выделенном, так и в бессерверном пуле SQL, однако существуют некоторые различия в наборе поддерживаемых функций. Дополнительные сведения о функциях T-SQL, поддерживаемых пулами Synapse SQL (выделенными и бессерверными), см. в статье Функции Transact-SQL, поддерживаемые в Azure Synapse SQL.

Для оценки бессерверного пула SQL рассмотрите следующие аспекты.

  • Есть ли варианты использования для обнаружения и изучения данных из озера данных с помощью реляционных запросов (T-SQL)?
  • Есть ли варианты использования для создания логического хранилища данных на основе озера данных?
  • Определите, существуют ли варианты использования для преобразования данных прямо в озере данных без их предварительного перемещения за его пределы.
  • Есть ли у вас данные в Azure Data Lake Storage (ADLS) или Хранилище BLOB-объектов Azure?
  • Если ваши данные уже находятся в ADLS, есть ли у вас хорошая стратегия секционирования в озере данных?
  • Есть ли у вас рабочие данные в Azure Cosmos DB? Есть ли варианты использования аналитики в режиме реального времени в Azure Cosmos DB без влияния на транзакции?
  • Определите типы файлов в озере данных.
  • Определите соглашение об уровне обслуживания (SLA) для производительности запросов. Требует ли ваш вариант использования прогнозируемой производительности и затрат?
  • Есть ли у вас незапланированные или пиковые аналитические рабочие нагрузки SQL?
  • Определите шаблон и платформы, используемые данными:
    • Текущий и запланированный способ и инструменты создания отчетов.
    • Какие приложения или аналитические средства будут получать доступ к бессерверному пулу SQL?
    • Среднее количество активных запросов в любой момент времени.
    • Характер доступа к данным (интерактивный, нерегламентированный, экспорт или другой)?
    • Роли по работе с данными и полное описание их требований к данным.
    • Максимальное число одновременных подключений
    • Сложность запросов?
  • Какие требования предъявляются к безопасности (управление доступом, шифрование и другие)?
  • Какие требуются функции T-SQL (хранимые процедуры или функции)?
  • Определите количество запросов, которые будут отправляться в бессерверный пул SQL, и размер результирующего набора для каждого запроса.

Совет

Если вы не знакомы с бессерверными пулами SQL, рекомендуется проработать схему обученияСоздание решений для аналитики данных с помощью бессерверных пулов SQL в Azure Synapse.

Оценка пула Spark

Ниже представлены основные сценарии использования пулов Spark в Azure Synapse.

  • Инжиниринг и подготовка данных: Apache Spark включает множество языковых функций для поддержки подготовки и обработки больших объемов данных. Подготовка и обработка позволяют повышать ценность данных и предоставлять их другими службами Azure Synapse. Эти функции доступны в нескольких языках (C#, Scala, PySpark, Spark SQL) за счет использования предоставляемых библиотек для обработки и подключения.
  • Машинное обучение: в состав Apache Spark входит MLlib — библиотека машинного обучения, созданная на основе Spark, которую можно использовать из пула Spark. Пулы Spark также включают Anaconda — дистрибутив Python, который содержит различные пакеты для обработки и анализа данных, включая машинное обучение. Кроме того, Apache Spark в Synapse предоставляет предварительно установленные библиотеки Машинного обучения Microsoft, которые образуют отказоустойчивую, эластичную и RESTful-платформу машинного обучения. В сочетании со встроенной поддержкой записных книжек вы получаете функциональную среду для создания приложений машинного обучения.

Примечание.

Дополнительные сведения см. в статье Apache Spark в Azure Synapse Analytics.

Служба Azure Synapse также совместима с Linux Foundation Delta Lake. Delta Lake — это уровень хранилища с открытым кодом, который переносит транзакции ACID (атомарность, согласованность, изоляция и устойчивость) для Apache Spark и рабочих нагрузок с большими данными. Подробные сведения см. в статье о Delta Lake.

Для оценки пула Spark рассмотрите следующие аспекты.

  • Определите рабочие нагрузки, которым требуется инжиниринг или подготовка данных.
  • Четко определите типы преобразований.
  • Определите, есть ли у вас неструктурированные данные для обработки.
  • При миграции из существующей рабочей нагрузки Spark/Hadoop:
    • Какая используется платформа больших данных (Cloudera, Hortonworks, облачные службы или другая)?
    • Если это миграция из локальной среды, не амортизировано ли оборудование или не истек ли срок действия лицензий? Если нет, когда произойдет окончательная амортизация или истечет срок действия?
    • Какой используется тип кластера?
    • Какие требуются библиотеки и версии Spark?
    • Выполняется ли миграция Hadoop в Spark?
    • Каковы текущие или предпочтительные языки программирования?
    • Какой тип рабочей нагрузки используется (большие данные, машинное обучение или другое)?
    • Каковы существующие и запланированные клиентские инструменты и платформы отчетности?
    • Какие требования предъявляются к безопасности?
    • Есть ли какие-либо текущие недостатки и ограничения?
  • Планируете ли вы использовать или уже используете Delta Lake?
  • Как сейчас осуществляется управление пакетами?
  • Определите необходимые типы вычислительных кластеров.
  • Определите, требуется ли настройка кластера.

Совет

Если вы не знакомы с пулами Spark, рекомендуем проработать схему обучения Инжиниринг данных с помощью пулов Apache Spark Azure Synapse.

Следующие шаги

В следующей статье серии об успешном внедрении Azure Synapse вы узнаете, как оценить структуру рабочей области Synapse и проверить ее соответствие рекомендациям и требованиям.