急,在线等!老板让我做数仓一点思路没有怎么办

刚来公司一个月,老板就让我负责了公司数据仓库的建设,但我一点思路都没有这可咋整!

在了解公司人事部门和行政部门的相关数据存在数据孤岛的问题后,我决定从人事系统入手。目前公司数据还存在一些问题亟待解决:

1.员工基础信息均存储在人事部门搭建的OA系统中,对于行政部门系统录入的后勤和薪资绩效管理数据而言,无法与员工信息、考勤等数据进行联合分析。

2.同时,公司希望制作报表看板、进行业务的自助数据分析,通过数据反哺业务,降本增效,而当前公司没有统一的数据源,都是通过 IT 直接在原始数据库中取数,数据指标字段不统一,数据质量低。

因此急需提升数据质量,搭建数据仓库,规范数据使用流程。

通过自学,我掌握了一些关键工具,如FineDataLink,它帮助我轻松实现了数据仓库的搭建。今天,我想分享一下我在这个过程中积累的经验和心得,希望能对大家有所帮助。

那到底如何搭建呢?只需以下五个步骤,下面我们一起来看下:

1.搭建 ODS 层数仓

ODS 层,即数据引入层:存放未经过处理的原始数据至数据仓库系统,结构上与源系统保持一致,是数据仓库的数据准备区。

此层级我们按照系统进行划分:「简道云系统」、「OA报表系统」

  • 将「简道云」表单应用中的行政后勤和薪资绩效表单数据通过配置【简道云数据源】接入 FineDataLink 中,实现简道云数据下云,原表原样的将数据同步至指定的数据库。配置简道云数据源- FineDataLink帮助文档icon-default.png?t=N7T8https://help.fanruan.com/finedatalink/doc-view-191.html
  • 同时对于简道云的接口数据,也可通过【数据同步-API】等方式实现数据同步。数据同步-API- FineDataLink帮助文档icon-default.png?t=N7T8https://help.fanruan.com/finedatalink/doc-view-8.html
  • 将「报表 OA系统」填报的数据(包括移动端和PC端)接入FineDataLink 中,原表原样将数据同步至指定的数据库。

由于使用的是定时同步,因此需要根据数据量、数据更新频率等方式对数据同步设置更新方式。比如「部门职务表」、「员工信息表」等数据表数据量不大,且更新频率不高,因此可以使用清空后全量写入数据的更新方式;而「考勤记录表」、「请假明细表」数据量比较大,但是数据只会新增和修改,不会删除,因此可以根据 ID 字段进行比对更新;「办公资产录入」表数据量比较大,且可能会出现数据删除的情况,因此可以使用比对更新和比对删除进行数据更新。

2.搭建 DW 层数仓

DW 层,即包括 DIM 维度表、DWD 和 DWS,由 ODS 层数据加工而成。主要完成数据加工与整合,建立一致性的维度,构建可复用的面向分析和统计的明细事实表,以及汇总公共粒度的指标。

此层级我们按照主题域进行划分:

  • 公共维度层(DIM):基于维度建模理念思想,建立整个数仓的一致性维度。降低数据计算口径和算法不统一风险。公共维度层的表通常也被称为逻辑维度表。

公共维度层(DIM):「dim_员工信息」

任务设计文档表

  • 明细粒度事实层(DWD):以业务过程作为建模驱动,基于每个具体的业务过程特点,构建最细粒度的明细层事实表。可以结合企业的数据使用特点,将明细事实表的某些重要维度属性字段做适当冗余,即宽表化处理。

明细粒度事实层(DWD):「dwd_招聘」、「dwd_考勤」、「dwd_后勤」、「dwd_工资绩效」、「dwd_入离职」

3.搭建 DM 层数仓

DM 层,即数据应用层 ADS:存放数据产品个性化的统计指标数据,根据 DW 与 ODS 层加工生成。

此层级中依据DW 与 ODS 层进行数据合并、计算,产出了「基础员工信息宽表」、「员工信息&办公工位」等宽表,「二级部门员工人数」等指标数据表,生成数据集市。

4. 配置调度任务

对于已经搭建好的数据仓库,由于使用的是定时任务,因此需要设置调度配置,来实现数据的定时更新。对于数据仓库的调度任务,设置每一层的调度任务和总调度任务,以确保整个数仓的定时更新完整和秩序性。

例如对于没有业务上下游关联的数据,可以使用并行排布的方式进行执行更新,提高运行效率,如下图所示:

而对于有业务上下游关联的数据,则需要使用串联方式进行更新,确保上下游之间的更新时间和秩序,如下图所示:

5.数据输出

对于 DW 和 DM 层数据,可以将其直接输出至 BI 系统中,便于自助分析使用。

同时 FineReport 也可以从 DW 和 DM 层数据库中取数进行看板制作。

以上就是我在搭建人事系统数据仓库中的思路和经验了,希望对您有所帮助,更多详情可以点击FineDataLink官网咨询。

ETL/ELT|数据融合|数据清洗-FineDataLink数据集成平台

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Google 广告VS Facebook广告:哪个更适合我?2024全维度区别详解

在 Google Ads 和 Facebook Ads 之间进行选择可能是一个艰难的决定。决定哪种方法适合您的业务取决于多种因素,从您愿意为转化支付的费用到管理广告系列所需的时间和人员。在这篇文章中,将解释 Google Ads 和 Facebook Ads 之间的差异,以便您…

网络中数据链路层详解

数据链路层其实我们这里了解即可,因为做交换机开发的是主要学习这方面的知识。 这里我们主要了解以太网协议。 以太网是物理学的概念。以太网横跨数据链路层和物理层,平时咱们使用有线网就是以太网络。 如图以太网协议的报文格式: 上述的目…

张大哥笔记:如何选择一个人就值得做的副业

很多人喜欢把上班称为主业,把上班之外的工作称为副业,不管以哪种方式称呼都可以,只要能赚钱就行,上班的本质就是出卖时间,不管你是月入5000还是月入2万,都是给老板打工! 但搞笑的就是月入2万的人…

《昇思25天学习打卡营第1天 | 认识MindScope AI框架和昇思大模型平台》

活动地址:https://xihe.mindspore.cn/events/mindspore-training-camp 昇思MindSpore学习笔记:探索AI的无限可能 嗨,AI爱好者们!今天,我要带你们深入了解一个强大的全场景深度学习框架——昇思MindSpore。 准备好了吗…

vue-饼形图-详细

显示效果 代码 <template> <div style"height: 350px;"> <div :class"className" :style"{height:height,width:width}"></div> </div> </template> <script> import * as echarts from echarts; req…

Vue3鼠标悬浮个人头像时出现修改头像,点击出现弹框,上传头像使用cropperjs可裁剪预览

实现效果&#xff1a; 鼠标悬浮到头像上&#xff0c;下方出现修改头像 点击修改头像出现弹框&#xff0c;弹框中可上传头像&#xff0c;并支持头像的裁剪及预览 实现方式&#xff1a; 1.tempalte中 <div class"img-box"><img v-if"avatarImgUrl&qu…

SpringMVC系列八: 手动实现SpringMVC底层机制-下

手动实现SpringMVC底层机制-下 实现任务阶段五&#x1f34d;完成Spring容器对象的自动装配-Autowired 实现任务阶段六&#x1f34d;完成控制器方法获取参数-RequestParam1.&#x1f966;将 方法的 HttpServletRequest 和 HttpServletResponse 参数封装到数组, 进行反射调用2.&a…

python运算符和表达式实战

1.判断回文数 回文数就是将其反向排列&#xff0c;与原来相等 n1 n2 int(input("请输入&#xff1a; ")) t 0 while n2>0 :# 取余数t t*10n2%10# 取整数n2 // 10 if n1 t:print("是回文数") else:print("不是回文数") 2.字符串转换&…

linux中“PXE高效批量装机”

在大规模的 Linux 应用环境中&#xff0c;如 Web 群集、分布式计算等&#xff0c;服务器往往并不配备光驱设备&#xff0c;在这种情况下&#xff0c;如何为数十乃至上百台服务器裸机快速安装系统呢&#xff1f;传统的 USB光驱、移动硬盘等安装方法显然已经难以满足需求。 PXE …

实现跑马灯

目录 一 设计原型 二 后台源码 一 设计原型 二 后台源码 namespace 跑马灯 {public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e){Color[] colors { Color.Red, Color.Green, Color.Yellow };T…

Java集合框架源码分析:LinkedList

文章目录 一、LinkedList特性二、LinkedList底层数据结构三、LinkedList继承关系参考&#xff1a; 一、LinkedList特性 特性描述是否允许为空允许是否允许重复数据允许是否有序有序是否线程安全非线程安全 二、LinkedList底层数据结构 LinkedList同时实现了List接口和Deque接…

【紫光同创盘古PGX-Nano教程】——(盘古PGX-Nano开发板/PG2L50H_MBG324第十一章)模拟波形实验例程说明

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 适用于板卡型号&#xff1a; 紫光同创PG2L50H_MBG324开发平台&#xff08;盘古PGX-Nano&#xff09; 一&#xff1a;…

哈希的基本原理

目录 一.哈希概念 二.哈希冲突 三.哈希函数 四.哈希冲突解决 一.闭散列(开放寻址法) ①插入&#xff1a; ②查找&#xff1a; ③删除&#xff1a; 代码测试&#xff1a; 二.开散列(拉链法) ①插入&#xff1a; ②查找&#xff1a; ③删除&#xff1a; 代码测试&a…

推荐一个Python的前端框架Streamlit

WHY&#xff0c;为什么要用Streamlit 你是不是也想写一个简单的前端界面做些简单的展示和控制&#xff0c;不想写html、css、js&#xff0c;也用不到前后端分离&#xff0c;用不到特别复杂的Flask、Django等&#xff0c;如果你遇到类似这样的问题&#xff0c;我推荐你试试Stre…

LSM-Tree数据结构原理

LSM-Tree树原理 什么是LSM-Tree LSM-Tree 即 Log Structrued Merge Tree&#xff0c;这是一种分层有序&#xff0c;硬盘友好的数据结构。核心思想是利用磁盘顺序写性能远高于随机写。 LSM-Tree 并不是一种严格的树结构&#xff0c;而是一种内存磁盘的多层存储结构。HBase、L…

c++中string的用法

STL的简介 一.什么是STL二.STL的六大组件2.1仿函数2.2空间配置器2.3 算法2.4 迭代器2.5容器2.6配置器 三.string类3.1string类3.2string类的常用接口说明代码示例运行结果 3.3string类对象的容量操作代码示例sizelengthcapcityempty resizereverse 3.4string类对象的访问及遍历…

LVGL开发教程-按钮Button

系列文章目录 知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 1. 普通Button 2.可选中Button 3.按钮事件处理 总结 前言 在图形用户界面&#xff08;GUI&#xff09;开发中&#xff0c;按钮&#xff08;Button&#xff09;是用户与程序交互的重要组件之一…

目标检测数据集 - PCB板表面缺陷检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;PCB 板表面缺陷检测数据集&#xff0c;真实采集高质量 PCB 板表面含缺陷图片数据&#xff0c;数据集含多款不同 PCB 板高清表面图片数据&#xff0c;包括俯拍正拍、旋转拍摄姿态。数据标注标签包括 missing_hole、mouse_bite、open_circuit、short、spur…

6.17继承

面向对象的特征&#xff1a;封装&#xff0c;继承&#xff0c;多态 使用背景&#xff1a;比如说在动物类底下可以有带毛的动物&#xff0c;带毛的动物符合所有的动物的特征&#xff0c;只是在这个基础上再继续添加一些特征 命名&#xff1a;原有类型称为“基类”或“父类”&a…

Springboot集成Mybatisplus过程

这里写目录标题 背景步骤明确标准实操过程创建好数据库&#xff0c;命名好&#xff08;这里会考察一个命名规范&#xff09;&#xff0c;表的命名&#xff0c;中间使用下划线隔离开。使用idea创建Springboot项目&#xff08;注意版本问题&#xff09;使用插件生成代码常用代码p…