Методология успеха реализации Synapse: оценка проекта пула Spark
Примечание.
Эта статья входит в серию статей, посвященных успешному внедрению Azure Synapse, предпосылки к которому закладываются изначально. Общие сведения о серии см. в статье "Внедрение Azure Synapse — успешно по умолчанию".
Вы должны оценить проект пула Spark, чтобы выявить проблемы и проверить, что он соответствует рекомендациям и требованиям. Оценив проект до начала разработки решений, можно избежать блокирующих факторов и неожиданных изменений проекта. Так вы сможете соблюсти сроки проекта и остаться в рамках бюджета.
Apache Spark в Synapse позволяет выполнять параллельную обработку данных Apache Spark в Azure Synapse Analytics. Эта оценка содержит рекомендации о том, в каких случаях Apache Spark в Azure Synapse подходит (или не подходит) для вашей рабочей нагрузки. В ней описываются моменты, которые следует учитывать при оценке элементов проектирования решений, содержащих пулы Spark.
Анализ несоответствий
При планировании реализации пулов Spark в Azure Synapse сначала убедитесь, что они оптимально подходят для вашей рабочей нагрузки.
Учтите следующие моменты.
- Требуется ли для рабочей нагрузки подготовка данных или инжиниринг данных?
- Apache Spark лучше всего подходит для рабочих нагрузок, требующих:
- очистка данных;
- преобразование частично структурированных данных, таких как XML, в реляционные;
- сложное преобразование произвольного текста, например нечеткое совпадение или обработка естественного языка (NLP);
- подготовка данных для машинного обучения (ML).
- Apache Spark лучше всего подходит для рабочих нагрузок, требующих:
- Рабочая нагрузка для подготовки данных или инжиниринга данных связана со сложными или простыми преобразованиями? Вам требуется подход с минимальным объемом кода или вообще без него?
- Для простых преобразований, таких как удаление столбцов, изменение типов данных столбцов или объединение наборов данных, рекомендуется создать конвейер Azure Synapse с помощью действия потока данных.
- При использовании действий потока данных вам требуется лишь минимальный объем кода для подготовки данных либо код не требуется вообще.
- Требуется ли для рабочей нагрузки Машинное обучение на основе больших данных?
- Apache Spark хорошо подходит для работы с большими наборами данных, которые будут использоваться для Машинного обучения. Если вы используете небольшие наборы данных, рассмотрите возможность использования Машинного обучения Azure в качестве службы вычислений.
- Вы планируете выполнять исследование данных или анализировать специализированные запросы к большим данным?
- Apache Spark в Azure Synapse предоставляет возможности изучения данных на основе Python, Scala, SQL, .NET. Однако если вам нужен полный функционал Transact-SQL (T-SQL), рассмотрите возможность использования бессерверного пула SQL.
- У вас есть текущая рабочая нагрузка Spark или Hadoop и требуется ли единая платформа больших данных?
- Azure Synapse предоставляет единую аналитическую платформу для работы с большими данными. Существуют бессерверные пулы Spark и SQL для специализированных запросов, а также выделенный пул SQL для создания отчетов и обслуживания данных.
- Следует принять во внимание, что при переходе с рабочей нагрузки Spark или Hadoop из локальной среды (или другой облачной среды) может потребоваться провести рефакторинг.
- Если для переноса среды больших данных Apache из локальной среды в облако вы хотите использовать метод lift-and-shift и при этом следовать условиям строгого Соглашения об уровне обслуживания (SLA) для инжиниринга данных, рассмотрите возможность использования Azure HDInsight.
Рекомендации по архитектуре
Чтобы обеспечить соответствие пула Apache Spark вашим требованиям к эффективности операционных процессов, производительности, надежности и безопасности, в архитектуре необходимо проверить ряд ключевых областей.
Эффективность работы
Для обеспечения эффективности операционных процессов оцените следующие моменты.
- Среда. При настройке среды спроектируйте пул Spark так, чтобы он поддерживал такие функции, как автомасштабирование и динамическое выделение. Кроме того, чтобы снизить затраты, рассмотрите возможность включения функции автоматической приостановки.
- Управление пакетами. Определите, будут ли необходимые библиотеки Apache Spark использоваться на уровне рабочей области, пула или сеанса. Дополнительные сведения см. в статье Управление библиотеками для Apache Spark в Azure Synapse Analytics.
- Мониторинг. Apache Spark в Azure Synapse обеспечивает встроенный мониторинг пулов и приложений Spark при создании каждого сеанса Spark. Также рассмотрите возможность реализации мониторинга приложений с помощью Azure Log Analytics или Prometheus и Grafana, которые можно использовать для визуализации метрик и журналов.
Оптимизация производительности
Для обеспечения оптимизации производительности оцените следующие моменты.
- Размер файла и тип файла. Размер файла и количество файлов влияют на производительность. Спроектируйте архитектуру так, чтобы типы файлов были пригодны для собственного приема в Apache Spark. Кроме того, стремитесь работать с меньшим количеством больших файлов вместо множества небольших.
- Секционирование. Определите, будет ли реализовано секционирование на уровне папки и (или) файла для рабочей нагрузки. Секции папок ограничивают объем данных для поиска и чтения. Секции файлов сокращают объем искомых данных в файле, но применяются только к определенным форматам файлов, которые следует учитывать в начальной архитектуре.
Надежность
Для обеспечения надежности оцените следующие моменты.
- Доступность. Время запуска пулов Spark составляет от трех до четырех минут. Если необходимо установить много библиотек, может потребоваться больше времени. При проектировании пакетных и потоковых рабочих нагрузок определите Соглашение об уровне обслуживания для выполнения задания на основе сведений об оценке и определите, какая архитектура лучше всего соответствует вашим потребностям. Кроме того, учитывайте, что при каждом выполнении задания создается кластер пулов Spark.
- Установка контрольных точек. В потоковой передаче Apache Spark реализован встроенный механизм установки контрольных точек. Он позволят восстанавливать поток с последней обработанной записи в случае сбоя узла в пуле.
Безопасность
Для обеспечения безопасности оцените следующие моменты.
- Доступ к данным. Учитывайте этот момент для учетной записи Azure Data Lake Storage (ADLS), подключенной к рабочей области Synapse. Кроме того, определите уровни безопасности, необходимые для доступа к любым данным вне среды Azure Synapse. Обратитесь к сведениям, собранным на этапе оценки.
- Сеть. Просмотрите сведения о сети и требования, собранные во время оценки. Если для проекта требуется управляемая виртуальная сеть с Azure Synapse, рассмотрите последствия этого требования для Apache Spark в Azure Synapse. Одним из последствий является невозможность использования Spark SQL при доступе к данным.
Следующие шаги
В следующей статье в серии об успешной реализации Azure Synapse, предусмотренной проектом, вы узнаете, как оценить план проекта современного хранилища данных перед началом проекта.
Дополнительные рекомендации см. в руководстве по Apache Spark для Azure Synapse.