Рекомендации по архитектуре для Azure Databricks

Azure Databricks — это платформа аналитики на основе Apache Spark, которую команды данных могут использовать для эффективной совместной работы. Используйте его для создания и развертывания рабочих нагрузок инженерии данных, машинного обучения и аналитики в большом масштабе. В этой статье рассматриваются распространенные вопросы и лучшие практики для Azure Databricks и даются архитектурные рекомендации, сопоставленные со столпами Azure Well-Architected Framework.

Предполагается, что в качестве архитектора вы рассмотрели Выбор аналитического хранилища данных и выбрали Azure Databricks как платформу аналитики для вашей рабочей нагрузки.

Область технологий

В этом обзоре рассматриваются взаимосвязанные решения для следующих Azure ресурсов:

  • Azure Databricks
  • Spark
  • Delta Lake
  • Каталог Unity
  • MLflow

Reliability

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

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

Контрольный список разработки рабочей нагрузки

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

  • Ознакомьтесь с ограничениями и квотами служб. Azure Databricks ограничения сервиса напрямую ограничивают надежность рабочей нагрузки за счёт вычислительных кластеров, емкости рабочей области, пропускной способности хранилища и ограничений пропускной способности сети. Проектирование архитектуры должно заранее включать квоты, чтобы предотвратить непредвиденные нарушения службы, которые могут остановить масштабирование операций во время пикового спроса. К этим квотам относятся ограничение на 1000 узлов, максимальное количество кластеров рабочего пространства и региональные ограничения на емкость.

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

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

    Failure Смягчение последствий
    Сбой узла драйвера кластера Используйте политики автоматического перезапуска кластера и реализуйте контрольные точки для приложений Spark. Используйте структурированную потоковую передачу с отказоустойчивым управлением состоянием.
    Сбои выполнения задания Реализуйте политики повторных попыток с экспоненциальным обратным выходом. Используйте оркестрацию заданий Azure Databricks с обработкой ошибок. Настройте соответствующие параметры времени ожидания.
    Повреждение или несоответствие данных Используйте атомарность Delta Lake, согласованность, изоляцию и устойчивость (ACID), возможности перемещения по времени и ожидания данных в декларативных конвейерах Spark Lakeflow. Реализуйте проверки данных и мониторинг.
    Недоступность рабочей области или региона Реализуйте мультирегиональные стратегии развертывания. Используйте процедуры резервного копирования и восстановления рабочей области. Настройте репликацию данных между регионами.

    Эти стратегии устранения рисков используют собственные возможности Azure Databricks, такие как автоматическая перезагрузка, автоматическое масштабирование, гарантии согласованности Delta Lake и функции безопасности каталога Unity для отказоустойчивости.

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

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

    Для повышения доступности рекомендуется использовать развертывания Azure Databricks в нескольких регионах для географической избыточности. Этот подход помогает защитить от региональных сбоев и обеспечить непрерывность бизнес-процессов (BC) во время расширенных сбоев в обслуживании. Многорегионная настройка также является жизнеспособным решением для аварийного восстановления (DR).

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

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

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

  • Защита данных с помощью функций надежности Delta Lake. Delta Lake обеспечивает необходимую защиту данных с помощью транзакций ACID, автоматического управления версиями, возможностей перемещения по времени и применения схем. Эти функции предотвращают повреждение и помогают восстановиться после проблем с данными.

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

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

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

  • Установка процедур резервного копирования и аварийного восстановления. Эффективное аварийное восстановление требует выравнивания целевых показателей времени восстановления (ОСРВ) с бизнес-требованиями и создания автоматизированных процессов резервного копирования для метаданных рабочей области, репозиториев записных книжек, определений заданий, конфигураций кластера и интегрированных систем хранения данных.

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

  • Реализуйте тестирование надежности и инженерию хаоса. Систематическое тестирование надежности проверяет правильность работы механизмов восстановления сбоев в реальных сценариях. Применение принципов проектирования хаоса в тестах для выявления пробелов устойчивости перед их воздействием на рабочие среды.

Recommendations

Recommendation Преимущества
Настройте автоматическое масштабирование кластера с минимальным количеством узлов в два и максимальное число узлов, которое соответствует ограничениям квоты рабочей области. Задайте пороговые значения целевого использования от 70% до 80%, чтобы сбалансировать эффективность затрат с возможностью повышения производительности. Автоматическое масштабирование использует динамическое выделение узлов, чтобы предотвратить исчерпание ресурсов кластера при сохранении экономичности. Настройте соответствующие ограничения, чтобы гарантировать, что рабочие нагрузки остаются в квотах службы. Этот подход помогает избежать сбоев заданий, так как они превышают ограничения емкости рабочей области.
Разверните рабочие области Azure Databricks в нескольких регионах Azure для критически важных рабочих нагрузок. Настройте репликацию рабочей области с автоматическим резервным копированием исходного кода, определений заданий и конфигураций кластера с помощью пакетов ресурсов Databricks и Azure DevOps или Фабрика данных Azure конвейеров. Развертывания с несколькими регионами обеспечивают географическую избыточность, которая поддерживает возможности обработки данных во время региональных сбоев или аварий.

Автоматическая репликация рабочих областей сокращает время восстановления с нескольких часов до нескольких минут, обеспечивая согласованность конфигураций в разных регионах. Этот подход поддерживает требования BCuity и сводит к минимуму операционные воздействия во время продолжительных нарушений региональной службы.
Установите пулы кластеров с предварительно активированными экземплярами, используя разные размеры виртуальных машин в рамках одного семейства. Настройте размеры пула, чтобы поддерживать на 20% - 30% больше резервной мощности, чем типичные рабочие нагрузки. Предварительно подготовленные пулы кластеров сокращают время запуска кластера от 5 до 10 минут до менее 60 секунд, что помогает рабочей нагрузке быстрее восстанавливаться после сбоев узлов. Различные размеры виртуальных машин в пулах гарантируют, что подготовка кластера выполняется успешно, даже если определенные типы экземпляров сталкиваются с ограничениями емкости.
Активируйте функции перемещения по времени Delta Lake, настроив политики автоматического управления версиями таблиц и хранения. Задайте периоды хранения на основе требований восстановления, которые обычно равны 7–30 дней для рабочих таблиц. Возможности перемещения по времени обеспечивают восстановление на определенный момент времени (PITR), не требуя внешних систем резервного копирования или сложных процедур восстановления.

Автоматическое управление версиями защищает от повреждения данных и случайных изменений при сохранении полного происхождения данных для обеспечения соответствия требованиям и отладки. Этот подход устраняет необходимость в отдельной инфраструктуре резервного копирования, обеспечивая быстрое восстановление от проблем с данными.
Интегрируйте Azure Databricks с Azure Monitor, включив журналы диагностирования для событий кластера, выполнения заданий и аналитики данных. Настройте пользовательские метрики и оповещения для работоспособности кластера, частоты сбоев заданий и пороговых значений использования ресурсов. Централизованный мониторинг обеспечивает единую наблюдаемость для всех компонентов Azure Databricks, чтобы заранее обнаруживать проблемы, прежде чем они влияют на рабочие нагрузки.

Настраиваемое оповещение сокращает среднее время на разрешение (MTTR), автоматически уведомляя команды о снижении производительности кластера или сбоях заданий, превышающих допустимые пороговые значения.
Разверните бессерверные хранилища SQL для незапланированных аналитических и отчетных рабочих нагрузок, требующих постоянной доступности без необходимости управления кластерами. Бессерверная инфраструктура устраняет задержки подготовки кластера и обеспечивает автоматическое масштабирование со встроенными гарантиями высокой доступности. Майкрософт управляет всеми исправлениями, обновлениями и восстановлением сбоев инфраструктуры, что снижает операционную сложность и помогает обеспечить согласованную производительность.
Настройте политики повторных попыток задания Azure Databricks чтобы начать экспоненциальную задержку с 30 секунд и установите максимальное количество повторных попыток в 3. Задайте различные стратегии повторных попыток для временных сбоев и ошибок конфигурации, чтобы избежать ненужного потребления ресурсов. Интеллектуальные механизмы повторных попыток автоматически восстанавливаются после временных сбоев, таких как время ожидания сети или временное недоступность ресурсов без вмешательства вручную.

Экспоненциальная задержка предотвращает перегрузку нижестоящих служб во время сбоев. Он также различает временные проблемы восстановления и постоянные проблемы конфигурации. Этот подход снижает операционные издержки и повышает общую устойчивость системы с помощью автоматического восстановления сбоев.
Реализуйте внедрение виртуальной сети для рабочих областей Azure Databricks, чтобы разрешить настраиваемую маршрутизацию сети и частное подключение. Настройте группы безопасности сети (NSG) и Брандмауэр Azure правила для управления потоком трафика и интеграции с существующей корпоративной сетевой инфраструктурой. Внедрение виртуальной сети обеспечивает избыточность на уровне сети через пользовательские параметры маршрутизации и устраняет зависимость от маршрутов по умолчанию в сети Azure.

Частное подключение позволяет интегрироваться с локальными сетями и другими службами Azure при сохранении изоляции безопасности. Эта конфигурация поддерживает несколько зон доступности и пользовательские стратегии балансировки нагрузки, которые повышают надежность сети.
Активируйте каталог Unity с помощью автоматической резервной копии метаданных и синхронизации метаданных между регионами. Настройте внешние расположения хранилища метаданных в отдельных учетных записях хранения, чтобы обеспечить сохранение метаданных во время сбоев рабочей области. Резервное копирование каталога Unity сохраняет политики управления и информацию о происхождении данных во время сбоев в рабочей области. Синхронизация между регионами сокращает время восстановления метаданных от часов до минут, сохраняя централизованные политики управления доступом во всех средах.
Разверните Lakeflow Spark декларативные конвейеры для производственных конвейеров данных, требующих автоматического обеспечения качества и отказоустойчивости. Настройте политики перезапуска конвейера и обработку ожиданий, чтобы обеспечить качество данных и обеспечить непрерывность обработки. Декларативные конвейеры Spark Lakeflow автоматически обрабатывают временные сбои, нарушения качества данных и проблемы инфраструктуры без ручного вмешательства. Встроенное принудительное применение качества предотвращает распространение поврежденных данных вниз и автоматические возможности повторных попыток обеспечивают завершение конвейера во время временных ограничений ресурсов. Этот управляемый подход снижает эксплуатационные издержки при сохранении стандартов целостности данных.
Создайте автоматизированные процедуры резервного копирования рабочих областей с помощью REST API Azure или CLI Databricks для экспорта исходного кода, параметров заданий и конвейеров, параметров кластеров и метаданных рабочих областей. Планируйте регулярные резервные копии учетных записей служба хранилища Azure с включенной репликацией между регионами. Комплексные резервные копии рабочих областей позволяют полностью восстановить среду во время аварийных сценариев, что сохраняет все рабочие и операционные конфигурации разработки. Автоматизированные процедуры устраняют человеческую ошибку и обеспечивают согласованность резервных копий. Репликация хранилища между регионами защищает от региональных сбоев. Эти подходы сокращают время восстановления и поддерживают BCuity для команд по данным и их аналитических процессов.
Реализуйте структурированную потоковую передачу и храните расположения контрольных точек в высокодоступных учетных записях хранения с избыточностью между зонами (ZRS). Задайте интервалы контрольных точек от 10 до 60 секунд на основе требований к пропускной способности и целей восстановления сбоев. Контрольные точки обеспечивают гарантии обработки ровно один раз и позволяют автоматически восстанавливаться в случае сбоев кластера без потери данных или дублирования обработки. ZRS обеспечивает сохраняемость контрольных точек в пределах зоны доступности для поддержания непрерывности потоковых заданий во время сбоев инфраструктуры.
Активируйте политики автоматического перезапуска кластера для устойчивых вычислительных рабочих нагрузок. Задайте соответствующие время ожидания перезапуска и максимальные попытки перезапуска. Включите обнаружение завершения кластера и автоматическое перепланирование заданий для рабочих процессов обработки критически важных данных. Политики автоматического перезапуска обеспечивают непрерывность рабочей нагрузки во время запланированных событий обслуживания и непредвиденных сбоев кластера без необходимости вмешательства вручную.

Интеллектуальная логика перезапуска различает возможности восстановления и постоянные проблемы, чтобы предотвратить бесконечные циклы перезапуска при сохранении доступности службы для критически важных задач обработки данных.
Настройте пулы экземпляров с несколькими семействами и размерами виртуальных машин в одной категории вычислений, чтобы обеспечить гибкость при распределении ресурсов в условиях ограниченной доступности. Различные конфигурации типов экземпляров обеспечивают успешную подготовку кластера, даже если определенные размеры виртуальных машин испытывают региональные ограничения емкости. Смешанные семейства виртуальных машин в пулах предоставляют возможности оптимизации затрат и обеспечивают производительность для требований рабочей нагрузки. Этот подход снижает риск сбоев подготовки во время пиковых периодов спроса.
Создайте методики инженерии хаоса, целенаправленно введя сбои кластера, разделение сети и ограничения ресурсов в непроизводственных средах. Автоматизируйте внедрение сбоев с помощью Azure Chaos Studio для проверки процедур восстановления и выявления пробелов в устойчивости. Упреждающее тестирование сбоев проверяет процедуры аварийного восстановления и возможности автоматического восстановления до возникновения рабочих инцидентов.

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

Безопасность

Цель компонента "Безопасность" — обеспечить конфиденциальности, целостности и доступности гарантии рабочей нагрузки.

Принципы проектирования Security обеспечивают высокоуровневую стратегию проектирования для достижения этих целей, применяя подходы к техническому проектированию Azure Databricks.

Контрольный список разработки рабочей нагрузки

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

  • Просмотрите базовые показатели безопасности. Базовый план безопасности Azure Databricks/c0 предоставляет процедурные рекомендации и ресурсы для реализации рекомендаций по безопасности, указанных в тесте Майкрософт облачной безопасности.

  • Интеграция жизненного цикла безопасной разработки (SLC). Реализуйте сканирование кода безопасности для исходного кода и проверки безопасности модели MLflow для выявления уязвимостей в начале жизненного цикла разработки.

    Используйте проверку инфраструктуры как кода (IaC) для обеспечения безопасных конфигураций ресурсов Azure Databricks.

    Защита среды разработки путем реализации безопасного управления исходным кодом, безопасного управления учетными данными в рабочих процессах разработки и интеграции автоматизированного тестирования безопасности в конвейеры непрерывной интеграции и непрерывной доставки (CI/CD), используемых для обработки данных и развертывания модели машинного обучения.

  • Обеспечение централизованного управления. Добавьте трассировку и аудит источников данных через конвейеры Azure Databricks. Каталог Unity предоставляет централизованный каталог метаданных, который поддерживает обнаружение и отслеживание происхождения данных в рабочих областях с подробными элементами управления доступом и проверкой.

    Каталог Unity может интегрироваться с внешними источниками данных.

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

    Чтобы применить сегментацию, выполните следующие действия:

    • Изоляция рабочих нагрузок конфиденциальных данных в выделенных рабочих областях с более строгими элементами управления доступом.

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

  • Реализуйте безопасный сетевой доступ. Ресурсы плоскости управления данными Azure Databricks, такие как кластеры Spark и виртуальные машины, развертываются в подсетях Azure Virtual Network через инъекцию виртуальной сети. Уровень управления, которым управляет платформа Databricks, изолирован от плоскости данных, что предотвращает несанкционированный доступ. Плоскость управления безопасно взаимодействует с плоскостью данных для управления рабочей нагрузкой, а обработка всех данных остается в вашей сети.

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

  • Реализуйте механизмы авторизации и проверки подлинности. Рассмотрите возможность управления удостоверениями и доступом в плоскостях управления и данных. Среда выполнения Azure Databricks применяет собственные функции безопасности и элементы управления доступом во время выполнения заданий, что создает многоуровневую модель безопасности. Компоненты Azure Databricks, такие как Unity Catalog и кластеры Spark, интегрируются с Microsoft Entra ID, чтобы управлять доступом с помощью политик управления доступом на основе ролей Azure (Azure RBAC). Эта интеграция также обеспечивает корпоративную проверку подлинности с помощью единого входа, многофакторной проверки подлинности и политик условного доступа.

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

  • Шифрование неактивных данных. Azure Databricks интегрируется с Azure Key Vault для управления ключами шифрования. Эта интеграция поддерживает управляемые клиентом ключи, чтобы управлять работой ключей шифрования, включая отзыв, аудит и соответствие политикам безопасности.

  • Защита секретов рабочей нагрузки. Для выполнения рабочих процессов данных обычно необходимо хранить секреты, такие как строки подключения к базе данных, ключи API и другие конфиденциальные сведения. Azure Databricks изначально поддерживает области секретов для хранения секретов в рабочей области, к которым можно безопасно получить доступ из исходного кода и заданий.

    Области секретов интегрируются с Key Vault, поэтому вы можете ссылаться на секреты и централизованно управлять ими. Корпоративные команды обычно нуждаются в Key Vault поддерживаемых секретных областях для обеспечения соответствия требованиям, безопасности и применения политик.

  • Реализуйте мониторинг безопасности. Azure Databricks изначально поддерживает ведение журнала аудита, например попытки входа, доступ к записной книжке и изменения разрешений. Используйте эти журналы для просмотра действий администратора в рабочей области. Кроме того, журналы доступа к каталогу Unity отслеживают, кто обращается к данным, когда они обращаются к нему, и как они обращаются к нему.

    Используйте Azure Databricks для просмотра журналов в Azure Monitor.

    Средство анализа безопасности Databricks (SAT) также совместимо с рабочими областями Azure Databricks.

Recommendations

Recommendation Преимущества
Развертывание рабочих областей Azure Databricks с использованием технологии инъекции виртуальной сети для обеспечения сетевой изоляции и интеграции с корпоративной сетевой инфраструктурой. Настройте пользовательские группы безопасности сети, таблицы маршрутов и делегирование подсети для управления потоком трафика и применения корпоративных политик безопасности. Внедрение виртуальной сети устраняет общедоступный интернет-доступ для узлов кластера и обеспечивает детальный сетевой контроль с помощью пользовательских правил маршрутизации и брандмауэра. Интеграция с локальными сетями обеспечивает безопасное гибридное подключение при сохранении соответствия корпоративным стандартам безопасности.
Настройте интеграцию единого входа Microsoft Entra ID с многофакторной проверкой подлинности и условными политиками доступа для доступа к рабочей области. Включите автоматическую подготовку пользователей и синхронизацию групп, чтобы упростить управление удостоверениями и применить корпоративные стандарты проверки подлинности. Интеграция единого входа устраняет риски безопасности, связанные с паролем, и обеспечивает централизованное управление удостоверениями через корпоративные системы проверки подлинности.

Политики условного доступа добавляют элементы управления безопасностью с учетом контекста, которые оценивают расположение пользователя, соответствие устройств и факторы риска перед предоставлением доступа к рабочей области. Этот многоуровневый подход значительно снижает уязвимости безопасности, связанные с проверкой подлинности, и улучшает взаимодействие с пользователем.
Разверните каталог Unity с помощью централизованной конфигурации хранилища метаданных для создания единого управления данными во всех рабочих областях Azure Databricks. Настройте иерархические структуры разрешений с помощью каталогов, схем и элементов управления доступом на уровне таблицы, имеющих регулярные аудиты разрешений. Каталог Unity обеспечивает централизованное управление данными, которое устраняет несогласованные элементы управления доступом и сокращает пробелы в безопасности в нескольких рабочих областях. Детализированные разрешения позволяют получать доступ с минимальными привилегиями, а ведение журнала аудита поддерживает соблюдение требований соответствия и расследования инцидентов безопасности.
Активируйте ключи, управляемые клиентом, для шифрования хранилища рабочей области, используя интеграцию с Key Vault и политиками автоматической ротации ключей. Настройте отдельные ключи шифрования для разных сред и реализуйте соответствующие элементы управления доступом для операций управления ключами. Управляемые клиентом ключи обеспечивают полный контроль над управлением жизненным циклом ключей шифрования и поддерживают требования соответствия нормативным требованиям для суверенитета данных.

Разделение ключей между средами снижает уровень безопасности. Политики автоматической смены поддерживают криптографическую гигиену без эксплуатационных накладных расходов. Этот подход помогает соответствовать строгим требованиям, таким как FIPS 140-2 уровня 3 или стандартные критерии.
Установите области секретов на основе Key Vault для централизованного управления учетными данными с помощью RBAC. Реализуйте политики смены секретов и избегайте хранения учетных данных в конфигурациях исходного кода или кластера. Интеграция с Key Vault централизованно управляет секретами и предоставляет функции безопасности корпоративного уровня, такие как ведение журнала доступа и возможности автоматической ротации. Этот подход устраняет уязвимость учетных данных в файлах кода и конфигурации, обеспечивая безопасный доступ к внешним системам и базам данных.
Создайте списки доступа к IP-адресам с политиками, разрешающими только доступ для доверенных корпоративных сетей, и правилами запрета для известных источников угроз. Настройте различные политики доступа для рабочих сред и сред разработки на основе требований безопасности. Управление доступом на основе IP-адресов обеспечивает дополнительный уровень безопасности, который предотвращает несанкционированный доступ из ненадежных сетей, что сокращает область атаки. Политики, зависящие от среды, применяют соответствующие уровни безопасности, поддерживая требования к соответствию для сетевых ограничений доступа.
Настройте все кластеры для использования безопасного подключения к кластеру , чтобы общедоступные IP-адреса не могли получить к ним доступ и отключить доступ Secure Shell (SSH) к узлам кластера. Реализуйте режимы доступа к кластеру и функции безопасности среды выполнения, чтобы предотвратить несанкционированное выполнение кода. Безопасное подключение к кластеру устраняет общедоступный интернет-доступ к вычислительным узлам, предотвращая прямой доступ SSH, который может нарушить безопасность кластера. Функции безопасности среды выполнения обеспечивают дополнительную защиту от атак вредоносного кода и атак бокового перемещения в среде кластера.
Разверните конечные точки Приватный канал для доступа к плоскости управления, чтобы исключить общедоступный интернет-транзит для подключения к рабочей области. Настройте частные зоны DNS и обеспечьте правильную маршрутизацию сети для простой интеграции с частным подключением. Приватный канал устраняет воздействие публичного интернета на доступ к рабочей области и гарантирует, что весь трафик управления остается в основной сети Azure.

Частное подключение обеспечивает повышенную безопасность для конфиденциальных рабочих нагрузок и поддерживает требования соответствия требованиям, которым требуется доступ к частной сети. Эта конфигурация снижает уязвимость к интернет-угрозам при сохранении полной функциональности рабочей области.
Активируйте параметры повышенной безопасности и соответствия для регулируемых сред, требующих соответствия требованиям закона о переносимости медицинского страхования и подотчетности (HIPAA), стандарта безопасности данных кредитной карты (PCI DSS) или систем и элементов управления организацией 2 (SOC 2). Настройте автоматические обновления системы безопасности и включите профили безопасности соответствия для конкретных нормативных платформ. Расширенные функции безопасности и соответствия обеспечивают специализированные средства управления безопасностью, включая профили безопасности соответствия, автоматические обновления безопасности и расширенные возможности мониторинга.

Этот управляемый подход обеспечивает непрерывное соответствие нормативным требованиям, уменьшая операционные издержки для управления безопасностью. Автоматические обновления поддерживают состояние безопасности, не нарушая бизнес-операции или требуя ручного вмешательства.
Включите ведение журнала аудита с помощью системных таблиц каталога Unity и журналов аудита рабочей области с автоматизированным анализом и оповещениями. Настройте политики хранения журналов и интегрируйте с системами управления сведениями и событиями безопасности (SIEM) для централизованного мониторинга безопасности и реагирования на инциденты. Ведение журнала аудита обеспечивает видимость действий пользователей, шаблонов доступа к данным и системных изменений для мониторинга безопасности и отчетности о соответствии. Интеграция с системами SIEM позволяет автоматически обнаруживать угрозы и быстро реагировать на инциденты с помощью централизованного анализа журналов.
Настройте аутентификацию OAuth 2.0 между машинами для доступа к API и автоматизации рабочих нагрузок вместо использования личных токенов доступа (PATs). Реализуйте организацию области видимости токенов и управление жизненным циклом, чтобы обеспечить безопасный программный доступ. Аутентификация OAuth обеспечивает повышенную безопасность благодаря гибкой настройке разрешений и улучшенному управлению жизненным циклом токенов по сравнению с персональными маркерами доступа (PATs). Такой подход обеспечивает безопасную автоматизацию при сохранении соответствующих средств управления доступом и следов аудита для взаимодействия с программными рабочими областями.
Реализуйте стратегии изоляции рабочих областей, развертывая отдельные рабочие области для разных сред и устанавливая элементы управления сегментацией сети. Настройте политики доступа для конкретной среды и границы данных, чтобы предотвратить доступ к данным между средами. Изоляция рабочей области предотвращает утечку данных между средами и поддерживает требования к соответствию требованиям для разделения данных и управления доступом. Эта архитектура снижает влияние инцидентов безопасности и применяет политики безопасности конкретной среды, соответствующие профилям риска.
Разверните SAT для оценки конфигурации безопасности в непрерывном режиме, предоставляющей рекомендации для автоматического исправления. Запланируйте регулярные проверки безопасности и интегрируйте обнаружения сканирования в конвейеры CI/CD для упреждающего управления безопасностью. Автоматическая оценка безопасности обеспечивает непрерывный мониторинг конфигураций рабочих областей в соответствии с рекомендациями по обеспечению безопасности и требованиями к соответствию требованиям.

Интеграция с рабочими процессами разработки применяет методы безопасности сдвига влево, которые определяют и устраняют неправильные конфигурации, прежде чем они достигают рабочих сред. Этот упреждающий подход снижает риски безопасности, минимизируя затраты на исправление и операционные нарушения.
Настройте аутентификацию учетной записи службы для автоматизированных рабочих процессов и конвейеров CI/CD с минимально необходимыми разрешениями. Реализуйте управление учетными данными с помощью Key Vault и включите проверку подлинности на основе сертификатов для повышения безопасности. Аутентификация субъекта службы устраняет необходимость использования учетных данных пользователя в автоматизированных процессах, обеспечивая при этом соответствующий контроль доступа и ведение аудиторских журналов. Проверка подлинности на основе сертификатов повышает безопасность по сравнению с секретами клиента при поддержке соответствующего управления жизненным циклом учетных данных для сценариев автоматизации рабочей среды.
Создайте контроль за исходящим трафиком через инъекцию виртуальной сети с помощью пользовательских таблиц маршрутизации и групп безопасности сети для отслеживания и ограничения передачи данных. Настройте Брандмауэр Azure или виртуальные сетевые устройства для проверки и контроля шаблонов исходящего трафика. Средства управления исходящими данными сети предотвращают несанкционированное извлечение данных, обеспечивая видимость шаблонов перемещения данных с помощью мониторинга и анализа трафика. Настраиваемая проверка маршрутизации и брандмауэра обнаруживают необычные действия по передаче данных, указывающие на нарушения безопасности или внутренние угрозы.
** Активируйте механизм сквозной передачи учетных данных Microsoft Entra ID для доступа к Azure Data Lake Storage, чтобы устранить зависимости от служебных главных элементов. Настройте персонализированные элементы управления доступом и убедитесь, что уместно унаследование прав доступа от политик управления каталогом Unity. Сквозная передача учетных данных упрощает управление служебным принципалом для доступа к данным и интегрируется с корпоративными системами аутентификации.

Элементы управления доступом для конкретных пользователей обеспечивают соответствие разрешений доступа к данным с политиками организации и функциями заданий. Этот подход упрощает управление учетными данными, сохраняя надежные средства управления безопасностью и возможности аудита для задач озера данных.
Реализуйте практики укрепления кластера, включая ограничение SSH, сканирование пользовательских образов и контроль безопасности во время выполнения. Используйте утвержденные базовые образы и предотвращайте несанкционированную установку программного обеспечения с помощью политик кластера и проверки сценариев инициализации. Защита кластера использует ограничения SSH для уменьшения поверхностей атак и предотвращения несанкционированной установки программного обеспечения, которая может нарушить безопасность кластера. Настраиваемое сканирование изображений гарантирует, что базовые образы соответствуют стандартам безопасности, а элементы управления средой выполнения блокируют вредоносный код и боковое перемещение в среде кластера.
Реализуйте автоматическое сканирование безопасности для исходного кода и артефактов кода с помощью интеграции конвейера CI/CD со статическими средствами анализа и сканерами уязвимостей. Автоматическое сканирование безопасности помогает обнаруживать уязвимости безопасности в аналитическом коде и конфигурациях инфраструктуры, прежде чем они достигают рабочих сред.

Оптимизация затрат

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

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

Контрольный список разработки рабочей нагрузки

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

  • Определите драйверы затрат. Теоретическое планирование ёмкости часто приводит к перерасходу ресурсов и напрасным тратам. Недостаточные вложения в ресурсы также сопряжены с риском.

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

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

  • Выберите соответствующие уровни. Мы рекомендуем использовать уровень "Стандартный" для разработки и базовых рабочих нагрузок. Используйте уровень "Премиум" для рабочих нагрузок, так как он предоставляет функции безопасности, такие как каталог Unity, необходимые для большинства рабочих нагрузок аналитики.

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

    Для прогнозируемого или устойчивого использования выберите кластеры на основе виртуальных машин. Этот подход обеспечивает больший контроль, но требует операционного управления и настройки, чтобы избежать чрезмерного выделения ресурсов. Если вы уверены в долгосрочном использовании, используйте зарезервированную емкость. Databricks Commit Units (DBCU) — это предоплаченные контракты использования, которые предоставляют скидки в обмен на обязательства по использованию.

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

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

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

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

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

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

  • Оптимизация затрат на хранение. Хранение больших объемов данных может быть дорогостоящим. Сокращение затрат с помощью возможностей Delta Lake. Например, используйте сжатие данных, чтобы объединить многие небольшие файлы в меньшее количество больших файлов, чтобы сократить затраты на хранение и ускорить запросы.

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

    Различные форматы хранилища и параметры сжатия также могут уменьшить объем используемого пространства.

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

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

    • Используйте эффективные форматы файлов. Такие форматы, как Parquet и алгоритмы сжатия, такие как Zstandard, которые являются собственными для Databricks, приводят к более быстрому времени чтения и снижению затрат на чтение, так как меньше данных необходимо переместить.

    • Сделайте запросы эффективными. Избегайте полного сканирования таблиц, чтобы сократить затраты на вычислительные ресурсы. Вместо этого секционируйте таблицы Delta на основе общих столбцов фильтров. Использование собственных функций для уменьшения времени вычислений. Например, собственные функции Spark, такие как Catalyst optimzer и адаптивное выполнение запросов (AQE), динамически оптимизируют соединения и секционирование во время выполнения. Модуль Databricks Photon выполняет запросы быстрее.

    • Применение шаблонов проектирования оптимизации кода. Используйте такие шаблоны, как Конкурирующие Потребители, выравнивание нагрузки, основанное на очереди, и консолидация вычислительных ресурсов в средах Azure Databricks.

  • Мониторинг потребления. Databricks Unit (DBU) — это абстрактная модель выставления счетов на основе использования вычислений. Azure Databricks предоставляет подробные сведения, обеспечивающие видимость метрик использования о кластерах, часах выполнения и других компонентах. Используйте эти данные для планирования бюджета и управления затратами.

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

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

Recommendations

Recommendation Преимущества
Разверните кластеры заданий для запланированных рабочих нагрузок вместо кластеров всех назначений, чтобы исключить неактивные затраты на вычислительные ресурсы. Установите для заданий автоматическое завершение после их завершения. Кластеры заданий сокращают затраты, автоматически завершая задания и оптимизируя потребление DBU путем точного сопоставления времени вычислений с фактическими требованиями к обработке.
Включите автомасштабирование кластера и установите минимальные и максимальные ограничения узлов на основе анализа рабочих нагрузок для обработки базовых нагрузок и требований к пиковой нагрузке.

Настройте политики масштабирования для быстрого реагирования на изменения рабочей нагрузки и избегайте ненужных колебаний масштабирования, которые могут ненужно увеличивать затраты.
Автоматическое масштабирование еще больше сокращает затраты на избыточное резервирование по сравнению с кластерами фиксированного размера. Он поддерживает уровни производительности во время пиковых периодов и автоматически сокращает ресурсы в периоды низкого спроса.
Настройте автоматическое завершение для всех интерактивных кластеров с соответствующими периодами времени ожидания на основе шаблонов использования. Обычно эти периоды — 30–60 минут для сред разработки. Автоматическое завершение снижает затраты на интерактивный кластер, не влияя на производительность пользователей. Этот подход устраняет затраты на кластеры, работающие в ночное время или в выходные дни.
Внедрение бессерверных хранилищ SQL для интерактивных рабочих нагрузок SQL для устранения затрат на управление инфраструктурой и оптимизации затрат с помощью выставления счетов на основе потребления.

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

Переход с классических конечных точек SQL на бессерверные хранилища SQL для повышения производительности и экономичности. Используйте встроенные возможности ускорения Фотона.
Бессерверные хранилища SQL еще больше сокращают затраты на рабочую нагрузку SQL по сравнению с кластерами постоянного использования, применяя выставление счетов на основе использования, что устраняет затраты на время простоя.

Встроенное ускорение Фотона повышает производительность, обеспечивая прогнозируемые затраты для каждого запроса для сценариев интерактивной аналитики.
Реализуйте пулы кластеров для часто используемых конфигураций, чтобы сократить время запуска и оптимизировать выделение ресурсов на основе шаблонов использования и прогнозирования спроса. Пулы кластеров сокращают время запуска с минут до секунд, устраняя расходы DBU для неактивных инстанций пула.
Используйте функции оптимизации Delta Lake, включая OPTIMIZE команды, Z-ORDER кластеризацию и операции, чтобы сократить затраты на хранение и VACUUM повысить производительность запросов.

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

Создайте различные шаблоны политик для разработки, промежуточной и рабочей среды, которые имеют разные уровни ограничений и соответствующие теги для присвоения затрат.
Политики вычислений сокращают средние затраты на кластер, предотвращая перепроизбытку и обеспечивая соблюдение стандартов оптимизации затрат при сохранении управления.
Отслеживайте затраты с помощью системных таблиц Databricks и интеграции Управление затратами Microsoft для просмотра закономерностей потребления DBU и тенденций расходов.

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

Используйте системные таблицы каталога Unity для анализа подробных шаблонов использования и создания моделей обратной оплаты для разных команд и проектов на основе фактического потребления ресурсов.
Используйте комплексный мониторинг затрат, чтобы просмотреть шаблоны потребления DBU и точно атрибутировать затраты с помощью подробной аналитики использования и стратегий тегов. Интеграция с управлением затратами для использования управления затратами на уровне организации и установления ответственных шаблонов использования ресурсов в командах.
Приобретайте зарезервированную емкость Databricks с помощью Databricks Commit Units (DBCU) для предсказуемых рабочих нагрузок, имеющих устойчивые шаблоны использования и оптимальные условия соглашений. Зарезервированная емкость обеспечивает больше экономии затрат с помощью DBCU по сравнению с ценами на основе фактического использования, обеспечивая прогнозируемость затрат сроком от одного до трёх лет для обеспечения стабильных рабочих нагрузок.
Оптимизируйте конфигурации вычислительных ресурсов для конкретной рабочей нагрузки, выбрав соответствующие типы вычислений для различных вариантов использования, например кластеры заданий для извлечения, преобразования, преобразования, загрузки (ETL) конвейеров и экземпляров графической обработки (GPU) для обучения машинного обучения.

Сопоставление типов экземпляров и конфигураций кластера с конкретными требованиями к рабочей нагрузке, а не использование универсальных конфигураций во всех сценариях.
Оптимизация для конкретных рабочих нагрузок еще больше снижает затраты по сравнению с универсальными подходами, устраняя избыточное ресурсное обеспечение и используя специализированные типы вычислительных ресурсов, оптимизированные под конкретные сценарии.
Реализуйте автоматические политики жизненного цикла данных с запланированными операциями очистки, включая команды VACUUM, хранение файлов журнала и управление контрольными точками на основе бизнес-требований. Автоматическое управление жизненным циклом сокращает затраты на хранение, систематически удаляя ненужные версии данных, журналы и временные файлы и предотвращая чрезмерное увеличение объема хранилища с течением времени.
Используйте уровень "Стандартный " для сред разработки и тестирования. Используйте уровень "Премиум" только для рабочих нагрузок, требующих расширенных функций безопасности и сертификации соответствия. Выбор стратегических уровней оптимизирует затраты на лицензирование с помощью уровня "Стандартный" для непроизводственных рабочих нагрузок, где не требуются расширенные функции безопасности.

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

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

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

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

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

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

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

Бесплатный уровень Lakeflow Connect предоставляет 100 бесплатных единиц Databricks (DBUs) на каждую рабочую область в день для приема данных из приложений и баз данных SaaS. Этот бесплатный уровень снижает порог входа для внедрения архитектуры Lakehouse, позволяя командам проверять и настраивать потоки данных и управление Unity Catalog, прежде чем масштабировать для производственных объёмов. Учтите предел в 100 DBU/day при определении размера начальных развертываний, поскольку стандартные цены применяются после превышения этого порога.

Операционное превосходство

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

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

Контрольный список разработки рабочей нагрузки

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

  • Сбор данных мониторинга. Для рабочей нагрузки Azure Databricks сосредоточьтесь на отслеживании ключевых областей, таких как работоспособность кластера, использование ресурсов, задачи и конвейеры, качество данных и активность доступа. Используйте эти метрики, чтобы убедиться, что система работает должным образом. Их также можно использовать для аудита доступа к данным и ресурсам, а также для применения управления.

    • Мониторинг кластера. При мониторинге кластеров Azure Databricks сосредоточьтесь на индикаторах, которые отражают производительность и эффективность. Отслеживайте общую работоспособность кластера и наблюдайте, как узлы используют такие ресурсы, как центральный модуль обработки (ЦП), память и диски.

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

      Используйте таблицы Системы Databricks для записи состояния задания, цепочек зависимостей и пропускной способности в собственном коде.

    • Мониторинг подключения к источнику данных. Мониторинг интеграции и зависимостей с внешними системами. Эти данные включают состояние подключения к источнику, зависимости API и поведение аутентификации служебного принципала. Каталог Unity можно использовать для управления и мониторинга внешних расположений. Этот подход помогает определить потенциальные проблемы с доступом или конфигурацией.

    • Мониторинг качества данных. Сбор сигналов, которые проверяют целостность и свежесть данных. Отслеживайте проблемы эволюции схемы с помощью таких средств, как автозагрузчик. Реализуйте правила, которые выполняют проверки полноты, обнаружение значений NULL и идентификацию аномалий. Вы можете использовать декларативные конвейеры Spark Lakeflow для применения встроенных ограничений качества во время обработки данных.

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

    Встроенные средства мониторинга в Azure Databricks интегрируются с Azure Monitor.

  • Настройте автоматические и повторяемые ресурсы развертывания. Используйте IaC для определения ресурсов Azure Databricks и управления ими.

    Автоматизировать подготовку рабочих пространств, включая выбор региона, сетевые настройки и контроль доступа, для обеспечения согласованности между средами. Используйте шаблоны кластеров для стандартизации конфигураций вычислений. Такой подход снижает риск неправильной настройки и повышает прогнозируемость затрат. Определите задания и конвейеры в качестве кода с помощью таких форматов, как шаблоны JSON Azure Resource Manager (шаблоны ARM), чтобы они были управляемыми версиями и воспроизводимыми.

    Используйте стратегии ветвления и процедуры отката в пакетах ресурсов Databricks для исходного кода записной книжки управления версиями, конфигураций заданий, определений конвейеров и параметров инфраструктуры в репозиториях Git.

  • Автоматизация развертываний. Используйте конвейеры CI/CD в Azure Databricks для автоматизации развертывания конвейеров, конфигураций заданий, параметров кластера и ресурсов каталога Unity. Вместо того чтобы вручную отправлять изменения, рассмотрите такие средства, как Databricks Repos для управления версиями, Azure DevOps или GitHub Actions для автоматизации конвейера и пакетов ресурсов Databricks для упаковки кода и конфигураций.

  • Автоматизация стандартных задач. Обычно автоматизированные задачи включают управление жизненными циклами кластера, например запланированные запуски и остановки, очистка журналов и проверка работоспособности конвейера. Интегрируясь с такими инструментами Azure, как Azure Logic Apps или Функции Azure, команды могут создавать рабочие процессы с функцией автономного восстановления, которые автоматически реагируют на проблемы, такие как перезапуск неудачных заданий или масштабирование кластеров. Этот тип автоматизации помогает поддерживать надежные, эффективные Azure Databricks операции при росте рабочих нагрузок.

  • Придерживайтесь строгих практик тестирования. Стратегии Azure Databricks включают модульное тестирование кода записных книжек, интеграционное тестирование для конвейеров данных, проверку логики Декларативного конвейера Spark Lakeflow, тестирование разрешений с использованием Unity Catalog и проверку развертываний инфраструктуры. Эти методики помогают перехватывать проблемы на ранних этапах и сокращать инциденты в рабочей среде.

  • Разработайте операционные руководства для обработки инцидентов.Операционные руководства предоставляют структурированные пошаговые инструкции по обработке распространенных сценариев Azure Databricks. К этим модулям Runbook относятся команды диагностики, расположения журналов, контакты эскалации и процедуры восстановления с предполагаемым временем разрешения. Используйте модули Runbook для быстрого и согласованного реагирования на инциденты между командами.

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

  • Реализуйте совместную работу команды и управление знаниями. Методики совместной работы команды оптимизируют производительность Azure Databricks с помощью организации общих рабочих пространств, возможностей совместной работы с записными книжками и стандартов документации, которые упрощают передачу знаний и уменьшают дублирование проектов в командах разработчиков.

  • Используйте бессерверные рабочие области для быстрого подготовки среды. Бессерверные рабочие области предоставляют полностью управляемые типы рабочих областей с предварительно настроенными бессерверными вычислениями, хранилищем DBFS по умолчанию и другими преимуществами. Эти рабочие области позволяют создавать рабочие области на портале Azure, включить автоматическое включение каталога Unity и встроенную интеграцию с Entra ID для всех пользователей клиента. Это позволяет быстро создавать рабочие области без подготовки вычислительных ресурсов или хранилища, уменьшая количество операций вручную.

Recommendations

Recommendation Преимущества
Настройте параметры diagnostic settings для рабочих областей Azure Databricks для отправки журналов платформы, журналов аудита и событий кластера в рабочую область Azure Monitor Log Analytics.

Включите все доступные категории журналов, включая журналы рабочей области, кластеры, учетные записи, задания, записные книжки и журналы аудита Unity Catalog для обеспечения достоверности наблюдения.
Централизует всю телеметрию Azure Databricks в Log Analytics и активирует расширенные запросы KQL для устранения неполадок, автоматического оповещения о критических событиях и отчетности по соблюдению требований. Диагностика обеспечивает единую видимость между действиями рабочей области, производительностью кластера и шаблонами доступа к данным для упреждающего оперативного управления.
Развертывание рабочих областей Azure Databricks с помощью шаблонов ARM или Bicep файлов с параметризованными конфигурациями для согласованной подготовки среды.

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

Кроме того, ускоряет подготовку среды по сравнению с процессами ручного развертывания и позволяет ускорить восстановление с помощью автоматического повторного создания рабочей области во время сценариев аварии.
Интеграция записных книжек Azure Databricks и другого исходного кода с репозиториями Git с помощью Databricks Repos для управления версиями и совместной разработки.

Настройте автоматизированные конвейеры CI/CD с помощью Azure DevOps или GitHub Actions для развертывания изменений исходного кода, конфигураций заданий и конвейеров и шаблонов кластеров в средах с соответствующими рабочими процессами тестирования и утверждения.
Разрешает совместную разработку с журналом версий, рабочими процессами на основе ветвей и разрешением конфликтов при слиянии кода. Снижает риски развертывания с помощью автоматизированного тестирования и поэтапного выпуска, при этом сохраняются полные аудиторские следы всех продуктивных изменений.
Развертывайте автоматизированные решения cluster rightsizing с помощью метрик кластера Azure Databricks и данных Azure Monitor для анализа моделей использования и рекомендации по оптимальным типам и размерам экземпляров.

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

Устраняет затраты на мониторинг вручную и позволяет упреждающее управление емкостью с помощью аналитических сведений на основе данных о шаблонах использования ресурсов и возможностях оптимизации.
Активируйте ведение журнала аудита Unity Catalog для отслеживания всех задач доступа к данным, изменений разрешений и действий управления в рабочих областях Azure Databricks.

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

Настройте пороговые значения ожидания, политики карантина и автоматическое оповещение о нарушениях качества данных для обеспечения надежности конвейера и целостности данных.
Автоматизирует проверку качества данных с помощью декларативных правил, которые препятствуют распространению плохих данных вниз, что снижает усилия по проверке вручную. Предоставляет прозрачные метрики качества данных и рабочие процессы автоматического исправления, поддерживающие надежность конвейера и уверенность в бизнесе в точности данных.
Создайте автоматизированные процедуры резервного копирования для артефактов рабочей области Azure Databricks с помощью REST API Databricks и Cлужба автоматизации Azure модулей Runbook.

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

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

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

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

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

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

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

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

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

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

Эффективность производительности

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

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

Контрольный список разработки рабочей нагрузки

Начните стратегию проектирования на основе контрольного списка проектирования для эффективности производительности. Определите базовые показатели, основанные на ключевых показателях производительности для Azure Databricks.

  • Планирование емкости. Анализируйте рабочие нагрузки и отслеживайте использование ресурсов, чтобы точно определить, сколько вычислительных мощностей и объема хранилища действительно необходимо вашим рабочим нагрузкам. Используйте эти сведения для правильного размера кластеров, оптимизации расписаний рабочих заданий и прогнозирования роста хранилища. Этот подход помогает избежать недостаточного выделения ресурсов, что приводит к дефициту ресурсов.

  • Выберите оптимальные конфигурации вычислений для характеристик рабочей нагрузки. Оцените бессерверные параметры, которые могут обеспечить более эффективное автоматическое масштабирование и более быстрое время запуска. Сравните их с традиционными кластерами, чтобы выбрать оптимальный вариант.

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

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

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

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

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

  • Разработка эффективных механизмов хранения и извлечения данных. Улучшения производительности для задач с большим объемом данных требуют тщательного планирования и настройки.

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

      Размер файла играет ключевую роль. Файлы, которые слишком малы, создают чрезмерные затраты на метаданные и замедляют задания Spark, а файлы, которые слишком большие, могут привести к проблемам с памятью и производительностью.

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

    • Реализация эффективного кэширования. Используйте кэширование для горячих наборов данных и отслеживайте коэффициенты попаданий кэша, чтобы убедиться, что не требуется использовать память. Spark предоставляет встроенные механизмы кэширования и Azure Databricks предоставляет разностный кэш, который позволяет оптимизировать кэширование данных на уровне диска на разных узлах.

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

      Используйте методы индексирования, предиката pushdown, проекции и оптимизации соединения, которые используют анализ плана запросов для более эффективного выполнения заданий для оптимизации запросов SQL и операций Spark.

      Azure Databricks обеспечивает встроенную оптимизацию. Оптимизатор Катализатора перезаписывает запросы на эффективность. AQE настраивает планы во время выполнения, чтобы обрабатывать отклонение данных и улучшать соединения. Функции Delta Lake, такие как статистика таблиц, кластеризация Z-порядка и фильтры Блум, дополнительно сокращают сканированные данные для более быстрых и экономичных запросов.

    • Выберите правильные форматы данных и сжатие. Форматы, такие как Parquet и интеллектуальные алгоритмы сжатия, такие как Zstandard (zstd), снижают объем хранилища и ускоряют чтение без ущерба для производительности.

  • Оптимизируйте производительность сети и ввода-вывода. Выберите высокопроизводительное хранилище, например хранилище уровня Premium или SSD, и создайте архитектуру, чтобы свести к минимуму перемещение данных, обрабатывая данные близко к месту хранения.

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

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

    • Потоковая обработка: Конвейеры данных в режиме реального времени требуют низкой задержки и высокой пропускной способности. В Azure Databricks необходимо настроить такие параметры, как интервалы триггеров, размеры микро-пакетов, водяные знаки и контрольные точки для удовлетворения этих требований. Используйте возможности структурированной потоковой передачи и Delta Lake, такие как эволюция схемы и точная одноразовая доставка, чтобы обеспечить согласованную обработку при различных уровнях нагрузки.

    • Машинное обучение: Учебные задания машинного обучения и вывода обычно являются ресурсоемкими. Вы можете повысить производительность с помощью распределенного обучения, ускорения GPU и эффективных конвейеров проектирования функций. Azure Databricks поддерживает настройку производительности машинного обучения с помощью MLflow, Databricks Runtime для машинного обучения и интеграции с такими инструментами, как Horovod. Настройте конфигурации ресурсов и примените оптимизации предварительной обработки данных, чтобы значительно сократить время обучения и задержку вывода.

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

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

    Анализ аномалий в ключевых метрик, таких как использование ЦП и памяти, время выполнения задания, задержки запросов и работоспособности кластера. Эти сведения помогают определить замедления, которые могут вызвать плохие конфигурации Spark, неоптимизированные запросы или недостаточно предоставленные и перепредоставленные кластеры.

    Используйте встроенные средства, такие как пользовательский интерфейс Spark для анализа планов запросов и этапов заданий, Azure Monitor для отслеживания метрик уровня инфраструктуры и пользовательских метрик или журналов для более глубокой аналитики. Эти средства поддерживают упреждающую настройку, чтобы устранить проблемы, прежде чем они влияют на пользователей или критически важные конвейеры.

  • Проводите систематическое тестирование производительности. Используйте нагрузочное тестирование, стресс-тестирование и бенчмаркинг для проверки времени выполнения, использования ресурсов и отзывчивости системы. Создайте базовые показатели производительности и включите автоматизированные тесты в конвейеры CI/CD, чтобы обнаружить замедление и оценить последствия оптимизации.

Recommendations

Recommendation Преимущества
Настройте кластеры Azure Databricks для использования оптимизированных для памяти типов экземпляров таких как виртуальные машины серии E или серии M при обработке больших наборов данных, требующих обширного кэширования в памяти, обучения модели машинного обучения или сложных аналитических задач.

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

Определите триггеры масштабирования на основе использования ЦП, использования памяти или глубины очереди заданий и настройте скорость масштабирования для балансировки скорости реагирования с оптимизацией затрат.
Поддерживает стабильную производительность во время колебаний спроса, оптимизируя затраты за счет автоматической корректировки ресурсов, которая увеличивается в пиковые периоды и уменьшается в периоды низкой загрузки.
Выполните команды OPTIMIZE с Z-упорядочиванием в таблицах Delta Lake, для улучшения кластеризации данных и повышения производительности запросов. Выберите столбцы Z-порядка на основе часто используемых условий фильтрации и соединения в запросах. Эти условия обычно включают столбцы, используемые в WHERE предложениях, GROUP BY операциях и JOIN предикаатах.

Планирование регулярных задач оптимизации с помощью заданий Azure Databricks или Декларативных конвейеров Lakeflow Spark для обеспечения оптимальной производительности по мере роста данных.
Сокращает время выполнения запросов с помощью улучшенных пропусков данных и минимизации операций ввода-вывода, а также снижает затраты на хранение за счет повышения коэффициентов сжатия, достигнутых кластеризированием связанных данных вместе.

Обеспечивает накопительные улучшения производительности по мере того, как преимущества оптимизации накапливаются со временем с регулярным обслуживанием и интеллектуальной организацией данных, соответствующей фактическим шаблонам запросов.
Включите разностный кэш для конфигураций кластера, где часто доступны одни и те же наборы данных в нескольких запросах или заданиях. Измените параметры кэша, чтобы эффективно использовать локальное хранилище NVMe SSD для выделения достаточного размера кэша на основе характеристик набора данных и шаблонов доступа.

Отслеживайте коэффициенты попаданий кэша и настраивайте конфигурации кэша, чтобы повысить производительность для конкретных рабочих нагрузок.
Ускоряет производительность запросов для часто используемых данных с помощью интеллектуального кэширования на основе SSD, обходя медленное сетевое хранилище. Такой подход значительно снижает задержку для итеративной аналитики и рабочих нагрузок машинного обучения.
Включите модуль Photon для конфигураций кластера и хранилищ SQL для ускорения запросов SQL и операций DataFrame с помощью векторного выполнения. Photon обеспечивает наиболее значительные преимущества для аналитических рабочих нагрузок, включающих агрегирования, сопоставления и сложные задачи SQL.

Настройте вычислительные ресурсы с поддержкой Photon для конвейеров проектирования данных, рабочих нагрузок бизнес-аналитики (BI) и аналитических приложений, обрабатывающих большие наборы данных.
Повышает производительность операций SQL и DataFrame с помощью нативного векторизованного выполнения. Снижает затраты на вычисления, повышая эффективность обработки и уменьшая время выполнения.

Позволяет обрабатывать большие наборы данных в пределах одного и того же ограничения времени и поддерживать более параллельных пользователей без снижения производительности, повышая общую пропускную способность системы.
Задайте параметры памяти исполнителя Spark в диапазоне от 2 до 8 гигабайт (ГБ) для каждого исполнителя и памяти драйвера на основе максимального размера набора данных и сложности обработки. Установите spark.executor.cores от двух до пяти ядер для каждого исполнителя, чтобы сбалансировать параллелизм и эффективность ресурсов.

Настройте эти параметры на основе конкретных характеристик рабочей нагрузки, тома данных и размера кластера, чтобы предотвратить ошибки вне памяти при максимальном использовании ресурсов.
Предотвращает сбои заданий, которые вызывают проблемы с памятью и оптимизируют эффективность распределения ресурсов, чтобы сократить время выполнения и затраты ресурсов.
Настройте учетные записи хранения с уровнями производительности SSD Premium для рабочих нагрузок Azure Databricks, которые требуют высокой производительности операций ввода-вывода в секунду (IOPS) и низкой задержки. Используйте хранилище блобов класса Premium для сценариев озера данных с интенсивным чтением и записью.

Убедитесь, что учетные записи хранения находятся в том же регионе, что и рабочая область Azure Databricks, чтобы свести к минимуму задержку в сети.
Предоставляет до 20 000 операций ввода-вывода в секунду и задержку субмиллисекунда для операций хранения. Улучшает производительность при обработке объемных данных и сокращает время выполнения заданий за счет устранения узких мест в системе ввода-вывода хранилища.
Разработка стратегий секционирования данных на основе часто используемых столбцов фильтров в запросах. Эти фильтры включают столбцы дат для данных временных рядов или категориальных столбцов для мерных данных. Избегайте переполнения, ограничив секции менее 10 000 и гарантируя, что каждая секция имеет по крайней мере 1 ГБ данных.

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

Запросы работают прогнозируемо и масштабируются линейно с отфильтрованным размером данных, а не общим размером таблицы. Поддерживает согласованное время отклика, так как наборы данных увеличиваются до масштаба петабайта (PB).
Используйте формат файла Parquet с сжатием zstd или Snappy для аналитических рабочих нагрузок, чтобы оптимизировать эффективность хранения и производительность запросов. Zstd обеспечивает лучшие коэффициенты сжатия для холодных данных. Snappy обеспечивает более быструю декомпрессию для часто доступных наборов данных.

Задайте соответствующие уровни сжатия и оцените компромиссы сжатия на основе шаблонов доступа и затрат на хранение.
Снижает затраты на хранение, повышая производительность запросов с помощью эффективности хранилища columnar и оптимизированного сжатия. Сканирует данные быстрее и сокращает количество операций ввода-вывода сети.
Развертывание бессерверных хранилищ SQL для бизнес-аналитики и аналитических рабочих нагрузок, требующих незапланированных запросов и интерактивной аналитики. Настройте соответствующие размеры хранилища, такие как 2X-Small-4X-Large, на основе требований параллелизма и сложности запросов.

Включите функции автостопирования и автозапуска для оптимизации затрат, обеспечивая быструю скорость реагирования запросов для пользователей.
Устраняет издержки на управление кластерами и обеспечивает мгновенное масштабирование с ускоренной производительностью благодаря Photon. Обеспечивает лучшую производительность цен по сравнению с традиционными кластерами для рабочих нагрузок SQL.

Обеспечивает согласованное время запуска запросов с долей секунды и автоматическую оптимизацию, которая адаптируется к изменению шаблонов рабочих нагрузок без ручного вмешательства или настройки.
Включите AQE в конфигурациях Spark для использования возможностей оптимизации среды выполнения, включая динамическое объединение секций с перемешиванием, переключение стратегии динамического соединения и оптимизацию сложенных соединений.

Задайте параметры AQE, такие как размер секции перемешивания и пороговые значения объединения, на основе типичных объемов данных и характеристик кластера.
Повышает производительность запросов с помощью интеллектуальных оптимизаций среды выполнения, которые адаптируются к фактическим характеристикам данных и шаблонам выполнения. Автоматически устраняет распространенные проблемы с производительностью, такие как небольшие файлы и отклонение данных.
Создайте пулы кластеров с предварительно подготовленными экземплярами, которые соответствуют наиболее распространенным конфигурациям кластера, чтобы сократить время запуска для интерактивных кластеров и кластеров заданий.

Устанавливайте размеры пула на основе ожидаемых моделей параллельного использования и поддерживайте экземпляры в простое в пиковые часы, чтобы обеспечить немедленную доступность для команд разработки и запланированных заданий.
Сокращает время запуска кластера от 5 до 10 минут до менее 30 секунд. Повышает производительность разработчика и выполняет задания быстрее для рабочих процессов обработки конфиденциальных данных.
Планируйте регулярные задачи оптимизации с помощью заданий Azure Databricks для сжатия небольших файлов и повышения производительности запросов. Выполните VACUUM команды для очистки журналов транзакций с истекшим сроком действия и удаленных файлов. Задайте частоту оптимизации на основе шаблонов приема данных, обычно ежедневно для таблиц с большим объемом и еженедельно для менее часто обновляемых таблиц.

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

Предотвращает снижение производительности с течением времени, которое обычно происходит в озерах данных без соответствующего обслуживания. Обеспечивает прогнозируемую время отклика запроса и оптимальную загрузку ресурсов.
Настройте интервалы триггера структурированной потоковой передачи на основе требований задержки и шаблонов прибытия данных. Используйте непрерывные триггеры для потребностей в несекундной задержке или микро-пакетных триггеров с 1-секундным интервалом до 10 секунд для сбалансированной производительности. Оптимизируйте расположения контрольных точек с помощью быстрого хранения и настройте соответствующие интервалы контрольных точек для балансировки отказоустойчивости и затрат на производительность. Обеспечивает оптимальный баланс между задержкой и пропускной способностью для обработки данных в режиме реального времени. Обеспечивает согласованную производительность потоковой обработки, которая может обрабатывать различные частоты поступления данных, сохраняя низкую сквозную задержку.
Развертывайте кластеры с поддержкой GPU с использованием виртуальных машин серии NC, ND или NV для обучения и выполнения моделей глубокого обучения. Настройте соответствующее выделение памяти GPU и используйте MLflow для распределенной оркестрации обучения.

Выберите типы экземпляров GPU на основе сложности модели и размера набора данных для обучения. Рассмотрите как емкость памяти, так и требования к производительности вычислений для конкретных рабочих нагрузок машинного обучения.
Ускоряет обучение моделей на 10–100 раз по сравнению с кластерами, предназначенными только для ЦП, с помощью возможностей параллельной обработки, предназначенных для операций машинного обучения. Сокращает время обучения и позволяет ускорить циклы итерации модели.

политики Azure

Azure предоставляет широкий набор встроенных политик, связанных с Azure Databricks и его зависимостями. Некоторые из предыдущих рекомендаций можно проверить с помощью Политика Azure. Например, можно проверить, можно ли:

  • Пространства Azure Databricks используют инъекцию виртуальной сети для повышения безопасности и изоляции сети.
  • Azure Databricks рабочие области блокируют доступ к общедоступной сети при использовании частных конечных точек.
  • Azure Databricks кластеры имеют шифрование дисков, включенное для защиты неактивных данных.
  • Azure Databricks рабочие области используют управляемые клиентом ключи для расширенного управления шифрованием.
  • В рабочих областях Azure Databricks включено ведение журнала диагностики для мониторинга и соответствия требованиям.
  • Рабочие области Azure Databricks развертываются только в утвержденных географических регионах для соответствия нормативам.
  • Корпоративные рабочие нагрузки используют уровень Azure Databricks Premium для повышения безопасности и соответствия требованиям.
  • Рабочие пространства Azure Databricks используют Unity Catalog для централизованного управления данными.

Для комплексного управления ознакомьтесь со встроенными определениями Политика Azure для Azure Databricks и других политик, которые могут повлиять на безопасность платформы аналитики.

рекомендации Помощник по Azure

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

Дополнительные сведения см. в разделе Помощник по Azure.

Trade-offs

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

Анализ компромиссов производительности и затрат

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

Архитектура сценария

обработка Stream с помощью Azure Databricks демонстрирует базовую архитектуру, демонстрирующую основные рекомендации, описанные в этой статье.