生活中IT男是最痛苦的!在工作中会有各种问题出现,各种各样的坑要填!~
下面是我碰到的一个技术难题,用了两天时间才解决。感觉累,但是觉得这个方法能够满足需求吧。
拿出来和大家分享下!
一、环境
数据库分类:数据生产库(mysql5.5)、前台展示库(mysql5.7)、全文检索库(MongoDB3.4)
服务器:生产系统(Windows)、前台展示(Linux6.5)、全文检索(Linux6.5)
二、需求分析
生产环节:通过软件生产数据并标引入库到数据生产库(mysql5.5),生产环节不详细说。
前台展示库:根据数据的属性创建维度表,创建的对象有内容和书属性事实表,维度表有区域、专辑等。
全文检索库:由于数据量非常大,上千万条数据,根据需求必须在内容中进行全文检索,mysql对上千万级数据全文检索是非常薄弱和慢的,为了提高检索性能选择了mongodb+luncene+IkAnalyzer进行配合。
三、设计思路
根据需求整体流程中难点有前台展示库(mysql5.7)和NoSql数据库(MongoDB)之间的数据同步,生产数据库和前台数据库之间的数据同步及生产数据转换为前台可以展示的数据。IT人喜欢专研,要不就不做,要做就做最自动化的东西。
实现方式: 生产数据库———》ETL工具————》前台数据库————》tungsten————》mongodb————》lucene+IKAnalyzer
介绍: