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) 的数据准备。
- Apache Spark 最适合需要以下内容的工作负载:
- 数据工程/数据准备工作负载涉及的是复杂还是简单的转换? 此外,你是否寻求低代码/无代码方法?
- 如果涉及简单转换(例如删除列、更改列数据类型或联接数据集),请考虑使用数据流活动创建 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 池满足卓越运营、性能、可靠性和安全性的要求,需要在体系结构中验证一些关键方面。
卓越运营
为实现卓越运营,请评估以下要点。
- 环境:配置环境时,请将 Spark 池设计为利用自动缩放和动态分配等功能。 另外,为了降低成本,请考虑启用自动暂停功能。
- 包管理:确定是要在工作区、池还是会话级别使用所需的 Apache Spark 库。 有关详细信息,请参阅在 Azure Synapse Analytics 中管理 Apache Spark 的库。
- 监视:Azure Synapse 中的 Apache Spark 提供内置的 Spark 池和应用程序监视,可创建每个 Spark 会话。 另请考虑使用 Azure Log Analytics 或 Prometheus 和 Grafana(可用于可视化指标和日志)实现应用程序监视。
性能效率
对于性能效率,请评估以下要点。
- 文件大小和文件类型:文件大小和文件数量会影响性能。 设计体系结构,以确保文件类型有利于 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 指南。