本文于2019年7月29日完成,发布在个人博客网站上。

考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。


依据领导的规划,本月启动了一项业务迁移工作,作为特别行动,部门安排首席SE亲自带领南京团队交付。

本次特战的目标,使用恰当的技术,重构已有的实时业务,一劳永逸的解决业务交付过程中遇到的问题。

当前基于Oracle交付业务,存在的问题如下:

  1. 业务方案不准确,存在反复。当前每月做一次生产上线,近期连续出现几次上线后第二天修复问题的现象,最近的一次上线,迫于方案导致的性能问题,被迫回退代码。
  2. 实现方案复杂。新人上手需要花费巨量的时间来学习。
  3. 故障恢复慢。遇到源系统数据延迟,数据错误等问题,修复数据时分析方案,实施方案,均耗时耗力。
  4. 时效性不满足要求。当前基于数据仓库的技术栈交付近实时业务,在正常情况下,源系统产生数据后,一般要两小时左右才能将数据加工出来。随便出现一点问题,整体时延均会增大,导致不可用。

本次完成的内容:

  1. 架构优化,基于主题的建设思路重新构建相关业务,简化加工处理的路径,减少处理层级。
  2. 方案复用,复用了主题的建设方案,Mapping和取值逻辑。
  3. 对齐理解,和下游业务团队对齐需求,方案。

    1)梳理全部字段的取数方案,逐个和数据管家,下游沟通。

    2)刷新关键字段的取数方案。

    3)裁剪不必要的字段。
  4. 技术平台迁移,将基于Oracle交付的业务,迁移到HANA平台。
  5. 开发团队内部,对于源系统的业务流程,数据交互等,有了初步的理解,便于后续工作的开展。

本次改造由首席SE亲自带队。

假如由我来主导,存在的差异有:

  1. 沟通成本,沟通交流的成本比较高。首席SE带队,在方案评审等事项上不需要投入太大,不需要反复整理材料,反复给领导汇报。
  2. 周边资源协调不会这么顺利,包括:

    1)周边人力,比如主题交付团队,数据管家,下游业务人员等,全力投入。

    2)硬件环境,测试,生产环境等。
  3. 业务方案,推动下游业务梳理方案,投入程度,工作效率,输出结果等,可能会打折扣。另外交付团队在业务的理解上明显存在短板,迫切需要指导。
  4. 技术方案,基于HANA交付:

    1)集成方案的选择和把控。

    2)开发方案的选择和把控,比如视图,表,存储过程的合理运用。

    3)上线方案的把控。

    首席SE去年基于HANA交付过一个项目,在HANA方面具备相当的经验。对于本次项目而言,有效的节省了技术方案验证的投入。
  5. 交付进度。综上,考虑到上述的因素,很难在一个月内完成开发工作,保守估计至少需要两个月。

基于HANA重构业务的总结的更多相关文章

  1. 这样基于Netty重构RPC框架你不可能知道

    原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 今天是猿灯塔“365天原创计划”第5天. 今天呢!灯塔君跟大家讲: 基于Netty重构RPC框架 一.CyclicBarrier方法说明 1. ...

  2. 基于 UML 的业务建模举例

    简介: 对于管理流程咨询项目.大型信息化建设项目和套装管理软件实施项目,对业务环境的分析和理解对项目的成功至关重要.系统.全面理解 IT 系统所处的业务环境,可以帮助 IT 系统能提供正确系统功能,并 ...

  3. PHP旧系统基于命名空间重构经验

    命名空间其实只是一个形式,最终目的是重构代码,但这个过程想要一蹴而就是不可能的. 一开始给了一个伪命题:基于ThinkPHP的重构(不要问为什么).经过一段的实践,发现这是一个大错特错的思维方式,其中 ...

  4. 使用EventNext实现基于事件驱动的业务处理

    事件驱动模型相信对大家来说并不陌生,因为这是一套非常高效的逻辑处理模型,通过事件来驱动接下来需要完成的工作,而不像传统同步模型等待任务完成后再继续!虽然事件驱动有着这样的好处,但在传统设计上基于消息回 ...

  5. 基于Netty重构RPC框架

    下面的这张图,大概很多小伙伴都见到过,这是Dubbo 官网中的一张图描述了项目架构的演进过程.随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在 ...

  6. 基于RulesEngine的业务规则实现

    规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策.接受数据输入,解释业务规则,并根据业务规则做出业务决策.比较常见 ...

  7. spring+mybatis基于 AOP实现业务日志管理

    最近在项目上用到了操作日志的相关,之前的解决方案就是自己写一个日志project,然后统一调用日志接口即可,这样方便自定义定制,因为有很多设备控制之类的都是需要确认一下的,但是,对数据的操作,比如,增 ...

  8. 借助ltp 逐步程序化实现规则库 文本生成引擎基于规则库和业务词库 去生成文本

    [哪个地方做什么的哪家靠谱?地名词库行业.业务词库]苏州做网络推广的公司哪家靠谱?苏州镭射机维修哪家最专业?昆山做账的公司哪家比较好广州称重灌装机生产厂家哪家口碑比较好 [含有专家知识]郑州律师哪个好 ...

  9. OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  10. 基于SOA的组件化业务基础平台[转]

    转自https://www.ibm.com/developerworks/cn/webservices/1111_xiaojg_soa/index.html 业务基础平台是业务逻辑和基础架构平台之间的 ...

随机推荐

  1. Golang使用Gin-swagger搭建api文档

    前提是安装好了go环境与vscode环境 并配置过了gin 项目结构 1.先安装swaggo依赖包 //1 go get "github.com/swaggo/files" //2 ...

  2. Java实现DES加密解密

    DES(Data Encryption Standard)是一种对称加密算法,所谓对称加密就是加密和解密都是使用同一个密钥 加密原理: DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产 ...

  3. 【Azure K8S | AKS】在AKS中创建 StatefulSet 示例

    问题描述 [Azure K8S | AKS]在AKS集群中创建 PVC(PersistentVolumeClaim)和 PV(PersistentVolume) 示例 [Azure K8S|AKS]进 ...

  4. 【Azure 应用服务】PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢?

    问题描述 PHP项目部署到App Service for Linux环境中,如何修改上传文件大小的限制呢? 问题解答 经过查询Azure App Service官方文档,可能通过在项目根目录下添加.h ...

  5. 【Azure 应用服务】App Service For Linux 中安装paping, 用于验证从App Service向外请求的网络连通性

    问题描述 App Service For Linux 中安装paping的操作步骤 解决步骤 1) 登录App Service的Kudu站点,点击Bash 2)使用命令下载paping压缩文件:#wg ...

  6. Nebula Graph 1.0 Release Note

    Nebula Graph 1.0 发布了.作为一款开源分布式图数据库,Nebula Graph 1.0 版本旨在提供一个安全.高可用.高性能.具有强表达能力的查询语言的图数据库. 基本功能 DDL & ...

  7. opencv库图像基础2-python

    opencv库图像基础2-python 图像的简单变换 先导入库 import cv2 import matplotlib.pyplot as plt import numpy as np 1.图像的 ...

  8. vmware完全卸载 防止出现各种问题治标不治本

    首先打开系统盘根目录,搜索" VMware ",把搜到的都删掉,去控制面板那里卸载掉VMware 打开管理(右键"我的电脑"),管理打开设备管理器," ...

  9. [VueJsDev] 快速入门 - 开发前小知识

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html 开发前小知识 ::: details 目录 目录 开发前小知 ...

  10. stm32L4xx串口日志配置解析

    前言: st这两年推出了一款超低功耗的芯片,stm32l4xx系列,该系列芯片有着功耗低,尺寸小等特点,非常适合应用在可穿戴式设备. 团队在这一领域深耕,所以不可避免的要用到这款芯片,这里就针对该芯片 ...