В этой статье описывается, как передавать данные из локального хранилища данных в облачную среду, а затем использовать модель бизнес-аналитики для обслуживания данных. Этот подход можно использовать в качестве конечной цели или первого шага к полной модернизации с помощью облачных компонентов.
Это руководство основывается на комплексном сценарии Azure Synapse Analytics. Этот процесс использует конвейеры Azure Synapse Analytics для приема данных из базы данных SQL в пулы SQL. Затем он выполняет преобразование данных для анализа. В этой статье рассматриваются конвейеры Azure Synapse Analytics, но вы также можете использовать конвейеры Фабрики данных Azure или конвейеры Фабрики данных Fabric для выполнения этих задач.
Когда следует использовать эту архитектуру
Вы можете использовать различные методы для удовлетворения бизнес-требований для корпоративной бизнес-аналитики. Различные аспекты определяют бизнес-требования, такие как текущие инвестиции в технологии, навыки человека, временная шкала модернизации, будущие цели и выбор платформы как услуги (PaaS) или программное обеспечение как услуга (SaaS).
Рассмотрим следующие подходы к проектированию:
Fabric и Azure Databricks для клиентов с существующими инвестициями в Azure Databricks и Power BI и хотите модернизировать с помощью Fabric
Корпоративная бизнес-аналитика для малого и среднего бизнеса, использующую экосистему SQL Azure и Fabric
Хранение данных полностью в Fabric для клиентов, которые предпочитают SaaS
Архитектура в этой статье предполагает, что вы используете хранилище данных Azure Synapse Analytics в качестве постоянного уровня корпоративной семантической модели и используете Power BI для бизнес-аналитики. Этот подход PaaS обеспечивает гибкость в соответствии с различными бизнес-требованиями и предпочтениями.
Архитектура
Скачайте файл Visio для этой архитектуры.
Рабочий процесс
Источник данных
- База данных SQL Server в Azure содержит исходные данные. Чтобы имитировать локальную среду, сценарии развертывания для этого сценария настраивают базу данных SQL Azure. Пример базы данных AdventureWorks используется в качестве схемы исходных данных и примеров данных. Дополнительные сведения см. в статье Копирование и преобразование данных вSQL Server и из нее.
Прием и хранение данных
Azure Data Lake Storage является временной промежуточной областью во время приема данных. Вы можете использовать PolyBase для копирования данных в выделенный пул SQL Azure Synapse Analytics.
Azure Synapse Analytics — это распределенная система, которая выполняет аналитику больших данных. Она поддерживает массовую параллельную обработку, поэтому она может выполнять высокопроизводительную аналитику. Выделенный пул SQL Azure Synapse Analytics — это цель для текущего приема из локальной среды. Пул SQL может обслуживать данные для Power BI через DirectQuery и выполнять дальнейшую обработку.
конвейеры Azure Synapse Analytics оркестрации данных и преобразования в рабочей области Azure Synapse Analytics.
Анализ и создание отчетов
- Подход к моделированию данных в этом сценарии объединяет корпоративную модель и семантической модели бизнес-аналитики. Выделенный пул SQL azure Synapse Analytics содержит корпоративную модель. емкость Power BI Premium F64 содержит семантику бизнес-аналитики. Power BI обращается к данным через DirectQuery.
Компоненты
Этот сценарий предполагает наличие перечисленных ниже компонентов.
База данных SQL Azure — это сервер SQL, размещенный в Azure. Эта архитектура использует базу данных SQL для демонстрации потока данных для сценария миграции.
Data Lake Storage предоставляет гибкое облачное хранилище для неструктурированных данных, используемых для сохранения промежуточных результатов миграции.
Azure Synapse Analytics — это корпоративная служба аналитики для хранения данных и систем больших данных. Azure Synapse Analytics служит основным вычислительным и постоянным хранилищем в корпоративном семантике моделирования и обслуживания.
Power BI Premium — это средство бизнес-аналитики, которое представляет и визуализирует данные в этом сценарии.
идентификатор Microsoft Entra ID — это набор многооблачных удостоверений и сетевого решения, поддерживающий поток проверки подлинности и авторизации.
Упрощенная архитектура
Подробности сценария
В этом сценарии организация имеет базу данных SQL, содержащую большой локальный хранилище данных. Организация хочет использовать Azure Synapse Analytics для выполнения анализа, а затем предоставить эти аналитические сведения через Power BI пользователям и аналитике.
Проверка подлинности
Идентификатор Microsoft Entra проверяет подлинность пользователей, подключающихся к панелям мониторинга и приложениям Power BI. Единый вход подключает пользователей к источнику данных в подготовленном пуле Azure Synapse Analytics. Авторизация выполняется в источнике.
Добавочная загрузка
При выполнении автоматического извлечения, преобразования, загрузки (ETL) или извлечения, загрузки, преобразования (ELT) необходимо загрузить только измененные данные с момента предыдущего запуска. Этот процесс называется добавочной нагрузкой. И наоборот, полная загрузка загружает все данные. Чтобы выполнить добавочную нагрузку, определите, как определить измененные данные. Вы можете использовать подход высокой водяной отметки, который отслеживает последнее значение столбца даты и времени или уникальный целый столбец в исходной таблице.
Вы можете использовать темпоральные таблицы в SQL Server. Темпоральные таблицы — это системные таблицы, которые хранят журнал изменений данных. Ядро СУБД автоматически записывает каждое изменение в отдельную таблицу журнала. Чтобы запросить исторические данные, можно добавить предложение FOR SYSTEM_TIME
в запрос. Внутри ядра СУБД запрашивается таблица журнала, но она является прозрачной для приложения.
Временные таблицы поддерживают данные измерения, которые могут меняться с течением времени. В таблице фактов обычно представлены неизменяемые транзакции, например при продаже. В этом случае ведение журнала версий системы не имеет смысла. Вместо этого транзакции обычно имеют столбец, представляющий дату транзакции. Столбец можно использовать в качестве значения водяного знака. Например, в хранилище данных AdventureWorks таблицы SalesLT.*
имеют поле LastModified
.
Ниже приведен общий поток конвейера ELT:
Для каждой таблицы базы данных-источника отслеживается пороговое значение времени, когда запускается последнее задание ELT. Сохраните эту информацию в хранилище данных. При начальной настройке все время задано
1-1-1900
значение .На этапе экспорта данных пороговое значение времени передается в качестве параметра в набор хранимых процедур в базе данных-источника. Эти хранимые процедуры запрашивают все записи, которые изменяются или создаются после отключения. Для всех таблиц в примере можно использовать
ModifiedDate
столбец.Когда перенос данных завершится, обновите таблицу, в которой хранятся пороговые значения времени.
Конвейер данных
В этом сценарии в качестве источника данных используется пример базы данных AdventureWorks. Шаблон добавочной загрузки данных гарантирует, что только измененные или добавленные только после последней загрузки конвейера.
Средство копирования на основе метаданных
Встроенное средство копирования на основе метаданных конвейеров Azure Synapse Analytics добавочно загружает все таблицы, содержащиеся в реляционной базе данных.
Используйте интерфейс мастера для подключения средства копирования данных к исходной базе данных.
После подключения настройте добавочную загрузку или полную загрузку для каждой таблицы.
Средство копирования данных создает конвейеры и скрипты SQL, необходимые для создания таблицы управления. Эта таблица хранит данные, такие как высокое значение водяного знака или столбец для каждой таблицы, для процесса добавочной загрузки.
После выполнения этих скриптов конвейер загружает все таблицы хранилища исходных данных в выделенный пул Azure Synapse Analytics.
Перед загрузкой данных средство создает три конвейера для итерации таблиц в базе данных.
Конвейеры выполняют следующие задачи:
Подсчитывайте количество объектов, таких как таблицы, копируемые в выполнении конвейера.
Итерация по каждому объекту для загрузки или копирования.
После итерации конвейера по каждому объекту выполняет следующие задачи:
Проверяет, требуется ли разностная нагрузка. В противном случае конвейер завершает обычную полную нагрузку.
Извлекает высокое значение водяного знака из таблицы управления.
Копирует данные из исходных таблиц в промежуточную учетную запись в Data Lake Storage.
Загружает данные в выделенный пул SQL с помощью выбранного метода копирования, например команды PolyBase или Copy.
Обновляет значение высокого водяного знака в таблице управления.
Загрузка данных в пул SQL Azure Synapse Analytics
Действие копирования копирует данные из базы данных SQL в пул SQL Azure Synapse Analytics. В этом примере база данных SQL находится в Azure, поэтому она использует среду выполнения интеграции Azure для чтения данных из базы данных SQL и записи данных в указанную промежуточную среду.
Затем инструкция копирования загружает данные из промежуточной среды в выделенный пул Azure Synapse Analytics.
Использование конвейеров Azure Synapse Analytics
Конвейеры в Azure Synapse Analytics определяют упорядоченный набор действий для завершения добавочной нагрузки. Запуск конвейера вручную или автоматических триггеров.
Преобразование данных
Пример базы данных в этой эталонной архитектуре мал, поэтому реплицированные таблицы, не имеющие секций. Для рабочих нагрузок распределенные таблицы могут повысить производительность запросов. Дополнительные сведения см. в руководстве по проектированию распределенных таблиц в Azure Synapse Analytics. Примеры скриптов выполняют запросы через статический класс ресурсов .
В рабочей среде рекомендуется создавать промежуточные таблицы с распределением циклического перебора. Затем преобразуйте и переместите данные в рабочие таблицы с кластеризованными индексами columnstore, которые обеспечивают лучшую общую производительность запросов. Индексы columnstore оптимизированы для запросов, которые сканируют большое количество записей.
Индексы columnstore не выполняются оптимально для подстановок одноэлементных объектов или поиска одной строки. Если вам нужно выполнить частые поиски с однимтоном, можно добавить некластеризованный индекс в таблицу, что повышает скорость. Однако одноэлементные подстановки обычно менее распространены в сценариях хранилища данных, чем рабочие нагрузки обработки транзакций в сети. Дополнительные сведения см. в таблицах индексов в Azure Synapse Analytics.
Примечание.
Кластеризованные таблицы columnstore не поддерживают varchar(max)
nvarchar(max)
или varbinary(max)
типы данных. Если вы используете эти типы данных, рассмотрите кучи или кластеризованный индекс. Вы также можете поместить эти столбцы в отдельную таблицу.
Использование Power BI Premium для доступа, модели и визуализации данных
Power BI Premium поддерживает несколько вариантов подключения к источникам данных в Azure. Для выполнения следующих задач можно использовать подготовленные пулы Azure Synapse Analytics:
- Импорт. Данные импортируются в модель Power BI.
- DirectQuery: данные извлекается непосредственно из реляционного хранилища.
- Составная модель: объединение импорта для некоторых таблиц и DirectQuery для других.
В этом сценарии используется панель мониторинга DirectQuery, так как она имеет небольшой объем данных и низкую сложность модели. DirectQuery делегирует запрос мощному подсистеме вычислений под ним и использует широкие возможности безопасности в источнике. DirectQuery гарантирует, что результаты всегда согласованы с последними исходными данными.
Режим импорта обеспечивает максимально быстрое время отклика запроса. Рассмотрите режим импорта, если:
- Модель полностью вписывается в память Power BI.
- Задержка данных между обновлениями допустима.
- Требуется сложные преобразования между исходной системой и конечной моделью.
В этом случае конечным пользователям требуется полный доступ к последним данным без задержек в обновлении Power BI, и они хотят, чтобы все исторические данные превысили емкость набора данных Power BI. Набор данных Power BI может обрабатывать 25–400 ГБ в зависимости от размера емкости. Модель данных в выделенном пуле SQL уже находится в схеме звездочки и не требует преобразования, поэтому DirectQuery является подходящим выбором.
Используйте Power BI Premium для управления большими моделями, отчетами с разбивкой на страницы и конвейерами развертывания. Используйте встроенную конечную точку Служб Azure Analysis Services. Вы также можете иметь выделенную емкость с уникальным предложением ценности.
Когда модель бизнес-аналитики увеличивается или увеличивается сложность панели мониторинга, можно переключиться на составные модели и импортировать части таблиц подстановки с помощью гибридных таблици импортировать предварительно подготовленные данные. Вы можете включить кэширование запросов в Power BI для импортированных наборов данных и использовать двойные таблицы для свойства режима хранения.
В составной модели наборы данных служат виртуальным сквозным слоем. Когда пользователи взаимодействуют с визуализациями, Power BI создает запросы SQL к пулам SQL Azure Synapse Analytics. Power BI определяет, следует ли использовать хранилище в памяти или DirectQuery на основе эффективности. Подсистема решает, когда переключаться с памяти на DirectQuery и отправляет логику в пул SQL Azure Synapse Analytics. В зависимости от контекста таблиц запросов они могут действовать как кэшированные (импортированные) или не кэшированные составные модели. Вы можете выбрать таблицу для кэширования в память, объединить данные из одного или нескольких источников DirectQuery или объединить исходные данные DirectQuery и импортированные данные.
При использовании DirectQuery с подготовленным пулом Azure Synapse Analytics:
Используйте Azure Synapse Analytics результирующий набор для кэширования результатов запросов в пользовательской базе данных для повторяющегося использования. Такой подход повышает производительность запросов в миллисекундах и уменьшает использование вычислительных ресурсов. Запросы, использующие кэшированные наборы результатов, не используют слоты параллелизма в Azure Synapse Analytics, поэтому они не учитывают существующие ограничения параллелизма.
Использование Azure Synapse Analytics материализованных представлений для предварительной компиляции, хранения и хранения данных, таких как таблица. Запросы, использующие все данные или подмножество данных в материализованных представлениях, могут повысить производительность без необходимости напрямую ссылаться на определенное материализованное представление для его использования.
Рекомендации
Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая представляет собой набор руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в разделе Well-Architected Framework.
Безопасность
Безопасность обеспечивает гарантии от преднамеренного нападения и неправильного использования ценных данных и систем. Дополнительные сведения см. в контрольном списке конструктора длябезопасности.
Модернизация облака представляет проблемы безопасности, такие как нарушения безопасности, инфекции вредоносных программ и внедрение вредоносного кода. Вам нужен поставщик облачных услуг или решение для решения проблем, так как неадекватные меры безопасности могут создавать серьезные проблемы.
В этом сценарии рассматриваются самые требовательные проблемы безопасности с помощью сочетания многоуровневых элементов управления безопасностью: сетевых, удостоверений, конфиденциальности и авторизации. Подготовленный пул Azure Synapse Analytics хранит большую часть данных. Power BI обращается к данным через DirectQuery через единый вход. Для проверки подлинности можно использовать идентификатор Microsoft Entra. Существуют также обширные средства управления безопасностью для авторизации данных в подготовленных пулах.
Ниже перечислены некоторые распространенные вопросы о безопасности.
Определите, кто может видеть данные.
Определите, как проверить удостоверение пользователя.
- Используйте Azure Synapse Analytics для управления доступом к данным с помощью контроля доступа и проверки подлинности.
Выберите технологию безопасности сети для защиты целостности, конфиденциальности и доступа к сетям и данным.
Выберите средства для обнаружения и уведомления вас об угрозах.
- Используйте Azure Synapse Analytics возможности обнаружения угроз, такие как аудит SQL, обнаружение угроз SQL и оценка уязвимостей для аудита, защиты и мониторинга баз данных.
Определите, как защитить данные в учетной записи хранения.
- Используйте учетные записи хранения Azure для рабочих нагрузок, требующих быстрого и согласованного времени отклика или имеющих большое количество операций ввода-вывода (ОПЕРАЦИЙ ввода-вывода) в секунду. Учетные записи хранения могут хранить все объекты данных и иметь несколько параметров безопасности учетной записи хранения.
Оптимизация затрат
Оптимизация затрат фокусируется на способах сокращения ненужных расходов и повышения эффективности работы. Дополнительные сведения см . в контрольном списке проверки конструктора для оптимизации затрат.
В этом разделе содержатся сведения о ценах на различные службы, участвующие в этом решении, и о решениях, принятых для этого сценария с примером набора данных. Используйте эту начальную конфигурацию в калькуляторе цен Azureи настройте ее в соответствии с вашим сценарием.
Azure Synapse Analytics
Azure Synapse Analytics — это бессерверная архитектура, которую можно использовать для масштабирования уровней вычислений и хранилища независимо. Вычислительные ресурсы влечет за собой затраты на основе использования. Вы можете масштабировать или приостановить эти ресурсы по требованию. Ресурсы хранилища повысят затраты на терабайт, поэтому затраты увеличиваются по мере приема данных.
Конвейеры Azure Synapse Analytics
Три основных компонента влияют на цену конвейера:
- Действия конвейера данных и часы выполнения интеграции
- Размер и реализация кластера потоков данных
- эксплуатационные затраты.
Дополнительные сведения о ценах см. на вкладке интеграции данныхцен на Azure Synapse Analytics.
Цена зависит от компонентов или действий, частоты и количества единиц среды выполнения интеграции.
Для примера набора данных, использующего стандартную среду выполнения интеграции, размещенную в Azure, действие копирования данных служит ядром конвейера. Он выполняется по ежедневному расписанию для всех сущностей (таблиц) в исходной базе данных. Сценарий не содержит потоки данных. И это не несет операционных затрат, так как конвейеры выполняют менее одного миллиона операций в месяц.
Выделенный пул и хранилище Azure Synapse Analytics
Для примера набора данных можно подготовить 500 единиц хранилища данных (DWUS), чтобы обеспечить плавное взаимодействие с аналитическими нагрузками. Вы можете поддерживать вычислительные ресурсы в рабочие часы в целях создания отчетов. Если решение переходит в рабочую среду, используйте зарезервированную емкость хранилища данных в качестве экономичной стратегии. Используйте различные методы для максимальной экономии и показателей производительности.
Сведения о ценах для выделенного пула Azure Synapse Analytics см. на вкладке хранилища данных на цен Azure Synapse Analytics. В рамках выделенной модели потребления клиенты несут расходы на каждый подготовленный DWU в час времени простоя. Кроме того, следует учитывать затраты на хранение данных, включая размер неактивных данных, моментальные снимки и геоизбыточность.
Хранилище BLOB-объектов
Рассмотрите возможность использования зарезервированной емкости службы хранилища Azure для снижения затрат на хранение. При использовании этой модели вы получаете скидку, если резервировать фиксированную емкость хранилища в течение одного или трех лет. Дополнительные сведения см. в разделе Оптимизация затрат на хранилище BLOB-объектов с зарезервированной емкостью. Этот сценарий не использует постоянное хранилище.
Power BI Premium
В этом сценарии используются рабочие области Power BI Premium с встроенными улучшениями производительности для удовлетворения требовательных аналитических потребностей.
Дополнительные сведения см. в цен на Power BI.
Операционное превосходство
Операционное превосходство охватывает процессы, которые развертывают приложение и продолжают работать в рабочей среде. Дополнительные сведения см. в контрольном списке проверки конструктора дляоперационного превосходства.
Используйте конвейер выпуска Azure DevOps и GitHub Actions для автоматизации развертывания рабочей области Azure Synapse Analytics в нескольких средах. Дополнительные сведения см. в статье Непрерывная интеграция и непрерывная доставка для рабочей области Azure Synapse Analytics.
Поместите каждую рабочую нагрузку в отдельный шаблон развертывания и сохраните ресурсы в системах управления версиями. Вы можете развернуть шаблоны вместе или отдельно в рамках процесса непрерывной интеграции и непрерывной доставки (CI/CD). Этот подход упрощает процесс автоматизации. Эта архитектура имеет четыре основных рабочих нагрузки:
- Сервер хранилища данных и связанные ресурсы
- Конвейеры Azure Synapse Analytics
- Ресурсы Power BI, включая панели мониторинга, приложения и наборы данных
- Локальный имитированный в облаке сценарий
Рассмотрите возможность промежуточного хранения рабочих нагрузок, где это удобно. Разверните рабочую нагрузку на различных этапах. Выполните проверки на каждом этапе перед переходом на следующий этап. Этот подход отправляет обновления в рабочие среды управляемым способом и сводит к минимуму непредвиденные проблемы с развертыванием. Используйте сине-зеленое развертывание и стратегии выпуска для обновления рабочих сред.
Используйте стратегию отката для обработки неудачных развертываний. Например, вы можете автоматически повторно развернуть более раннее успешное развертывание из журнала развертывания. Используйте флаг
--rollback-on-error
в Azure CLI.Используйте Azure Monitor для анализа производительности хранилища данных и всей платформы аналитики Azure для интегрированного мониторинга. Azure Synapse Analytics предоставляет возможности мониторинга в портал Azure для отображения аналитических сведений о рабочей нагрузке хранилища данных. Используйте портал Azure для мониторинга хранилища данных. Он предоставляет настраиваемые периоды хранения, оповещения, рекомендации и настраиваемые диаграммы и панели мониторинга для метрик и журналов.
Дополнительные сведения см. в следующих ресурсах:
- руководство по . Начало работы с Azure Synapse Analytics
- Создание рабочей области Azure Synapse Analytics с помощью Azure CLI
Эффективность производительности
Эффективность производительности — это способность рабочей нагрузки эффективно масштабироваться в соответствии с требованиями пользователей. Дополнительные сведения см . в контрольном списке проверки конструктора для повышения эффективности.
В этом разделе содержатся сведения о решениях по размеру для размещения этого набора данных.
Подготовленный пул Azure Synapse Analytics
Можно использовать различные конфигурации хранилища данных .
DWUs | Количество вычислительных узлов | Количество дистрибутивов на узел |
---|---|---|
DW100c | 1 | 60 |
-- TO -- |
||
DW30000c | 60 | 1 |
Чтобы увидеть преимущества масштабирования производительности, особенно для больших объемов данных, используйте по крайней мере набор данных размером 1 ТБ. Чтобы найти лучшее количество dwus для выделенного пула SQL, попробуйте увеличить и уменьшить масштаб. Запустите запросы с разными числами DWUS после загрузки данных. Масштабирование быстро, поэтому вы можете легко экспериментировать с различными уровнями производительности.
Поиск оптимального количества dwus
Для выделенного пула SQL в разработке выберите небольшое количество dwus в качестве отправной точки, например DW400c или DW200c. Отслеживайте производительность приложения для каждого числа DWUS. Предположим линейную шкалу и определим, сколько необходимо увеличить или уменьшить dwus. Вносите изменения, пока не достигнете уровня производительности, который оптимально отвечает вашим бизнес-требованиям.
Масштабирование пула SQL Azure Synapse Analytics
Сведения о функциях масштабирования и оптимизации производительности конвейеров в Azure Synapse Analytics и используемых действиях копирования см. в руководстве по производительности и масштабируемости действий копирования.
Дополнительные сведения см. в следующих ресурсах:
- Масштабирование вычислений для пула SQL Azure Synapse Analytics с помощью портала Azure
- Масштабирование вычислений для выделенного пула SQL с помощью Azure PowerShell
- Масштабирование вычислений для выделенного пула SQL в Azure Synapse Analytics с помощью T-SQL
- Управление вычислительными ресурсами для выделенного пула SQL
Power BI Premium и Fabric
В этой статье используется емкость Power BI Premium F64 для демонстрации возможностей бизнес-аналитики. Выделенные емкости Power BI в Fabric варьируются от F64 (8 виртуальных ядер) до F1024 (128 виртуальных ядер).
Чтобы определить необходимую емкость, выполните следующие действия.
- оценить нагрузку в емкости.
- Установите приложение метрик емкости Fabric для текущего мониторинга.
- Рассмотрите возможность использования методов оптимизации емкости, связанных с рабочей нагрузкой,.
Соавторы
Корпорация Майкрософт поддерживает эту статью. Следующие авторы написали эту статью.
Основные авторы:
- Галина Полякова | Старший архитектор облачных решений
- Ноа Costar | Архитектор облачных решений
- Джордж Стивенс | Архитектор облачных решений
Другие участники:
- Джим МакЛеод | Архитектор облачных решений
- Мигель Майерс | Старший менеджер по программам
Чтобы просматривать непубличные профили LinkedIn, войдите в LinkedIn.
Следующие шаги
- What is Power BI Premium? (Что собой представляет Power BI Premium)
- Что такое Microsoft Entra ID?
- Доступ к Data Lake Storage и хранилищу BLOB-объектов Azure с помощью Azure Databricks
- Что такое Azure Synapse Analytics?
- Конвейеры и действия в Фабрике данных Azure и Azure Synapse Analytics
- Что такое SQL Azure?