元数据用于定义一类数据的数据结构信息,目前元数据分为三种类型:
元数据包含两个主要信息,一个是元数据名称,该名称会被用于任务SQL中的table名;另一个是元数据的数据结构。
数据结构
数据结构包含字段名称、字段类型、字段描述;另外设备流类型元数据的数据结构中还包含了数据点字段名称属性;结果集类型元数据的数据结构还包含了是否主键属性。
字段名称:同一个元数据名称下字段名称需唯一,且用户命名的字段名称不能为collectId,该字段为系统内部使用字段;同时字段名称目前只支持平铺的json字段名,暂不支持嵌套的json path格式。
数据点字段名称:该属性仅在设备流类型元数据中才存在,用于指定OneNET平台设备数据点的系统属性和value属性;下面将对数据点字段名称的使用进行详细说明: 数据点字段名称为json path格式,包含以下两类:
数据点系统属性的数据点字段名称

若用户在定义设备流类型元数据时,需要使用到数据点的以上四种系统属性,则数据点字段名称固定为以上四种之一。
数据点value属性的数据点字段名称
通用格式为:body.{设备上传数据点value的json属性名}
若设备上传的数据点的value为简单类型(数值、字符串),如下图:

那么数据点字段名称固定为:body
若设备上传的数据点的value为复杂类型(json对象),如下图:

那么数据点字段名称为:body.x或body.y
元数据在数据分析服务里是一个基础项,在接入管理、任务管理、输出管理都会使用到元数据,若一个元数据已经正式投入使用了,不建议再去修改元数据信息,否则可能导致上层使用到元数据的地方会发生异常,若用户想要更改,可新建一个新的元数据 。
按照以上说明,根据数据的逻辑结构,我们可以新建自己的元数据。假设我们想建立一个分析任务,该任务的目的是实时关联订单表和商品表的记录,并将关联结果输出。 那我们可以构建2个数据源元数据:orders(订单的数据源元数据)和products(商品的数据源元数据),和1个结果集元数据joinTaskSink。
orders元数据创建如下:

product元数据创建如下:

joinTaskSink元数据创建如下:
