浅尝辄止:数据库--数仓大数据平台--数据中台

news2025/7/20 9:23:10

很久没有更新博客了,今天主要是想谈一谈自己工作几年总结的心得。

1.浅尝辄止

在这里插入图片描述

数据库:基于mysql,oracle来实现数据库分析(存储在数据库,使用数据库语言直接分析,最后成报表形式)。
数仓&大数据平台;随着数据量暴增,业务复杂度增高,以及烟囱式开发的弊端(导致了数据不互通、重复造轮子、研发效率低的问题,相似的数据产品也有非常多,占用了大量的存储和计算资源,数据口径也无法对齐,内部沟通和管理成本变得很高),追求时效性等,采用大数据hadoop平台组件hdfs做存储,以hive为主的数仓体系,大数据计算引擎(一代是mapreduce,二代是tez,三代是spark),依据公司的适用性,会采用其他的计算引擎,比如MPP计算引擎架构(impala,presto,click house等),注重时效性,会采用实时组件,flink、spark streaming等,存储非关系性数据,采用no_sql组件,redis、hbase、mongondb、log4j等,构建一套完整数据仓库,对外提供出即席查询、报表开发、多维分析的能力。
数据中台:在大数据平台基础套了个数据服务的马甲。以数据中台组件化、智能化的方式,将通用的数据开发场景和工具进行沉淀,来提升开发效率,再通过数据的资产化、服务化的方式提升业务数据使用效率,让业务更加聚焦在数据应用和业务创新上,而不是花费大量的精力进行数据能力的重复建设。

补充说明:
关于批处理和MPP架构的不同:
相同点:
批处理架构与MPP架构都是分布式并行处理,将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果。

不同点:
批处理架构和MPP架构的不同点可以举例来说:我们执行一个任务,首先这个任务会被分成多个task执行,对于MapReduce来说,这些tasks被随机的分配在空闲的Executor上;而对于MPP架构的引擎来说,每个处理数据的task被绑定到持有该数据切片的指定Executor上。

正是由于以上的不同,使得两种架构有各自优势也有各自缺陷:

批处理的优势:
对于批处理架构来说,如果某个Executor执行过慢,那么这个Executor会慢慢分配到更少的task执行,批处理架构有个推测执行策略,推测出某个Executor执行过慢或者有故障,则在接下来分配task时就会较少的分配给它或者直接不分配,这样就不会因为某个节点出现问题而导致集群的性能受限。

批处理的缺陷:
任何事情都是有代价的,对于批处理而言,它的优势也造成了它的缺点,会将中间结果写入到磁盘中,这严重限制了处理数据的性能。

MPP的优势:
MPP架构不需要将中间数据写入磁盘,因为一个单一的Executor只处理一个单一的task,因此可以简单直接将数据stream到下一个执行阶段。这个过程称为pipelining,它提供了很大的性能提升。

MPP的缺陷:
对于MPP架构来说,因为task和Executor是绑定的,如果某个Executor执行过慢或故障,将会导致整个集群的性能就会受限于这个故障节点的执行速度(所谓木桶的短板效应),所以MPP架构的最大缺陷就是——短板效应。另一点,集群中的节点越多,则某个节点出现问题的概率越大,而一旦有节点出现问题,对于MPP架构来说,将导致整个集群性能受限,所以一般实际生产中MPP架构的集群节点不易过多。

2.不想当将军的士兵不是一个好士兵

怎么做好一个数仓团队
1.人员配置
2.技术选型
3.领导决策

1.人员配置,至少一个有经验的高级开发leader,在搭配几个合格的开发人员组成
2.技术选型,开源/阿里+华为
3.领导决策,一个好的团队,需要一个掌控全局,带领团队的好领导

for me:
业务调研:去业务区实地参考业务流程,了解业务具体操作,了解系统
需求调研:带着需求与业务沟通,明确业务具体的目的,避免理解错误,导致返工,基础要打好
规范流程:制定适合的开发流程,测试到生产环境的流程,需求到上线的流程,BA-开发-测试-业务的流程
开发规范:表命名,字段命名,存储格式,建表方法,开发脚本规范,数据字典记录
架构设计:数仓分层设计,数据建模设计,数据开发,调度流程,脚本优化,数据治理

具体每个部分都可以开展详细细节描述,需要每个人自己根据个人情况展开,这里只能提供大纲思路。

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

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

相关文章

rust编程-通用编程概念(chapter 3.2 3.3 数据类型和函数)

目录 2. 数据类型 2.2 复合类型 3. 函数 2. 数据类型 Rust中的所有值都是有特定数据类型的,rust是强类型语言,也是静态类型语言(编译器类型必须确定)。 编译器可以根据值来进行类型推断,但对有歧义的,必…

计算机毕业设计——基于SpringBoot框架的网上购书系统的设计与实现

文章目录前言一、背景及意义选题背景选题目的二、系统设计主要功能运行环境三、系统实现部分页面截图展示部分代码展示四、源码获取前言 提示:这里可以添加本文要记录的大概内容: 二十一世纪是网络化,信息化的时代,为了满足广大…

Linux的子shell

linux运行一个shell脚本,其本身能启动它自己的子进程。 一般来说,脚本里的一个外部命令能生成出一个紫禁城,而Bash内建命令却不这样。 将一组命令放在圆括号里执行,形成一个命令列表连续执行。在圆括号里的命令会在一个子shell里…

【算法面试题汇总】LeetBook列表的算法面试题汇总---排序与检索题目及答案

整理不易留个小心心呗🥰 如果有更好的或者是我有错的地方还请各位大佬指出哦 有些是copy的还望不要介意 排序与检索最大数摆动排序Ⅱ寻找峰值寻找重复数最大数 给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组…

【实验记录1】行人重识别

使用ResNet50训练Market15010x00参考0x01准备数据集0x02搭建模型ResNet500x03test0x04可视化结果0x00参考 ⭐️郑哲东博士的GitHub 从零开始行人重识别-知乎 全篇对于上手person ReId 具有重要意义 环境: torch_version1.13.0cu117 python_version3.8.13 torch_ver…

CentOS7下Redis7安装

​欢迎光临我的博客查看最新文章: https://river106.cn 目前Redis的最新稳定版本已到7.0,本文介绍redis-7.0.5在CentOS7.6下的安装使用。 1、下载 Redis下载地址:https://redis.io/download/,或者使用命令直接下载: cd /opt/so…

序列化、反序列化

一、序列化、反序列化概念 序列化(Serialization)是一种将对象以一连串的字节描述的过程,将程序中的对象,放入硬盘(文件)中保存就是序列化,如果不存放在磁盘中,而是一直存放在内存中,会增大内存的消耗;序列化就是将对象的状态信息转换为可以存储或传输的形式的过程;…

Scrapy基本概念——Item Pipeline

一、Item Pipeline介绍 蜘蛛抓取的每一个Item都会被发送到Item Pipeline。根据ITEM_PIPELINES的优先级设置,不同的Item Pipeline依次处理每一个Item,最后可删除该Item不做处理,也可将该Item发送到下一个Item Pipeline。Item Pipeline的主要用…

基于8086的压力检测器设计(Proteus8仿真)

一、实验名称 基于 proteus 设计压力检测计 二、实验目的  深刻理解并掌握基于 8086 处理器的系统工程的工作原理和流程;  深刻理解并掌握 8086 处理器的工作原理、引脚功能;  深刻理解并掌握压力传感器件 MPX4115 的工作原理、引脚功能&#x…

C++:函数指针进阶:看完还不用std::function来捶我

1:函数指针的背景 我们先简单聊一下函数指针的背景,具体使用请参考我的这篇博客 C :函数: 函数指针_hongwen_yul的博客-CSDN博客 假设现在有这样一段代码:C/C中可以使用指针指向一段代码,这个指针就叫函…

【季报分析】百度2022年Q3:逆势而上

11月22日,百度(09888.HK)发布了2022年第三季度的业绩报告,尽管面对疫情不断侵扰、外部环境压力带来的诸多挑战,百度在Q3依然取得了相当不错的财务数据,尤其是在自动驾驶、智能硬件方面的表现尤为突出&#…

【Linux】缓冲区

目录🌈前言🌷1、缓冲区🍡1.1、缓冲区的理解🍢1.2、缓冲区在哪里?🍣1.3、缓冲区的刷新策略🍣1.4、模拟实现C库函数🌸2、标准输出流与错误流的区别🍤2.1、概念&#x1f365…

微客云升级会员制度

会员制度 会员制度是一种人与人或组织与组织之间进行沟通的媒介,它是由某个组织发起并在该组织的管理运作下,吸引客户自愿加入,目的是定期与会员联系,为他们提供具有较高感知价值的利益包。 Part 1 会员制度 建立长期稳定的客…

Python测试框架之Pytest基础入门

Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries. 通过官方网站介绍…

Vue子组件传自定义事件给父组件

我们知道组件之间是不能够进行通信的,都是相互独立的,你用不了我的状态和方法,我也用不了你的,那如何实现通信呢,可以间接实现; 实现父组件和子组件的通信: 子组件想用父组件的状态需要父组件…

Apache ShardingSphere(二) 基本使用

文章目录二 ShardingSphere JDBC 基本使用2.1 ShardingSphere JDBC 水平分表2.1.1 案例入门2.1.2 解读配置文件2.1.3 其他测试2.1.4 延伸问题2.2 ShardingSphere JDBC 水平分库2.2.1 案例入门2.2.2 解读配置文件2.1.3 其他测试2.3 ShardingSphere JDBC 广播表2.3.1 基本案例入门…

矩阵链相乘(动态规划)

【问题描述】给定n个矩阵M1,M2...MnM_1,M_2...M_nM1​,M2​...Mn​,他们的维数分别是r1∗c1,r2∗c2...rn∗cnr_1*c_1,r_2*c_2...r_n*c_nr1​∗c1​,r2​∗c2​...rn​∗cn​,要求使用【动态规划】的策略求解矩阵连乘的最优计算代价(总乘法次数最少)。题目…

Docker 学习视频集 bilibili

1.什么是Docker_哔哩哔哩_bilibili 2.Docker的安装_哔哩哔哩_bilibili 3.镜像、容器和仓库_哔哩哔哩_bilibili 4.在容器中部署一个应用_哔哩哔哩_bilibili 5.将容器保存成镜像成片_哔哩哔哩_bilibili 6.使用Dockerfile构建镜像1_哔哩哔哩_bilibili 7.导入导出镜像_哔哩哔…

vscode配合gitee同步云设置

更换开发设备后,新安装的vscode软件,是没有原先的配置的,诸如快捷键,快捷代码段生成、安装的各个插件,插件的配置等都木大了,开发起来会很别扭,网上最多的就是去安装一个叫做Settings Sync的插件…

springcloud五大核心部件

springcloud五大核心部件 一、springcloud介绍 springcloud是微服务的集大成者,将一系列的组件进行了整合。基于springboot构建 ,可以快速配置常用模块并构建庞大的分布式系统。 二、具体业务分析 我们举一个例子来进行业务场景分析 假设现在开发一…