Orion-LD 0.8.0+版本无法生成服务/子服务,CrateDB无mt前缀表如何解决?
解决Orion-LD 0.8.0+与QuantumLeap、CrateDB表结构不匹配问题
Orion-LD 0.8.0之后版本移除了服务/子服务在QuantumLeap日志中的生成逻辑,因此CrateDB不会再生成mt_前缀的多租户表,转而用et_<实体类型>格式的单实体表存储持久化数据,这和你参考的FIWARE时间序列教程预期结构不一致,可按以下方式解决:
直接适配新表结构查询数据
数据已经存在et_Device这类以et_开头、后缀为实体类型的表中,直接针对这些表编写查询逻辑即可。比如要查询Device实体的位置数据,直接操作et_Device表的location字段和时间戳字段,无需再寻找mt_前缀的表。若需多租户隔离,改用NGSI-LD租户机制
如果教程中要求按服务/子服务隔离数据,Orion-LD 0.8.0+已改用NGSI-LD的tenant机制实现。你需要在订阅中添加tenant参数,同时确保QuantumLeap配置了租户支持。修改后的订阅示例:{ "description": "Notify me of animal locations", "type": "Subscription", "entities": [{"type": "Device"}], "watchedAttributes": ["location", "status", "heartRate"], "notification": { "attributes": ["location", "status", "heartRate"], "format": "normalized", "endpoint": { "uri": "http://quantumleap:8668/v2/notify", "accept": "application/json" } }, "throttling": 10, "@context": "http://context:3000/data-models/ngsi-context.jsonld", "tenant": "your-tenant-id" }配置后QuantumLeap会为对应租户生成独立的
et_<实体类型>表(或在表中添加租户标识字段,具体取决于QuantumLeap配置),实现数据隔离。调整教程步骤适配新版本
将教程中所有针对mt_前缀表的操作,替换为对应的et_<实体类型>表操作。两类表的字段结构一致,仅表名前缀不同,无需修改查询字段或逻辑。
内容的提问来源于stack exchange,提问作者Tony Rosset
相关产品推荐
相关产品推荐

