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


Методология успеха реализации 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).
  • Рабочая нагрузка для подготовки данных или инжиниринга данных связана со сложными или простыми преобразованиями? Вам требуется подход с минимальным объемом кода или вообще без него?
    • Для простых преобразований, таких как удаление столбцов, изменение типов данных столбцов или объединение наборов данных, рекомендуется создать конвейер 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 вашим требованиям к эффективности операционных процессов, производительности, надежности и безопасности, в архитектуре необходимо проверить ряд ключевых областей.

эффективность работы;

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

оптимизация производительности;

Для обеспечения оптимизации производительности оцените следующие моменты.

  • Размер файла и тип файла. Размер файла и количество файлов влияют на производительность. Спроектируйте архитектуру так, чтобы типы файлов были пригодны для собственного приема в 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.