doris - 数仓 拉链表 按天全量打宽表性能优化
数仓 拉链表 按天全量打宽性能优化
- 现状描述
- 优化
现状描述
1、业务历史数据可以变更
2、拉链表按天打宽
3、拉链表模型分区字段设计不合理,通用的过滤字段没有作为分区分桶字段
4、拉链表表数据量略大、模型数据分区不合理和服务器资源限制,计算任务执行超时【3-4年,用户数:132W】
5、基于拉链表打宽后的天表行转列【最多列达到300列】,sum(case when … end),没有提前过滤数据
优化
1、完善模型设计,设计主键和分桶字段
1)在单表计算:若大表存放多种类型数据,数据分类字段要做为分区或分桶字段,可以实现数据快速过滤
2)多表关联:在大表合理设置了主键、分区或分桶的前提下,建议把关联字段做份分区或分桶字段【要综合考虑验证,设置过多分区分桶字段可能也会影响数据性能】
2、提前进行数据过滤和分级分类计算
前提:拉链表数据量较大或打宽后数据量较大
1)若拉链表数据量较大且包含多种类型数据,需要进行打宽表处理【一条打宽成多条】,那么打宽表后的数据量会翻几倍甚至更多从而导致性能很慢或者执行超时;
》》》建议1:在打宽的过程中按类别均匀拆分数据打宽到多个临时表
》》》建议2:增加任务并行度【在资源允许的前提下,大部分任务提高并发度可以解决性能问题:set parallel_fragment_exec_instance_num=8;】2)若拉链表数据量较大【同一种类型数据】,需要进行打宽表处理【一条打宽成多条】,那么打宽表后的数据量会翻几倍甚至更多从而导致性能很慢或者执行超时;
》》》建议1:在打宽的过程中可以按时间拆分为当前和历史数据表【数据归档处理】
》》》建议2:增加任务并行度【在资源允许的前提下,大部分任务提高并发度可以解决性能问题:set parallel_fragment_exec_instance_num=8;】
3)若拉链表打宽后不同类型数据在下游计算逻辑不一致,建议根据数据类型或其他类型拆分数据

3、根据指标需求进行热点数据特殊优化
前提:资源有限,1个并发度运行
1)拉链表按分类拆分【过滤】后再按天打宽到多个宽表;
2)计算逻辑:计算第1-150天和150+的数据,打宽成151行;
》》》可以分两类计算:第一类计算第1-150天【150列】再关联计算150+列
3)若按以上逻辑计算任务还是执行超时,把数据拆分当前表和历史表,使用两个insert
相关文章:
doris - 数仓 拉链表 按天全量打宽表性能优化
数仓 拉链表 按天全量打宽性能优化现状描述优化现状描述 1、业务历史数据可以变更 2、拉链表按天打宽 3、拉链表模型分区字段设计不合理,通用的过滤字段没有作为分区分桶字段 4、拉链表表数据量略大、模型数据分区不合理和服务器资源限制,计算任务执行超…...
服务器虚拟化及优势
服务器虚拟化是从一台物理服务器创建多个服务器实例的过程。每个服务器实例代表一个隔离的虚拟环境。在每个虚拟环境中,都可以运行单独的操作系统。 1.更有效的资源调配 使用虚拟化技术大大节省了所占用的空间,减少了数据中心里服务器和相关硬件的数量。…...
华为ensp模拟校园网/企业网实例(同城灾备及异地备份中心保证网络安全)
文章简介:本文用华为ensp对企业网络进行了规划和模拟,也同样适用于校园、医院等场景。如有需要可联系作者,可以根据定制化需求做修改。作者简介:网络工程师,希望能认识更多的小伙伴一起交流,私信必回。一、…...
git命令篇(持续更新中)
首先介绍这个网页:https://learngitbranching.js.org/?localezh_CN --提交命令 git commit --创建分支 git branch <分支名> --切换分支 git checkout <分支名> --合并分支 (合并到主分支去,把我合并到谁的身上去) 自己写的分支合并到主线…...
用记事本实现“HelloWorld”输出
一、在任意文件夹中创建一个新的文本文档文件并写入以下代码 public class Hello{public static void main (String[] args){System.out.print("Hello,World!");} } 二、修改文件名称及文件类型为 Hello.java 特别注意:文件命名必须与代码中类的名称相同…...
Python基础1
1. 注释 单行注释:以#开头。一般建议注释和内容用空格隔开。 多行注释:以一对三个双引号括起来的内容是注释。“““示例注释”””。 2. 数据类型 验证数据类型的方法:type(被查看类型的数据)。 注意:…...
4.2 双点双向路由重发布
1. 实验目的 熟悉双点双向路由重发布的应用场景掌握双点双向路由重发布的配置方法2. 实验拓扑 双点双向路由重发布如图4-6所示: 图4-6:双点双向路由重发布 3. 实验步骤 IP地址的配置R1的配置 <Huawei>system-v…...
AcWing《蓝桥杯集训·每日一题》—— 3768 字符串删减
AcWing《蓝桥杯集训每日一题》—— 3768. 字符串删减 文章目录AcWing《蓝桥杯集训每日一题》—— 3768. 字符串删减一、题目二、解题思路三、代码实现本次博客我是通过Notion软件写的,转md文件可能不太美观,大家可以去我的博客中查看:北天的 …...
第五天笔记
1. 简述图片验证码使用流程? 1.前段生成UUID随机值,作为GET请求参数 2.后端试图进行判断,调用工具类来生成图片验证码和内容 3.将验证码内容使用redis保存到本地,前端传入的uuid作为key, 4.在前段输入获取到的图片验证码,想后端发…...
如何使用ArcGIS进行地理配准
1.概述 对于GIS数据而言,坐标信息是灵魂,有了坐标信息之后才能和别的数据结合使用,之前有介绍过矢量数据定义坐标信息的方法,针对栅格图,这里为大家介绍一下通过地理配准增加坐标信息的方法,希望能对你有所…...
【java基础知识】
Java中的基本数据类型是什么? byte:1字节,有符号,表示整数,范围为-128到127。short:2字节,有符号,表示整数,范围为-32768到32767。int:4字节,有符…...
Java提供了哪些IO方式? NIO如何实现多路复用?
第11讲 | Java提供了哪些IO方式? NIO如何实现多路复用? IO 一直是软件开发中的核心部分之一,伴随着海量数据增长和分布式系统的发展,IO 扩展能力愈发重要。幸运的是,Java 平台 IO 机制经过不断完善,虽然在某…...
人的大脑遇事的思考解决过程
人遇到问题的思考解决过程,大概如下:1) 遇到问题;2) 首先,不是直接推理,而是用直觉在自己的知识模式库里搜索,有没有相似的模式或者相同的模式。3) 如果:3a)有…...
GNU zlib 压缩与解压文件详细介绍
GNU zlib 压缩与解压文件详细介绍 1.概述 zlib 模块为 GNU 项目的 zlib 压缩库中的许多函数提供了一个低级接口 2.使用内存数据压缩与解压 2.1.压缩与解压缩 使用 zlib 的最简单方法是将所有数据保存在内存中进行压缩或解压缩。 import zlib import binasciioriginal_dat…...
离线环境轻量级自动化部署
流程图: 常规系统发布的痛点 服务器频繁重启,上面部署的应用服务不能随之重启,导致服务时常宕机应用手动部署相对比较麻烦,步骤繁琐应用发布环境取决于发布人本地环境,导致不同发布人每次发布环境不一致,导…...
In-context Learning
formulate the example query -> LLM -> answerno gradient descent and fine-tuning, no parameters updateadvantages: 提供了与LLM进行交流的可解释的接口,通过template和demonstration将人类知识和LLM更好的结合;更像人类的预测思维ÿ…...
【新2023】华为OD机试 - 最优调度策略(Python)
华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 最优调度策略 题目 在通信系统中有一个常见的问题是对用户进行不同策略的调度 会得到不同系统消耗的性能 假设由 N 个待串行用户,每个用户可以使用 A/B/C 三种不同的调度策略 不同的策略会消耗不同的系…...
Python列表系列之统计计算
Python也提供了一些内置函数去实现诸如统计、计算的功能,下面我们具体来看一下 基本语法 1、获取元素出现的次数 使用列表的count()方法可以获取元素在列表中出现的次数,语法格式如下: listname.count(obj) lisetname:列表的名…...
【蓝桥杯集训·每日一题】AcWing 1460. 我在哪?
文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴二分查找哈希表一、题目 1、原题链接 1460. 我在哪? 2、题目描述 农夫约翰出门沿着马路散步,但是他现在发现自己可能迷路了! 沿路有一…...
一个不可忽视的重要能力
阅读本文大概需要 2.16 分钟。1、自我们开工后,年后第一场直播,场观二十万出头,以为是不是巧合还是卡 bug 了,就最近又测了下,发现连续几场直播下来,场观数据依旧很吓人,都是十几二十万…...
5种数字内容访问优化技术:从原理到实战的全方位指南
5种数字内容访问优化技术:从原理到实战的全方位指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息驱动的数字时代,高效获取优质内容已成为知识工作者的…...
基于蜣螂优化算法的无线传感器网络(WSN)覆盖优化研究——Matlab实现与0/1模型寻优
基于蜣螂优化算法无线传感器网络(WSN)覆盖优化--matl ab 主要基于0/1模型,进行寻优。 蜣螂优化算法是寻找最小值。 于是适应度函数定义为未覆盖率最小,即覆盖率最大。 可其他算法优化模型,含有注释无线传感器网络覆盖…...
嵌入式系统链接器脚本(ld文件)详解
嵌入式系统中的链接器脚本(ld文件)深度解析1. 链接器脚本概述链接器脚本(linker script)是控制链接过程的关键文件,通常以.lds作为文件后缀名。它主要规定了如何将输入文件中的section放入输出文件,并控制输出文件内各部分在程序地址空间中的布局。每个链…...
基于springboot框架洪涝灾害救援应急物资管理系统设计与实现-idea maven vue
目录技术栈选型系统模块设计数据库设计关键代码示例实施步骤测试与部署注意事项项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作技术栈选型 后端框架:Spring Boot 2.7.x(简化配置,内置Tomcat…...
5大场景全面解析SWE-bench:语言模型软件工程能力实战指南
5大场景全面解析SWE-bench:语言模型软件工程能力实战指南 【免费下载链接】SWE-bench SWE-Bench: Can Language Models Resolve Real-world Github Issues? 项目地址: https://gitcode.com/GitHub_Trending/sw/SWE-bench 核心价值:为什么SWE-ben…...
语析Yuxi-Know:构建企业级智能知识管理系统的技术架构与实践
语析Yuxi-Know:构建企业级智能知识管理系统的技术架构与实践 【免费下载链接】Yuxi-Know 基于大模型 RAG 知识库与知识图谱的问答平台。Llamaindex VueJS Flask Neo4j。大模型适配 OpenAI、国内主流大模型平台的模型调用、本地 vllm 部署。 项目地址: https://…...
告别漏检!用YOLOv10+NWD搞定工业质检中的微小缺陷检测(避坑指南)
工业质检中的微小缺陷检测:YOLOv10与NWD损失函数的实战指南 在精密制造和电子元件生产线上,一个仅占几个像素的微小缺陷可能导致整批产品报废。传统检测方法面对这种挑战往往力不从心——漏检率居高不下,误检频发,产线工程师们不得…...
告别Word和PDF!用Python的win32ui库直接驱动打印机,搞定标签打印(附完整代码)
Python驱动打印机实战:高效标签打印解决方案 每次打开Word调整格式、导出PDF再打印的繁琐流程,是否已经让你对批量标签打印任务感到厌倦?在物流仓储、零售库存、医疗标本等需要高频打印标签的场景中,传统打印方式的效率瓶颈尤为明…...
LangChain4j实战:从零构建企业级智能对话系统的核心模块与演进
1. 为什么选择LangChain4j构建企业级对话系统 第一次接触LangChain4j是在去年帮某金融客户做智能客服升级时。当时团队评估了Python和Java两个技术栈,最终选择Java生态的LangChain4j,主要考虑到三个现实因素:一是现有技术团队全是Java背景&am…...
ChatGLM3-6B应用指南:日常闲聊、文档分析、多轮对话全支持
ChatGLM3-6B应用指南:日常闲聊、文档分析、多轮对话全支持 1. 项目概述 ChatGLM3-6B是一款基于智谱AI团队开源模型的本地化智能对话系统,通过Streamlit框架重构实现高效稳定的运行体验。与云端服务相比,这个方案将强大的32k上下文处理能力直…...
