1.南通市全民健康信息平台-医疗统计系统
初入行业接触的系统,主要功能是对大批量的医疗数据进行统计分析,并利用echarts进行数据可视化,本人负责其中的全部模块.
难点是,聚合的口径的统一以及如何进行查询优化,因为项目由本人一人负责,所以在聚合口径的统一并不是一个很大的问题,主要的就是如何进行查询优化,由于且数据库采用的oracle 11g,只有行存储模式,且项目是数据仓库性质,行太大,且经常设计到两三个千万级甚至上亿的大表的关联.且用户甚至要求时间的查询范围要支持到年,一年的数据几乎占了一张表的四分之一,所以这种批量的数据处理,oracle很难采用索引的方式去优化,因为即使你建立的索引,oracle也会认为by rowid代价太高而不予采用.且这种批量的数据的计算对于cpu来说也是一个负担,并不适合开启并行模式.而数据仓库的特性导致行存储的性能损耗严重,所以根据实际业务采用定时脚本建立数据cube,并对cube进行索引来优化查询.
项目目前准备尝试支持小批量的事实查询,因为服务器资源限制,且本人并不熟悉spark,准备尝试elasticsearch6的聚合,小批量的情况下五节点集群效果不错,目前仍在重构中.