本指南解答有关 Azure Synapse Analytics 的最常见问题。
常规
如何使用 RBAC 角色来保护我的工作区?
Azure Synapse 引入了很多角色及用于分配角色的范围,可以简化保护工作区这一任务。
Synapse RBAC 角色:
- Synapse 管理员
- Synapse SQL 管理员
- Synapse Spark 管理员
- Synapse 参与者
- Synapse 项目发布者
- Synapse 项目用户
- Synapse 计算操作员
- Synapse 凭据用户
- Synapse 链接数据管理员
- Synapse 用户
若要保护 Synapse 工作区,请将 RBAC 角色分配给这些 RBAC 范围:
- 工作区
- Spark 池
- 集成运行时
- 链接服务
- 凭据
此外,对于专用 SQL 池,你可以使用你熟悉和喜爱的所有安全功能。
如何控制专用 SQL 池、无服务器 SQL 池和无服务器 Spark 池?
可从将 Azure Synapse 与 Azure 订阅级别提供的内置成本分析和成本警报结合开始使用。
专用 SQL 池 - 可以直接查看成本并控制成本,因为将由你创建专用 SQL 池并指定其大小。 可以通过 Azure RBAC 角色进一步控制哪些用户可以创建或缩放专用 SQL 池。
无服务器 SQL 池 - 具有监视和成本管理控件,可通过它们在每天、每周和每月级别限制支出。 有关详细信息,请参阅无服务器 SQL 池的成本管理。
无服务器 Spark 池 - 可以通过 Synapse RBAC 角色限制谁能创建 Spark 池。
正式发布时,Synapse 工作区是否会支持对象和粒度的文件夹组织?
Synapse 工作区支持用户定义的文件夹。
能否将多个 Power BI 工作区链接到单个 Azure Synapse 工作区?
是,从 2021 年 6 月 10 日起,Synapse Studio 现在允许你将多个 Power BI 工作区添加到单个 Azure Synapse 工作区。
Azure Synapse Link for Azure Cosmos DB 是否已正式发布?
Azure Synapse Analytics 当前支持从 Azure Cosmos DB 到 Synapse Apache Spark 和无服务器 SQL 池的 Azure Synapse Link。 适用于 Apache Spark 的 Azure Synapse Link 已正式发布。 针对无服务器 SQL 池的 Synapse Link 提供预览版。 有关详细信息,请参阅 Azure Synapse Link for Azure Cosmos DB。
Azure Synapse Link for SQL 是否已正式发布?
对于 SQL Server 2022 和 Azure SQL 数据库,Azure Synapse Link for SQL 已正式发布。 有关详细信息,请参阅什么是 Azure Synapse Link for SQL?。
Azure Synapse 工作区是否支持 CI/CD?
可以! 所有管道工件、笔记本、SQL 脚本和 Spark 作业定义都将驻留在 Git 中。 所有池定义都将作为 Azure 资源管理器 (ARM) 模板存储在 Git 中。 专用 SQL 池对象(架构、表、视图等)将通过具有 CI/CD 支持的数据库项目进行管理。 有关详细信息,请查看此 CI 和 CD 指南。
专用 SQL 池和无服务器池之间有什么功能差异?
两种类型的池的功能和要求有所不同。 这些差异包括数据库对象、查询语言功能、安全性、工具、数据访问和数据格式。 有关 SQL 池和无服务器池的详细比较,请访问池比较。 有关使用任一类型的池时的最佳做法,请查看专用 SQL 池的最佳做法和无服务器 SQL 池的最佳做法。
什么是 ARM 表?为什么应该使用 ARM 表?
Lakehouse 以开放的直接访问数据格式为基础,如 Apache Parquet。 它为机器学习和数据科学提供出色支持。 Delta 表是 Delta Lake 中包含的数据视图,它支持 Apache Spark DataFrame 读取和写入 API 提供的大多数选项。 Lakehouses 可以帮助解决数据仓库的主要问题,例如数据过时、可靠性、总拥有成本和数据锁定问题。 在 Delta 表中,可以使用自动压缩和自适应查询计划等优化。 有关 Delta Lake 的详细指南,请访问 Delta Lake 指南。
什么是自动压缩?
自动压缩是自动优化 Delta 表的两个补充功能之一。 写入表成功后,自动压缩可以进一步针对小文件数量最多的分区压缩文件。 对于流式处理用例(可接受添加以分钟计的延迟)以及表上没有常规 OPTIMIZE 调用的情况,建议选择使用自动压缩。 有关自动优化和自动压缩的详细信息,请查看此自动优化指南。
管道
如何确保我了解使用了哪些凭据来运行管道?
使用在链接服务中指定的凭据来执行 Synapse 管道中的每个活动。
Synapse 集成是否支持 SSIS IR?
目前没有。
Azure 数据工厂管道和 Azure Synapse 管道有什么不同?
一些差异示例支持全局参数、监视用于数据流的 Spark 作业和 Integration Runtime 共享。 有关详细信息,请查看此文档,了解数据集成 - Synapse 与 ADF。
如何将现有管道从 Azure 数据工厂迁移到 Azure Synapse 工作区?
此时,必须通过从原始管道导出 JSON 并将其导入 Synapse 工作区来手动重新创建 Azure 数据工厂管道和相关项目。
如何使用 Apache Spark 作业定义?
请查看这个快速入门指南。
是否可以从 ADF 管道调用笔记本?
此用例有两个选项。 一个选项是将管道保留在 ADF 中,必须包装在 Web 活动中。 有关此选项的详细信息,请查看此 Web 活动指南。 另一个选项是将管道迁移到 Synapse。 有关第二个选项的详细信息,请查看此迁移代码示例。
Apache Spark
Apache Spark for Synapse 和 Apache Spark 之间有什么区别?
Apache Spark for Synapse 就是 Apache Spark,只是增加了对与(Microsoft Entra ID、AzureML 等)其他服务集成的支持,还有更多的库(mssparktuils、Hummingbird)和预优化的性能配置。
目前在 Apache Spark 上运行的任何工作负载都可按原样在 Apache Spark for Azure Synapse 上运行。
Spark 有哪些版本可用?
自 2023 年 9 起,Azure Synapse Apache Spark 完全支持 Spark 3.3。 有关核心组件和当前支持的版本的完整列表,请参阅 Apache Spark 版本支持。
Azure Synapse Spark 中是否有 DButils 的等效内容?
是的,Azure Synapse Apache Spark 提供 mssparkutils 库。 有关该实用工具的完整文档,请参阅 Microsoft Spark 实用工具简介。
如何在 Apache Spark 中设置会话参数?
若要设置会话参数,请使用 %%configure magic available。 要使参数生效,需要重启会话。
如何在无服务器 Spark 池中设置群集级别参数?
若要设置群集级别参数,可以为 Spark 池提供 spark.conf 文件。 然后,此池将采用配置文件中传递的参数。
能否在 Azure Synapse Analytics 中运行多用户 Spark 群集?
Azure Synapse 为特定用例提供专门构建的引擎。 Apache Spark for Synapse 是作为作业服务(而不是群集模型)设计。 有两种情况需要多用户群集模型。
场景 1:许多用户出于 BI 目的访问用于提供数据的群集。
完成此任务的最简单方法是,使用 Spark 调整数据,然后利用 Synapse SQL 提供的服务功能,将 Power BI 连接到这些数据集。
场景 2:让多个开发人员共用一个群集以节约资金。
为满足此场景,应为每个开发人员提供一个无服务器 Spark 池,并将其设置为使用少量 Spark 资源。 由于无服务器 Spark 池在被频繁使用之前不会产生任何费用,因此有多个开发人员时可以将成本降到最低。 池共享元数据(Spark 表),因此这些开发人员可以轻松合作。
如何包括、管理和安装库?
可以通过 requirements.txt 文件在从 synapse 工作区或 Azure 门户创建 Spark 池时安装外部包。 请参阅在 Azure Synapse Analytics 中管理 Apache Spark 库。
我可以使用 Synapse Spark 上的哪些工具?
Synapse Spark 上的 MSSparkUtils 提供了各种实用工具,用于增强体验以及简化与其他工具和服务的集成。 使用文件系统、获取环境变量、将笔记本链接在一起,并使用极少的手动步骤处理机密。 有关完整文档,请访问 Microsoft Spark 实用工具。
专用 SQL 池
专用 SQL 池 (SQL DW) 与 Azure Synapse 工作区中的专用 SQL 池有何区别?
专用 SQL 池(以前称为“SQL DW”)是 Azure 平台即服务 (PaaS) 企业数据仓库平台。 可以查询现有的专用 SQL 池(以前称为“SQL DW”),也可以在 Azure Synapse 工作区中创建新的专用 SQL 池。 并非 Azure Synapse 工作区中专用 SQL 池的所有功能都适用于独立的专用 SQL 池(以前称为 SQL DW),反之亦然。 有关详细信息,请参阅 Azure Synapse 专用 SQL 池(以前称为“SQL DW”)与 Azure Synapse Analytics 工作区中的专用 SQL 池之间有何区别?。 若要对现有的专用 SQL 池(之前称为 SQL DW)启用 Azure Synapse 工作区功能,请参阅如何为专用 SQL 池(之前称为 SQL DW)启用工作区。
专用 SQL 池和无服务器池之间有什么功能差异?
可以在 Synapse SQL 中的 T-SQL 功能差异中找到差异的完整列表。
既然 Azure Synapse 已正式发布,如何将以前独立的专用 SQL 池迁移到 Azure Synapse?
不需要进行“移动”或“迁移”。 你可以选择在现有池上启用新的工作区功能。 如果这样做,不会有中断性变更,但是你将可以使用 Synapse Studio、Spark 和无服务器 SQL 池等新功能。 并非 Azure Synapse 工作区中专用 SQL 池的所有功能都适用于专用 SQL 池(之前称为 SQL DW),反之亦然。 若要对现有的专用 SQL 池(之前称为 SQL DW)启用工作区功能,请参阅如何为专用 SQL 池(之前称为 SQL DW)启用工作区。
专用 SQL 池现在的默认部署是什么?
默认情况下,所有新的专用 SQL 池都将部署到工作区;但是如果有需要,仍然可以使用独立的外形规格创建专用 SQL 池(以前称为 SQL DW)。