IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> NoSQL简介及其和MySQL的对比 -> 正文阅读

[大数据]NoSQL简介及其和MySQL的对比

本文转载自助教提示文档,仅供学习使用

目录

一、安装 Java

?二、安装 Python

三、安装必要的 Python 第三方软件包

四、安装、配置、启动 Elasticsearch 数据库服务

五、安装、配置并启动 MySQL 数据库服务

?六、创建表结构

七、执行数据写入

?八、执行全文检索

本演示将以当下最热门的 NoSQL 文档存储(分布式实时搜索引擎)Elasticsearch(简称ES)和最热门的开源 RDBMS MySQL 为数据库工具,在示例数据集上,分别演示利用 Python 代码对 NoSQL 和 RDBMS 进行数据的写入和读取(查询)的过程,并简单对比其性能。演示大致步骤包括:Step 1:安装并启动 ES 服务(在一台 PC 机部署两个 ES instance,构成分布式集群)和 MySQL 服务;Step 2:创建 ES 索引结构和 MySQL 表结构;Step 3:分别向ES、MySQL 写入数据,并对比写入速度;Step 4:分别从 ES、MySQL 进行全文检索,并对比检索和数据读取速度。

鉴于大部分同学们多使用 Windows?系统,下面以 Windows?10 系统为例演示 NoSQL 相关操作,简化大家的学习负担。若使用 MacOS 系统,可利用 Virtualbox?工具安装 Win?10?虚拟机,在 Win10?虚拟机上模拟 Windows?10?系统的操作。考虑到部分同学可能无法下载相应软件,如下安装过程中涉及到的安装包(部分软件区分 64?位和 32?位系统)均已准备好放software?文件夹中,通过百度网盘进行共享,可供下载;同时,演示用的代码文件存放code?文件夹中,也在百度网盘中 可以下载 ;百度网盘的分享链接为 : https://pan.baidu.com/s/1uYE3S_XZ49tOg0Trf2CyCQ?pwd=we9t,提取码为: we9t。此外, 相关文件路径为演示用的机器路径仅供参考,安装过程中需要根据个人电脑设置进行相应修改。详细步骤阐述如下,同学们可以按照该步骤在课前进行相关软件的安装与配置

一、安装 Java

由于 Elasticsearch?需要 Java?环境,所以需要安装 Java。建议采用 JDK?1.8?版本,可参考https://www.cnblogs.com/xmnote/p/11306986.html?或其他教程进行?JDK?下载、安装与环境变量设置,注意下载 JDK?时根据自己机器是 64?位还是 32?位,选择下载相应安装文件。打开Windows?cmd?命令行工具(在win10?桌面左下角搜索框内输入cmd?后回车即可打开该工具),在 Windows?cmd?中输入 java?-version,返回如下信息,表示 Java?安装成功。

?二、安装 Python

?课程演示的数据写入和读取过程由 Python 完成,因此需要安装 Python。课程演示代码在 Python 3.7 环境下测试通过,因此建议采用 Python 3.7,并使用 Anaconda 版 Python。可在官方网站进行下载 https://www.anaconda.com/distribution/#download-section,注意根据自己机器是 64 位还是 32 位,选择下载相应安装文件。下载完成之后双击 exe 文件进行安装,一直选 next 即可完成安装。安装完成后,将 Anaconda 实际安装路径 C:\Users\linhao\anaconda3 以及脚本路径 C:\Users\linhao\anaconda3\Scripts 加入系统环境变量 PATH 中(关于如何修改系统环境变量可参考?https://jingyan.baidu.com/article/4f7d5712ba9f735b201927ac.html)。重新打开 Windows cmd 命令行工具,在 Windows cmd 中输入 python 以及 pip,如能正常显示,则表示 Python 安装成功。?

? 出现上述 warning,需要在 cmd 中再执行 activate base,以加载必要的 Python Library,

否则后面使用 Python 可能会有 DLL load failed 的错误。

三、安装必要的 Python 第三方软件包

? 在 Windows?命令行 cmd?中通过 pip?命令安装用于连接 Elasticsearch?和 MySQL?数据库的Python?Client,命令分别是 pip?install?elasticsearch==5.4.0?-i?http://pypi.douban.com/simple?-- trusted-host pypi.douban.com,pip install PyMySQL -i http://pypi.douban.com/simple?--trusted- host?pypi.douban.com。执行完成之后,在 Python?中能成功 import?各自的 package?即表示安装成功。注意针对?ES?数据库我们将使用?2.3.3?版本(较旧),因此对应的?ES?python?client?版本 我 们 选 择 安 装 兼 容 的 5.4.0?版 本 。 PyMySQL?官 方 文 档 见https://pymysql.readthedocs.io/en/latest/ 。 elasticsearch Python client 官 方 文 档 见https://elasticsearch-py.readthedocs.io/en/master/。?

四、安装、配置、启动 Elasticsearch 数据库服务

? 首先,推荐以源码方式安装和启动?ES?数据库服务(这种方式较为简单,且平台移植性较?好,也?较容易?在单机上部署多个数据库实例?)。?具?体而言?,?在https://www.elastic.co/downloads/past-releases/elasticsearch-2-3-3 中下载 2.3.3 版本的Elasticsearch?数据库源码?ZIP?文件(若无法访问该链接,可直接使用百度网盘中?elasticsearch- 2.3.3.zip )?, 解 压 后 置 于 桌 面 上 。 ES 2.3.3 文 档 见https://www.elastic.co/guide/en/elasticsearch/reference/2.3/index.html

随后,需要安装 Elasticsearch?数据库图形化管理界面插件 head。具体而言,打开 Windows 命 令 行 工 具 cmd , 执 行 进 入 ES 数 据 库 源 码 目 录 的 命 令 cd C:\Users\linhao\Desktop\elasticsearch-2.3.3,执行 bin\plugin?install?mobz/elasticsearch-head,如下图所示即表示 head?安装成功。如果出现无法访问 Github?的情况(安装过程中卡住无响应),导致无法安装成功,可以直接从百度网盘中下载?elasticsearch-head-master.zip,解压后复制到 C:\Users\linhao\Desktop\elasticsearch-2.3.3\plugins?目录下,并将文件夹名 elasticsearch- head-master?重命名为 head?即可。

紧接着安装 IK 分词插件,以支持中文全文检索,需要下载 ik 1.9.3 版本,链接在https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v1.9.3/elasticsearch-?analysis-ik-1.9.3.zip(如无法访问?github,可以直接从百度网盘中进行下载),下载完成之后解压将 elasticsearch-analysis-ik-1.9.3 整个文件夹拷贝到 C:\Users\linhao\Desktop\elasticsearch-

2.3.3\plugins 路径下,并将 C:\Users\linhao\Desktop\elasticsearch-2.3.3\plugins 路径下的elasticsearch-analysis-ik-1.9.3 文件夹名命名为 ik。最后在 C:\Users\linhao\Desktop\elasticsearch- 2.3.3\config\elasticsearch.yml 中增加一行配置:index.analysis.analyzer.default.type: ik 即可完成 ik 配置。

紧?接?着?,?使?用 sublime 编 ?辑 ?器?修?改 Elasticsearch 配 置 文?件C:\Users\linhao\Desktop\elasticsearch-2.3.3\config\elasticsearch.yml,将对应项修改为如下值, 并保存文件修改。

cluster.name: testcluster # 集群名称,可修改为任意英文名称node.name: node1 # 当前节点名称,可修改为任意英文名称bootstrap.mlockall: true

network.host: 127.0.0.1

http.port: 9200 # ES 响应的端口号,默认为 9200

discovery.zen.minimum_master_nodes: 1

? 随?后?,在?Windows?命令行中,进入?进入?ES?数据库源码?目录?cd C:\Users\linhao\Desktop\elasticsearch-2.3.3,执行?bin\elasticsearch.bat?即可启动包含一个?ES?数据 ????库 ????实 ????例 ???的 ????ES 数 据 库 服 务?。

? 在浏览器中输入网址 http://localhost:9200/_plugin/head 即可使用之前安装的 head 插件查看 ES 集群(包含一个 ES 节点 node1)状态。?

?? ES?的一个特点是分布式,因此可以尝试构造包含多个节点的集群,本演示模拟在单机上部署两个节点。简单而言,就是找到刚才桌面上 ES?数据库源码,将其复制一份,并将其文 件 夹 命 名 为 elasticsearch-2.3.3_node2 。 随 后 将 其 中 的 elasticsearch- 2.3.3_node2/config/elasticsearch.yml?文件中 node.name?对应值由 node1?修改为一个新节点名称如 node2,http.port?对应值由 9200?修改为一个新端口号如 9201,保存修改。同时删除elasticsearch-2.3.3_node2?下的?data?文件夹。打开一个新的?cmd,启动?node2?的?ES?服务即可。

在浏览器中刷新网址?http://localhost:9200/_plugin/head,即可看到集群有两个节点都正常提供服务了(原先的 node1?和新配置的 node2?都启动成功并自动连成一个集群了,实际是通过config.yml?文件中 cluster.name?关联起来的)。至此实现单机双节点的 ES?集群配置。类似地,如果想增加更多节点,可以以类似方式进行配置。

?

注:可能存在刷新上述网址仍只有一个节点 node1 的情况,这种情况下可先选中启动node1 ES 服务的命令行窗口敲击回车,再刷新网址即可看到两个节点。这是 Windows 命令行的一个 bug,即命令偶然出现卡顿的情况,需回车才能继续执行。

五、安装、配置并启动 MySQL 数据库服务

? 可搜索网上教程,进行 MySQL Server 的安装与服务启动。建议安装百度网盘中的

MySQL Server 版本 mysql-installer-community-8.0.19.0.msi。

这里推荐csdn上的一个教程:2021MySql-8.0.26安装详细教程(保姆级)_ylb呀的博客-CSDN博客_mysql8.0.26

?六、创建表结构

ES:在 Windows cmd 中进入到 code 目录中运行 python es_create.py

MySQL?创建表的过程稍微复杂一些,需要结合MySQL?Command?Line?Client?进行执行, 可参考 https://blog.csdn.net/chenriyang0306/article/details/54587034,具体步骤如下:

首先,在 Windows 搜索栏中搜索 mysql 8.0 Command Line Client(我的 mysql 是 8.0 版本),打开该客户端工具。

随后输入安装时候给 root 用户设置的密码,我的是 123456,回车。

创建 test 数据库:

创建?news?表结构(SQL?语句在?mysql_create.sql?中):

七、执行数据写入

ES:在 Windows cmd 中进入到 code 目录中运行 python es_write.py

MySQL: 在 Windows cmd 中进入到 code 目录中运行 python mysql_write.py。如果报错误:pymysql.err.DataError: (1406, "Data too long for column 'content' at row 1"),可以在 MySQL client 中设置 SET @@global.sql_mode=’’;取消严格模式再重新执行 python 脚本即可。

?八、执行全文检索

ES:在 Windows cmd 中进入到 code 目录中运行 python es_search.py MySQL: 在 Windows cmd 中进入到 code 目录中运行 python mysql_search.py

注:注意保持 code 文件夹下 config.py 中相关数据库名称、表名称、密码等配置与实际配置一置,避免因不一致产生运行错误信息。比如 config.py 中 MYSQL_PASSWORD 代表的是MYSQL 数据库 root 用户的密码,演示用的是 123456,注意修改成安装 MySQL 时配置的root 用户密码。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:30:00  更:2022-07-17 16:33:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:42:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码