Elasticsearch7.15.2 mysql8.0.26 logstash-input-jdbc 数据增量索引构建

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文章目录

          • 一、基础软件安装
            • 1. 安装mysql
            • 2. Elasticsearch7.15.2 安装部署
            • 3. kibana 安装部署
            • 4. logstash-input-jdbc 安装部署
          • 二、数据库准备
            • 2.1. 创建数据库
            • 2.2. 表结构初始化
            • 2.3. 数据初始化
          • 三、logstash 配置mysql
            • 3.1. 创建目录
            • 3.2. 上传mysql驱动
            • 3.3. 创建jdbc.conf
            • 3.4. 创建jdbc.sql
            • 3.5. 创建last_value_meta
            • 3.6. 赋予权限
          • 四、启动中间件
            • 4.1. 启动mysql
            • 4.2. 启动es7
            • 4.3. 启动kibana
            • 4.4. 点评搜索索引定义
            • 4.5. 启动logstash
            • 4.6. 验证全量索引
            • 4.7. 增量索引同步

一、基础软件安装
1. 安装mysql

Mysql 8.0 安装教程 Linux Centos7

2. Elasticsearch7.15.2 安装部署

Elasticsearch7.15.2 安装、部署(linux环境)

3. kibana 安装部署

kibana 一分钟下载、安装、部署linux

4. logstash-input-jdbc 安装部署

logstash-input-jdbc 下载安装 linux

二、数据库准备
2.1. 创建数据库

创建dianpingdb数据库
在这里插入图片描述
在这里插入图片描述

2.2. 表结构初始化

表结构sql

2.3. 数据初始化

数据初始化

三、logstash 配置mysql
3.1. 创建目录
cd /app/logstash-7.15.2/bin
mkdir mysql
3.2. 上传mysql驱动

将mysql驱动上传到mysql目录下面
在这里插入图片描述

cd mysql
ll

在这里插入图片描述

3.3. 创建jdbc.conf
vim jdbc.conf

添加内容:

input {jdbc {# 设置 timezone 统一时间jdbc_default_timezone => "Asia/Shanghai"# mysql 数据库连接,dianpingdb为数据库名称jdbc_connection_string => "jdbc:mysql://localhost:3306/dianpingdb?useUnicode=true&characterEncoding=UTF8&autoReconnect=true"# 用户名和密码jdbc_user => "root"jdbc_password => "123456"# 驱动jdbc_driver_library => "/app/logstash-7.15.2/bin/mysql/mysql-connector-java-8.0.27.jar"# 驱动类名jdbc_driver_class => "com.mysql.cj.jdbc.Driver"jdbc_page_size => "50000"# 记录上一次更新时间last_run_metadata_path => "/app/logstash-7.15.2/bin/mysql/last_value_meta"# 执行的sql 文件路径+名称statement_filepath => "/app/logstash-7.15.2/bin/mysql/jdbc.sql"# 设置监听间隔 字段含义(由左至右)分、时、天、月、年 全部* 默认每分钟实时更新schedule => "* * * * *"}
}output {elasticsearch {# ES 的IP地址及端口hosts => ["localhost:9200"]# 索引名称index => "shop"document_type => "_doc"# 自增ID 需要关联数据库中有一个id字段,对应索引的id号document_id => "%{id}"}stdout {# JSON格式输出codec => json_lines}
}
3.4. 创建jdbc.sql
vim jdbc.conf

添加内容:

SELECT a.id,a.name,a.tags,CONCAT(a.latitude,',',a.longitude) AS location,a.remark_score,a.price_per_man,a.category_id,b.`name` as category_name,a.seller_id,c.remark_score as seller_remark_score,c.disabled_flag as seller_disabled_flag FROM shop a INNER JOIN category b on a.category_id =b.id INNER JOIN seller c on c.id = a.seller_id where a.updated_at > :sql_last_value or b.updated_at > :sql_last_value or c.updated_at > :sql_last_value

格式化后:

SELECTa.id,a.NAME,a.tags,CONCAT( a.latitude, ',', a.longitude ) AS location,a.remark_score,a.price_per_man,a.category_id,b.`name` AS category_name,a.seller_id,c.remark_score AS seller_remark_score,c.disabled_flag AS seller_disabled_flag 
FROMshop aINNER JOIN category b ON a.category_id = b.idINNER JOIN seller c ON c.id = a.seller_id 
WHEREa.updated_at > : sql_last_value OR b.updated_at > : sql_last_value OR c.updated_at > : sql_last_value
3.5. 创建last_value_meta
vim last_value_meta

添加内容:
数据是2019年的,因此,填写一个早一点的日期即可

2010-11-11 11-11-11
3.6. 赋予权限

操作ELK均使用es用户,在安装es7是此用户已经创建,企业中不允许使用root和软件限制root用户操作;因此,这样可以做到权限分明

chown es.es /app/logstash-7.15.2/ -R
四、启动中间件
4.1. 启动mysql

linux7.x

systemctl start mysql
systemctl status mysql

linux6.x

service mysql start
service mysql status 
4.2. 启动es7
su - es
cd /app/elasticsearch-7.15.2/
bin/elasticsearch -d
4.3. 启动kibana

启动方式任选一种

su - es
cd /app/kibana-7.15.2-linux-x86_64/
  • 前台启动
bin/kibana
  • 后台启动
nohup bin/kibana &

注意,由于kibana是前台启动因此,此命令窗口不能关闭

4.4. 点评搜索索引定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 点评搜索索引定义初始化es7
PUT /shop
{"settings": {"number_of_shards": 1,"number_of_replicas": 0}, "mappings": {"properties": {"id":{"type": "integer"},"name":{"type": "text","analyzer": "ik_max_word","search_analyzer": "ik_smart"},"tags":{"type": "text","analyzer": "whitespace","fielddata": true},"location":{"type": "geo_point"},"remark_score":{"type": "double"},"price_per_man":{"type": "integer"},"category_id":{"type": "integer"},"category_name":{"type": "keyword"},"seller_id":{"type": "integer"},"seller_remark_score":{"type": "double"},"seller_disabled_flag":{"type": "integer"}}}
}

在这里插入图片描述
在这里插入图片描述

#搜索shop文档索引
GET /shop/_search

在这里插入图片描述
在这里插入图片描述

4.5. 启动logstash
su - es
cd /app/logstash-7.15.2/bin
./logstash -f mysql/jdbc.conf

在这里插入图片描述控制台日志:红色部分是咱们的sql,蓝色部分是同步的数据
在这里插入图片描述

4.6. 验证全量索引
# 搜索shop文档索引
GET /shop/_search

在这里插入图片描述

4.7. 增量索引同步

手动修改数据库数据,模拟增量同步
原数据
在这里插入图片描述
修改后数据
在这里插入图片描述
提交事务,观察logstash控制台和es
在这里插入图片描述
在这里插入图片描述

# 搜索shop文档索引
GET /shop/_search
{"query": {"match": {"name": "面馆"}}
}

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么说下一个十年的主战场在Serverless?

作者 | 不瞋,阿里云 Serverless 负责人"唯有超越,才能让我们走下去。"这是不瞋在阿里的第十年。从2010 年加入阿里云,不瞋参与了阿里云飞天分布式系统的研发,历任批量计算的架构师、表格存储(NoSQL&#xff…

解密淘宝推荐实战,打造 “比你还懂你” 的个性化APP

如今,推荐系统已经成为各大电商平台的重要流量入口,谁才能够做到比用户更懂用户,谁占据了新零售时代的主动权。手机淘宝的推荐更是淘宝最大的流量入口和最大的成交渠道之一,其背后是最为复杂的业务形态和最复杂的场景技术&#xf…

Elasticsearch7.15.2 基础概念和基础语法

文章目录一、基础概念1. ES是什么?2. 名词定义3. 对应关系4. 索引5. 分词二、基础概念2.1. 索引创建2.2. 索引/文档删除2.3. 索引修改三、ES 查询3.1. 简单查询3.2. 分页查询3.3. 复杂查询四、利用analyze api搜索4.1. 索引创建4.2. 索引查询4.3. 分词结果4.4. 索引…

技术重塑未来工作方式

作者: Nutanix亚太及日本地区高级副总裁兼销售负责人 Matt Young 新冠肺炎被宣布为“大流行病”之后,几乎在一夜之间,业务连续性的概念发生了根本性变化。在此之前,业务连续性通常指的是企业在某一办公地点遭遇像洪灾等恶劣天气或…

Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(本地)

背景: IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。 目标: 定制化中文分词器,使得我们的中文分词器支持扩展的词汇 …

多点在线构建Noxmobi全球化精准营销系统

摘要:大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本&am…

Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(远程)

IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。 文章目录一、静态web搭建1. 安装nginx2. 创建es目录3. 创建分词文件4. 存放静态5. 验证二、配置远程分词…

万博智云上云 单机软件升级多并发SaaS平台

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 业务痛点 自2016年开发迁移工具主要面向私有云环境,但是随着公有云用户越来…

学会这10大高性能开发技术,轻松躲过裁员名单!

来源 | 编程技术宇宙责编 | Carol封图 | CSDN 下载自视觉中国程序员经常要面临的一个问题就是:如何提高程序性能?这篇文章,我们循序渐进,从内存、磁盘I/O、网络I/O、CPU、缓存、架构、算法等多层次递进,串联起高性能开…

开放搜索助力提升趣店商城20%转化率

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 趣店集团,成立于2014年3月,是中国领先的金融科技企业&…

Elasticsearch7.15.2 修改IK分词器源码实现基于MySql8的词库热更新

文章目录一、源码分析1. 默认热更新2. 热更新分析3. 方法分析二、词库热更新2.1. 导入依赖2.2. 数据库2.3. JDBC 配置2.4. 打包配置2.5. 权限策略2.6. 修改 Dictionary2.7. 热更新类2.8. 编译打包2.9. 上传2.10. 修改记录三、服务器操作3.1. 分词插件目录3.2. 解压es3.3. 移动文…

母婴企业上云 实现线上线下互动营销、一体化管理服务

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 主要从事母婴产品的销售,拥有三家门店,未上云之前采用…

确认! Python再次夺冠,老码农:崩溃!

2020年转眼已过大半,在近一年的编程语言榜单中,Python已经走上卫冕的道路,并且与Java的差距拉得更远了一些。以往与Java常呈现你追我赶之势,而这一次则是直接相差由10%增加到15%!毋庸置疑Python的火,有目共…

SAP与阿里云的深度合作 为企业提供领先的SaaS 服务

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 什么是企业IT治理? 企业IT治理是对企业中IT资源的合理规划和分配&#xff0…

Docker JFrog Artifactory 7.27.10 maven私服(搭建篇)

文章目录一、docker 准备1. 安装docker2. 启动docker3. 监控docker状态二、docker 镜像2.1. 搜索JFrog Artifactory镜像2.2. 拉取镜像2.3. 开放对应端口2.4. 浏览器验证2.5. 登录一、docker 准备 1. 安装docker yum install docker2. 启动docker systemctl start docker3. 监…

阿里妈妈数据字化营销与MaxCompute的不解之缘

摘要: 大数据计算服务(MaxCompute)是一种快速、完全托管的 GB/TB/PB 级数据仓库解决方案,目前已在阿里巴巴内部得到大规模应用。来自阿里妈妈基础平台大规模数据处理技术专家向大家分享了MaxCompute在阿里妈妈数据字化营销解决方案…

年薪201万的华为“天才少年”曾是三本复读生,逆袭就是抓住每一次提升自己的机会 | AI大赛报名开启

当我们看到“华为最高档天才少年年薪201万的话题”冲上热搜时,大多数人一辈子也无法企及的数字让我们羡慕不已。而入选的大部分是计算机、软件工程、模式识别与智能系统专业,尽管我们知道这些专业很火,薪资很高,但对于百万年薪来说…

redux中间件原理-讲义

1、redux中间件简介 1.1、什么是redux中间件 redux 提供了类似后端 Express 的中间件概念,本质的目的是提供第三方插件的模式,自定义拦截 action -> reducer 的过程。变为 action -> middlewares -> reducer 。这种机制可以让我们改变数据流&…

MySQL8.0.26 开启bin_log日志 linux

binlog日志,即binary log,是二进制日志文件。它有两个作用,一是增量备份,即只备份新增的内容;二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据。我们可以通过bi…

基于阿里云 MaxCompute 构建企业云数据仓库CDW

在本文中阿里云资深产品专家云郎分享了基于阿里云 MaxCompute 构建企业云数据仓库CDW的最佳实践建议。 本文内容根据演讲视频以及PPT整理而成。 大家下午好,我是云郎,之前在甲骨文做企业架构师8年,目前是MaxCompute产品经理。 在这么长的客户…