李志涛

导航

es基础搜索服务方案

一、背景

公司业务搜索和统计需求非常多,由于查询SQL关联多且复杂,SQL语句把大量业务逻辑和大量计算堆砌到MySQL服务器上,经常导致线上MySQL负载高,随后响应和吞吐量下降,严重影响线上MySQL持续稳定服务,所以各个团队逐步或已经把繁重的查询和统计SQL工作迁移到es上,es架构比较合适查询和统计服务,各个团队做相同事情,影响效率,而且因es需要同步DB加大了DB负担,业务架构团队希望es搜索服务化,1.为服务化,业务解耦提供支撑 2.相同功能接口复用,提高团队开发效率。通过调研数据模型,先服务化online_class和student为主表的查询和统计需求。

二、目标

  • 针对online_class和student主表,提供统一es存储和查询服务

三、方案

1.es存储
创建数据模型
es数据模型及服务化思考    重点考虑如何构建简单数据模型能适配核心需求
数据同步
初始化全量同步 + 增量同步保证MySQL数据复制到es
 
可以复用已经有的功能代码,重点考虑如何fork和迁移代码
2.es查询
 

四、执行计划

执行风险:我以前没有使用过es,有人能协助或一起开发最好,不然遇到困难卡住了,会耽误时间,最大风险执行时间可控性较差,未知东西居多。
方向
类型
任务
优先级
计划完成时间
状态
es存储
es用法学习
es语法
P0
2018-03-14
   
es索引、类型、文档、字段
P0
2018-03-14
   
索引、类型创建
P0
2018-03-14
   
简单对象查询
P0
2018-03-14
   
聚合函数功能
P0
2018-03-14
   
可视化操作
P0
2018-03-15
   
API使用
P0
2018-03-15
 
申请环境
申请测试环境
P0
2018-03-15
 
参考mes项目
下载代码
P0 
 2018-03-14
 
   
与庆虎沟通,了解以下类调研es API用途
com.vipkid.mes.service.impl
P0
 2018-03-15
 
 
验证数据模型可行性
创建数据模型
   
   
构造数据
   
   
写query语句,验证宽表需求
   
 
确定数据模型
满足90%需求
   
 
创建es项目工程
     
           
 
全量同步工具
找相关同学沟通,迁移代码
   
   
测试验证
   
           
 
增量同步代码
找相关同学沟通,迁移代码
   
   
测试验证
   
           
es查询
 
clt组整理:宽表需求业务SQL统计  30+
   
       
   
基础服务组整理:es-api
   
       
 
 

posted on 2020-08-11 23:26  李志涛  阅读(451)  评论(0编辑  收藏  举报