hadoop学习---基于hive的数仓搭建增量信息拉链表的实现

拉链表就是SCD2,它的优点是即满足了反应数据的历史状态,又能在最大程度上节省存储

拉链表的实现需要在原始字段基础上增加两个新字段

  1. start_time(表示该条记录的生命周期开始时间——周期快照时的状态)
  2. end_time(该条记录的生命周期结束时间)

 

 采集实现步骤

  1. 建立增量数据临时表update;
  2. 抽取昨日增量数据(新增和更新)到update表;
  3. 建立合并数据临时表tmp;
  4. 合并昨日增量数据(update表)与历史数据(拉链表):
    1. 新数据end_time设为’9999-12-31’,也就是当前有效;
    2. 如果增量数据有重复id的旧数据,将旧数据end_time更新为前天(昨日-1),也就是从昨天开始不再生效;
    3. 合并后的数据写入tmp表;
  5. 将临时表的数据,覆盖到拉链表中;
  6. 下次抽取需要重建update表和tmp表。
  7. 查询拉链表数据时,可以通过start_time和end_time查询出快照数据。

 

小结: 

        当每日采集增量信息时,采用拉链表的方式,通常在原始信息表中增加有效信息开始时间start_time和结束时间end_time两个字段,先将改变或新增的信息提取出来组成一张新表,再将新表与原始表做右外联接,重新抽取字段更新end_time字段信息,目的是改变原始表的旧信息的end_time时间,最后将更新后的原始表和新增的更新信息表进行union all 操作,并将结果覆盖到hive数据库中。

        也就是原有hive数据库中的表不变,想办法更新旧信息的end_time时间,同时将新增信息后改写后的信息重新新增一行到原始数据表中即可。

案例流程:  

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

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

相关文章

1.python爬虫爬取视频网站的视频可下载的源url

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、爬取的源网站二、实现代码总结 一、爬取的源网站 http://www.lzizy9.com/ 在这里以电影片栏下的动作片为例来爬取。 可以看到视频有多页,因此需要…

性能优化 | el-table中内嵌大量el-input控件导致渲染卡顿的问题

场景 项目中有一个应用场景,用户需要在表单中大量使用选择框以及输入框填写数据(每一行大概有三十几个输入框),当选择框与输入框达到一定数量的时候,页面会出现输入不连续、卡顿的现象,如下图:…

c++笔记——概述运算符重载——解析运算符重载的难点

前言:运算符重载是面向对象的一个重要的知识点。我们都知道内置类型可以进行一般的运算符的运算。但是如果是一个自定义类型, 这些运算符就无法使用了。那么为了解决这个问题, 我们的祖师爷就在c中添加了运算符重载的概念。 本篇主要通过实例的实现来讲述…

武汉星起航:策略升级,亚马逊平台销售额持续增长显实力

武汉星起航电子商务有限公司,一家致力于跨境电商领域的企业,于2023年10月30日在上海股权托管交易中心成功挂牌展示,这一里程碑事件标志着公司正式踏入资本市场,开启了新的发展篇章。公司董事长张振邦在接受【第一财经】采访时表示…

html5动漫风二次元网站博客引导页模板

html5动漫风二次元网站博客引导页模板 效果图部分源码领取源码下期更新预报 效果图 部分源码 <!DOCTYPE html> <!--孤独 --> <html xmlns"http://www.w3.org/1999/xhtml" lang"en"><head><meta charset"utf-8" /&g…

04-19 周四 GitHub CI 方案设计

04-19 周四 GitHub CI 方案设计 时间版本修改人描述2024年4月19日14:44:23V0.1宋全恒新建文档2024年4月19日17:22:57V1.0宋全恒完成部署拓扑结构的绘制和文档撰写 简介 需求 由于团队最近把代码托管在GitHub上&#xff0c;为解决推理、应用的自动化CI的需要&#xff0c;调研了…

考虑需求响应的微网优化调度模型【粒子群算法】【matlab】

目录 1 主要内容 1.1 模型约束条件 1.2 粒子群算法优化过程 2 部分代码 3 效果图 4 下载链接 1 主要内容 该模型构建了考虑需求响应的微电网优化调度模型&#xff0c;并采用粒子群算法&#xff08;PSO&#xff09;进行优化求解&#xff0c;模型主体有储能、风电、光伏、微…

Linux编译内核模块生成.KO驱动示例

现在的Linux内核十分庞大&#xff0c;驱动繁多&#xff0c;但是仍有一些是内核所不包含的&#xff0c;或者我们前期进行了内核裁剪&#xff0c;但后面又需要添加一些驱动&#xff0c;但是又不想重新烧录内核&#xff0c;这时候就可以使用内核模块功能&#xff0c;对内核驱动进行…

动力电池热管理方案介绍与发展方向

摘要 随着电动汽车的快速发展&#xff0c;高性能的动力电池系统成为推动电动汽车产业发展的重要因素。然而&#xff0c;伴随着能量密度提高和放电深度增加&#xff0c;电池热管理问题逐渐凸显。良好的热管理方案能够提高电池的寿命&#xff0c;保障电池性能&#xff0c;延长电…

ASRPRO

https://gitee.com/gitee-128/ASR-PRO-U8G2/tree/main 不下载模型 语音就是天问51唤醒我 u8g2的移植过程 第一步 下载u8g2的源代码 第二步 修改 delay and 函数 第三步 添加头文件 显示 显示 动画 SPI I2C(SOFT SPI ;SOFT I2C U8G2 移植过程&#xff08;移植过程参考…

外贸知识篇 | 免堆期和免箱期,一次分清楚!

免箱期和免堆期这两个期限 对于货代人或者货主来说都是十分重要的 一不留神就会产生额外的异常费用 但很多人还是有些傻傻分不清楚 今天我们就简单的聊下 一、深入解读免堆期 免堆期&#xff0c;英文称为Free Demurrage&#xff0c;是指在码头堆场或内陆堆场允许集装箱免…

图像处理-图像平滑

图像平滑 前言一、概念介绍1.1 图像的平滑1.2 图像中噪声的分类1.3 MATLAB的添加噪音代码 二、空间域平滑滤波2.1 均值滤波2.2 原理计算 总结 前言 在图像的获取、传输和存储过程常常收到各种噪声的干扰和影响&#xff0c;使得图像的质量下降&#xff0c;为了获得高质量的数字…