拉链表(小记)

news2024/11/25 9:41:47

拉链表

  • 创建外部表
    • 将编写的orders.txt上传到hdfs
  • 创建一个增减分区表
    • 将orders表的数据传入ods_orders_inc
    • 查看分区
  • 创建历史表
    • 插入数据
  • 操作

创建外部表

create database lalian;
use lalian;

create external table orders(
    orderId int,
    createDate string,
    modifiedTime string,
    status string
)
row format delimited fields terminated by '\t'
location '/tmp/lalian/orders';

将编写的orders.txt上传到hdfs

[root@cp145 ~]# vim ./orders.txt

1 2023-03-03 2023-03-03 创建
1 2023-03-03 2023-03-03 创建
1 2023-03-03 2023-03-03 创建

[root@cp145 ~]# hdfs dfs -mkdir -p /tmp/lalian/orders/
[root@cp145 ~]# hdfs dfs -put ./orders.txt /tmp/lalian/orders/

用select可以查到数据
在这里插入图片描述

创建一个增减分区表

create table ods_orders_inc(
    orderId int,
    createDate string,
    modifiedTime string,
    status string
) partitioned by (day string) --通过day分区
row format delimited fields terminated by '\t';

将orders表的数据传入ods_orders_inc

insert overwrite table ods_orders_inc partition (day = '2023-03-03')
select orderId,createDate,modifiedTime,status from orders;
select * from ods_orders_inc;

在这里插入图片描述

查看分区

show partitions ods_orders_inc;

在这里插入图片描述

创建历史表

create table dws_orders_his(
    orderId int,
    createDate string,
    modifiedTime string,
    status string,
    start_time string,
    end_time string
) row format delimited fields terminated by '\t';

插入数据

insert overwrite table dws_orders_his
select orderId,
	   createDate,
	   modifiedTime, 
	   status, 
	   modifiedTime,-- start_time 
	   '9999-12-31' -- end_time 
from ods_orders_inc where day = '2023-03-03';

查看数据

select * from dws_orders_his;

在这里插入图片描述

操作

将hdfs中的orders.txt删除,上传增加了字段的新orders.txt
在这里插入图片描述
覆写分区表

insert overwrite table ods_orders_inc partition (day='2023-03-04')
select orderId, createDate, modifiedTime, status from orders
where modifiedTime = '2023-03-04';

查看分区,出现03-04分区

show partitions ods_orders_inc;

在这里插入图片描述
查看 day=‘2023-03-04’ 分区

select * from ods_orders_inc where day='2023-03-04';

将03-04分区的数据整合覆盖到历史表中

with
t1 as (select orderId, createDate, modifiedTime, status, modifiedTime start_time,'9999-12-31' end_time
    from ods_orders_inc where day = '2023-03-04'),
t2 as ( select
    t1.orderId,t1.createDate,t1.modifiedTime,t1.status,t1.start_time,
       if(t2.orderId is not null and t1.end_time > '2023-03-04','2023-03-04',t1.end_time) end_time
    from dws_orders_his t1 left join (select orderId,modifiedTime from ods_orders_inc where day = '2023-03-04') t2
    on t1.orderId = t2.orderId ),
t3 as (select * from t1 union all select * from t2)
insert overwrite table dws_orders_his
select * from t3 order by t3.orderId,t3.modifiedTime;
--或者
insert overwrite table dws_orders_his
select tb.orderId,tb.createDate,tb.modifiedTime,tb.status,tb.start_time,tb.end_time
from (
(select orderId, createDate, modifiedTime, status,modifiedTime as start_time,'9999-12-31' as end_time
from ods_orders_inc where day='2023-03-04')
union all
(select t1.orderId,
       t1.createDate,
       t1.modifiedTime,
       t1.status,
       t1.start_time,
       case when t2.orderId is not null and t1.end_time > '2023-03-04'
            then '2023-03-04' else t1.end_time end end_time
from dws_orders_his t1 left join (select orderId from ods_orders_inc where day='2023-03-04') t2
on t1.orderId = t2.orderId)
) tb order by tb.orderId,tb.start_time;

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

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

相关文章

Redis集群方案应该怎么做?

今天我们来跟大家唠一唠JAVA核心技术-RedisRedis是一款流行的内存数据库,适用于高性能的数据缓存和实时数据处理。当需要处理大量数据时,可以使用Redis集群来提高性能和可用性。Redis在单节点模式下,虽然可以支持高并发、快速读写、丰富的数据…

sizeof与一维数组和二维数组

🍕博客主页:️自信不孤单 🍬文章专栏:C语言 🍚代码仓库:破浪晓梦 🍭欢迎关注:欢迎大家点赞收藏关注 sizeof与一维数组和二维数组 文章目录sizeof与一维数组和二维数组前言1. sizeof与…

专业版即将支持自定义场景测试

物联网 MQTT 测试云服务 XMeter Cloud 专业版于 2022 年底上线后,已有不少用户试用,对数千甚至上万规模的 MQTT 并发连接和消息吞吐场景进行测试。同时我们也收到了希望支持更多物联网协议测试的需求反馈。 新年伊始,XMeter 团队全力聚焦于 …

搭建Gerrit环境Ubuntu

搭建Gerrit环境 1.安装apache sudo apt-get install apache2 注意:To run Gerrit behind an Apache server using mod_proxy, enable the necessary Apache2 modules: 执行:sudo a2enmod proxy_http 执行:sudo a2enmod ssl 使新的配置生效,需要执行如下命令:serv…

ctfshow【菜狗杯】wp

文章目录webweb签到web2 c0me_t0_s1gn我的眼里只有$抽老婆一言既出驷马难追TapTapTapWebshell化零为整无一幸免无一幸免_FIXED传说之下&#xff08;雾&#xff09;算力超群算力升级easyPytHon_P遍地飘零茶歇区小舔田&#xff1f;LSB探姬Is_Not_Obfuscateweb web签到 <?ph…

在社交媒体上行之有效的个人IP趋势

如果您认为无论是获得一份工作、建立一家企业还是推动个人职业发展&#xff0c;社交媒体都是帮助您实现目标的可靠工具&#xff0c;那么个人IP就是推动这一工具前进的燃料。个人IP反映了您是谁&#xff0c;您在所处领域的专业程度&#xff0c;以及您与他人的区别。社交媒体将有…

打破原来软件开发模式的无代码开发平台

前言传统的系统开发是需要大量的时间和成本的&#xff0c;如今无代码开发平台的出现就改变了这种状况。那么你知道什么是无代码开发平台?无代码开发对企业来说有什么特殊的优势么?什么是无代码平台无代码平台指的是&#xff1a;使用者无需懂代码或手写代码&#xff0c;只需通…

代码分享:gprMax钻孔地质雷达波场模拟

代码分享&#xff1a;gprMax钻孔地质雷达波场模拟 前言 gprMax模拟地面地质雷达被广泛使用&#xff0c;但是在钻孔内进行地质雷达的模拟较少。本博文尝试利用gprMax进行钻孔地质雷达的模拟&#xff0c;代码仅供大家借鉴。 文章目录代码分享&#xff1a;gprMax钻孔地质雷达波场…

【数据结构】链表练习题(1)

练习题1.移除链表元素(LeetCode203)2.链表的中间结点(LeetCode876)3.链表的倒数第k个结点(剑指offer)4.反转链表(LeetCode206)5.合并两个有序链表(LeetCode21)6.链表分割(牛客)7.链表的回文结构(牛客)1.移除链表元素(LeetCode203) 给你一个链表的头结点 head 和一个整数 val &…

第十四届蓝桥杯三月真题刷题训练——第 4 天

目录 题目 1 &#xff1a;九数算式_dfs回溯(全排列) 题目描述 运行限制 代码&#xff1a; 题目2&#xff1a;完全平方数 问题描述 输入格式 输出格式 样例输入 1 样例输出 1 样例输入 2 样例输出 2 评测用例规模与约定 运行限制 代码&#xff1a; 题目 1 &am…

数据结构刷题(十九):77组合、216组合总和III

1.组合题目链接过程图&#xff1a;先从集合中取一个数&#xff0c;再依次从剩余数中取k-1个数。思路&#xff1a;回溯算法。使用回溯三部曲进行解题&#xff1a;递归函数的返回值以及参数&#xff1a;n&#xff0c;k&#xff0c;startIndex(记录每次循环集合从哪里开始遍历的位…

场景式消费激发春日经济,这些电商品类迎来消费热潮

春日越临近&#xff0c;商机越浓郁。随着气温渐升&#xff0c;春日经济已经潜伏在大众身边。“春菜”、“春装”、“春游”、“春季养生”等春日场景式消费走热。 下面&#xff0c;鲸参谋为大家盘点几个与春日经济紧密相关的行业。 •春日仪式之春游踏青 ——户外装备全面开花…

查看 WiFi 密码的两种方法

查看 WiFi 密码的两种方法1. 概述2. 在控制面板中查看 WiFi 密码3. 使用 CMD 查看 WiFi 密码结束语1. 概述 突然忘记 WiFi 密码怎么办&#xff1f; 想连上某个使用过的 WiFi&#xff0c;但有不知道 WiFi 密码怎么办&#xff1f; 使用电脑如何查询 WiFi 密码&#xff1f; 以下是…

zabbix4.0 网络发现-自动添加主机-自动注册

zabbix的网络发现 网络发现的好处&#xff1a; 加快zabbix部署 简化管理 无需过多管理就能在快速变化的环境中使用zabbix zabbix网络发现给予以下信息 IP范围 可用的外部服务&#xff08;FTP&#xff0c;SSH&#xff0c;WEB&#xff0c;POP3&#xff0c;IMAP&#xff0c;TCP等&…

一篇深入解析BTF 实践指南

BPF 是 Linux 内核中基于寄存器的虚拟机&#xff0c;可安全、高效和事件驱动的方式执行加载至内核的字节码。与内核模块不同&#xff0c;BPF 程序经过验证以确保它们终止并且不包含任何可能锁定内核的循环。BPF 程序允许调用的内核函数也受到限制&#xff0c;以确保最大的安全性…

FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持

目录1、前言2、设计思路和框架3、vivado工程详解4、上板调试验证并演示5、福利&#xff1a;工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案&#xff1a; 一是使用专用编解码芯片&#xff0c;比如典型的接收器GS2971&#xff0c;发送器GS2972&#xff0c;优点是简…

如何让网络安全的防守技术更强?20年白帽子老江湖告诉你【蓝队】

网络安全的防守技术是网络安全工程师必备技能&#xff0c;只有攻防兼备的白帽子&#xff0c;才算是真正的网安精英。 网络安全的攻击技术在前面我已经讲过了&#xff0c;感兴趣的可以去看看&#xff1a; 90%的人都不算会网络安全&#xff0c;这才是真正的白帽子技术【红队】 . …

蓝桥杯--成绩分析

成绩分析 技巧 求最大值与最小值 if(a[i]>max) maxa[i]; if(a[i]<min) mina[i]; 这里的max为最小值0 这里的min为最大值100 这道题比较简单 题目大意 小蓝给学生们组织了一场考试&#xff0c;卷面总分为 100 分&#xff0c;每个学生的得分都是一个 0 到 100 的整数。 请…

【GO】K8s 管理系统项目33[前端部分–登录和登出]

K8s 管理系统项目[前端部分–登录和登出] 1. 登录登出流程 1.1 登录流程 登入流程总的分为5步: 账号密码验证token生成token验证验证成功进行跳转验证失败返回/login 1.2 登出流程 登出流程就相对简单,分为2步 删除Token跳转/login 2. 登录代码 src/views/login/Login.v…

vue双向绑定原理

Vue双向绑定的原理 vue的双向绑定原理&#xff1a;vue数据的双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的。其核心就是通过obj.defineProperty()方法来实现数据的劫持&#xff0c;在数据变化时发布消息给订阅者&#xff0c;触发相应的监听回调。也就是说数据和视…