Synapse 成功实施方法:评估 Spark 池设计

注意

本文是“按设计成功实施 Azure Synapse”系列文章的一部分。 有关系列概述,请参阅按设计成功实施 Azure Synapse

应评估 Apache Spark 池设计,以识别问题并验证该设计是否符合准则和要求。 通过在开始开发解决方案之前评估设计,可以避免阻碍和意外的设计更改。 这可以保护项目的时间表和预算。

Synapse 中的 Apache Spark 将 Apache Spark 并行数据处理引入了 Azure Synapse Analytics。 此项评估提供有关当 Azure Synapse 中的 Apache Spark 适合或者不适合你的工作负载时可遵循的指导。 其中描述了在评估整合了 Spark 池的解决方案设计元素时要考虑的要点。

适应差距分析

计划使用 Azure Synapse 实施 Spark 池时,首先请确保这些池最适合你的工作负载。

考虑以下几点。

  • 工作负载是否需要数据工程/数据准备?
    • Apache Spark 最适合需要以下内容的工作负载:
      • 数据清理。
      • 将半结构化数据(例如 XML)转换为关系数据。
      • 复杂的自由文本转换,例如模糊匹配或自然语言处理 (NLP)。
      • 机器学习 (ML) 的数据准备。
  • 数据工程/数据准备工作负载涉及的是复杂还是简单的转换? 此外,你是否寻求低代码/无代码方法?
    • 如果涉及简单转换(例如删除列、更改列数据类型或联接数据集),请考虑使用数据流活动创建 Azure Synapse 管道。
    • 数据流活动提供低代码/无代码方法来准备数据。
  • 工作负载是否需要对大数据进行 ML?
    • Apache Spark 非常适合处理 ML 使用的大型数据集。 如果使用小型数据集,请考虑使用 Azure 机器学习作为计算服务。
  • 你是否打算对大数据执行数据探索或临时查询分析?
    • Azure Synapse 中的 Apache Spark 提供基于 Python/Scala/SQL/.NET 的数据探索。 但是,如果需要完整的 Transact-SQL (T-SQL) 体验,请考虑使用无服务器 SQL 池
  • 当前是否有 Spark/Hadoop 工作负载,是否需要统一的大数据平台?
    • Azure Synapse 提供一个用于处理大数据的统一分析平台。 有 Spark 和 SQL 无服务器池可用于临时查询,有专用 SQL 池可用于报告和提供数据。
    • 从本地(或其他云环境)的 Spark/Hadoop 工作负载迁移可能涉及一些重构工作,应将此考虑在内。
    • 如果你正在寻求一种将 Apache 大数据环境从本地直接迁移到云的方法,并且需要满足严格的数据工程服务级别协议 (SLA) 要求,请考虑使用 Azure HDInsight

体系结构注意事项

为确保 Apache Spark 池满足卓越运营、性能、可靠性和安全性的要求,需要在体系结构中验证一些关键方面。

卓越运营

为实现卓越运营,请评估以下要点。

性能效率

对于性能效率,请评估以下要点。

  • 文件大小和文件类型:文件大小和文件数量会影响性能。 设计体系结构,以确保文件类型有利于 Apache Spark 的本机引入。 此外,尽量使用少量的大文件,而不是大量的小文件。
  • 分区:确定是否为工作负载实现文件夹和/或文件级别的分区。 文件夹分区可以限制要搜索和读取的数据量。 文件分区可以减少要在文件中搜索的数据量 – 但仅适用于在初始体系结构中应考虑的特定文件格式。

可靠性

对于可靠性,请评估以下几点。

  • 可用性:Spark 池的启动时间为三到四分钟。 如果要安装许多库,则启动可能需要更长时间。 在设计批处理与流式处理工作负载时,请从评估信息中确定执行作业的 SLA,并确定哪种体系结构最符合需求。 此外,请考虑到每次作业执行都会创建一个新的 Spark 池群集。
  • 检查点:Apache Spark 流式处理具有内置的检查点机制。 如果池中的某个节点出现故障,可以使用检查点从最后处理的条目中恢复流。

安全性

对于安全性,请评估以下几点。

  • 数据访问:必须考虑附加到 Synapse 工作区的 Azure Data Lake Storage (ADLS) 帐户的数据访问。 此外,确定访问不在 Azure Synapse 环境中的任何数据时所需的安全级别。 参考在评估阶段收集的信息。
  • 网络:评审在评估期间收集的网络信息和要求。 如果设计涉及到使用 Azure Synapse 的托管虚拟网络,请考虑此项要求对 Azure Synapse 中的 Apache Spark 造成的影响。 一种影响是在访问数据时无法使用 Spark SQL。

后续步骤

在“按设计成功实施 Azure Synapse”系列教程的下一篇文章中,了解如何在项目开始之前评估新式数据仓库项目计划。

有关最佳做法的详细信息,请参阅 Apache Spark for Azure Synapse 指南