云服务器内容精选
-
场景说明 物联网平台为用户提供了丰富的报表功能,能够将数据直观地呈现出来,当您想将报表中的数据集成到自己的运维系统时,可以使用AOM的订阅功能将IoTDA推送的指标数据推送至DMS Kafka,您可以消费DMS Kafka中的指标数据展示在您自己的运维系统中。本示例为使用AOM订阅功能将指标数据推送至DMS Kafka,并以在线设备数指标为例展示。IoTDA支持的指标数据可参考IoTDA指标详情。
-
前提条件 已注册华为官方账号。未注册可参考注册华为账户注册华为账户完成注册。 已完成实名制认证。未完成可在华为云上单击实名认证完成认证,否则会影响后续云服务的开通。 已开通设备接入服务。未开通则访问设备接入服务,单击“免费试用”或单击“价格计算器”购买并开通该服务。 已开通AOM服务。访问AOM服务,单击“AOM2.0控制台”,单击“免费开通服务并授权”开通该服务。 已开通DMS Kafka服务。未开通则访问DMS Kafka服务,单击“立即购买”后开通该服务。
-
相关推荐 相关文档 相关产品 设备数据上报 使用HTTP/HTTPS订阅推送 使用AMQP订阅推送 查看运行日志 消息通知服务SMN 数据接入服务DIS 分布式消息服务Kafka 对象存储服务OBS 应用与数据集成平台ROMA Connect 云日志服务(LTS) 函数工作流FunctionGraph 分布式消息服务(RocketMQ) 云数据库 GeminiDB Influx MapReduce服务(MRS Kafka) 云数据库MySQL 区块链服务 BCS
-
概述 数据转发功能用于提供IoTDA与其他云服务的连接通道,从而实现将设备数据平滑流转至消息中间件、存储、数据分析、业务应用。各转发方式在各规格的支持情况,详见产品规格说明中 基础版、标准版与企业版实例功能差异。当前物联网平台支持如下转发方式: 表1 数据转发概述 分类 转发目标 说明 操作指导 数据分析 数据接入服务 DIS 将数据流转到华为云DIS云服务。目前DIS支持数据转存储至对象存储服务 OBS、MapReduce服务 MRS、数据湖探索 DLI、数据仓库服务 DWS、表格存储服务 CloudTable。具体DIS支持的转存储任务已实际购买的实例为准。 应用场景:数据接入服务主要解决云服务外的数据实时传输到云服务内的问题。 规格参考:通道规格理论1个分区1M/秒接入,2M/秒读取。 数据转发至DIS 分布式消息服务Kafka版 将数据流转到华为云DMS Kafka云服务,适用于构建实时数据管道、流式数据处理、第三方解耦、流量削峰去谷等场景,具有大规模、高可靠、高并发访问、可扩展且完全托管的特点。 应用场景:在日志收集、流式数据传输、在线/离线系统分析、实时监控等领域有广泛的应用。 规格参考:Kafka实例规格。 数据转发至Kafka存储 应用与数据集成平台ROMAConnect 将数据流转到华为云ROMA Connect, 可以实现无缝联接应用、消息、数据、API、设备,帮助企业快速、简单的打通并管理遗留系统与云原生应用,ROMA Connect是一个全栈式的应用与数据集成平台,源自华为数字化转型集成实践,聚焦应用和数据连接,适配多种企业常见的使用场景。 规格参考:ROMA实例规格。 - 分布式消息服务RocketMQ版 将数据流转到华为云RocketMQ云服务,兼容开源RocketMQ客户端。提供顺序、延迟、定时、重投、死信、事务消息等功能。提供消息追踪、消息溯源、链路诊断、死信导出、监控告警等能力,帮助您全方面的了解服务状况,保证业务正常运行。 应用场景:适用于电商、金融等多样的业务场景。 规格参考:RocketMQ实例规格。 数据转发至RokcetMQ 云日志服务 LTS 将数据流转到华为云LTS云服务,实现一站式日志采集、秒级搜索、海量存储、结构化处理、转储和可视化图表等功能。 应用场景:适用于应用运维、网络日志可视化分析、等保合规和运营分析等应用场景。 规格参考:日志流规格。 查看运行日志 函数工作流 FunctionGraph 将数据流转到华为云FunctionGraph云服务,客户只需要在FunctionGraph中编写业务函数代码并设置运行的条件,无需配置和管理服务器等基础设施,函数以弹性、免运维、高可靠的方式运行。此外,按函数实际执行资源计费,不执行不产生费用。 数据转发转发至FunctionGraph函数工作流 MapReduce服务 MRS 将数据转发到华为云MRS Kafka云服务,它的Kafka集群是一个分布式的、分区的、多副本的消息发布-订阅系统,它提供了类似于JMS的特性,Mysql性能规格但在设计上完全不同,它具有消息持久化、高吞吐、分布式、多客户端支持、实时等特性,适用于离线和在线的消息消费,如常规的消息收集、网站活性跟踪、聚合统计系统运营数据(监控数据)、日志收集等大量数据的互联网服务的数据收集场景。 - 区块链服务 BCS 将数据转发到华为云BCS云服务,作为面向企业及开发者提供的区块链技术服务平台,可以帮助客户快速部署、管理、维护区块链网络,降低客户使用区块链的门槛,让客户可以更专注于自身业务的开发与创新,实现业务快速上链。 规格参考:BCS产品规格。 数据转发至BCS可信上链 数据存储 云数据库 GeminiDB Influx 将数据流转到华为云GeminiDB Influx,兼容InfluxDB生态的云原生时序数据库。提供高性能读写、高压缩率、冷热分层存储以及弹性扩容、监控告警等服务能力,可以实现大并发的时序数据读写,压缩存储和类SQL查询等功能,支持多维聚合计算和数据可视化分析能力。 应用场景:广泛应用于资源监控、业务监控分析、物联网设备实时监控、工业生产监控、生产质量评估和故障回溯等。提供了高吞吐量和并发性,可以通过快速的响应时间来支持大量的连接,非常适合要求苛刻的物联网应用。 规格参考:InfluxDB规格。 数据转发至GeminiDB Influx 云数据库 RDS for MySQL 将数据流转到华为云RDS MySQL,相比自建数据库,RDS价格便宜、 即开即用,便捷运维,支持弹性伸缩并具备实例管理、实例监控、备份恢复、日志管理、参数管理等功能,支持单机和主备部署。 应用场景:网站业务、移动应用、游戏业务、电商业务、金融业务以及企业应用等。 规格参考:Mysql性能规格。 数据转发至MySQL 对象存储服务 OBS 将数据流转至华为云OBS云服务,OBS为客户提供海量、安全、高可靠、低成本的数据存储能力,使用时无需考虑容量限制,并且提供多种存储类型供选择,满足客户各类业务场景诉求,OBS也支持对接实时计算CS云服务,实时分析数据流,分析结果对接到其他云服务或者第三方应用进行数据可视化等。 应用场景:适用于海量大数据存储分析的场景。 规格参考:OBS存储规格。 数据转发至OBS长期存储 文档数据库服务DDS功能 将数据流转至华为云文档数据库服务DDS,DDS完全兼容MongoDB协议,具备安全审计,多账号管理,时间点备份恢复能力,支持集群和副本集部署架构。10倍备份恢复能力,分钟级横向扩容,轻松承载海量数据的高并发写入。 应用场景:游戏业务,物联网业务,电商、考勤系统等有典型高并发场景,对数据库性能要求较高。 规格参考:DDS性能规格 数据转发至MongoDB存储 通过公网进行数据转发流量限制不超过1M/s,超过后消息会直接丢弃。如果要使用更大的流量进行数据转发,推荐使用企业版,企业版支持私网进行数据转发,无此限制。
-
购买RocketMQ 登录华为云,访问分布式消息服务RocketMQ版, 进入分布式消息服务管理控制台。 单击右上角“购买RocketMQ实例”, 按照需求选择RocketMQ规格,单击“立即购买”。 图1 购买RocketMQ 单击进入购买的RocketMQ实例,开启ACL访问控制后,单击“用户管理”添加用户,可参考创建用户。 图2 添加用户 单击左侧导航栏“topic管理”,单击“创建topic”创建RocketMQ的topic。
-
响应示例 状态码: 200 OK { "count" : 1, "forwarding_configs" : [ { "forwarding_type" : "kafka", "kafka_config" : { "kafka_config_id" : "1234567890", "kafka_topics" : [ "v2x-v1-tracks", "v2x-v1-bsm", "v2x-v1-rsi", "v2x-v1-rsm", "v2x-v1-spat", "v2x-v1-edge-flow" ], "brokers" : [ "127.0.0.1:10000" ], "username" : "1234567890", "topic_prefix" : "abc", "status" : "ONLINE", "created_time" : "2015-12-12T12:12:12Z", "last_modified_time" : "2015-12-13T12:12:12Z" }, "mrs_kafka_config" : { "kafka_config_id" : null, "kafka_topics" : [ "v2x-v1-tracks", "v2x-v1-bsm", "v2x-v1-rsi", "v2x-v1-rsm", "v2x-v1-spat", "v2x-v1-edge-flow" ], "brokers" : [ "127.0.0.1:10000" ], "username" : null, "status" : null, "authentication" : false, "created_time" : "2015-12-12T12:12:12Z", "last_modified_time" : "2015-12-12T12:12:12Z" } } ] }
-
响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 count Integer 参数说明:满足查询条件的记录总数。 最小值:0 最大值:10000 forwarding_configs Array of ForwardingConfig objects 参数说明:转发配置的列表。 数组长度:0 - 50 表5 ForwardingConfig 参数 参数类型 描述 forwarding_type String 参数说明:转发配置的类型。 取值范围:当前仅支持“kafka、mrskafka”。 kafka_config KafkaConfigResponseDTO object 参数说明:Kafka配置信息。 mrs_kafka_config MrsKafkaConfigResponseDTO object 参数说明:mrsKafka配置信息。 表6 KafkaConfigResponseDTO 参数 参数类型 描述 kafka_config_id String 参数说明:每一套Kafka配置的唯一ID。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 kafka_topics Array of strings 参数说明:kafka的主题列表。 取值范围: v2x-v1-tracks:edge上报的车辆轨迹数据 v2x-v1-bsm:车载T-BOX,RSU上报的BSM消息数据 v2x-v1-rsi:RSU,edge上报的RSI消息数据 v2x-v1-rsm: RSU,edge上报的RSM消息数据 v2x-v1-spat:RSU上报的SPAT消息数据 v2x-v1-edge-flow:edge上报的车流量统计信息数据 数组长度:0 - 7 brokers Array of strings 参数说明:Kafka broker列表。 最小长度:1 最大长度:255 数组长度:1 - 255 username String 参数说明:kafka用户名。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 topic_prefix String 参数说明:Topic前缀。 取值范围:长度不超过255,只允许字母、数字、下划线(_)、连接符(-)的组合。 status String 参数说明:一套kafka的连接状态。 取值范围: OFFLINE:离线 ONLINE:在线 枚举值: OFFLINE ONLINE created_time String 参数说明:创建时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z last_modified_time String 参数说明:修改时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z 表7 MrsKafkaConfigResponseDTO 参数 参数类型 描述 kafka_config_id String 参数说明:每一套Kafka配置的唯一ID。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:1 最大长度:255 kafka_topics Array of strings 参数说明:kafka的主题列表。 取值范围: v2x-v1-tracks:edge上报的车辆轨迹数据 v2x-v1-bsm:车载T-BOX,RSU上报的BSM消息数据 v2x-v1-rsi:RSU,edge上报的RSI消息数据 v2x-v1-rsm: RSU,edge上报的RSM消息数据 v2x-v1-spat:RSU上报的SPAT消息数据 v2x-v1-edge-flow:edge上报的车流量统计信息数据 数组长度:0 - 7 brokers Array of strings 参数说明:Kafka broker列表。 最小长度:1 最大长度:255 数组长度:1 - 255 username String 参数说明:mrskafka用户名,若开启安全认证该参数必填。 取值范围:只允许字母、数字、下划线(_)、连接符(-)的组合。 最小长度:0 最大长度:255 status String 参数说明:一套kafka的连接状态。 取值范围: OFFLINE:离线 ONLINE:在线 枚举值: OFFLINE ONLINE authentication Boolean 参数说明:是否开启kerberos安全认证的开关。若开启安全认证则需要先上传kerberos安全认证的凭证。 缺省值:false created_time String 参数说明:创建时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z last_modified_time String 参数说明:修改时间。 格式为yyyy-MM-dd'T'HH:mm:ss'Z' 例如:2015-12-12T12:12:12Z
-
Message示例 { "header" : { "instance_id" : "f24b3b95-4a2a-4f6f-a80c-855156b50af7", "event" : "ADDED" }, "body" : { "source" : { "source_type" : "detection", "source_id" : "EDGE0123456789", "esn" : "2102312ETX10K7000037" }, "time" : "2020-09-01T01:37:01.123Z", "cross_id" : "cross0123456789", "track_list" : [ { "track_id" : 50, "ptc_type" : "motor", "ptc_id" : 3, "source" : "rsu", "global_track_id" : 3, "vehicle_class" : 10, "vehicle_color" : "black", "vehicle_model" : "朗逸", "vehicle_brand" : "红旗", "vehicle_style" : "2018,2019,2020", "gat_vehicle_class" : "K33", "plat_no" : "浙A12345", "heading" : 158.23, "speed" : 10.2, "car_direction" : 1, "fuel_type" : 5, "camera_list" : [ { "id" : 0, "ip" : "127.0.0.1" } ], "size" : { "width" : 200, "length" : 400, "height" : 200 }, "location_list" : [ { "lon" : 123.123, "lat" : 11.123, "speed" : 10.2, "accel_set" : { "long_accel" : 3, "lat_accel" : 4, "vert_accel" : 0, "yaw_rate" : 0 }, "heading" : 158.23, "angle" : 0, "car_direction" : 1, "time_stamp" : 1626243657123 } ] } ] } }
-
Message参数 表1 请求Body参数 参数 是否必选 参数类型 描述 header 是 OpenV2XTracksHeader object 参数说明:轨迹数据信息的附加描述。 body 是 OpenV2XTracksBody object 参数说明:轨迹数据信息。 表2 OpenV2XTracksHeader 参数 是否必选 参数类型 描述 instance_id 是 String 参数说明:实例ID。dris物理实例的唯一标识。 event 是 String 参数说明:操作描述。" 取值范围: MODIFIED:修改 ADDED:新增 DELETED:删除 枚举值: MODIFIED ADDED DELETED 表3 OpenV2XTracksBody 参数 是否必选 参数类型 描述 source 否 TracksSource object 参数说明:消息来源。 time 否 String 参数说明:数据上报的时间。 格式:yyyy-MM-dd'T'HH:mm:ss.SSS'Z'。 例如 2021-01-08T02:03:41.907Z。 cross_id 否 String 参数说明:路口id,对应到一组雷视拟合设备,检测一个特定的路口或者路段。 最小长度:0 最大长度:64 track_list 否 Array of TrackList objects 参数说明:轨迹列表。 数组长度:0 - 100 表4 TracksSource 参数 是否必选 参数类型 描述 source_type 否 String 参数说明:信息来源的具体类型描述。 枚举值: rsu obu detection sne source_id 否 String 参数说明:信息来源的唯一标识码ID。 最小长度:1 最大长度:255 esn 否 String 参数说明:设备编码。 取值范围:长度不超过64,只允许字母、数字、以及_等字符的组合。 表5 TrackList 参数 是否必选 参数类型 描述 track_id 否 Long 参数说明:轨迹id。 最小值:0 最大值:9223372036854775807 ptc_type 否 String 参数说明:路侧单元检测到的交通参与者类型。 取值范围: unknown:未知类型 motor:机动车 non-motor:非机动车 pedestrian:行人 rsu:RSU设备 ptc_id 否 Integer 参数说明:检测单元设置的临时ID。 最小值:0 最大值:65535 source 否 String 参数说明:定义交通参与者数据的来源。 取值范围: unknown:未知数据源类型 rsu:RSU自身信息 v2x:参与者自身的v2x广播消息 video:视频传感器 microwaveRadar:微波雷达传感器 loop:地磁线圈传感器 lidar:激光雷达传感器 integrated:一类或以上感知数据的融合结果 global_track_id 否 Long 参数说明:ITS800通过GlobalTrackID字段标识了车辆唯一ID。 最小值:0 最大值:9223372036854775807 vehicle_class 否 Integer 参数说明:车辆类型。参考车辆基本类型。 最小值:0 最大值:1000 gat_vehicle_class 否 String 参数说明:机动车车辆类型。参考机动车车辆类型。 vehicle_color 否 String 参数说明:车辆颜色。 取值范围: black:黑色 white:白色 gray:灰色 red:红色 blue:蓝色 yellow:黄色 orange:橙色 brown:棕色 green:绿色 purple:紫色 cyan:青色 pink:粉红色 transparent:透明色 other:其他 vehicle_model 否 String 参数说明:车辆型号。 最小长度:0 最大长度:63 vehicle_brand 否 String 参数说明:车辆品牌。 最小长度:0 最大长度:31 vehicle_style 否 String 参数说明:车辆年款,通过年份来表示,多个年份通过逗号分隔。 最小长度:0 最大长度:63 plat_no 否 String 参数说明:车牌。 最小长度:0 最大长度:63 heading 否 Number 参数说明:车的航向角,正北为0度,顺时针增加。单位° 最小值:0 最大值:360 speed 否 Number 参数说明:速度,单位km/h。 最小值:0 最大值:1000 car_direction 否 Integer 参数说明:车辆方向。 取值范围: -1:未知方向 0:车头 1:车尾 最小值:-1 最大值:1 fuel_type 否 Integer 参数说明:定义车辆的燃料动力类型,10-15暂未定义。 取值范围: 0:未知 1:汽油 2:乙醇 3:柴油 4:电动 5:混合燃料类型 6:氢气 7:液化天然气 8:压缩天然气 9:丙烷 最小值:0 最大值:15 size 否 SizeDTO object 参数说明:车辆尺寸。 camera_list 否 Array of TrackCameraInfo objects 拍摄到事件的摄像头信息。 数组长度:0 - 10 location_list 否 Array of LocationList objects 参数说明:位置列表。 数组长度:0 - 100 表6 SizeDTO 参数 是否必选 参数类型 描述 width 否 Integer 参数说明:车辆宽度,单位厘米。 最小值:0 最大值:300 length 否 Integer 参数说明:车辆长度,单位厘米。 最小值:0 最大值:3000 height 否 Integer 参数说明:车辆高度,单位厘米。 最小值:0 最大值:500 表7 TrackCameraInfo 参数 是否必选 参数类型 描述 id 否 Integer 参数说明:SNE的摄像头id,编号从0开始。 最小值:0 最大值:128 ip 否 String 参数说明:摄像头ip。 最小长度:0 最大长度:15 表8 LocationList 参数 是否必选 参数类型 描述 lon 否 Number 参数说明:经度。东经为正,西经为负,单位°,精度小数点后7位。 最小值:-180 最大值:180 lat 否 Number 参数说明:纬度。北纬为正,南纬为负,单位°,精度小数点后7位。 最小值:-90 最大值:90 speed 否 Number 参数说明:速度,单位km/h。 最小值:0 最大值:1000 accel_set 否 AccelerationSet4Way object 参数说明:定义车辆四轴加速度。 heading 否 Number 参数说明:车的航向角,正北为0度,顺时针增加。单位° 最小值:0 最大值:360 angle 否 Integer 参数说明:定义车辆转向轮角度。向右为正,向左为负。单位为1.5°,值为127时代表无效值。 最小值:-126 最大值:127 car_direction 否 Integer 参数说明:车辆方向。 取值范围: -1:未知方向 0:车头 1:车尾 最小值:-1 最大值:1 lane_no 否 Integer 参数说明:车辆所处车道。如果感知设备支持覆盖双向行驶方向时,桩号递增行驶方向,车道号从左到右从1依次递增;桩号递减行驶方向,车道号从左到右从-1依次递减。如果感知设备只支持覆盖单向车道,可以不区分桩号递增或者递减行驶方向,车道号可以按照车辆行驶方向从左到右,从1开始递增。 最小值:-32 最大值:32 time_stamp 否 Long 参数说明:采集车辆数据的毫秒时间戳。 表9 AccelerationSet4Way 参数 是否必选 参数类型 描述 long_accel 是 Integer 参数说明:车辆纵向加速度。单位为0.01米每平方秒。值为2001时代表无效数值。 最小值:-2000 最大值:2001 lat_accel 是 Integer 参数说明:车辆横向加速度。单位为0.01米每平方秒。值为2001时代表无效数值。 最小值:-2000 最大值:2001 vert_accel 是 Integer 参数说明:定义Z轴方向的加速度大小,Z轴方向竖直向下,沿着Z轴方向为正。 分辨率为0.02G,G为重力加速度值9.80665m/s2。 最小值:-127 最大值:127 yaw_rate 是 Integer 参数说明:车辆横摆角速度。指汽车绕垂直轴的偏转,该偏转的大小代表汽车的稳定程度。如果偏转角速度达 到一个阈值,说明汽车发生测滑或者甩尾等危险工况。 顺时针旋转为正,逆时针为负。 数据分辨率为0.01°/s。 最小值:-127 最大值:127
-
创建MySQL 登录华为云官方网站,访问云数据库 MySQL,购买实例。设备接入服务企业版实例支持通过内网连接MySQL,标准版实例仅支持通过公网连接MySQL。 在购买的MySQL实例中,根据流转数据格式设计数据库表,可以通过数据过滤语句编辑流转数据。本示例使用设备属性上报通知的默认格式,将流转数据中的resource、event、notify_data、event_time分别转存至数据库表中的resource、event、content、event_time字段。 图1 创建数据库表样例
-
流控策略维度 表1 流控策略类型 流控策略类型 描述 实例级别流控 使用此策略类型时,流控的范围为当前实例中所有数据转发的流量,超出流控的数据会被丢弃。 转发通道流控 使用此策略类型时,流控的范围为当前实例中所有转发至指定目标的流量。 转发规则流控 使用此策略类型时,流控的范围为当前实例中所有触发指定转发规则的流量,超出流控的数据会被丢弃。 转发动作流控 使用此策略类型时,流控的范围为当前实例中所有转发至指定动作的流量。 流控策略创建成功后,不支持修改流控策略类型。 超出实例和转发规则级别流控的数据会被丢弃,请慎重考虑后再使用。 同时创建多个不同类型的流控策略,以最先达到流控阈值的策略为准。例如配置了转发规则A的流控大小为50tps,转发规则A下转发动作B的流控大小为100tps,触发转发规则A的流转数据流量为80tps,则触发了转发规则A的流控。
-
操作步骤 访问设备接入服务,单击“管理控制台 ”进入设备接入控制台。 单击“规则” ,选择“数据转发” ,选择 “策略配置” ,进入流控策略配置界面。 图1 策略配置界面 在弹出的界面中填写相关信息后,单击“确定”即可完成流控策略创建。 图2 创建流控策略 表2 参数说明 参数名称 描述 策略名称 长度为4-256,只允许中文、字母、数字以及_?'#().,&%@!-等字符的组合。 描述 关于该策略的描述,长度为4-256,只允许中文、字母、数字以及_?'#().,&%@!-等字符的组合。 流控大小 取值范围为1-1000。 流控策略类型 包括实例级别流控、转发通道流控、转发规则流控、转发动作流控四种流控策略类型。 转发目标 当流控策略类型为转发通道流控时生效,对应当前实例支持的转发通道类型。 绑定规则 当流控策略类型为转发规则流控时生效,对应IoT物联网平台上的数据转发规则。 绑定动作 当流控策略类型为转发动作流控时生效,对应IoT物联网平台上的数据转发动作。
-
Message示例 { "header" : { "instance_id" : "f24b3b95-4a2a-4f6f-a80c-855156b50af7", "event" : "ADDED" }, "body" : { "source" : { "source_type" : "detection", "source_id" : "705183159624675328_2102312ETX10K7000037" }, "time" : "2020-09-01T01:37:01Z", "period" : 300, "direction" : 180, "flow" : 75, "average_speed" : 72.5, "cross_id" : "cross0123456789", "esn" : "2102312ETX10K7000037", "traffic_direction" : "0,", "road_kind" : "1,", "has_congestion" : "false,", "vehicle_class_flow" : [ { "vehicle_class" : 10, "flow" : 50, "average_speed" : 73.6 }, { "vehicle_class" : 20, "flow" : 25, "average_speed" : 71.4 } ], "occupancy" : [ { "lane_id" : 0, "space_occupancy" : 0.6, "time_occupancy" : 0.5 }, { "lane_id" : 1, "space_occupancy" : 0.6, "time_occupancy" : 0.5 } ], "lane_flow" : [ { "lane_id" : 10, "flow" : 50, "average_speed" : 73.6 }, { "lane_id" : 20, "flow" : 25, "average_speed" : 71.4 } ] } }
-
SELECT子句 SELECT子句由SELECT后跟多个SELECT子表达式组成,子表达式可以为*,JSON变量,字符串常量或整数常量。JSON变量后跟一个AS关键字和AS变量,长度不超过32个字符。如果使用常量或函数,则必须使用AS指定名称。 JSON变量 JSON变量支持大小写字母,数字,下划线和中划线,为了和减号的意思区分,当使用中划线的时候,请将JSON变量使用双引号进行引用,如:"msg-type"。 Json变量抽取嵌套结构体的数据 { "a":"b", "c": { "d" : "e" } } c.d 即可抽取出字符串e,可以多层嵌套。 AS变量 AS变量由大小写字母组成,大小写敏感。目前支持[a-zA-Z_-]*的模式,如果使用中划线,需要使用双引号进行引用。 常数整数 正如标准的SQL一样,SELECT支持常数整数,常数后必须跟AS子句,如 常数整数的大小范围:-2147483648~2147483647 SELECT 5 AS number 常数字符串 正如标准的SQL一样,SELECT支持常数字符串,目前支持[a-zA-Z_-]*的模式,需要使用单引号进行引用,常数后必须跟AS子句,如 字符串长度范围不能超过50 SELECT 'constant_info' AS str
-
函数列表 规则引擎提供多种函数,您可以在编写SQL时使用这些函数,实现多样化数据处理。 表2 函数列表 函数名称 携带参数 用途 返回值类型 限制 GET_TAG String tagKey 获取指定tag_key对应的tag_value。 GET_TAG('testTagName') 字符串 - CONTAINS_TAG String tagKey 判断是否包含指定tag_key。 CONTAINS_TAG('testTagName') 布尔值 - GET_SERVICE String serviceId,boolean fuzzy 获取service,若fuzzy为false或者不填,则获取指定service_id的service,若fuzzy为true,则通过模糊匹配查询service,如果您在一个消息体里有多个service_id相同的service,结果目前不保证。 GET_SERVICE('Battery',true) Json结构体格式 只能在属性上报时使用 GET_SERVICES String serviceId,boolean fuzzy 获取services,若fuzzy为false或者不填,获取指定service_id的services,若fuzzy为true,则通过模糊匹配查询services。查询结果将汇合为一个数组。 GET_SERVICES('Battery',true) JSON数组格式 只能在属性上报时使用 CONTAINS_SERVICES String serviceId,boolean fuzzy 若fuzzy为false或者不填,则判断是否存在指定service_id。若fuzzy为true,则使用模糊匹配的方式判断属性中的service_id是否包含指定参数。 CONTAINS_SERVICES('Battery',true) 布尔值 只能在属性上报时使用 GET_SERVICE_PROPERTIES String serviceId 获取指定service_id的service中的properties字段。 GET_SERVICE_PROPERTIES('Battery') Json结构体格式 只能在属性上报时使用 GET_SERVICE_PROPERTY String serviceId, String propertyKey 获取指定service_id的service中的properties中指定属性的值。 示例: GET_SERVICE_PROPERTY('Battery','batteryLevel') 字符串 限制只能在属性上报时使用 STARTS_WITH String input, String prefix 判断input的值是否以prefix开头。 STARTS_WITH('abcd','abc') STARTS_WITH(notify_data.header.device_id,'abc') STARTS_WITH(notify_data.header.device_id,notify_data.header.product_id) 布尔值 - ENDS_WITH String input, String suffix 判断input的值是否以suffix结尾。 ENDS_WITH('abcd','bcd') ENDS_WITH(notify_data.header.device_id,'abc') ENDS_WITH(notify_data.header.device_id,notify_data.header.node_id) 布尔值 - CONCAT String input1, String input2 用于连接字符串,返回连接后的字符串。 CONCAT('ab','cd') CONCAT(notify_data.header.device_id,'abc') CONCAT(notify_data.header.product_id,notify_data.header.node_id) 字符串 - REPLACE String input, String target, String replacement 对字符串某部分值进行替换。即用replacement替换input中的target。 REPLACE(notify_data.header.node_id,'nodeId','IMEI') - - SUBSTRING String input, int beginIndex, int endIndex(required=false) 获取字符串的子串,即返回input从beginIndex(包含)到endIndex(不包含)的子字符串。 说明:endIndex非必填。 SUBSTRING(notify_data.header.device_id,3) SUBSTRING(notify_data.header.device_id,3,12) - - LOWER String input 将input中的值全部转换成小写 LOWER(notify_data.header.app_id) - - UPPER String input 将input中的值全部转换成大写 UPPER(notify_data.header.app_id) - -
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格