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实战】mysql的数据如何迁移到es中 如果mysql怎么和es联动你被上述问题困扰过mysql怎么和es联动,可以参考以下方案
这里需要介绍三种字段的typemysql怎么和es联动,分别是object 、 nested 、 join
现在有个问题mysql怎么和es联动 , 下面的数据如何存入到es中呢,它对应的mapping应该是什么样的呢
name、url这些字段好处理,直接设定字段 "type" : "text" 或者 "type" : "keword" 或者
就行了,但是对于address和links,这种里面包含json对象,或者数组的,怎么处理呢 。这里可以采用 "type" : "object" 来处理 。如下
可能会对links有疑问,它明明是数组,却怎么和address的设置类似 。其实es中是没有单独的数组这一类型,因为mysql怎么和es联动他所有的字段都支持数组,比如你是text , 你可以放多个值进去,以name为例,你可以放 "name":["张三", "李四"] 这样的数据进去 。
而且,es默认对这种嵌套结构建立的索引就是object类型, "type": "object" 可以省略 ??
于是可以变为下面这样
甚至,通过添加properties , 可以无限嵌套下去 。
下面说object类型的缺点了,缺点也是由它本身结构导致的
对于数组结构,是这么存储数据的,以上面的address为例,他会把json结构平铺开,然后把所有这个字段的值放在平铺后的字段上:
这在查询时就出现问题了,本来Google和是绑定的,但是这种结构无法满足这种绑定的关系 , 也就是如果你想查name是Baidu , 并且url是的,竟然也能查出来??,而这和前面所插入的文档内容不符 。
所以需要nested结构和join结构出场了
嵌套结构解决了我们查询嵌套文档字段的问题,同样的,也可以解决,在es中实现类似mysql的join查询的问题 。
外键就需要设置为nested(虽然现在设计表几乎不用外键约束了,但外键的逻辑还是在的?? )
另外,nested字段本身会形成一个文档 , 只不过是嵌套在大的文档下,所以在统计索引的文档数时,实际上是最外层的文档数加上nested字段形成的文档数
这里需要注意,以nested里面的字段为查询条件,需要修改下查询DSL , 在外层加一层nested,每有一层nested嵌套关系 , 就需要加一层
由于es本身对文档通过nested字段进行了绑定 , 索引更新数据时,整个文档都会被替换,代价会大一些,但是由于关系绑定好了,查询会快一些 。这里的代价大一些,查询快一些自然就是和join类型对比啦 。
推荐阅读
- 厂长直播屏录,厂长在哪个直播平台
- 联想电脑怎么调试网络连接,联想电脑的网络设置在哪里
- 微信视频号上架螃蟹怎么弄,微信视屏号怎么上热门
- mysql启动以后怎么用 mysql启动过程
- 微信如何绑腾讯视频号,微信如何绑腾讯视频号
- 回潮天气电脑怎么办,回潮天怎么除湿
- 无人直播类目选择,无人直播做什么内容好
- php对数据库的读写权限 php读取数据库内容并输出
- 个企怎么开公众号赚钱,个企怎么开公众号赚钱