本文列出了 Microsoft Fabric 中用于 GraphQL 的 API 的当前常规产品限制。 我们不断改进具有新功能的 GraphQL API。 有关 Microsoft Fabric 的未来的详细信息,请参阅 Fabric 路线图。
谁需要了解这些限制条件
了解 GraphQL API 的限制非常重要,尤其是为了以下目的:
- 应用程序开发人员设计在 Fabric GraphQL API 约束下运行的应用程序
- 数据工程师 规划数据公开策略和了解平台边界
- 解决方案架构师 将基于 Fabric 的解决方案范围界定并设置适当的技术预期
- Fabric 工作区贡献者 排查问题和实施解决方法以克服当前限制
- 项目经理 在项目规划期间向利益干系人传达 Fabric 平台约束
规划 GraphQL API 实现或排查意外 API 行为时,请查看这些限制。
数据源操作
SQL Analytics 终结点数据源 仅支持读取操作。 通过 SQL Analytics 终结点(如 Lakehouses 和镜像数据库)访问的数据源不支持突变。 可以通过 GraphQL API 查询数据,但无法创建、更新或删除记录。
大小和性能限制
下表汇总了键大小、分页和性能约束:
| 限制类型 | 价值 | Description | 解决方法 |
|---|---|---|---|
| 默认页面大小 | 100 个项目 | 默认情况下,每个请求返回的最大项数 | 使用 GraphQL 分页 遍历较大的结果集 |
| 最大分页大小 | 100,000 项 | 通过分页可检索的项目最大总数 | 如果需要 10 万多个项(GraphQL 中的不常见模式),请发出多个筛选的请求 |
| 最大响应大小 | 64 MB | API 响应有效负载的最大大小 | 发出多个筛选请求以较小的区块检索数据 |
| 请求超时 | 100 秒 | 单个请求的最大执行时间 | 优化查询或将复杂作分解为较小的请求 |
| 最大查询深度 | 10 个级别 | 查询中字段的最大嵌套级别 | 减少查询嵌套以避免过度提取数据时出现性能问题 |
存储过程限制
Azure SQL 中的存储过程、Fabric 中的 SQL 数据库和数据仓库具有特定的约束:
- 结果集处理:仅使用存储过程返回的第一个结果集。 不支持多个结果集。
-
元数据要求:仅支持那些其第一个结果集的元数据可以由
sys.dm_exec_describe_first_result_set描述的存储过程。 - 参数优先级:在配置文件和 URL 查询字符串中指定存储过程参数时,URL 查询字符串值优先。
-
有限的 GraphQL 功能:与表或视图支持的实体相比,存储过程支持的实体的功能较少,
- 无分页支持
- 无排序或筛选
- 没有基于主键的查询
已知问题
有关 GraphQL API 中的已知问题,请访问 Microsoft Fabric 已知问题。
相关内容
- 适用于 GraphQL 的 API 概述
- 将应用程序连接到 Fabric API for GraphQL
- 适用于 GraphQL 的 API 常见问题解答