怎么进入追信魔盒网站开发软件深圳产品网站建设

web/2025/10/4 10:09:22/文章来源:
怎么进入追信魔盒网站开发软件,深圳产品网站建设,找建设网站公司哪家好,上海网络优化方法简介#xff1a; ods层数据同步时经常会遇到增全量合并的模型#xff0c;即T-1天增量表 T-2全量表 T-1全量表。可以通过full outer join脚本来完成合并#xff0c;但是数据量很大时非常消耗资源。本文将为您介绍在做增量数据的增加、更新时如何通过full outer join改写lef…简介 ods层数据同步时经常会遇到增全量合并的模型即T-1天增量表 T-2全量表 T-1全量表。可以通过full outer join脚本来完成合并但是数据量很大时非常消耗资源。本文将为您介绍在做增量数据的增加、更新时如何通过full outer join改写left anti join来实现的最佳实践。 背景 ods层数据同步时经常会遇到增全量合并的模型即T-1天增量表 T-2全量表 T-1全量表。可以通过full outer join脚本来完成合并但是数据量很大时非常消耗资源。 insert overwrite table tb_test partition(ds${bizdate}) select case when a.id is not null then a.id esle b.id end as id ,if(a.name is not null, a.name, b.name) as name,coalesce(a.age, b.age) as age --这3种写法一样都是优先取delta表的字段from (select * from tb_test_delta where ds${bizdate} ) a full outer join (select * from tb_test where ds${bizdate-1} ) b on a.id b.id; 这种写法可实现新增和更新操作 新增是指增量表中新出现的数据而全量表中没有更新是指增量表和全量表中都有的数据但优先取增量表的数据覆盖历史表的数据。 如下图所示R2_1是增量表当天去重后增量数据M3是全量表前一天的数据而J4_2_3则是full outer join的执行图。将J4_2_3展开会发现里面将增量和全量进行了merge join当数据量很大1288亿条时会产生很大的shuffle开销。此时优化方案就是将full outer join改成 union all从而避免join shuffle。 优化模型 结论full outer join改成hash cluster left join union all可以有效地降低计算成本且有两种应用场景。先将模型进行抽象假设有a和b两个表a是增量表b是全量表 with a as ( select * from values (1,111),(2,two),(7,777) as (id,name) ) --增量,b as ( select * from values (1,),(2,222),(3,333),(4,444) as (id,name) ) --全量 场景1:只合并新增数据到全量表 left anti join相当于not in增量not in全量,过滤后只剩下完全新增的id对全量中已有的id不修改 --查询完全新增的id select * from a left anti join b on a.idb.id ; --结果如下 ------------------ | id | name | ------------------ | 7 | 777 | ------------------ --完全新增的合并全量表 select * from a --增量表 left anti join b on a.idb.id union all select * from b --全量表 --结果如下 ------------------ | id | name | ------------------ | 1 | | | 2 | 222 | | 3 | 333 | | 4 | 444 | | 7 | 777 | ------------------ 场景2:合并新增数据到全量表且更新历史数据 全量not in增量,过滤后只剩下历史的id然后union all增量既新增也修改 --查询历史全量数据 select * from b left anti join a on a.idb.id; --结果如下 ------------------ | id | name | ------------------ | 3 | 333 | | 4 | 444 | ------------------ --合并新增数据到全量表且更新历史数据 select * from b --全量表 left anti join a on a.idb.id union all select * from a ; --增量表 --结果如下 ------------------ | id | name | ------------------ | 1 | 111 | | 2 | two | | 7 | 777 | | 3 | 333 | | 4 | 444 | ------------------ 优化实践 步骤1表属性修改 表、作业属性修改,对原来的表、作业进行属性优化可以提升优化效果。 set odps.sql.reducer.instances3072; --可选。默认最大1111个reducer,1111哈希桶。 alter table table_name clustered by(contact_id) sorted by(contact_id) into 3072 buckets;--必选 步骤2按照上述模型的场景1 或者 场景2进行代码改造。 这里先给出代码改造后的资源消耗对比 原来的full outer jionleft anti join初始化原来的full outer jionleft anti join第二天以后时间消耗8h30min38s1h4min48s7h32min30s32min30scpu消耗29666.02 Core * Min65705.30 Core * Min31126.86 Core * Min30589.29 Core * Minmem消耗109640.80 GB * Min133922.25 GB * Min114764.80 GB * Min65509.28 GB * Min 可以发现hash cluster分桶操作在初始化有额外的开销主要是按主键进行散列和排序但是这是值得的可一劳永逸后续的读取速度非常快。以前每天跑需要8小时现在除了分桶初始化需要1小时以后每天实际只需要30分钟。 初始化执行图 图1 M2是读全量表。 M4是读取增量表,在场景2的模型中增量表被读取了两次其中 R5_4是对主键去重row_number后用于后面的union all里面包含了所有的增量数据R1_4是对主键去重row_number后用于left anti join里面只包含了主键。J3_1_2是left anti join,将它展开后看到这里还是有mergJoin但是这只是初始化的操作后面每天就不会有了。展开后如图2。R6_3_5是将增量和全量进行union all展开后如图3。R7_6则是将索引信息写入元数据如图3的MetaCollector1会在R7_6中sink。 因此图1中除了R5_4和R1_4是去重必须的有shuffle。还有J3_1_2和R6_3_5这两个地方有shuffle。 图2 图3 第二天以后的执行图 图1 同上图1中的R3_2和R1_2是对增量去重必要对操作有shuffle这里忽略。 初始化执行图的J3_1_2和R6_3_5已经被合并到了M4_1_3将其展开后如图2。即left anti join 和 union all这两步操作在一个阶段完成了且这个阶段是Map 任务M4_1_3而不是Join任务或Reduce任务。而且全量表不在单独占用一个Map任务也被合并到了M4_1_3因此整个过程下来没有shuffle操作速度提升非常明显。也就是说只需要一个M4_1_3就能完成所有到操作直接sink到表。 R5_4则是将索引信息写入元数据如图2的MetaCollector1会在R5_4中sink。 图2 原文链接 本文为阿里云原创内容未经允许不得转载。

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

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

相关文章

西宁中小企业网站建设对酒店网站建设的意见

一.kdb5_util: Password mismatch while reading master key from keyboard 1>.错误复现 2>.错误原因分析 在初始化Kerberos数据库时需要输入密码,2次密码输入不一致就会导致该错误。 3>.解决方案 重新执行"kdb5_util -r YINZHENGJIE.COM create -s…

企业网站模板 演示网站开发外键

大家在编程过程中都会用到一些异步编程的情况。在c#的BCL中,很多api都提供了异步方法,初学者可能对各种不同异步方法的使用感到迷惑,本文主要为大家梳理一下异步方法的变迁以及如何使用异步方法。 BeginXXX,EndXXX模式 在.Net F…

上海部道网站 建设快照不更新怎么办

在Rust语言中包含了一系列被称为集合的数据结构。大部分的数据结构都代表着某个特定的值,但集合却可以包含多个值。与内置的数组与元组类型不同,这些集合将自己持有的数据存储在了堆上。这意味着数据的大小不需要在编译时确定,并且可以随着程…

北京通信管理局网站备案处启迪设计集团股份有限公司

QT——tableWidget-跳变之舞V1.0-记录学习【1】 文章目录 QT——tableWidget-跳变之舞V1.0-记录学习【1】前言一、利用QT创建项目文件1.1 完整项目文件如下图所示:1.2 演示: 二、声明文件:2.1 主界面声明文件:mainwindow.h;2.2 控制窗口声明文…

搭建网站需要学什么软件下载wordpress如何访问量

惯例闲话:最近和老婆大人商议买车事宜,闲人以为会陷入买油车还是电车的纠结,没想到老婆大人无比坚定,买电车。在买车这方面,老婆的想法居然比闲人超前。闲人对车定位在代步工具,2年前,对车还是印…

网站开发设计体会wordpress亲子模板

一些做了二十多年外贸的老公司,早期就通过使用ERP软件来进行订单的处理,但是随着互联网的发展,用的年岁久了,软件运行速度也变卡了,看到别人家的新功能也眼馋,但是就是不敢升级,担心一升级&…

国外html5网站建设研究现状想做网站建设

前言 HTTP/1.1 是目前广泛应用的网络协议之一,虽然已经存在多年,但我们仍然可以通过优化来提升其性能和效率。本文将从优化思路的角度出发,探讨如何在 HTTP/1.1 协议下实现优化,包括避免发送重复 HTTP 请求、减少 HTTP 请求次数、…

天津星创网站建设有限公司门户网站建设存在的问题和差距

977. 有序数组的平方y 思路,原数组是有序的,但是因为负数平方后可能变无序了,因此利用双指针遍历原数组,比较 nums[left]*nums[left]和nums[right]*nums[right]谁更大,然后对新数组赋值 class Solution {public int…

微信如何做积分商城网站深圳app开发公司前十名

不知不觉,关于Spring事务的文章已经写了五篇了。老实讲我自己不断质疑过自己:现在写这些文章还有意义吗?当前的市场已经成什么样了,为什么还要固守这落后的技术?但是贝索斯一次接受访谈的回答,让我写下去的…

如何优化企业网站哪个网站做加盟

电话光端机就是把传统的电话信号转换成光信号,可通过光纤传输电话、以太网、音频的设备,让电话信号能够传输的更长距离,而且传输速率上也有很大的提高。电话光端机和PDH光端机用法各不一样,而PDH光端机简单的说是通过光纤来传输E1信号和100M以太网信号。…

手机客户端网站怎么做eclipse 开发jsp网站开发

跟着B站的视频敲了一个略微复杂的WPF界面,链接如下.在这里我详细的写一份博客进行设计总结. 系统介绍和配置及主窗口设计_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Wy421Y7QD?p1&vd_source4796b18a2e4c1ec8a310391a5644b6da 成果展示 实现过程 总体来说,我的…

网站建设费用计入管理费用的哪个科目宁波制作网站企业

2019独角兽企业重金招聘Python工程师标准>>> 1、导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 存放位置比如: mysqldump -u root -p project > c:/a.sql 2.导出一个表的结构,并且带表中的数据 mysqldump -u 用户名 -p 数据库名 …

asp网站发布ftp长春市做网站哪家好

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

php网站模板怎么用网页制作论坛

一、问题描述 该问题的具体表现就如上图一样,模块——”spring-ioc-xml-01“的应该有一个蓝色的方块。现在蓝色方块缺失了之后,我们需要让maven工程重新识别出这个模块。 二、问题分析 出现这种问题的原因:是当前的maven工程没有能够成功的识…

汕头网站建设方法港北网站建设

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 多线程向来是面试的重灾…

简述电子商务的概念优化设计方案

技术背景 一般情况下我们会选择使用明文形式来存储数据,如json、txt、csv等等。如果是需要压缩率较高的存储格式,还可以选择使用hdf5或者npz等格式。还有一种比较紧凑的数据存储格式,就是直接按照二进制格式存储。这种格式下,存储…

网站关键词如何快速上首页wordpress远程下载

目录 vue2的设置方法 vue3的设置方法 1.vue3兼容vue2的写法 2.vue3没有使用setup语法糖 3.vue3的setup会自动生成name 4.使用插件 设置name的用处&#xff1a;页面缓存需要识别页面的唯一name属性才可以缓存 vue2的设置方法 <script>export default {name: "…

网站开发问题网店运营推广网站

1.首先需要使用 composer 在命令行安装最新版本的 intervention/image &#xff1a; composer require intervention/image2.注册服务提供者及别名&#xff08;Laravel 版本 ≤ 5.4&#xff09; 如果你的 laravel 版本小于或等于 5.4&#xff0c;安装后需要注册服务提供者和别…

河北网络推广公司哈尔滨网络建设网络优化

除了前一节讨论的拉电阻基本使用方法外&#xff0c;上拉电阻也可以提升高电平的电压阈值&#xff0c;以便于前后级信号相匹配&#xff0c;比如&#xff0c;TTL逻辑电平驱动CMOS逻辑电平时&#xff0c;我们通常会添加一个上拉电阻R1&#xff0c;如下图所示&#xff1a;But Why&a…