本文于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. File.delete()和Files.delete(Path path)的区别

    文件删除时可以选择File.delete()和Files.delete(Path path),这两个方法到底有什么区别呢? //删除暂存的pdfFile file =new File(pdfFilen ...

  2. 反射,装饰器,类当中的方法,property---day24

    1.反射 # ### 反射(针对于类对象 模块) '''概念:通过字符串去操作类对象或者模块当中的成员(属性方法)''' class Man(): pass class Woman(): pass c ...

  3. 腾讯云视频转码回调 http code 405

    异常信息 405 Method Not Allowed 异常场景 通过腾讯云SDK上传视频,视频转码完成回调我的接口失败,我这边一直没有log.找到腾讯云工作人员,告诉我这边返回405错误和不支持ge ...

  4. 无法加载 DLL“librdkafka”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)

    我这个错误是在引用了封装kafka项目的情况下提示的. 解决方案:在本项目里面安装 RdKafka ,再次运行就好了.

  5. 【Azure 微服务】记一次错误的更新Service Fabric 证书而引发的集群崩溃而只能重建

    问题描述 错误的操作步骤: 1)更新Service Fabric 的证书,制定了次要证书(Secondary),但是只修改了Service Fabric Cluster证书,而没有指定VMSS(虚拟机 ...

  6. SQL之 数据库表字段约束与索引

    第三范式 MySQL四种字段约束 主键约束 非空约束 唯一约束 创建索引 添加和删除索引

  7. C++左值右值完美转发转移

    左值(Lvalue)与右值(Rvalue) 英文含义: 左值(Lvalue):Locator value,意味着它指向一个具体的内存位置. 右值(Rvalue):Read value,指的是可以读取的 ...

  8. dnsmasq 本地局域网DNS服务器搭建

    项目背景 因为本地环境需要使用域名进行调试,需要DNS服务器 DNS 机器IP:192.168.5.249   dnsmasq 服务端部署 #01 关闭防火墙 systemctl stop firew ...

  9. form 表单提交 保存的时候再提交文件,之前一直是选择文件就传了,这个也比较好

    form 表单提交 保存的时候再提交文件,之前一直是选择文件就传了,这个也比较好 代码 <Upload :action="action" :max-size="ma ...

  10. K8s中Role(ClusterRole)资源类型rules字段详解

    在Kubernetes(K8s)中,Role资源类型的rules字段用于定义哪些操作(verbs)可以在哪些资源(resources)上执行.Role是一种命名空间级别的资源,它允许你对命名空间内的资 ...