1.熟悉JAVA,Javascript,Python语言.
2.熟悉Springcloud,Struts2,Hibernate,Mybatis等java基础框架的使用,有一定的分布式应用架构能力.
3.熟悉Express等Node后端框架的基本使用.
4.熟悉React前端框架.
5.熟悉Oracle数据库sql调优,Cube建立,以及大批量的数据查询优化与ETL优化.
6.接触过爬虫开发.
7.数据ETL工具的基本使用.
8.熟悉Kafka消息队列.
9.有一定的并发编程经验,能处理一些进程协调问题,熟悉java中的concurrent,对Zookeeper进程协调工具有一定的了解.
10.熟悉elasticsearch搜索引擎.
11.熟悉maven打包工具及idea,eclipse的使用,熟悉tomcat web容器及weblogic应用服务器,做过weblogic集群部署.
12.熟悉如单例模式,工厂方法模式,策略模式,状态模式,代理模式,装饰器模式等基本设计模式,并能混合使用,灵活给出java版的实现,javascript尚可,python中并没有太过尝试,多为脚本开发,太过复杂没有必要.
13.熟悉javascript的es6标准,会使用es7的await/async,使用过webpack打包工具,babel编译器,熟悉npm的使用.
14.熟悉javascript中的jsdom工具,虚拟过浏览器环境来进行html数据抓取.
15.基本使用过python中的beautifulsoap.
16.接触过pl/说全了,但并不熟练,需要参考示例及文档,较容易留坑.
17.有一定的正则表达式编写能力.
18.nginx代理常用,但不敢说很会.
1.南通市全民健康信息平台-医疗统计系统
初入行业接触的系统,主要功能是对大批量的医疗数据进行统计分析,并利用echarts进行数据可视化,本人负责其中的全部模块.
难点是,聚合的口径的统一以及如何进行查询优化,因为项目由本人一人负责,所以在聚合口径的统一并不是一个很大的问题,主要的就是如何进行查询优化,由于且数据库采用的oracle 11g,只有行存储模式,且项目是数据仓库性质,行太大,且经常设计到两三个千万级甚至上亿的大表的关联.且用户甚至要求时间的查询范围要支持到年,一年的数据几乎占了一张表的四分之一,所以这种批量的数据处理,oracle很难采用索引的方式去优化,因为即使你建立的索引,oracle也会认为by rowid代价太高而不予采用.且这种批量的数据的计算对于cpu来说也是一个负担,并不适合开启并行模式.而数据仓库的特性导致行存储的性能损耗严重,所以根据实际业务采用定时脚本建立数据cube,并对cube进行索引来优化查询.
项目目前准备尝试支持小批量的事实查询,因为服务器资源限制,且本人并不熟悉spark,准备尝试elasticsearch6的聚合,小批量的情况下五节点集群效果不错,目前仍在重构中.