Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
注释
本文是《Azure Synapse 实施成功设计》系列文章的一部分。 关于系列概述,请参阅《由设计实现成功的 Azure Synapse》。
实施Azure Synapse Analytics的第一步是对环境进行评估。 评估提供了收集现有环境、环境要求、项目要求、约束、时间线和痛点的所有可用信息的机会。 此信息将构成后续评估和检查点活动的基础。 在计划、设计和开发项目解决方案期间需要对解决方案进行验证和比较时,这些信息证明其非常宝贵。 我们建议你投入大量时间来收集所有信息,并确保与相关组进行必要的讨论。 相关组可以包括现有解决方案和环境的项目利益干系人、业务用户、解决方案设计人员和主题专家(SME)。
评估将成为帮助你评估解决方案设计并制定明智的技术建议以实施Azure Synapse的指南。
工作负荷评估
工作负荷评估涉及环境、分析工作负荷角色、ETL/ELT、网络和安全性、Azure环境和数据消耗。
环境
对于环境,请评估以下几点。
- 描述现有的分析工作负荷:
- 工作负荷(如数据仓库或大数据)是什么?
- 此工作负载如何帮助业务? 什么是用例场景?
- 此分析平台和潜在迁移的业务驱动因素是什么?
- 收集有关现有体系结构、设计和实现选项的详细信息。
- 收集有关所有现有上游和下游依赖组件和使用者的详细信息。
- 迁移现有数据仓库(如 Microsoft SQL Server、Microsoft Analytics Platform System(APS)、Netezza、Snowflake 或 Teradata)?
- 您正在迁移大数据平台(如 Cloudera 或 Hortonworks)吗?
- 收集当前分析环境的体系结构和数据流关系图。
- 计划分析工作负荷的数据源位于何处(Azure、其他云提供商或本地)?
- 现有数据集(历史数据集和增量数据集)的总大小是多少? 数据集的当前增长率是多少? 未来 2-5 年数据集的预计增长率是多少?
- 是否有现有的数据湖? 收集有关文件类型(如 Parquet 或 CSV)、文件大小和安全配置的详细信息。
- 是否有半结构化或非结构化数据来处理和分析?
- 描述数据处理的性质(批处理或实时处理)。
- 是否需要从关系数据、Data Lake 或其他源进行交互式数据浏览?
- 您是否需要从操作数据源进行实时数据分析和探索?
- 当前环境中的痛点和限制是什么?
- 你目前使用的是哪些源代码管理和 DevOps 工具?
- 是否有用于构建混合(云和本地)分析解决方案、仅限云或多云的用例?
- 收集有关现有云环境的信息。 它是单云提供商还是多云提供商?
- 收集有关未来云环境的计划。 它是单云提供商还是多云提供商?
- 现有环境中的 RPO/RTO/HA/SLA 要求是什么?
- 计划环境中的 RPO/RTO/HA/SLA 要求是什么?
分析工作负载角色
对于分析工作负荷角色,请评估以下几点。
- 描述不同的角色(数据科学家、数据工程师、数据分析师和其他角色)。
- 描述这些角色的分析平台访问控制要求。
- 确定负责预配计算资源并授予访问权限的平台所有者。
- 描述不同数据角色当前如何协作。
- 是否有多个团队在同一分析平台上进行协作? 如果是这样,那么每个团队的访问控制和隔离要求是什么?
- 最终用户用来与分析平台交互的客户端工具是什么?
ETL/ELT、转换和编排
对于 ETL/ELT、转换和编排,请评估以下几点。
- 你目前使用哪些工具进行数据引入(ETL 或 ELT)?
- 这些工具存在于现有环境(本地或云)中的位置?
- 当前的数据加载和更新要求是什么(实时、微批、每小时、每日、每周或每月)?
- 介绍每个层的转换要求(大数据、数据湖、数据仓库)。
- 转换数据(无代码、低代码、编程(如 SQL、Python、Scala、C# 或其他)的当前编程方法是什么?
- 转换数据的首选计划编程方法是什么(无代码、低代码、编程(如 SQL、Python、Scala、C# 或其他)?
- 目前有哪些工具用于数据编排以自动化数据驱动过程?
- 现有 ETL 的数据源位于何处(Azure、其他云提供商或本地) ?
- 需要与分析平台集成的现有数据消耗工具(报告、BI 工具、开源工具)是什么?
- 需要与分析平台集成的计划内数据消耗工具(报告、BI 工具、开源工具)是什么?
网络和安全性
若要实现网络和安全性,请评估以下几点。
- 你对数据有哪些法规要求?
- 如果数据包含客户内容、支付卡行业(PCI)或 1996 年健康保险可移植性和责任法案(HIPAA)数据,则安全组是否已对此数据进行Azure认证? 如果是,那么是哪些 Azure 服务?
- 描述用户授权和身份验证要求。
- 在实现过程中,是否存在可能会限制对数据的访问的安全问题?
- 开发和测试期间是否有可用的测试数据?
- 介绍分析计算和存储(专用网络、公用网络或防火墙限制)的组织网络安全要求。
- 描述客户端工具访问分析计算和存储(对等网络、专用终结点或其他)的网络安全要求。
- 描述本地与Azure(Azure ExpressRoute、站点到站点或其他)之间的当前网络设置。
使用以下可能要求清单来指导评估。
- 数据保护:
- 传输中加密
- 静态加密(默认密钥或客户管理的密钥)
- 数据发现和分类
- 存取控制:
- 对象级安全性
- 行级安全性
- 列级别安全性
- 动态数据掩码
- 认证:
- SQL 登录名
- Microsoft Entra ID
- 多重身份验证 (MFA)
- 网络安全:
- 虚拟网络
- 防火墙
- Azure ExpressRoute
- 威胁防护:
- 威胁检测
- 审计
- 漏洞评估
有关详细信息,请参阅 Azure Synapse Analytics 安全白皮书。
Azure环境
对于Azure环境,请评估以下几点。
- 你当前是否正在使用Azure? 它是否用于生产工作负载?
- 如果使用Azure,则使用哪些服务? 你正在使用哪些区域?
- 是否使用Azure ExpressRoute? 其带宽是什么?
- 您是否获得了预算批准来预配所需的 Azure 服务?
- 你当前如何预配和管理资源(Azure 资源管理器(ARM)或 Terraform?
- 你的关键团队是否熟悉 Synapse Analytics? 是否需要任何训练?
数据消耗
对于数据消耗,请评估以下几点。
- 描述当前用于执行活动(如引入、浏览、准备和数据可视化)的工具和方式。
- 确定计划用于执行活动(例如引入、浏览、准备和数据可视化)的工具。
- 计划哪些应用程序与分析平台(Microsoft Power BI、Microsoft Excel、Microsoft SQL Server Reporting Services、Tableau 或其他平台)交互?
- 标识所有数据使用者。
- 确定数据导出和数据共享要求。
Azure Synapse服务评估
Azure Synapse服务评估涉及Azure Synapse内的服务。 Azure Synapse具有以下用于计算和数据移动的组件:
- Synapse SQL:用于支持数据仓库和数据虚拟化方案的Transact-SQL(T-SQL)的分布式查询系统。 它还扩展 T-SQL 以解决流式处理和机器学习(ML)方案。 Synapse SQL 同时提供了“无服务器”和“专用”资源模型。
- 无服务器 SQL 池: 分布式数据处理系统,专为大规模数据和计算函数构建。 没有需要设置的基础设施,也没有需要维护的集群。 此服务适用于计划外或突发工作负荷。 建议的方案包括直接对数据湖上的文件进行快速数据浏览、逻辑数据仓库和原始数据的数据转换。
- 专用 SQL 池: 表示使用 Synapse SQL 时预配的分析资源的集合。 专用 SQL 池(之前称为 SQL DW)的大小由数据仓库单位 (DWU) 决定。 此服务适用于在 SQL 表中存储的数据上具有可预测的高性能连续工作负荷的数据仓库。
- Apache Spark 池:深入无缝集成 Apache Spark,这是用于数据准备、数据工程、ETL 和 ML 的最常用开放源代码大数据引擎。
- 数据集成管道: Azure Synapse 包含与 Azure 数据工厂(ADF)相同的数据集成引擎和体验。 它们允许创建丰富的大规模 ETL 管道,而无需离开Azure Synapse。
为了帮助确定最佳 SQL 池类型(专用或无服务器),请评估以下几点。
- 是否要通过保留 SQL 表中存储的数据的处理能力来构建传统的关系数据仓库?
- 用例是否要求可预测的性能?
- 是否要在数据湖之上生成逻辑数据仓库?
- 是否要直接从数据湖查询数据?
- 是否要浏览数据湖中的数据?
下表比较了两种 Synapse SQL 池类型。
| 比较 | 专用 SQL 池 | 无服务器 SQL 池 |
|---|---|---|
| 价值主张 | 数据仓库的完全托管功能。 连续工作负载的可预测高性能。 针对托管(加载)数据进行优化。 | 易于开始使用和探索数据湖数据。 适用于临时和间歇性工作负载的更好的总拥有成本 (TCO)。 针对在数据湖中查询数据进行优化。 |
| 工作量 | 非常适合连续工作负载。 加载可提高性能,且复杂性更高。 按 DWU 收费(如果大小良好)会具有成本效益。 | 非常适合临时或间歇性工作负荷。 无需加载数据,因此可以更轻松地启动和运行数据。 按使用量收费将具有成本效益。 |
| 查询性能 | 提供高并发性和低延迟。 支持丰富的缓存选项,包括具体化视图。 能够通过工作负载管理 (WLM) 选择权衡。 | 不适合仪表板查询。 不期望获得毫秒响应时间。 它仅适用于外部数据。 |
专用 SQL 池评估
对于专用 SQL 池评估,请评估以下平台要点。
- 当前数据仓库平台(Microsoft SQL Server、Netezza、Teradata、Greenplum 或其他)是什么?
- 对于迁移工作负载,为每个环境确定设备的品牌和型号。 包括 CPU、GPU 和内存的详细信息。
- 对于设备迁移,何时购买了硬件? 设备是否已完全折旧? 如果不是,折旧何时结束? 还有多少资本支出?
- 是否有硬件和网络体系结构关系图?
- 计划数据仓库的数据源位于何处(Azure、其他云提供商或本地) ?
- 数据仓库(Microsoft SQL Server、Azure SQL 数据库、DB2、Oracle、Azure Blob 存储、AWS、Hadoop 或其他)的数据源的数据托管平台是什么?
- 是否有任何数据源数据仓库? 如果是,有哪些付款方式?
- 确定所有 ETL、ELT 和数据加载方案(批处理窗口、流式处理、近实时)。 确定每个方案的现有服务级别协议(SLA),并记录新环境中的预期 SLA。
- 当前数据仓库大小是多少?
- 专用 SQL 池的数据集目标增长率是多少?
- 介绍当前使用的环境(开发、测试或生产)。
- 目前哪些工具可用于数据移动(ADF、Microsoft SQL Server Integration Services(SSIS)、robocopy、Informatica、SFTP 或其他工具?
- 你打算加载实时数据还是准实时数据?
评估以下数据库点。
- 每个数据仓库(架构、表、视图、存储过程、函数)中的对象数是多少?
- 它是星型架构、雪花架构还是其他设计?
- 在大小和记录数方面,最大的表是什么?
- 列数最宽的表是什么?
- 是否已为数据仓库设计了数据模型? 是 Kimball、Inmon 还是星型架构设计?
- 是否在使用缓慢变化的维度 (SCD)? 如果是,则为哪种类型?
- 是使用关系数据市场或 Analysis Services(表格或多维)还是其他产品实现语义层?
- HA/RPO/RTO/数据存档要求是什么?
- 区域复制要求是什么?
评估以下工作负荷特征。
- 在高峰时段访问数据仓库的并发用户或作业的估计数量是多少?
- 在 非高峰时段访问数据仓库的并发用户或作业估计数量是多少?
- 是否存在没有任何用户或作业的时间段?
- 交互式查询的查询执行性能预期是什么?
- 每日/每周/每月数据加载或更新的数据加载性能预期是多少?
- 报告和分析查询的查询执行期望是什么?
- 最常执行的查询有多复杂?
- 你的活动数据集占总数据集大小的百分比是多少?
- 大约预计加载或更新、批处理或报告、交互式查询和分析处理预期工作负荷的百分比是多少?
- 识别数据消费模式和平台。
- 当前和计划的报告方法和工具。
- 哪些应用程序或分析工具将访问数据仓库?
- 并发查询数?
- 任何时间点的平均活动查询数?
- 数据访问的性质(交互式、即席、导出或其他内容)是什么?
- 数据角色及其数据要求的完整说明。
- 最大并发连接数。
- 以下对象的查询性能 SLA 模式:
- 仪表板用户。
- 批量报告。
- ML 用户。
- ETL 进程。
- 现有环境和新环境(行级别安全性、列级安全性、访问控制、加密和其他环境)的安全要求是什么?
- 是否要求将 ML 模型评分与 T-SQL 集成?
无服务器 SQL 池评估
Synapse 无服务器 SQL 池支持三个主要用例。
- 基本发现和探索: 快速根据数据湖中的各种格式(Parquet、CSV、JSON)对数据进行推理,以便规划如何从中提取见解。
- 逻辑数据仓库: 在原始或异构数据的基础上提供关系抽象,而无需重新定位和转换数据,从而允许数据的实时视图。
- Data transformation: 使用 T-SQL 转换湖中的数据的简单、可缩放和高性能的方式,以便可以馈送到 BI 和其他工具或加载到关系数据存储(Synapse SQL 数据库、Azure SQL 数据库或其他)。
不同的数据角色可以从无服务器 SQL 池中受益:
- 数据工程师 可以使用此服务浏览数据湖、转换和准备数据,并简化其数据转换管道。
- 由于 OPENROWSET 和自动架构推理等功能,数据科学家可以快速推理数据湖中数据的内容和结构。
- 数据分析师 可以使用熟悉的 T-SQL 语句或其最喜欢的查询工具浏览数据科学家或数据工程师创建 的数据和 Spark 外部表 。
- BI 专业人员可以快速基于 data lake 中的数据创建Power BI报表和 Spark 表。
注释
T-SQL 语言在专用 SQL 池和无服务器 SQL 池中使用,但支持的一组功能存在一些差异。 有关 Synapse SQL(专用和无服务器)中支持的 T-SQL 功能的详细信息,请参阅 Azure Synapse SQL 中支持的 Transact-SQL 功能。
对于无服务器 SQL 池评估,请评估以下几点。
- 是否有使用关系查询(T-SQL)来发现和浏览数据湖中的数据的用例?
- 是否有用例在数据湖之上构建逻辑数据仓库?
- 识别是否存在在不从数据湖中迁移数据的情况下直接转换数据的用例。
- 数据是否已在 Azure Data Lake Storage(ADLS)或Azure Blob 存储中?
- 如果数据已在 ADLS 中,那么数据湖中是否具有良好的分区策略?
- Azure Cosmos DB中是否有操作数据? 是否有对Azure Cosmos DB进行实时分析的用例,而不会影响事务?
- 标识 Data Lake 中的文件类型。
- 确定查询性能 SLA。 用例是否要求可预测的性能和成本?
- 您是否有未计划或突发的 SQL 分析负载?
- 确定数据使用模式和平台:
- 当前和计划的报告方法和工具。
- 哪些应用程序或分析工具将访问无服务器 SQL 池?
- 在任何时间点的平均活动查询数。
- 数据访问的性质(交互式、即席、导出或其他内容)是什么?
- 数据角色及其数据要求的完整说明。
- 最大并发连接数。
- 查询复杂性?
- 什么是安全要求(访问控制、加密和其他要求) ?
- 所需的 T-SQL 功能(存储过程或函数)是什么?
- 确定将发送到无服务器 SQL 池的查询数以及每个查询的结果集大小。
小窍门
如果您是无服务器 SQL 池的新用户,我们建议您通过 使用 Azure Synapse 无服务器 SQL 池构建数据分析解决方案 的学习路径进行学习。
Spark 池评估
Azure Synapse 中的 Spark 池支持以下关键场景。
- 数据工程/数据准备: Apache Spark 包含许多语言功能,用于支持准备和处理大量数据。 准备和处理可以使数据更具价值,并允许其他Azure Synapse服务使用它。 它通过多种语言(C#、Scala、PySpark、Spark SQL)启用,并使用提供的库进行处理和连接。
- 机器学习: Apache Spark 附带 MLlib,它是基于 Spark 构建的 ML 库,可从 Spark 池使用。 Spark 池还包括 Anaconda,这是一种Python分发,其中包含各种数据科学包,包括 ML。 此外,Synapse 上的 Apache Spark 为 Microsoft 机器学习 提供了预安装的库,这是容错、弹性和 RESTful ML 框架。 与对笔记本的内置支持相结合时,有一个丰富的环境来创建 ML 应用程序。
注释
有关详细信息,请参阅 Azure Synapse Analytics 中的 Apache Spark。
此外,Azure Synapse与 Linux Foundation Delta Lake 兼容。 Delta Lake 是开源存储层,可将 ACID(原子性、一致性、隔离性和持续性)事务引入 Apache Spark 和大数据工作负载。 有关详细信息,请参阅 什么是 Delta Lake。
对于 Spark 池评估,请评估以下要点。
- 确定需要数据工程或数据准备的工作负荷。
- 明确定义转换的类型。
- 确定是否具有要处理的非结构化数据。
- 从现有 Spark/Hadoop 工作负载迁移时:
- 什么是现有的大数据平台(Cloudera、Hortonworks、云服务或其他) ?
- 是否为从本地迁移,硬件是否已折旧或许可证是否已过期? 如果没有,何时会发生折旧或到期?
- 什么是现有群集类型?
- 所需的库和 Spark 版本是什么?
- 是否是 Hadoop 迁移到 Spark?
- 什么是当前或首选编程语言?
- 工作负荷类型(大数据、ML 或其他)是什么?
- 现有和计划中的客户端工具和报告平台是什么?
- 什么是安全要求?
- 是否有当前的难题和限制?
- 是否计划使用或当前正在使用 Delta Lake?
- 你今天是怎么管理包裹的?
- 确定所需的计算群集类型。
- 确定是否需要群集自定义。
小窍门
如果您是 Spark 池的新手,建议您完成使用 Azure Synapse Apache Spark 池执行数据工程的学习路径。
后续步骤
在下一篇文章,属于Azure Synapse 成功设计系列,了解如何评估 Synapse 工作区设计,并验证其是否符合指导原则和要求。