导航:首页 > 数据分析 > 如何使用es同步数据库

如何使用es同步数据库

发布时间:2022-12-20 15:50:51

❶ ES同步数据使用切面进行实时更新

以前公司ES使用是直接定时同步,对数据实时性要求不是很高。
当前公司使用sass平台要求实时同步数据,这样才能实时搜索到。最终使用切面方式进行数据同步

viewSupport.updateAll(assetIdList, null); 该方法是自定义的一个业务逻辑处理方法,和功能关系不大,主要作用是通过参数去查询需要更新的数据列表,然后再同步到ES。

枚举类,用于存放切面类的方法名称,比如所有增、删、改方法设计数据变动

❷ mysql同步数据到es有什么好的方法没

先假设有主机 A 和 B ( Linux 系统),主机 A 的 IP 分别是 1.2.3.4 (当然,也可以是动态的),主机 B 的 IP 是 5.6.7.8 。两个主机都装上了 PHP+Mysql ,现在操作的是主机 A 上的资料,如果另外一个主机 B 想跟 A 的资料进行同步,应该怎么做呢? OK,我们现在就动手。 首先,如果要想两个主机间的资料同步,一种方法就是主机 A 往主机 B 送资料,另外一种主法就是主机 B 到主机 A 上拿资料,因为 A 的 IP 是动态的(假设),所以我们就得从主机 A 往主机 B 送资料。 在主机 B 上创建一个 Mysql 账户。 # GRANT ALL ON test.* TO user@% IDENTIFIED BY "password"; //创建用户 user,可以从任何机器访问到主机 B 上的 test 数据库。 如果这里显示错误,先把 % 改为一个 IP ,然后再利用 phpMyAdmin 把 IP 改为 % ,测试无误后就可以写 php 程序。 <? $link=mysql_pconnect("localhost","user","password"); mysql_pconnect("localhost","user","password"); //连接本机(主机A)的数据库 mysql_select_db("test"); //选择数据库test $re=mysql_query("select * from table order by id desc"); $num=mysql_numrows($re); if (!empty($num)) { ...

❸ ElasticSearch海量数据使用简述

应用场景当中经常会遇到模糊查询或多条件匹配查询,数据量较小的情况下通过简单的数据库模糊查询是可以解决的,但是对于数据量庞大的情况,数据库模糊查询就会出现性能问题。这种情况下的一种解决方案就是根据查询内容构建反向索引,借助搜索引擎进行查询,提升查询性能。

目前使用比较多的分布式搜索引擎是ElasticSearch。那么项目中如何使用ES?如何保证ES的数据更新?下面简单做个描述。

Elasticsearch使用可以简单分为两个阶段。数据初始化阶段、数据更新阶段。

数据初始化阶段。数据初始化常见的方式如下:

一、通过应用程序手动将数据库中的数据,调用ES接口API插入ES索引库中。

二、同过数据迁移工具将数据初始化到ES数据库。目前常用的ES同步工具有logstash-input-jdbc、DataX。通过同步迁移工具可以全量将数据库数据初始化到ES索引库中。

数据更新阶段。数据更新阶段常见的处理方式如下:

一、通过应用服务直接调用ES更新接口。这种方式实现比较简单但是对业务侵入性比较大。

二、对于实时性要求不高的可以采用定时任务监控数据表变化然后调用ES接口实现数据更新。

三、业务应用中通过发送消息异步更新数据。

四、通过DataX同步工具定时将修改的数据同步到ES库中。

上述是ElasticSearch使用的简单描述。使用的关键还是数据库与ES间的数据同步。能否用的好关键也是数据间的同步。

❹ 使用canal将mysql同步到es中

因为自己项目中需要用到mysql数据同步到es中,查找了相关资料最后决定用canal来做,所以便有了本文,下面一起来看如何使用canal吧

根据 https://github.com/alibaba/canal 上的原理解释,我们知道 canal 会模拟 mysql slave 的交互协议,伪装自己为 mysql slave,然后向 mysql master 发送 mp 协议。

mysql master 收到 mp 请求,开始推送 binary log 给 slave(也就是 canal),然后 canal 解析 binary log 对象(原始为 byte流)。

经 canal 解析过的对象,我们使用起来就非常的方便了。

再根据 https://github.com/alibaba/canal/releases 提供的版本信息,你会发现 canal 其实相当于一个中间件,专门用来解析 MySQL 的 binlog 日志。canal 解析好了之后,会封装成一个数据对象,通过 protobuf3.0 协议进行交互,让 canal 客户端进行消费。

根据上面的解释,以及 canal 提供的版本信息,我们在使用 canal 的时候,首选要安装一个 canal.deployer-1.1.4.tar.gz 进行解析 MySQL 的 binlog 日志。

下载后,复制 canal.deployer-1.1.4.tar.gz 到 MySQL 主机上,比如放在 /usr/local/soft/目录下。然后依次执行下面的命令:

然后修改 canal 的配置文件 vim conf/example/instance.properties

这三项改成你自己的,比如我的配置如下:

然后保存并退出。(VI 模式下,按 Esc 输入 :wq 回车退出。)

接着,我们检查一下 MySQL 的配置。确定版本和是否开启了 binlog 日志,以及日志格式。

canal 支持 binlog 格式为 ROW 的模式。如果你没开启 binlog,并且格式是非 row 的,建议修改一下 mysql 的配置文件。

执行 mysql –help | grep my.cnf 找到 mysql 的 my.cnf 文件。

执行 vim /etc/my.cnf 命令。添加下面 3 个配置。

然后保存并退出。

接着执行 sudo service mysqld restart 重启 MySQL。

需要注意的是你的 mysql 用户,必须要有 REPLICATION SLAVE 权限。该权限授予 slave 服务器以该账户连接 master 后可以执行 replicate 操作的权利。

如果没有权限,则使用 root 账户登录进 MySQL,执行下面的语句,创建用户,分配权限。

MySQL 启动后,就可以开启 canal 服务了。

开启后,观察 canal 服务的日志,确保服务正常。

查看 canal 的日志

确定没有问题后,开始编写我们的测试程序。

pom.xml 中导入下面的依赖。

使用JAVA进行测试

然后执行 main 方法。你再修改修改 MySQL 中的数据,你会发现所有改变都同步过来了。上面是使用的Java代码进行运行,如果想用canal.adapter来进行运行可以下载

放入服务器中,依次执行下面命令

然后修改配置文件 :

然后将需要运行存储到es的的yml文件放入到

目录下。例如:

然后开启canal-adapter服务

/usr/local/soft/canal-adapter/bin/startup.sh

查看 canal-adapter 的日志,确定没有问题后修改数据 就可以同步到es了

注意:

1、canal-adapter自带mysql连接使用的5.x的,如果自己安装的是高版本的mysql需要自己去/usr/local/soft/canal-adapter/lib增加对应的jar包

2、因项目中同步es使用的sql中有数据库中没有的字段,导致原生程序一直报异常,后修改源码中

加了一个判断后才可以

3、es中使用的date字段类型和数据库中不一致,所以这里又修改了部分源码兼容我们项目中的类型

可以根据各自情况修改。

❺ 如何实现同步两个服务器的数据库

这个要根据不同情况具体分析,有几种方案参考:
数据库A和数据库B是建立在两台独立的数据库服务器上,那么采用dblink方式是一种可行的方式,存在两个数据同步过程:
一、数据库A正常运行的时候需要将数据同步到备用库即数据库B;
二、数据库A不正常的时候启用数据库B,在数据库A恢复正常之前的数据更新都发生在数据库B,那么需要将数据库B的数据同步给数据库A。
第一种方式:前提是数据库A和数据库B本地网是24小时互通的同时对数据同步实时性有比较高的要求,那么可以建立DBLINK,在两个库都建触发器,不管当前在哪个库发生数据更新的时候实时同步数据到目标数据库;
第二种方式:如果数据同步的实时性要求不高,则可以通过定制存储过程的方式(给两个库的数据表加时间戳或者更新标志,)定时同步数据;
第三种方式:通过给两个数据库的数据表加更新标志字段,以第一种方式为主以满足实时性的要求,以第二种方式为辅弥补可能存在的触发器执行更新未成功的情况。
以上的方案都是从数据层面所做的处理,对于数据实时同步还是会存在一定的风险,那么双机热备应该说是最好的选择了。

❻ 如何实现同步两个服务器的数据库

同步两个SQLServer数据库

如何同步两个sqlserver数据库的内容?程序代码可以有版本管理cvs进行同步管理,可是数据库同步就非常麻烦,只能自己改了一个后再去改另一个,如果忘记了更改另一个经常造成两个数据库的结构或内容上不一致.各位有什么好的方法吗?

一、分发与复制

用强制订阅实现数据库同步操作. 大量和批量的数据可以用数据库的同步机制处理:
//
说明:
为方便操作,所有操作均在发布服务器(分发服务器)上操作,并使用推模式
在客户机器使用强制订阅方式。

二、测试通过

1:环境

服务器环境:
机器名称: zehuadb
操作系统:windows 2000 server
数据库版本:sql 2000 server 个人版

客户端
机器名称:zlp
操作系统:windows 2000 server
数据库版本:sql 2000 server 个人版

2:建用户帐号

在服务器端建立域用户帐号
我的电脑管理->本地用户和组->用户->建立
username:zlp
userpwd:zlp

3:重新启动服务器mssqlserver

我的电脑->控制面版->管理工具->服务->mssqlserver 服务
(更改为:域用户帐号,我们新建的zlp用户 .\zlp,密码:zlp)

4:安装分发服务器

a:配置分发服务器
工具->复制->配置发布、订阅服务器和分发->下一步->下一步(所有的均采用默认配置)

b:配置发布服务器
工具->复制->创建和管理发布->选择要发布的数据库(sz)->下一步->快照发布->下一步->选择要发布的内容->下一步->下一步->下一步->完成

c:强制配置订阅服务器(推模式,拉模式与此雷同)
工具->复制->配置发布、订阅服务器和分发->订阅服务器->新建->sql server数据库->输入客户端服务器名称(zlp)->使用sql server 身份验证(sa,空密码)->确定->应用->确定

d:初始化订阅
复制监视器->发布服务器(zehuadb)->双击订阅->强制新建->下一步->选择启用的订阅服务器->zlp->下一步->下一步->下一步->下一步->完成

5:测试配置是否成功

复制监视器->发布衿?zehuadb)->双击sz:sz->点状态->点立即运行代理程序

查看:
复制监视器->发布服务器(zehuadb)->sz:sz->选择zlp:sz(类型强制)->鼠标右键->启动同步处理

如果没有错误标志(红色叉),恭喜您配置成功

6:测试数据

在服务器执行:

选择一个表,执行如下sql: insert into wq_newsgroup_s select '测试成功',5

复制监视器->发布服务器(zehuadb)->sz:sz->快照->启动代理程序 ->zlp:sz(强制)->启动同步处理

去查看同步的 wq_newsgroup_s 是否插入了一条新的记录

测试完毕,通过。
7:修改数据库的同步时间,一般选择夜晚执行数据库同步处理
(具体操作略) :d

/*
注意说明:
服务器一端不能以(local)进行数据的发布与分发,需要先删除注册,然后新建注册本地计算机名称

卸载方式:工具->复制->禁止发布->是在"zehuadb"上静止发布,卸载所有的数据库同步配置服务器

注意:发布服务器、分发服务器中的sqlserveragent服务必须启动
采用推模式: "d:\microsoft sql server\mssql\repldata\unc" 目录文件可以不设置共享
拉模式:则需要共享~!
*/
少量数据库同步可以采用触发器实现,同步单表即可。

三、配置过程中可能出现的问题

在sql server 2000里设置和使用数据库复制之前,应先检查相关的几台sql server服务器下面几点是否满足:

1、mssqlserver和sqlserveragent服务是否是以域用户身份启动并运行的(.\administrator用户也是可以的)

如果登录用的是本地系统帐户local,将不具备网络功能,会产生以下错误:

进程未能连接到distributor '@server name'

(如果您的服务器已经用了sql server全文检索服务, 请不要修改mssqlserver和sqlserveragent服务的local启动。
会照成全文检索服务不能用。请换另外一台机器来做sql server 2000里复制中的分发服务器。)

修改服务启动的登录用户,需要重新启动mssqlserver和sqlserveragent服务才能生效。

2、检查相关的几台sql server服务器是否改过名称(需要srvid=0的本地机器上srvname和datasource一样)

在查询分析器里执行:
use master
select srvid,srvname,datasource from sysservers

如果没有srvid=0或者srvid=0(也就是本机器)但srvname和datasource不一样, 需要按如下方法修改:

use master
go
-- 设置两个变量
declare @serverproperty_servername varchar(100),
@servername varchar(100)
-- 取得windows nt 服务器和与指定的 sql server 实例关联的实例信息
select @serverproperty_servername = convert(varchar(100), serverproperty('servername'))
-- 返回运行 microsoft sql server 的本地服务器名称
select @servername = convert(varchar(100), @@servername)
-- 显示获取的这两个参数
select @serverproperty_servername,@servername
--如果@serverproperty_servername和@servername不同(因为你改过计算机名字),再运行下面的
--删除错误的服务器名
exec sp_dropserver @server=@servername
--添加正确的服务器名
exec sp_addserver @server=@serverproperty_servername, @local='local'

修改这项参数,需要重新启动mssqlserver和sqlserveragent服务才能生效。

这样一来就不会在创建复制的过程中出现18482、18483错误了。

3、检查sql server企业管理器里面相关的几台sql server注册名是否和上面第二点里介绍的srvname一样

不能用ip地址的注册名。

(我们可以删掉ip地址的注册,新建以sql server管理员级别的用户注册的服务器名)

这样一来就不会在创建复制的过程中出现14010、20084、18456、18482、18483错误了。

4、检查相关的几台sql server服务器网络是否能够正常访问

如果ping主机ip地址可以,但ping主机名不通的时候,需要在

winnt\system32\drivers\etc\hosts (win2000)
windows\system32\drivers\etc\hosts (win2003)

文件里写入数据库服务器ip地址和主机名的对应关系。

例如:

127.0.0.1 localhost
192.168.0.35 oracledb oracledb
192.168.0.65 fengyu02 fengyu02
202.84.10.193 bj_db bj_db
或者在sql server客户端网络实用工具里建立别名,例如:
5、系统需要的扩展存储过程是否存在(如果不存在,需要恢复):

sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'
go
sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'
go
sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'
go
sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'

接下来就可以用sql server企业管理器里[复制]-> 右键选择 ->[配置发布、订阅服务器和分发]的图形界面来配置数据库复制了。

下面是按顺序列出配置复制的步骤:

1、建立发布和分发服务器

[欢迎使用配置发布和分发向导]->[选择分发服务器]->[使"@servername"成为它自己的分发服务器,sql server将创建分发数据库和日志]
->[制定快照文件夹]-> [自定义配置] -> [否,使用下列的默认配置] -> [完成]

上述步骤完成后, 会在当前"@servername" sql server数据库里建立了一个distribion库和 一个distributor_admin管理员级别的用户(我们可以任意修改密码)。

服务器上新增加了四个作业:

[ 代理程序历史记录清除: distribution ]
[ 分发清除: distribution ]
[ 复制代理程序检查 ]
[ 重新初始化存在数据验证失败的订阅 ]

sql server企业管理器里多了一个复制监视器, 当前的这台机器就可以发布、分发、订阅了。

我们再次在sql server企业管理器里[复制]-> 右键选择 ->[配置发布、订阅服务器和分发]

我们可以在 [发布服务器和分发服务器的属性] 窗口-> [发布服务器] -> [新增] -> [确定] -> [发布数据库] -> [事务]/[合并] -> [确定] -> [订阅服务器] -> [新增] -> [确定]

把网络上的其它sql server服务器添加成为发布或者订阅服务器.

新增一台发布服务器的选项:

我这里新建立的jin001发布服务器是用管理员级别的数据库用户test连接的,

到发布服务器的管理链接要输入密码的可选框, 默认的是选中的,

在新建的jin001发布服务器上建立和分发服务器fengyu/fengyu的链接的时需要输入distributor_admin用户的密码。到发布服务器的管理链接要输入密码的可选框,也可以不选,也就是不需要密码来建立发布到分发服务器的链接(这当然欠缺安全,在测试环境下可以使用)。

2、新建立的网络上另一台发布服务器(例如jin001)选择分发服务器

[欢迎使用配置发布和分发向导]->[选择分发服务器]

-> 使用下列服务器(选定的服务器必须已配置为分发服务器) -> [选定服务器](例如fengyu/fengyu)

-> [下一步] -> [输入分发服务器(例如fengyu/fengyu)的distributor_admin用户的密码两次]

-> [下一步] -> [自定义配置] -> [否,使用下列的默认配置]

-> [下一步] -> [完成] -> [确定]

建立一个数据库复制发布的过程:

[复制] -> [发布内容] -> 右键选择 -> [新建发布]

-> [下一步] -> [选择发布数据库] -> [选中一个待发布的数据库]

-> [下一步] -> [选择发布类型] -> [事务发布]/[合并发布]

-> [下一步] -> [指定订阅服务器的类型] -> [运行sql server 2000的服务器]

-> [下一步] -> [指定项目] -> [在事务发布中只可以发布带主键的表] -> [选中一个有主键的待发布的表]

->[在合并发布中会给表增加唯一性索引和 rowguidcol 属性的唯一标识符字段[rowguid],默认值是newid()]

(添加新列将: 导致不带列列表的 insert 语句失败,增加表的大小,增加生成第一个快照所要求的时间)

->[选中一个待发布的表]

-> [下一步] -> [选择发布名称和描述] ->

-> [下一步] -> [自定义发布的属性] -> [否,根据指定方式创建发布]

-> [下一步] -> [完成] -> [关闭]

发布属性里有很多有用的选项:设定订阅到期(例如24小时)

设定发布表的项目属性:

常规窗口可以指定发布目的表的名称,可以跟原来的表名称不一样。

下图是命令和快照窗口的栏目

( sql server 数据库复制技术实际上是用insert,update,delete操作在订阅服务器上重做发布服务器上的事务操作

看文档资料需要把发布数据库设成完全恢复模式,事务才不会丢失

但我自己在测试中发现发布数据库是简单恢复模式下,每10秒生成一些大事务,10分钟后再收缩数据库日志,
这期间发布和订阅服务器上的作业都暂停,暂停恢复后并没有丢失任何事务更改 )

发布表可以做数据筛选,例如只选择表里面的部分列:

例如只选择表里某些符合条件的记录, 我们可以手工编写筛选的sql语句:

发布表的订阅选项,并可以建立强制订阅:

成功建立了发布以后,发布服务器上新增加了一个作业: [ 失效订阅清除 ]

分发服务器上新增加了两个作业:
[ jin001-dack-dack-5 ] 类型[ repl快照 ]
[ jin001-dack-3 ] 类型[ repl日志读取器 ]

上面蓝色字的名称会根据发布服务器名,发布名及第几次发布而使用不同的编号

repl快照作业是sql server复制的前提条件,它会先把发布的表结构,数据,索引,约束等生成到发布服务器的os目录下文件
(当有订阅的时候才会生成, 当订阅请求初始化或者按照某个时间表调度生成)

repl日志读取器在事务复制的时候是一直处于运行状态。(在合并复制的时候可以根据调度的时间表来运行)

建立一个数据库复制订阅的过程:

[复制] -> [订阅] -> 右键选择 -> [新建请求订阅]

-> [下一步] -> [查找发布] -> [查看已注册服务器所做的发布]

-> [下一步] -> [选择发布] -> [选中已经建立发布服务器上的数据库发布名]

-> [下一步] -> [指定同步代理程序登录] -> [当代理程序连接到代理服务器时:使用sql server身份验证]
(输入发布服务器上distributor_admin用户名和密码)

-> [下一步] -> [选择目的数据库] -> [选择在其中创建订阅的数据库名]/[也可以新建一个库名]

-> [下一步] -> [允许匿名订阅] -> [是,生成匿名订阅]

-> [下一步] -> [初始化订阅] -> [是,初始化架构和数据]

-> [下一步] -> [快照传送] -> [使用该发布的默认快照文件夹中的快照文件]
(订阅服务器要能访问发布服务器的repldata文件夹,如果有问题,可以手工设置网络共享及共享权限)

-> [下一步] -> [快照传送] -> [使用该发布的默认快照文件夹中的快照文件]

-> [下一步] -> [设置分发代理程序调度] -> [使用下列调度] -> [更改] -> [例如每五分钟调度一次]

-> [下一步] -> [启动要求的服务] -> [该订阅要求在发布服务器上运行sqlserveragent服务]

-> [下一步] -> [完成] -> [确定]

成功建立了订阅后,订阅服务器上新增加了一个类别是[repl-分发]作业(合并复制的时候类别是[repl-合并])

它会按照我们给的时间调度表运行数据库同步复制的作业。

3、sql server复制配置好后, 可能出现异常情况的实验日志:

1.发布服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制没有多大影响

中断期间,分发和订阅都接收到没有复制的事务信息

2.分发服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制有一些影响

中断期间,发布服务器的事务排队堆积起来
(如果设置了较长时间才删除过期订阅的选项, 繁忙发布数据库的事务日志可能会较快速膨胀),

订阅服务器会因为访问不到发布服务器,反复重试
我们可以设置重试次数和重试的时间间隔(最大的重试次数是9999, 如果每分钟重试一次,可以支持约6.9天不出错)

分发服务器sql server服务启动,网络接通以后,发布服务器上的堆积作业将按时间顺序作用到订阅机器上:

会需要一个比较长的时间(实际上是生成所有事务的insert,update,delete语句,在订阅服务器上去执行)
我们在普通的pc机上实验的58个事务100228个命令执行花了7分28秒.

3.订阅服务器断网,sql server服务关闭,重启动,关机的时候,对已经设置好的复制影响比较大,可能需要重新初试化

我们实验环境(订阅服务器)从18:46分意外停机以, 第二天8:40分重启动后, 已经设好的复制在8:40分以后又开始正常运行了, 发布服务器上的堆积作业将按时间顺序作用到订阅机器上, 但复制管理器里出现快照的错误提示, 快照可能需要重新初试化,复制可能需要重新启动.(我们实验环境的机器并没有进行快照初试化,复制仍然是成功运行的)

4、删除已经建好的发布和定阅可以直接用delete删除按钮

我们最好总是按先删定阅,再删发布,最后禁用发布的顺序来操作。

如果要彻底删去sql server上面的复制设置, 可以这样操作:

[复制] -> 右键选择 [禁用发布] -> [欢迎使用禁用发布和分发向导]

-> [下一步] -> [禁用发布] -> [要在"@servername"上禁用发布]

-> [下一步] -> [完成禁用发布和分发向导] -> [完成]

我们也可以用t-sql命令来完成复制中发布及订阅的创建和删除, 选中已经设好的发布和订阅, 按属标右键可以[生成sql脚本]。(这里就不详细讲了, 后面推荐的网站内有比较详细的内容)

当你试图删除或者变更一个table时,出现以下错误
server: msg 3724, level 16, state 2, line 1
cannot drop the table 'object_name' because it is being used for replication.

比较典型的情况是该table曾经用于复制,但是后来又删除了复制。

处理办法:
select * from sysobjects where replinfo >'0'
sp_configure 'allow updates', 1
go
reconfigure with override
go
begin transaction
update sysobjects set replinfo = '0' where replinfo >'0'
commit transaction
go
rollback transaction
go
sp_configure 'allow updates', 0
go
reconfigure with override
go

❼ 如何实现数据库实时同步

可以使用专门的同步软件,如:数据库比较与同步工具DBSync,它是一款windows系统下的桌面软件,有免费版。缺点是,它的同步不是实时的,最快只能秒级同步,做不到毫秒级。优点是,使用比较简单,大致步骤:
1、先设置数据库连接字符串,连接双方数据库。
2、指定需要同步的数据表,以及字段对应关系。
3、指定同步方式及频率。
设置好后,软件即可按指定频率,不断检测双方数据库,找出双方之间的差异,并同步差异数据,从而使它们始终保持一致。支持各种数据库,支持多表同步。
希望对你有帮助。

❽ 利用CCR+Reindex跨集群同步阿里云ES数据

ES Version: 7.10.0

1.由于种种原因,测试需要同步生产ES数据至测试ES集群,且需要过滤部分数据后供测试使用(只读即可),索引数据总量10w+,过滤后数据量1w+。
2.实例是购买的阿里云ES服务,且于新网络架构(2020年10月及之后)下购买的,故无法支持跨集群reindex功能,但是可以在同一实例执行reindex。官方链接见文末参考文档。
3.于是考虑CCR(将整个索引同步到测试ES),再Reindex过滤数据到新索引(需要定期去reindex,同步频率沟通为半小时一次),新建ES账号控制索引权限,再开放给测试使用。
4.同步流程大致为下:

1.需要确保两个ES集群在同一个VPC下
2.配置实例网络互通,配置其中一个ES集群即可,另外一个会自动设置。

1.登录ES Kibana(购买ES时默认部署)

2.添加远程ES数据源(即被同步的ES集群)在测试ES集群操作。

稍等片刻之后,索引的同步状态即将变成 Active。查看文档数量,两边一致,同步完成。

1、首先要在测试环境新建索引 chat,字段类型保持与源端一致。
2、编写同步脚本 syncEsData.sh,过滤数据的 "query" 根据需求编写。
3、部署crontab,每半小时执行一次。

新增角色是为了控制测试人员查看全量数据的索引 follow_chat,如果之前是使用的elastic账号,则需要回收替换账号。

https://help.aliyun.com/document_detail/175973.html
https://help.aliyun.com/document_detail/176854.html

❾ elasticsearh同步数据库有几种方式

在新库里面做一张关系表test然后在该表中存放两个ID字段一个是旧数据库中要取其中数据某个表的ID,另一个是新数据库中某个表的ID就可以建立关联了。至于在数据更新时,你写sql语句时要把数据库表名写完整,即库名.表名.字段就行了。不过提醒 你一点就是要把数据库建到一个实例名下

阅读全文

与如何使用es同步数据库相关的资料

热点内容
st7565液晶12864串行程序 浏览:477
文件存档英语 浏览:799
iphone4s和5s摄像头 浏览:710
sql怎么将一组的数据查出来 浏览:160
中间代码生成四元式 浏览:861
linux挂载光盘命令 浏览:704
桌面上的文件怎么发送到自己qq 浏览:291
gev文件用什么打开 浏览:155
如何选择app服务器 浏览:67
共享单车有什么app软件 浏览:393
java游戏横屏教程 浏览:210
苹果7如何设置夜间模式 浏览:37
javaapplet生命周期 浏览:788
iphone解锁macbook 浏览:409
能用手机打开的脚本文件格式 浏览:19
win10的画图怎么保存 浏览:933
糖果小号密码转换工具 浏览:805
mac双系统win10ghost吗 浏览:588
如何删除光盘上的文件 浏览:900
maclinux开发 浏览:327

友情链接