Azure Synapse Analytics 已知问题
此页列出了 Azure Synapse Analytics 中的已知问题,以及它们的解决日期或可能的解决方法。 在提交 Azure 支持请求之前,请查看此列表,看看你遇到的问题是否是已知问题,以及是否正在得到解决。
若要了解有关 Azure Synapse Analytics 的详细信息,请参阅 Azure Synapse Analytics 概述和 Azure Synapse Analytics 中的新增功能
活动已知问题
Azure Synapse 组件 | 状态 | 问题 |
---|---|---|
Azure Synapse 专用 SQL 池 | 客户无法使用指标监视其专用 SQL 池的使用情况 | 有解决方法 |
Azure Synapse 专用 SQL 池 | 使用 AUTO_CREATE_TABLE='ON' 将 parquet 文件引入到表中时查询失败 | 有解决方法 |
Azure Synapse 专用 SQL 池 | 查询失败并出现数据外泄错误 | 有解决方法 |
Azure Synapse 专用 SQL 池 | UPDATE STATISTICS 语句失败,并出现错误:“提供的统计信息流已损坏。” | 有解决方法 |
Azure Synapse 无服务器 SQL 池 | 从无服务器 SQL 池到 Azure Cosmos DB 分析存储的查询失败 | 有解决方法 |
Azure Synapse 无服务器 SQL 池 | Azure Cosmos DB 分析存储视图在列中传播错误的属性 | 有解决方法 |
Azure Synapse 无服务器 SQL 池 | 无服务器 SQL 池中的查询失败 | 有解决方法 |
Azure Synapse 无服务器 SQL 池 | 由于授权标头太长导致的存储访问问题 | 有解决方法 |
Azure Synapse 无服务器 SQL 池 | 查询视图显示意外结果 | 有解决方法 |
Azure Synapse 工作区 | 未列出具有用户分配的托管标识 (UAMI) 的 Blob 存储链接服务 | 有解决方法 |
Azure Synapse 工作区 | 无法删除 Synapse 工作区且无法删除虚拟网络 | 有解决方法 |
Azure Synapse 工作区 | 用于更新网络设置的 REST API PUT 操作或 ARM/Bicep 模板失败 | 有解决方法 |
Azure Synapse 工作区 | 标记值中包含方括号 [] 的已知问题 | 有解决方法 |
Azure Synapse 工作区 | 没有专用于 Microsoft.Synapse/workspaces/trustedServiceBypassEnabled 设置 的 GET API 操作 |
有解决方法 |
Azure Synapse Analytics 专用 SQL 池活动已知问题摘要
客户无法使用指标监视其专用 SQL 池的使用情况
为了提高遥测数据的性能和可靠性,我们对遥测发射逻辑进行了一次内部升级,但却引发了一个意想不到的问题,影响了一些客户监视专用 SQL 池、tempdb
和数据仓库数据 IO 指标的能力。
解决方法:在确定问题后,我们的团队已采取措施确定根本原因并更新系统中的配置。 客户可以通过暂停并恢复实例来解决此问题,这会还原实例的正常状态和遥测数据流。
使用 AUTO_CREATE_TABLE='ON' 将 parquet 文件引入到表中时查询失败
尝试使用 AUTO_CREATE_TABLE='ON'
将 parquet 文件引入到哈希分布式表中的客户可能会收到以下错误:
COPY statement using Parquet and auto create table enabled currently cannot load into hash-distributed tables
不支持使用 AUTO_CREATE_TABLE 将文件引入到自动创建的哈希分布式表中。 之前使用这个不受支持的方案进行加载的客户应将其数据 CTAS 到新表中,并使用新表代替旧表。
查询失败并出现数据外泄错误
在 Synapse 分析中关闭数据外泄保护时,从现有专用 SQL 池创建的 Synapse 工作区报告与数据外泄保护相关的查询失败,并显示一般错误消息:
Data exfiltration to '{****}' is blocked. Add destination to allowed list for data exfiltration and try again.
解决方法:如果遇到类似错误,请联系 Azure 支持团队寻求帮助。
UPDATE STATISTICS 失败
执行 UPDATE STATISTICS
语句时,一些专用 SQL 池可能会遇到异常。 该命令会生成消息“提供的统计信息流已损坏”,并且无法更新统计信息。
向表添加新约束时,将会在分布中创建相关统计信息。 如果表上还创建了聚集索引,则它必须包含与约束相同的列(顺序相同),否则对这些列执行 UPDATE STATISTICS
命令可能会失败。
解决方法:确定表上是否存在约束和聚集索引。 如果是,则删除约束和聚集索引。 之后,请重新创建聚集索引,然后重新创建约束,确保两者按相同顺序包含相同的列。如果表没有约束和聚集索引,或者上述步骤导致相同的错误,请联系 Azure 支持团队以获取帮助。
标记更新似乎失败
通过 Azure 门户或其他方法更改专用 SQL 池的标记时,即使更改成功,也可能会收到错误消息。
解决方法:可以确认对标记的更改是否已成功,并根据需要忽略/禁止显示错误消息。
Azure Synapse 工作区活动已知问题摘要
下面是 Synapse 工作区的已知问题。
未列出具有用户分配的托管标识 (UAMI) 的 Blob 存储链接服务
将 Blob 存储链接服务配置为在 Azure Synapse Analytics 中使用“用户分配的托管标识”身份验证后,“数据中心”->“链接”->“Azure Blob 存储”下可能不会显示链接服务。
解决方法:工程团队目前已意识到此行为,正在着手修复。 替代方法是使用“系统分配的托管标识”身份验证方法而不使用“用户分配的托管标识”。
无法删除 Synapse 工作区且无法删除虚拟网络
删除 Synapse 工作区失败并显示错误消息:
Failed to delete Synapse workspace '[Workspace Name]'. Unable to delete virtual network. The correlationId is ********-****-****-****-************;
解决方法:可以通过重试删除操作来缓解此问题。 工程团队已意识到此行为,正在着手修复。
用于更新网络设置的 REST API PUT 操作或 ARM/Bicep 模板失败
使用 ARM 模板、Bicep 模板或直接 REST API PUT 操作更改 Synapse 工作区的公用网络访问设置和/或防火墙规则时,操作可能会失败。
解决方法:通过使用 REST API PATCH 操作或 Azure 门户 UI 来撤销所需的配置更改并重试这些更改,可以缓解该问题。 工程团队已意识到此行为,正在着手修复。
标记值中包含方括号 [] 的已知问题
在更新 Azure Synapse 工作区中的标记值的上下文中,包含方括号 ([]
) 将导致更新操作失败。
解决方法:当前的解决方法是避免在 Azure Synapse 工作区标记值中使用方括号 ([]
)。
没有专用于“Microsoft.Synapse/workspaces/trustedServiceBypassEnabled”设置的“GET”API 操作
问题摘要:在 Azure Synapse Analytics 中,没有专用的“GET”API 操作可用于检索“Microsoft.Synapse/workspaces/trustedServiceBypassEnabled”资源范围的“trustedServiceBypassEnabled”设置状态。 虽然用户可以设置此配置,但他们无法通过此特定资源范围直接检索其状态。
影响:此限制会影响 Azure Policy 定义,因为它们无法强制实施“trustedServiceBypassEnabled”设置的特定状态。 客户无法使用 Azure Policy 来拒绝或管理此配置。
解决方法:Azure Policy 中没有可用的解决方法可以强制实施此属性的所需配置状态。 但是,用户可以使用“GET”工作区操作来审核配置状态以用于报告目的。
此“GET”工作区操作映射到“Microsoft.Synapse/workspaces/trustedServiceBypassEnabled”Azure Policy 别名。
如果操作是针对 Microsoft.Synapse/workspace 资源的 PUT 请求,则 Azure Policy 别名可用于通过拒绝 Azure Policy 效果来管理此属性,但如果 PUT 请求直接发送到 Microsoft.Synapse/workspaces/trustedServiceByPassConfiguration 子资源,则它只能用于审核目的。 父资源具有一个属性 [properties.trustedServiceBypassEnabled],用于映射子资源中的配置,这就是为什么仍可以通过父资源的 Azure Policy 别名对其进行审核。
由于 Microsoft.Synapse/workspaces/trustedServiceByPassConfiguration 子资源没有可用的 GET 操作,Azure Policy 无法管理这些请求,并且 Azure Policy 无法为其生成 Azure Policy 别名。
父资源:Microsoft.Synapse/workspaces
子资源:Microsoft.Synapse/workspaces/trustedServiceByPassConfiguration
Azure 门户直接向子资源的 PUT API 发出 PUT 请求,因此 Azure 门户以及在父 Microsoft.Synapse/workspaces API 之外发出的任何其他 API 请求都无法由 Azure Policy 通过拒绝或其他可操作的 Azure Policy 效果进行管理。
Azure Synapse Analytics 无服务器 SQL 池活动已知问题摘要
从无服务器 SQL 池到 Azure Cosmos DB 分析存储的查询失败
从无服务器 SQL 池到 Azure Cosmos DB 分析存储的查询可能会失败,并显示以下错误消息之一:
Resolving CosmosDB path has failed with error 'This request is not authorized to perform this operation'
Resolving CosmosDB path has failed with error 'Key not found'
若要确认此问题,必须满足以下条件:
- 与 Azure Cosmos DB 分析存储的连接使用专用终结点。
- 重试查询成功。
解决方法:工程团队已意识到此行为,可能采取以下措施作为快速缓解措施:
- 重试失败的查询。 它会自动刷新过期的令牌。
- 禁用专用终结点。 在应用此更改之前,请与安全团队确认它符合公司安全策略。
Azure Cosmos DB 分析存储视图在列中传播错误的属性
在通过 Cosmos DB 分析存储使用 Azure Synapse 无服务器池中的视图时,如果 Cosmos DB 分析存储中的文件发生更改,更改不会正确传播到客户正在视图上使用的 SELECT 语句。 因此,属性会错误地映射到结果中的另一列。
解决方法:工程团队已意识到此行为,可能采取以下措施作为快速缓解措施:
- 请通过重命名列来重新创建视图。
- 如果可能,请避免使用视图。
如果已使用凭据,那么更改数据库范围的凭据的操作会失败
有时,你可能无法执行 ALTER DATABASE SCOPED CREDENTIAL
查询。 此问题的根本原因是凭据在首次使用后缓存,导致其无法更改。 返回的错误为:
Failed to modify the identity field of the credential '{credential_name}' because the credential is used by an active database file.
解决方法:工程团队目前已知道此行为并正在修复。 解决方法是通过 DROP 和 CREATE 删除和创建凭据,这也意味着使用凭据重新创建外部表。 或者,可联系 Azure 支持团队寻求帮助。
无服务器 SQL 池中的查询失败
令牌过期可能会导致查询执行期间出现错误,尽管用户对存储具有必要的权限。 这些错误消息也可能由于常见的用户错误而发生,例如,未将基于角色的访问控制 (RBAC) 角色分配给存储帐户时。
错误消息示例:
WaitIOCompletion call failed. HRESULT = 0x80070005'. File/External table name: {path}
Unable to resolve path '%' Error number 13807, Level 16, State 1, Message "Content of directory on path '%' cannot be listed.
Error 16561: External table '<table_name>' is not accessible because content of directory cannot be listed.
Error 13822: File {path} cannot be opened because it does not exist or it is used by another process.
Error 16536: Cannot bulk load because the file "%ls" could not be opened.
解决方法:
解决方法因身份验证(Microsoft Entra(以前称为 Azure Active Directory)或托管服务标识 (MSI))而异:
对于 Microsoft Entra 令牌过期:
对于长时间运行的查询,请切换到服务主体、托管标识或共享访问签名 (SAS),而不是使用用户标识。 请参阅在 Azure Synapse Analytics 中控制无服务器 SQL 池对存储帐户的访问。
重启客户端 (SSMS/ADS) 来获取新令牌以建立连接。
对于 MSI 令牌过期:
- 停用池,然后将其激活以清除令牌缓存。 请与 Azure 支持团队联系以获取帮助。
由于授权标头太长导致的存储访问问题
无服务器 SQL 池中的错误消息示例:
File {path} cannot be opened because it does not exist or it is used by another process.
Content of directory on path {path} cannot be listed.
WaitIOCompletion call failed. HRESULT = {code}'. File/External table name: {path}
运行查询时,会出现这些一般存储访问错误。 该问题可能发生在一个工作区中的用户身上,但在其他工作区中工作正常。 此行为应该是由令牌大小导致的。
通过在 PowerShell 中运行以下命令来检查 Microsoft Entra 令牌长度。 如果令牌长度接近 11000 或更长,请参阅“缓解”部分。
(Get-AzAccessToken -ResourceUrl https://database.chinacloudapi.cn).Token.Length
解决方法:
建议的解决方法有:
- 如存储访问控制中所述切换到托管标识存储授权。
- 减少安全组的数目(安全组数目为 90 个或更少会使生成的令牌具有兼容的长度)。
- 将安全组的数目增加到 200 以上(因为这会更改令牌的构造方式,它将包含 MS Graph API URI 而非完整的组列表)。 可以通过遵循托管组添加虚拟/模拟组来实现此目的,然后,你需要将用户添加到新创建的组。
查询视图显示意外结果
当你查询在创建视图后基础架构已更改的视图时,可能会遇到意外结果。 这意味着该视图引用了已修改或不再存在的列或对象。 为了解决此问题,需要手动调整视图定义,以便与基础架构更改保持一致。
解决方法:手动调整视图定义。
最近关闭的已知问题
Synapse 组件 | 问题 | 状态 | 解决日期 |
---|---|---|---|
Azure Synapse 无服务器 SQL 池 | 使用 Microsoft Entra 身份验证的查询在 1 小时后失败 | 已解决 | 2023 年 8 月 |
Azure Synapse 无服务器 SQL 池 | 使用 OPENROWSET 读取 Cosmos DB 数据时查询失败 | 已解决 | 2023 年 3 月 |
Azure Synapse Apache Spark 池 | 在管道中使用笔记本时,无法使用 Azure Synapse 专用 SQL 池连接器从 Apache Spark 写入 SQL 专用池 | 已解决 | 2023 年 6 月 |
Azure Synapse Apache Spark 池 | 由于存储帐户限制,某些 spark 作业或任务过早失败,错误代码 503 | 已解决 | 2023 年 11 月 |
Azure Synapse Apache Spark 池 | 在 Spark 3.4 运行时中使用 Synapse 专用 SQL 池连接器时包含 LIKE 子句的查询失败 | 已解决 | 2024 年 10 月 |
Azure Synapse Analytics 无服务器 SQL 池最近解决的已知问题摘要
使用 Microsoft Entra 身份验证的查询在 1 小时后失败
使用 Microsoft Entra 身份验证的 SQL 连接在保持活动状态超过 1 小时后将开始失败。 这包括使用 Microsoft Entra 直通身份验证以及与 Microsoft Entra ID 交互的语句(例如 CREATE EXTERNAL PROVIDER)的查询存储。 这会影响使连接保持活动状态的每个工具,例如 SSMS 和 ADS 中的查询编辑器。 打开新连接以执行查询的工具不受影响,如 Synapse Studio。
状态:已解决
使用 OPENROWSET 读取 Azure Cosmos DB 数据时查询失败
使用 OPENROWSET 进行的从无服务器 SQL 池到 Cosmos DB 分析存储的查询失败,并显示以下错误消息:
Resolving CosmosDB path has failed with error 'bad allocation'.
状态:已解决
Azure Synapse Analytics Apache Spark 池最近解决的已知问题摘要
在管道中使用笔记本时,无法使用 Azure Synapse 专用 SQL 池连接器从 Apache Spark 写入 SQL 专用池
当使用用于 Apache Spark 的 Azure Synapse 专用 SQL 池连接器在管道中使用笔记本编写 Azure Synapse 专用池时,会看到错误消息:
com.microsoft.spark.sqlanalytics.SQLAnalyticsConnectorException: COPY statement input file schema discovery failed: Cannot bulk load. The file does not exist or you don't have file access rights.
状态:已解决
由于存储帐户限制,某些 spark 作业或任务过早失败,错误代码 503
在 2023 年 10 月 3 日至 2023 年 11 月 16 日期间,有些 Azure Synapse Analytics Apache Spark 池因超出存储 API 限制阈值而出现 Spark 作业/任务失败,这种情况本应该很少发生。
状态:已解决
在 Spark 3.4 运行时中使用 Synapse 专用 SQL 池连接器时包含 LIKE 子句的查询失败
开源 Apache Spark 3.4 中引入了一个问题,它对特殊字符进行转义,但 Synapse SQL 不支持 escape 关键字。 当客户使用适用于 Apache Spark 的 Azure Synapse 专用 SQL 池连接器时,它可能会生成对 Synapse SQL 无效的 SQL 查询,并且 Synapse Spark 笔记本或批处理作业将引发类似于以下内容的错误:
com.microsoft.spark.sqlanalytics.SQLAnalyticsConnectorException: com.microsoft.sqlserver.jdbc.SQLServerException: Parse error at line: 1, column: XXX: Incorrect syntax near ''%test%''
状态:已解决