使用Orion LD+QuantumLeap+CrateDB时缺失租户Schema问题求助
Orion LD + QuantumLeap + CrateDB 租户Schema未生成问题排查方案
核心问题确认
订阅功能正常、传感器数据能写入CrateDB,但未生成mtmytenant租户专属Schema,表直接出现在默认Schema下;NGSI v2环境可正常生成租户Schema,仅NGSI LD环境异常。
排查与解决步骤
检查QuantumLeap租户Schema配置
- 确认QuantumLeap的
CRATE_SCHEMA_BY_TENANT配置项是否设为true,NGSI LD模式下该配置默认逻辑可能与v2不同,需手动开启租户隔离的Schema生成功能。 - 若使用旧版本QuantumLeap,建议升级到最新稳定版,部分早期版本存在NGSI LD租户Schema自动创建的bug。
- 确认QuantumLeap的
验证Orion LD通知的租户头传递
- 抓包查看Orion LD发送给QuantumLeap
http://quantumleap:8668/v2/notify的请求头,确认是否携带NGSILD-Tenant: mytenant。如果Orion LD未传递该头,QuantumLeap会将数据写入默认Schema,不会创建租户专属Schema。 - 若未传递租户头,需配置Orion LD确保订阅通知时携带租户标识头。
- 抓包查看Orion LD发送给QuantumLeap
检查CrateDB的权限与自动创建设置
- 确认连接CrateDB的QuantumLeap用户拥有
CREATE SCHEMA权限,无权限会导致自动创建Schema失败,只能在现有Schema下创建表。 - 检查CrateDB的
sql.generic_schema_auto_create参数是否为true,该参数控制是否允许自动创建不存在的Schema。
- 确认连接CrateDB的QuantumLeap用户拥有
手动创建Schema验证逻辑
- 在CrateDB中执行
CREATE SCHEMA mtmytenant;,之后观察新的传感器数据是否写入该Schema下的表。如果写入正常,说明自动创建Schema环节存在问题,重点排查QuantumLeap的自动创建触发逻辑。
- 在CrateDB中执行
调整订阅的通知格式
- 尝试将订阅中的
notification.format从normalized改为keyValues,部分场景下NGSI LD的normalized格式可能导致QuantumLeap租户解析异常,切换格式后看是否能触发Schema生成。
- 尝试将订阅中的
查看QuantumLeap日志定位错误
- 搜索QuantumLeap运行日志中
schema、tenant相关的日志条目,查看是否有创建Schema失败的错误提示(如权限不足、租户名解析错误等),日志会给出具体问题原因。
- 搜索QuantumLeap运行日志中
内容的提问来源于stack exchange,提问作者Tony Rosset
相关产品推荐
相关产品推荐

