企业级宽表建设

1 宽表概述

宽表,从字面意义上讲就是字段比较多的数据库表,通常情况下是讲很多相关的数据,包括实时表、维度表、指标等格言录在一起形成的一张数据表。

2 宽表的优点

2.1 开发效率提升

  • 由于把不同的信息放在同一张表存储,宽表已经不符合范式设计,当然数仓里也不强调范式设计,随之带来的就是数据的大量冗余,与之对应的好处就是查询新能的提高与便捷,从而带来开发效率的提高。

2.2 数据质量稳定

  • 宽表沉淀后,其数据准确性在经历了时间的校验后,逻错误的可能性很小,基于宽表的开发可以一定程度的规避对业务理解不透彻或者是书写的逻辑不正确,减少数据质量问题的发生

2.3 指标口径统一

  • 宽表的设计带有核心逻辑下沉的倾向,假设报表都是基于底层宽表产出,那么报表上的指标天然是一致的,从数据可解释角度,能够天然免去业务之于数据准确性的挑战。

3 宽表的缺点

3.1 性能不高

  • 宽表的计算逻辑往往很复杂,再加上宽表的数据输入是有大量依赖的,也就是说需要处理的数据量很大,导致宽表往往运行很慢,资源占用很多,尤其是重跑的时候。

3.2 稳定性不高

  • 短板理论提出:系统的稳定性取决于最差的一个环节,宽表的稳定性也是很差的,主要是因为宽表依赖太多,每一个表的不稳定性都会传到宽表。
  • 如果性能不高和稳定性不高同时作用在一起,其实是很致命的,例如你发现报表数据有问题,但是重跑需要几个小时。

3.3 开发难度大&维护成本高

  • 虽说基于宽表做报表开发才是正确的姿势,但是宽表本身的逻辑往往很复杂、设计的业务逻辑繁多,所以后带来较大的开发难度和维护成本,想想下每次需要再几千航的SQL里面加逻辑!

4 如何设计宽表

4.1 不稳定与稳定分离

  • 对于依赖外部大表补维度,导致计算经常延迟的case,可以考虑关联后推,即在报表层面做关联,这样即使维度出不来,报表数据还是可以看的,从而弱化宽表对不稳定的外部依赖的耦合。

4.2 主次分类

  • 宽表往往会存储冗余信息,但是当这样的信息越来越多的时候,宽表的主题也就越来越弱,此时就需要做拆分,从而更加聚焦表的主题、也便于开发维护。

4.3 冷热分离

假设一张宽表里面有200个字段,有30张报表在使用它,但是只有前面150个字段被经常使用,后面50个字段只有一两张报表使用到了,那么就可以做冷热分离,将宽表拆分。

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

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

相关文章

sensitive-word 敏感词 v0.17.0 新特性之 IPV4 检测

敏感词系列 sensitive-word-admin 敏感词控台 v1.2.0 版本开源 sensitive-word-admin v1.3.0 发布 如何支持分布式部署? 01-开源敏感词工具入门使用 02-如何实现一个敏感词工具?违禁词实现思路梳理 03-敏感词之 StopWord 停止词优化与特殊符号 04-…

详解 Spark 核心编程之 RDD 持久化

一、问题引出 /** 案例:对同一份数据文件分别做 WordCount 聚合操作和 Word 分组操作 期望:针对数据文件只进行一次分词、转换操作得到 RDD 对象,然后再对该对象分别进行聚合和分组,实现数据重用 */ object TestRDDPersist {def …

Jupyter Notebook快速搭建

Jupyter Notebook why Jupyter Notebook Jupyter Notebook 是一个开源的 Web 应用程序,允许你创建和分享包含实时代码、方程、可视化和解释性文本的文档。其应用包括:数据清洗和转换、数值模拟、统计建模、数据可视化、机器学习等等。 Jupyter Notebo…

东芝机械人电池低报警解除与机器人多旋转数据清零

今天启动一台设备,触摸屏一直显示机器人报警(翻译过后为电池电量低),更换电池后关机重启后也不能消除,所以打开示教器,下面就来说说怎么解决此项问题(可以参考官方发的手册,已手册为主)。 一,设备 下面来看看机械手的照片与示教器的照片 四轴机械手(六轴机器人有可…

可视化大屏也在卷组件化设计了?分享一些可视化组件

hello,我是大千UI工场,这次分享一些可视化大屏的组件,供大家欣赏。(本人没有源文件提供)

动态内存基础实践

文章目录 1.new 创建堆内存对象2.delete释放内存空间3.malloc申请内存4.free释放malloc申请的内存空间 1.new 创建堆内存对象 2.delete释放内存空间 3.malloc申请内存 4.free释放malloc申请的内存空间 #include <iostream> #include <string>using namespace s…

基础数学内容重构(后缀0个数)

今天也是参加了一下宁波大学的校赛&#xff0c;其中有一道题是求后缀0的个数&#xff0c;题意是让我们求一下式子的后缀0个数&#xff1a; 看上去比较复杂&#xff0c;但是通过化简我们可以知道以上式子就是求&#xff08;n 1&#xff09;&#xff01;&#xff0c;这里化简的过…

用贪心算法计算十进制数转二进制数(小数部分)

在上一篇博文用贪心算法计算十进制数转二进制数&#xff08;整数部分&#xff09;-CSDN博客中&#xff0c;小编介绍了用贪心算法进行十进制整数转化为二进制数的操作步骤&#xff0c;那么有朋友问我&#xff0c;那十进制小数转二进制&#xff0c;可以用贪心算法来计算吗&#x…

[C++]vector的模拟实现

下面是简单的实现vector的功能&#xff0c;没有涉及使用内存池等复杂算法来提高效率。 一、vector的概述 &#xff08;一&#xff09;、抽象数据类型定义 容器&#xff1a;向量&#xff08;vector&#xff09;vector是表示大小可以变化的数组的序列容器。像数组一样&#xf…

带你学习Mybatis之Mybatis映射文件

Mybatis映射文件 增删改查 简单地增删改查 <select id"selectUser" resultType"User"> select * from user where id #{id}</select><insert id"addUser"> insert into user (name,account) values (#{name},#{account…

[sylar]后端学习:配置环境(一)

1.介绍 基于sylar大神的C高性能后端网络框架来进行环境配置和后续学习。网站链接&#xff1a;sylar的Linux环境配置 2.下载 按照视频进行下载&#xff0c;并进行下载&#xff0c;并最好还要下载一个vssh的软件。可以直接在网上搜索即可。 sylar_环境配置&#xff0c;vssh下…

CentOS 运维常用的shell脚本

文章目录 一、操作系统磁盘空间查看实时获取系统运行状态获取cpu、内存等系统运行状态获取系统信息二、应用程序获取进程运行状态查看有多少远程的 IP 在连接本机三、用户管理统计当前 Linux 系统中可以登录计算机的账户有多少个创建用户四、自动化管理自动备份日志文件监控的页…

MySQL常见操作

MySQL字符串连接 在MySQL中&#xff0c;字符串连接可以使用CONCAT()函数或双竖线||操作符进行。下面是两种方法的示例&#xff1a; 使用CONCAT()函数&#xff1a; CONCAT(,2001,, ABC)使用双竖线||操作符&#xff1a; ,2001, || ABC您可以根据自己的偏好选择其中一种方法来…

TS38.300中的切换流程(很一般)

本文根据3GPP R18 TS 38.300第9.2.3节整理 切换(Handover)是移动终端(UE)进入RRC_CONNECTED状态后在不同服务小区(Cell)之间保持与网络联系唯一手段&#xff0c;期间首先通过控制面(C-Plane)进行无线测量、切换协商及触发等&#xff1b;为此3GPP在TS38.300中定义如下。 RAN系统…

shardingsphere5 自定义分片(sharding-algorithm)算法

背景 在做分表时&#xff0c;需要自定义算法。 这里实现的算法是&#xff1a; 分表字段的 hashCode 取余。 算法 public class UserShardingAlgorithm implements StandardShardingAlgorithm<String> {public static String type "USER_SHARDING_STRATEGY"…

2024KCon大会议题招募火热进行中

历时1个多月我们收到了来自全国各地小伙伴们的议题投递既有前瞻性的技术研判亦有安全领域的最新策略......感谢每一位对KCon大会倾注热情与支持的你&#xff01; 我们也收到了不少小伙伴的私信&#xff0c;有的因为工作繁忙有的因为在紧张备战2024网络安全攻防演练表示原定的时…

LeetCode2542最大子序列的分数

题目描述 给你两个下标从 0 开始的整数数组 nums1 和 nums2 &#xff0c;两者长度都是 n &#xff0c;再给你一个正整数 k 。你必须从 nums1 中选一个长度为 k 的 子序列 对应的下标。 对于选择的下标 i0 &#xff0c;i1 &#xff0c;…&#xff0c; ik - 1 &#xff0c;你的 …

监控易监测对象及指标之:全面监控LDAP服务器

随着企业信息化建设的不断深入&#xff0c;LDAP&#xff08;轻量级目录访问协议&#xff09;服务器作为重要的目录服务组件&#xff0c;其稳定性和性能直接关系到企业业务的连续性和 效率。为了确保LDAP服务器的稳定运行和高效性能&#xff0c;对其进行全面监控显得尤为重要。…

Kafka原生API使用Java代码-消费者组-消费模式

文章目录 1、消费模式1.1、创建一个3分区1副本的 主题 my_topic11.2、创建生产者 KafkaProducer11.2、创建消费者1.2.1、创建消费者 KafkaConsumer1Group1 并指定组 my_group11.2.3、创建消费者 KafkaConsumer2Group1 并指定组 my_group11.2.3、创建消费者 KafkaConsumer3Group…

算法练习第25天|491. 非递减子序列

491. 非递减子序列 491. 非递减子序列https://leetcode.cn/problems/non-decreasing-subsequences/ 题目描述&#xff1a; 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案…