Методология успешного внедрения 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 и проверить ее соответствие рекомендациям и требованиям.