Mysql 5.7 JSON 与 物联网设备上数完美结合

简介:

MySQL 5.7.15 新特性一 (json)


更多更浓参考官网

https://dev.mysql.com/doc/refman/5.7/en/json.html


一、测试过程


1.创建库表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
create  database  veh_history;
use veh_history;
CREATE  TABLE  `t_equipment_traffic` (
   `id`  bigint (20)  NOT  NULL  AUTO_INCREMENT COMMENT  '自增主键' ,
   `cn`  char (17)  NOT  NULL  COMMENT  '设备号' ,
   `st` datetime  NOT  NULL   COMMENT  '采集时间' ,
   `description` json,
   PRIMARY  KEY  (`id`,`st`),
   KEY  `idx_cn_ct` (`cn`),
   KEY  `idx_st` (`st`) 
) ENGINE=InnoDB AUTO_INCREMENT=1  DEFAULT  CHARSET=utf8 COMMENT= '历史数据'
PARTITION  BY  RANGE (to_days(st))
(PARTITION p201601  VALUES  LESS THAN (to_days( '2016-12-01' )),
  PARTITION p201612  VALUES  LESS THAN (to_days( '2017-01-01' )),
  PARTITION p201701  VALUES  LESS THAN (to_days( '2017-02-01' )),
  PARTITION p201702  VALUES  LESS THAN (to_days( '2017-03-01' ))
  );

 

2.插入json类型测试数据 

1
2
3
4
5
6
insert  into  `t_equipment_traffic` (cn,st,description)  values  ( 'liaoa12345roiland' ,now(),
'{"time":"2015-01-01 13:00:00","speed":"100","result":"fail"}' );
insert  into  `t_equipment_traffic` (cn,st,description)  values  ( 'liaoa12345roiland' ,now(),
'{"time":"2017-01-01 13:00:00","speed":"110","result":"fail"}' );
insert  into  `t_equipment_traffic` (cn,st,description)  values  ( 'liaoa12345roiland' ,now(),
'{"time":"2017-01-02 13:00:00","speed":"110","result":"sucessed"}' );


3.json简单查询方法

1
2
3
4
select  cn,description  from  t_equipment_traffic  where  cn= 'liaoa12345roiland' ;
select  from  t_equipment_traffic  where  description -> '$.time'  '2016-12-31' ;
select  cn,json_extract(description, '$.speed' AS  'speed' ,json_extract(description, '$.result' AS  'result' 
from  t_equipment_traffic;


4.创建虚拟列

1
2
ALTER  TABLE  t_equipment_traffic   ADD  description_speed  int (10) 
GENERATED ALWAYS  AS  (description-> '$.speed' ) VIRTUAL;



5.创建索引

1
alter  table   t_equipment_traffic  add  index  idx_speed (description_speed);


6.查看执行计划

explain partitions select * from t_equipment_traffic where description_speed=100;


二、小结 

1.mysql 5.7 已开始支持json数据类型,存储引擎使用Innodb

2.对于物联网设备上数存储完全可以采用json,大数据量,经常会变更字段的场景十分适合。

3.uuid+json+innodb+partition 解决数据手动同步可能导致的主键冲突,经常字段变更,数据的定期删除。


###############################################










本文转自 roidba 51CTO博客,原文链接:http://blog.51cto.com/roidba/1881401,如需转载请自行联系原作者
相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
5月前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
2月前
|
存储 JSON 关系型数据库
MySQL与JSON的邂逅:开启大数据分析新纪元
MySQL与JSON的邂逅:开启大数据分析新纪元
|
4月前
|
JSON 关系型数据库 MySQL
MySQL中GROUP_CONCAT与JSON_OBJECT、GROUP BY的巧妙结合:打造高效JSON数组汇总
MySQL中GROUP_CONCAT与JSON_OBJECT、GROUP BY的巧妙结合:打造高效JSON数组汇总
|
4月前
|
JSON 关系型数据库 MySQL
理解和利用MySQL中的JSON功能
理解和利用MySQL中的JSON功能
104 2
|
4月前
|
JSON 关系型数据库 MySQL
实时计算 Flink版产品使用问题之在使用CDAS语法同步MySQL数据到Hologres时,如果开启了字段类型宽容模式,MySQL中的JSON类型会被转换为什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
存储 JSON 关系型数据库
MySQL JSON 类型:功能与应用
MySQL JSON 类型:功能与应用
|
5月前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在DataWorks中,使用JSON解析函数将MySQL表中的字段解析成多个字段将这些字段写入到ODPS(MaxCompute)中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
177 3
|
5月前
|
SQL JSON HIVE
数仓高频操作JSON篇
数仓高频操作JSON篇
46 0
|
5月前
|
SQL JSON 关系型数据库
MYSQL--JSON_OBJECT 和 JSON_ARRAYAGG
MYSQL--JSON_OBJECT 和 JSON_ARRAYAGG
105 0
|
5月前
|
SQL DataWorks 关系型数据库
DataWorks操作报错合集之DataWorks在同步mysql时报错Code:[Framework-02],mysql里面有个json类型字段,是什么原因导致的
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
126 0

相关产品

  • 物联网平台