EMQX企业版存储数据进MySql数据库

Posted 瑆玥琼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EMQX企业版存储数据进MySql数据库相关的知识,希望对你有一定的参考价值。

第一步:下载EMQX4.4.11企业版

        在阿里云服务器中安装EMQX企业版,执行以下命令:

一、下载EMQX压缩包

wget https://www.emqx.com/zh/downloads/enterprise/4.4.11/emqx-ee-4.4.11-otp24.3.4.2-1-ubuntu20.04-amd64.zip

二、解压压缩包

unzip emqx-ee-4.4.11-otp24.3.4.2-1-ubuntu20.04-amd64.zip

三、运行EMQX

./emqx/bin/emqx start        

         如果要删除EMQX,只需要删掉/etc目录下的emqx和/usr/lib目录下的emqx文件夹即可。

第二步:在阿里云服务器中安装mysql 

        阿里云服务器的下载源默认是阿里云的镜像源,里面默认下载的是Mysql8.0版本的,如果需要下载别的版本的,可以使用docker容器下载

下载mysql命令

apt install mysql-server

 检验mysql运行命令:

sudo systemct1 status mysql

mysql重启命令:

service mysql restart

        下载完后直接在命令行输入mysql,会进入数据库中,此时你的root用户没有密码,安全等级没有配置,什么都没有。

        接下来在mysql中输入exit退出mysql

        在命令行输入:sudo mysql_secure_installation 

        进入第一个界面,选择y

Securing the MySQL server deployment.

Connecting to MySQL using a blank password.

VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?

Press y|Y for Yes, any other key for No: y

        进入第二个界面,选择0,最低等级的密码验证策略

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0

        进入第三个界面,设置Mysql root用户的密码,如果没有设置验证密码插件,这一步不用管,直接把这个服务器终端关了再开一次,不然退不出去

Please set the password for root here.


New password: 

Re-enter new password: 

        如果设置了密码验证插件,进入第四个界面,这个脚本将会显示你的新密码强度。输入y确认密码。

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y

        随后进入mysql,输入语句:SHOW VARIABLES LIKE 'validate_password%';
来查看安全等级,如果显示出来了就算成功了 

 第三步:开启外部访问服务器Mysql的权限

        在mysql中,输入use mysql选择数据库,再输入 select user,host from user,查看用户信息表格

        默认root用户的host是localhost,使用语句改成%:update user set host='%' where user= 'root';

        随后,退出mysql,在命令行中去到目录/etc/mysql/mysql.conf.d/中,ls查看,修改mysqld.cnf文件

第四步,Navicat连接到Mysql数据库

        按下图所示连接成功后,创建一个新的数据库mqtt

第五步,EMQX控制台创建数据连接规则

        5.1 新建数据源

         5.2 新建规则

 

 第六步,MQTTX上传数据,保存至Mysql

         

         发送消息后,数据存进Mysql

构建实时数据仓库首选,云原生数据仓库AnalyticDB for MySQL技术解密

阿里云分析型数据库重磅推出基础版,极大降低了用户构建数据仓库门槛。高度兼容MySQL,极低的使用成本和极高的性能,使中小企业也可以轻松的搭建一套实时数据仓库,实现企业数据价值在线化。

AnalyticDB for MySQL的产品系列包括基础版(单机版)和集群版,基础版为单个节点提供服务,极简的架构大大的降低了基础版的成本。存储计算分离架构、行列混存技术、轻量的索引构建方式和分布式混合计算引擎又保证了基础版强大的分析性能。年成本不到一万就可以构建一套实时数据仓库,无需成立专门的大数据团队,为企业节省百万成本。

1.基础版技术架构

如下为基础版架构图,整体由Coordinator和Worker组成,各自的职责如下介绍。

1.1 Coordinator: 前端控制节点,职责包括

(1)MySQL协议层接入,SQL解析

(2)认证和鉴权,提供了更完善和细化的权限体系模型,白名单和集群级别RAM控制,并审计与合规记录所有SQL操作。

(3)集群管理:成员管理、元数据、数据一致性、路由同步、备份与恢复(数据与log管理)

(4)后台异步任务管理

(5)事务管理

(6)优化器,执行计划生成

(7)计算调度,负责执行任务调度

1.2 Worker: 存储和计算节点,包含

(1)计算模块

分布式MPP+DAG混合计算引擎和优化器达到了更高的复杂计算能力和混合负载管理能力。利用阿里云计算平台之上资源灵活调度上的优势,实现了计算资源的弹性调度。计算 Worker节点可以单独拉起,因应业务需求做到分钟级甚至秒级扩展,实现资源的最有效利用。

(2)存储模块

存储模块更加轻量化,具备了承载更大吞吐数据实时写入和读取能力,写入性能比之前版本同等规格高50%倍左右,毫秒级可见,满足客户实时分析需求。

存储节点提供全量和增量备份和恢复能力,云盘的定期快照和日志会实时同步到OSS中保存,对用户数据提供更高的安全保障,帮助用户在数据库发生问题时最大限度的找回。

(3)Worker Group

带存储模块的Worker节点被划分为一个个节点组(Worker Group),集群版提供三副本的存储,通过Raft分布式一致性协议像一个整体一样工作,允许其中一些Worker节点出现故障也能继续提供服务,基础版只有单副本提供服务。

2.基础版优化器

优化器负责对Parser生成的语法树进行处理,通过优化算法生成代价最优的计划提供给计算引擎。计划代价直接影响查询性能,因此优化器是数据库中最核心的模块之一。基础版采用了与集群版一样强大的优化器,包含基于规则、基于代价、和基于模式的多种复合优化技术。

构建实时数据仓库首选,云原生数据仓库AnalyticDB for MySQL技术解密

复杂分析型查询经常包含多表join,表的join顺序直接影响查询性能。AnalyticDB优化器采用了基于代价估算和实时采样信息的join order优化算法,能够感知底层存储的数据分布。优化器利用AnalyticDB全索引特征提高了过滤因子(filter factor)估算的准确性。针对复杂join,优化器基于数据分布信息动态调整join order,同时评估数据reshuffling的代价,来从全局代价的维度选择最优的执行计划。

AnalyticDB优化器在经典基于规则优化器(Rule-Based Optimizer)的基础上增加了代价估算和迭代优化,并且集成了Cascades CBO(Cost-Based Optimizer)优化框架。CBO搜索框架会调用 Property Enforcement模块生成分布式执行计划,然后调用代价估算模块,给每一种候选计划评估代价,选择最优的分布式执行计划。为了进一步提高join order的优化效果和效率,AnalyticDB优化器还采用了基于历史信息的优化技术(History-Based Optimizer)、基于常见SQL模式的动态优化技术(Pattern-Based Optimizer),以及数据驱动的智能技术,例如Auto Analyze模块自动搜集统计信息,为优化器搜索最佳计划提供准确的数据支持。

此外,AnalyticDB优化器还针对复杂查询中经常出现的组合过滤条件、聚合算子、关联子查询等进行了一系列优化处理以提升性能。比如下推优化技术将计划中的过滤条件和聚合算子尽量推到整个链路的底层模块去执行,不但提高底层算子的效率,也减少了上游算子要处理的数据量,提高整体查询性能。针对关联子查询语句,优化器通过关系代数转化,将关联子查询改写为语义等价的非关联计划,使得计算引擎可以高效流水线处理。

3.基础版计算引擎

AnalyticDB计算引擎采用大规模并行处理MPP+DAG体系结构和基于内存的pipeline执行模式,具有高并发、低延迟的特点。为了加快对复杂表达式的求值速度,优化执行性能,计算引擎通过Runtime Codegen在运行时生成JVM bytecode,动态加载生成对象的实例,减少了执行过程中虚函数调用,提高了CPU-Intensive任务的效率。计算引擎还采用向量化执行模型处理表达式求值,利用CPU SIMD指令集来加速求值计算。

4.基础版存储引擎

AnalyticDB存储引擎采用行列混合存储的设计。如图所示。对于一张表的每k行数据(Row Group),每列数据连续的存放在单独的Data Block中,每行组的列Block的在磁盘上连续存放。行组内列Block的数据可按指定列排序存放,可以在按该列查询时显著减少磁盘随机IO次数。这种设计的独特优势是兼具了行存(适合OLTP点查询)和列存(适合OLAP多维分析)的长处,很好的满足了不同类型workload的需求:

  • 针对OLTP类型的点查询需要select出一整行的明细数据,行列混存设计下将列存的完全随机读转化为了顺序读

  • 针对OLAP类型的多维分析:不仅解决了海量数据统计分析下行存的读放大问题,而且进行单列IO时将列存的顺序读转化为了顺序跳读,进行多列IO时则将随机读转化为了顺序读

  • 写入大吞吐:列存时的随机写被转化为了顺序写

AnalyticDB存储引擎采用智能全索引,对每列数据建立一个值到行号的倒排索引。查询时,将SQL多个条件表达式的AND、OR 转换成Boolean Query同时走索引,通过搜索得到满足where条件的结果集行号,支持快速多路合并,能够在毫秒级别找出满足条件的结果集。

5.基础版优势

基础版大幅度降低了用户构建数据仓库门槛,与大数据(Hadoop,Spark和EMR)和OLTP建仓方式相比都有超高的性价比。

(1)降低使用门槛

基础版最低1.75元/小时,860元/月,与集群版相比,起步价降低了约三分之一。磁盘空间仅0.6元/GB,磁盘空间上限最大为4T,可以随时按需扩展,大大降低中小企业复杂分析和构建实时数仓的使用门槛。

(2)性能高

同等配置下其数据查询性能约为MySQL的10倍,很好地帮助用户解决MySQL复杂分析慢的痛点。

(3)规格丰富

基础版支持四种规格:T8、T16、T32和T52,可以根据业务的不同要求选择规格和任意调整规格。

(4)生态透明

上下游生态完全兼容集群版,对用户透明。

6.适合客户

特别适合以下人群:

(1)Hadoop/Spark等太复杂,想快速实现数据化转型的中小型企业;

(2)报表数据库查询慢,有交互式BI分析诉求的中小型企业;

(3)需要快速构建测试环境的进行数仓选型的用户;

(4)学习类人群,可快速了解AnalyticDB for MySQL的用户;


以上是关于EMQX企业版存储数据进MySql数据库的主要内容,如果未能解决你的问题,请参考以下文章

内附PPT下载 | 性能为MySQL10倍!阿里云重磅推出云原生数据仓库AnalyticDB基础版

构建实时数据仓库首选,云原生数据仓库AnalyticDB for MySQL技术解密

[adg数据库同步机制]云数据库mongodb版_高性能存储_容灾切换 - 阿里云

云数据库RDS MySQL 版

产品解读 | 敏捷版数据库场景 一站式快速构建企业全场景数据库管理平台

企业版Spark Databricks + 企业版Kafka Confluent 联合高效挖掘数据价值