我的大数据之路 - 基于HANA构建实时方案的历程

产品内部前期有一个共识,依据业务要求的时效性来选择技术平台,即:

  • 实时类业务,时效性小于2小时,则使用HANA构建。
  • 离线类业务,时效性大于2小时,则使用大数据平台构建。

经过五月、六月两月的努力,离线类的业务已基本完成开发和验证完毕,后面待在生产环境对数完毕后,即可启动切换。
因此实时类业务的方案分析和梳理,成为当下最重要、最紧急的事情。
考虑到项目当前的痛点:

  • 直接从I层构建业务,没有复用主题层的模型和资产。
  • 缺少数据管家参与项目,帮助把关业务方案。
  • 前期欠缺资料,很多需求没有积累方案素材。
  • 项目开发团队大部分为新人,对业务的了解基本来自于代码,个别业务的理解由我或者项目PM传递,但考虑到我和项目PM的业务背景,效果非常一般。

因此在盘点完现有方案后,我基于如下原则,构建业务的实时方案:

  • 在HANA平台,完全复用主题层模型的数据架构和取数逻辑,仅裁剪掉业务不需要使用的字段和表。这样,当主题模型发生变更时,实时方案可直接同步。
  • 优先使用HANA的视图来承载业务。
  • 假如取数逻辑比较复杂,使用视图无法实现,则考虑使用HANA的存储过程。
  • 经验证,假如个别视图的性能无法达标,则考虑落增量实时表。

按照上述思路,技术方案会比较简单,基础表的清单和Mapping,可以直接复用各领域主题前期输出的材料。而下游使用的业务数据表,可以请各领域的SE协助输出Mapping和表的关联逻辑,项目组直接对数即可。
结果在技术评审会上,这个方案一经抛出,即被评审专家各种痛批。
我很无语。
。。。
领导安排首席SE投入项目,计划使用一个月,将实时业务交付上线。
不得不说,首席SE很有经验,做事很有章法:

  • 盘点现有业务。输出模板,要求我和项目PM在一周内完成梳理。当时由于某业务非常复杂,不得已还安排一个开发同事参与。
  • 整理技术方案和痛点。将整理过程中遇到的问题,梳理为技术类问题的清单和方案类问题的清单,分别找人确认。
  • 开工会、晨会、业务培训。
    • 开工会。明确项目目标和要求,和开发组成员交流,了解大家的情况和想法、个人诉求。
    • 晨会。将前期的电话会议,调整为现场会议,提高沟通效率,便于掌握交付进展。
    • 业务培训。晨会上常规的项目管理类内容完成后,即开始讲解业务,让开发同事快速入门。
  • 细化方案。输出Mapping,明确依赖的表清单和取数规则。
  • 周边协调。
    • 和产品内部、产品周边协调、确认问题。
    • 协调开发和验证、生产环境。

经过两周的努力后:

  • 环境,包括开发和生产已协调到位。
  • 前期整理的问题,已有初步结论。
  • 技术方案的细节基本明确。
  • 下游业务初步认可技术方案。

后续的重点工作,将从方案分析转变为交付工作。

后记1

在整理方案过程中,发现首席SE输出的方案其实和我输出的方案有某种相似性,比如:

  • 业务场景,都使用主题定义的场景。
  • 数据架构,都参照主题定义的模型。
  • 基础视图、表、存储过程的代码,基本上照搬模型表的实现代码。

但存在明显的差异点,首席SE在梳理方案时:

  • 按需出发。
    • 要求下游业务明确关键的字段和数据,进而裁剪了部分未使用到的字段。
    • 梳理实现不合理的方案细节,要求下游业务变更方案。
    • 不容易理解的方案细节,要求下游给出解释。假如下游业务团队说不清楚,则直接搁置相关特性,转需求跟踪。
  • 从经验出发。
    • 简化主题模型的取数实现,降低实现难度。
    • 依据经验,提前明确以HANA表实现的基础表的清单。
    • 依据经验,提前明确使用存储过程来实现的基础特性的清单。
    • 提前准备集成数据的方案。
    • 相关人力、环境等资源,提前协调到位。

另外一点,首席SE带队来设计方案:

  • 自身对业务非常了解,可以有效提高方案的输出效率,减少返工。
  • 评审方案的沟通成本下降很多。因为首席SE自己输出的方案,对细节很清楚,遇到评审专家的挑战,可以快速响应。
  • 和下游业务团队的沟通成本,同样下降很多。

不得不承认,功夫在诗外。假如由我来主导实时方案的实施,在上述差异点上,会花费大量的精力,可能存在较多的返工,对进度而言无疑是非常大的风险。

后记2

近期过的并不太平,几件事情挤在一起,让本来明朗的项目周边形势,又紧张起来。

  • 第一件事,将现有业务迁移至HANA的方案,在评审会上被周边专家痛批了一通,意味着方案要重新做,重新评审。
  • 第二件事,基础维表的数据出现了错误,导致X业务的数据出现了大面积缺失,影响到了下游一片业务。其实这事情放平时,把数据修复好,然后和下游业务团队说说好话,事情就过去了。结果大BOSS正好在客户那边交流,于是这件事情被当成典型,BOSS从客户那边带回来,作为重点任务关注。
  • 第三件事,下游Y业务要放开推广,正在验证数据,发现某些设备的数据缺失现象比较突出。恰好近期Y业务自身的问题比较多,压力比较大,于是借本事件小小发挥一下,转嫁部分压力出来。于是这件事情被当成典型,BOSS要求马上处理。

这三件事情恰好发生在同一天,产品经理对于我和项目组的表现非常不满,非常不放心,于是连夜安排首席SE到项目组异地支持一个月,将业务迅速切换至HANA平台,一次性解决项目当前遇到的问题。
平心而论,我没有使用HANA做过项目,所以将业务迁移至HANA的方案,做的相对比较粗,不是首席SE想要看到的可以体现细节的技术方案;此外缺少业务背景,有很多细节说不清楚。考虑到我欠缺做数据仓库类项目的实战经验,因此领导不放心是正常的,可以理解。但也加重了我的工作量,评审方案时,从材料到讲解,均存在被炮火覆盖的可能。
首席SE空降项目组之后,快速进入角色,拉着我和项目PM以及个别项目组开发同事,一起梳理现有方案。
此时生产环境连续出现意外:

  • 周日早晨,我在例行检查跑批任务的状态时,意外发现某些任务运行失败,联系同事检查后,发现跑批任务出现了大量失败的现象。相关情况上报产品经理,领导决策兵分两路,由首席SE带队定位、解决问题,其余的人则分头修复数据。我的周末就这样报销了。
  • 接下来的周一的早晨,我收拾电脑出门前,随手检查了一下任务跑批情况,发现平时在6点前可以跑完的任务,居然发生了严重的延迟。考虑到近期正好是月结、半年结,数据类的问题要求及时上报,于是赶紧汇报领导。结果和周日一样的分工,首席SE带队定位、处理问题,其余的人则分头修复数据。周一上午就这么过去了。

接连发生意外事件,再加上项目组接手的业务的实现方案确实很复杂,在和项目组一起参加了几次周边的沟通会议后,首席SE后来私下里表示,终于体现到项目组的不易了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/683895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今日JAVA小练习之复制数组

题目描述 将两个有序数组按照大小顺序复制成一个数组 实现思路 创建新的数组,长度为要复制的两个数组长度之和定义3个初始变量i,p1,p2在循环中依次比较两个数组中元素大小,小的放入新数组若p1小于ns1的长度,则说明在上面while循环中ns1的元…

Redis 的 SETNX

Redis 的 SETNX 命令是一个用于设置键的值的原子性操作。SETNX 表示 "SET if Not eXists",即当键不存在时才进行设置。该命令可以实现一种简单的分布式锁和限流策略。 SETNX 命令的语法如下: 复制代码 SETNX key value key:要设…

clang前端

Clang可以处理C、C和Objective-C源代码 Clang简介 Clang可能指三种不同的实体: 前端(在Clang库中实现)编译驱动程序(在clang命令和Clang驱动程序库中实现)实际的编译器(在clang-ccl命令中实现&#xff0…

kafka如何保证消息不丢?

概述 我们知道Kafka架构如下,主要由 Producer、Broker、Consumer 三部分组成。一条消息从生产到消费完成这个过程,可以划分三个阶段,生产阶段、存储阶段、消费阶段。 产阶段: 在这个阶段,从消息在 Producer 创建出来,…

c++阶梯之类与对象(下)

前文: c阶梯之类与对象(上)-CSDN博客 c阶梯之类与对象(中)-CSDN博客 c阶梯之类与对象(中)< 续集 >-CSDN博客 1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时&a…

Windows注册表的参数,比如: %* %0 %1 %2 %D %L %V %W

Windows注册表的参数,比如: %* %0 %1 %2 %D %L %V %W 参数意义%*代表所有的参数%0, %1第1个(文件)参数的完整路径,不包含引号。当应用程序是16位时,得到8.3短路径形式;当应用程序是32/64位时,得到长路径。…

【机器学习笔记】3 逻辑回归

分类问题 分类问题监督学习最主要的类型,主要特征是标签离散,逻辑回归是解决分类问题的常见算法,输入变量可以是离散的也可以是连续的 二分类 先从用蓝色圆形数据定义为类型1,其余数据为类型2;只需要分类1次&#x…

寒假 14

1.请编程实现二维数组的杨慧三角 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <math.h> #include <unistd.h> int main(int argc, const char *argv[]) {int n;printf("please enter n:");scanf("%d&q…

Java并发基础:SynchronousQueue全面解析!

内容概要 SynchronousQueue的优点在于其直接性和高效性&#xff0c;它实现了线程间的即时数据交换&#xff0c;无需中间缓存&#xff0c;确保了数据传输的实时性和准确性&#xff0c;同时&#xff0c;其灵活的阻塞机制使得线程同步变得简单而直观&#xff0c;适用于需要精确协…

相机图像质量研究(13)常见问题总结:光学结构对成像的影响--鬼影

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结&#xff1a;光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结&#xff1a;光学结构对成…

二级 C 语言笔试-15

一、选择题 1. 程序流程图中带有箭头的线段表示的是( )。 A) 图元关系 B) 数据流 C) 控制流 D) 调用关系 2. 下列描述中正确的是( )。 A) 程序就是软件 B) 软件开发不受计算机系统的限制 C) 软件既是逻辑实体&#xff0c;又是物理实体 D) 软件是程序、数据与相关文档的集合 3. …

人类智能与人工智能之间有泰勒公式的味道

人工智能&#xff08;AI&#xff09;与人类智能之间的关系&#xff0c;简单类比为泰勒公式可能并不准确&#xff0c;但在某种程度上或许有些味道。 泰勒公式是一种数学工具&#xff0c;用于将一个函数在某个点附近展开成无穷级数的形式&#xff0c;以近似描述函数的行为。它通过…

TiDB 在医疗保障信息平台的应用实践

文章介绍了 TiDB 在医疗保障信息平台中的应用。东软医保云应用管理平台通过与 TiDB 联合&#xff0c;成功满足了医疗保障业务中高并发、实时性和复杂查询的要求。在某地市医疗保障信息平台的实践中&#xff0c;TiDB 分布式数据库有效实现了在线交易和实时分析服务&#xff0c;日…

C语言学习day14:数组定义和使用

定义变量&#xff1a; 数据类型 变量 值 数组定义&#xff1a; 数据类型 数组名[元素个数]{值1,值2,值3} 代码&#xff1a; int main() {//定义变量//数据类型 变量 值//数组定义//数据类型 数组名[元素个数]{值1,值2,值3}//数组下标 数组名[小标]//数组下标是…

sql深度优化

sql优化是一个大家都比较关注的热门话题&#xff0c;无论在面试&#xff0c;还是工作中&#xff0c;都很有可能会遇到。 如果某天负责的某个线上接口&#xff0c;出现了性能问题&#xff0c;需要做优化。那么你首先想到的很有可能是优化sql语句&#xff0c;因为它的改造成本相对…

.NET Core WebAPI中封装Swagger配置

一、创建相关文件 创建一个Utility/SwaggerExt文件夹&#xff0c;添加一个类 二、在Program中找到Swagger相关配置信息 三、添加方法&#xff0c;在Program中调用 在SwaggerExt类中添加方法&#xff0c;将相关配置添写入 /// <summary> /// swagger配置 /// </sum…

初识Qt | 从安装到编写Hello World程序

文章目录 1.前端开发简单分类2.Qt的简单介绍3.Qt的安装和环境配置4.创建简单的Qt项目 1.前端开发简单分类 前端开发&#xff0c;这里是一个广义的概念&#xff0c;不单指网页开发&#xff0c;它的常见分类 网页开发&#xff1a;前端开发的主要领域&#xff0c;使用HTML、CSS …

C++函数对象-运算符函数对象 - 位运算 - 实现 x ^ y 的函数对象 (std::bit_xor)

任何定义了函数调用操作符的对象都是函数对象。C 支持创建、操作新的函数对象&#xff0c;同时也提供了许多内置的函数对象。 运算符函数对象 C 针对常用的算术和逻辑运算定义了很多函数对象&#xff1a; 位运算 实现 x ^ y 的函数对象 std::bit_xor template< class T &…

[经验] 欧阳修唐宋八大家之首是谁 #微信#知识分享#学习方法

欧阳修唐宋八大家之首是谁 1、唐宋八大家之首是谁 唐宋八大家是中国文学史上最具代表性的八位大文豪&#xff0c;他们的文学成就在中国文学史上占有重要地位&#xff0c;被誉为文学史上的“巨人”。 唐宋八大家之首&#xff0c;无疑是唐代著名诗人杜甫。他出生在一个贫苦的家…

牛客——IncDec Sequence(差分)

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 给定一个长度为 n(n≤105)(n \leq 10^5 )(n≤105) 的数列a1,a2,…,an{a_1,a_2,…,a_n}a1​,a2​,…,an​&#xff0c;每次可以选择一个区间 [l,r]&#xff0c;使下标在这个区间内的数…