后期需求的数据开发,对于新增指标字段,应该如何应对

2024-06-07 09:36

本文主要是介绍后期需求的数据开发,对于新增指标字段,应该如何应对,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很多小伙伴在后期业务给到的迭代需求开发中,或者说上线之后,无法满足现有的需求,需要对原本的表新增字段,这个时候应该怎么办呢??

0,需求(新增字段)描述

原需求字段:

key_prd
日期(yyyy-mm-dd)产品类型产品代码折算系数
upl_dateprd_typeprd_codecnvr_coef

现需求字段:

key_prd
日期(yyyy-mm-dd)产品类型产品代码产品名称折算系数
upl_dateprd_typeprd_codeprd_namecnvr_coef

现在需要新增一个字段,在产品代码后面。

这个时候,你该如何应对呢???

一,普通迭代需求【字段放最后】

1,错误应对(普通迭代需求)

可能很多小伙伴,甚至绝大部分中级开发工程师,依旧会犯错:他们会直接会写一段sql追加字段到对应的位置。

alter table db_ods.ley_prd add columns (prd_name  string comment '产品名称') ;alter table db_ods.ley_prd change column prd_name prd_name string  after prd_code cascade ;

以为把字段放在对应的位置,在脚本中补充上其对应的逻辑就万事大吉,

but,这不对,这在工作中是大忌。

1.1,生产数据

为什么呢???因为已经上线的需求,该表是有数据的。

来,咱们验证下我们为什么是错误的。

咱们自己先建个表,然后插入数据,模拟一下上了生产之后的表。

生产结果展示:

很好,数据如我们写入的一样,没有问题。

1.2,新增字段

但是,这个时候如果你要新增字段:(默认加在最后)

数据展示:

我们发现,表的最后一个新增字段,数据默认显示位NULL。

注意,最后一个字段是分区字段,虽然这么叫,但其实这个是不占内存的,只是HDFS文件命名分区的一个方式。

1.3,指定字段位置

接下来,我们对该字段进行位置的指定:

数据展示:

发现什么了嘛???

数据一直都是这个顺序,数据丝毫没有变化(增加字段,只是在最后展示NULL),

/是,我们的字段名字,prd_name, 我们是没有插入数的,但是其对应的数据是(0.7/0.1),这个是折算系数字段啊,好家伙,字段名称的顺序对了,但是数据却错位了。

无法做到字段名与实际数据,一一对应。这不完蛋嘛???

所以,我们在数据的开发中,绝对不能这么干!!!

我们能做的,就是,把新增字段,加在最后。(有小伙伴说,那这个不符合要求啊。但就应该这样做,做人不能既要又要还要。)

2,正确应对

正确应对,当然是把字段放在表的最后咯,然后按照逻辑进行开发。

当然,大部分需求都会是这样子,这个不涉及的系统的迁移。

二,系统迁移需求【字段放指定位置】

2.1,背景

之前的是普通的迭代需求,和现在讲的系统迁移的需求,有什么不一样呢???

普通的迭代需求:是数据的系统,没有发生变化,也没有业务的异构。

系统迁移需求:是业务发生巨大变化,存在功能异构,数据需要进行迁移升级改造。

2.2,如何处理

思路:就是说,这些表,我们以前的数据我还是要的,需要保留下来,但是因为发生了新的业务需求,涉及系统的升级改造,咱们的表的旧数据,需要迁移的新的系统(表字段有新增),新系统是按照新的业务体系来建造的。

需要把数据备份下来,新建表(字段放在指定位置),然后把备份的数据回插到新的表。

这里大家可以自己整理个思路出来,自己可以解决。下一期,会给大家详细分享。


下一期,给大家具体详细分享核心干货,工作实战,关于系统迁移类的项目,某需求表的字段的新增,删除,变更,需要如何处理。

欢迎一键三连。

这篇关于后期需求的数据开发,对于新增指标字段,应该如何应对的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1038805

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof