数仓开发:DIM层数据处理

一、了解DIM层

这个就是数仓开发的分层架构

 我们现在是在DIM层,从ods表中数据进行加工处理,导入到dwd层,但是记住我们依然是在DIM层,而非是上面的ODS和DWD层。

二、处理维度表数据

①先确认hive的配置

-- 开启动态分区方案
-- 开启非严格模式
set hive.exec.dynamic.partition.mode=nonstrict;
-- 开启动态分区支持(默认true)
set hive.exec.dynamic.partition=true;
-- 设置各个节点生成动态分区的最大数量: 默认为100个  (一般在生产环境中, 都需要调整更大)
set hive.exec.max.dynamic.partitions.pernode=10000;
-- 设置最大生成动态分区的数量: 默认为1000 (一般在生产环境中, 都需要调整更大)
set hive.exec.max.dynamic.partitions=100000;
-- hive一次性最大能够创建多少个文件: 默认为10w
set hive.exec.max.created.files=150000;


-- hive压缩
-- 开启中间结果压缩
set hive.exec.compress.intermediate=true;
-- 开启最终结果压缩
set hive.exec.compress.output=true;
-- 写入时压缩生效
set hive.exec.orc.compression.strategy=COMPRESSION;

 ②对于各个表数据进行处理

1、例如:拉平处理

2、例如:将分类编号替换为一二三级分类ID、编码和名称

关联分类表,将商品表中的category_no 对应的是分类表中的三级分类

 3、例如:有很多条件

门店日清商品表处理

日清商品,不满足以下要求的商品需要清理掉不再入库,主要是一些生鲜类和现做的食物

  1. 一切以实物为标准,不允许变色、不新鲜产品入库。

  2. 骨类入库存放时间不得超过24小时。

  3. 上冰台的所有促销品当天尽量要做到日清,对于上冰台的当日未销售完的产品,未变色,不影响第二天销售的可以入库。

  4. 对于化冻的禽副产品当日必须销售完毕,猪副产品根据品相颜色以实物相论。

从门店商品表中进行条件过滤,过滤出日清商品,然后进行保存

三、选择数据库,PostGreSql

①PostGreSql的介绍及其优势

PostgreSQL是一个强大的开源数据库系统,提供了诸如可靠性、功能性、可扩展性等特性,是企业级应用的理想选择。

以下是PostgreSQL的一些主要优势:
1.完全兼容ACID(原子性、一致性、隔离性、持久性):PostgreSQL支持事务的完整性和可靠性。

2.支持标准SQL:PostgreSQL遵循SQL标准,允许复杂和标准的SQL查询。

3.支持对象关系的数据库:PostgreSQL支持类似于Oracle的表空间、模式和数据库表的
概念。

4.强大的数据类型支持:PostgreSQL支持大对象、数组、范围查询等高级数据类型。

5.支持NoSQL数据类型:PostgreSQL的JSONB数据类型允许存储和查询NoSQL风格的数据。

6.强大的扩展性:PostgreSQL提供了扩展插件,如PostGIS(地理信息处理)、pg_partman(分区管理)

7.多版本并发控制:PostgreSQL支持多版本并发控制(MVCC),提供了一种高效的读写操作方式。

8.高可靠性:PostgreSQL提供了热备份、流复制等高可靠性特性。

9.开源免费:PostgreSQL是开源免费的,有着活跃的开发者社区和广泛的应用场景。

10.安全性:PostgreSQL提供了强大的安全特性,包括ACL、SSL、密码加密等。以下是一个简单的PostgreSQL连接代码示例(使用Python的psycopg2库):

②PostGreSql的基本使用

1、datagrip配置

2、基本数据操作

-- 数据表的创建
create table tb_user(
    id int,
    name varchar(20),
    age int,
    gender varchar(20)
);

-- 数据表的写入
insert into tb_user values(1,'张三',20,'男');

-- 查询数据
select * from tb_user;
select count(*) from tb_user;
select gender,sum(age) from tb_user group by gender;


select id,sum(age) over(order by id) from tb_user;

with tb as(
    select * from tb_user
)
select * from tb;

四、hive表数据导出PostGreSql

①需要再postGreSQL中创建对应表保存数据,参考建表语句文档

②配置datax任务,启动datax-web服务 /export/server/datax-web-2.1.2/bin/start-all.sh

 

 

 

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

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

相关文章

c++:优先级队列(priority queue)使用及底层详解,附带仿函数初步使用

文章目录 优先级队列的使用大堆小堆**注意** 优先级队列的模拟实现pushpopsizeemptytop 仿函数仿函数是什么pushpop 仿函数结合优先级队列的优势 优先级队列的使用 优先级队列本质是就是完全二叉树,是个堆.我们可以用优先级队列来取出一段序列中的前N个最大值. priority_queue…

Postman的一些使用技巧

Postman 是一个流行的 API 开发工具,用于设计、开发、测试、发布和监控 API。在现代web开发中使用非常广泛。后端开发必备而且必会的工具。 目录 1.配置环境变量 2.动态变量 3.脚本 4.测试 5.模拟 6.监控 7.集合运行器 8.响应保存 9.请求历史 10.同步请求…

【论文阅读笔记】关于“二进制函数相似性检测”的调研(Security 22)

个人博客链接 注:部分内容参考自GPT生成的内容 [Security 22] 关于”二进制函数相似性检测“的调研(个人阅读笔记) 论文:《How Machine Learning Is Solving the Binary Function Similarity Problem》(Usenix Securi…

面试算法-链表-反转链表(golang、c++)

目录 1、题目 2、解题思路 2.1 遍历、迭代 2.2 递归 3、源代码 3.1 c 3.2 golang 4、复杂度分析 4.1 遍历、迭代法 4.2 迭代法 1、题目 链表是一种常用的数据结构,链表的特点是插入、删除节点的效率非常高,因为他不需要移动其他任何元素&…

Linux——守护进程化(独立于用户会话的进程)

目录 前言 一、进程组ID与会话ID 二、setsid() 创建新会话 三、daemon 守护进程 前言 在之前,我们学习过socket编程中的udp通信与tcp通信,但是当时我们服务器启动的时候,都是以前台进程的方式启动的,这样很不优雅&#xff0c…

数据分析:基于DESeq2的转录组功能富集分析

介绍 DESeq2常用于识别差异基因,它主要使用了标准化因子标准化数据,再根据广义线性模型判别组间差异(组间残差是否显著判断)。在获取差异基因结果后,我们可以进行下一步的富集分析,常用方法有基于在线网站…

银行智能化数据安全分类分级实践分享

文章目录 前言一、数据安全智能分类分级平台建设背景二、数据安全分类分级建设思路和实践1、做标签– 数据安全标签体系2、打标签– 鹰眼智能打标平台 3.03、用标签– 全行统一“数据安全打标签结果”服务提供前言 随着国家对数据安全的高度重视,以及相关法律法规的出台,数据…

python数据分析中数据可视化简单入门

1.折线图表 首先引入相关包pyecharts,如果没下载可以先下载 pip install pyecharts from pyecharts.charts import Lineline Line() # 添加x轴 line.add_xaxis([呱了个呱,羊村,牟多,蜂地,喵帕斯]) # 添加y轴 line.add_yaxis("GDP",[50,30,40,34,63,22])…

epoll的LT和ET模式介绍

目录 1.epoll的LT和ET模式介绍 2.epoll的ET模式如何处理 2.1 epoll的ET模式编程读取数据的处理方式 2.2 将描述符设置为非阻塞模式的方法 3.ET模式的总结 4.epoll的LT模式和ET模式总结 5.IO复用总结 1.epoll的LT和ET模式介绍 epoll对文件描述符有两种操作模式: LT(Leve…

Linux(openEuler、CentOS8)常用的IP修改方式(文本配置工具nmtui+配置文件+nmcli命令)

----本实验环境为openEuler系统<以server方式安装>&#xff08;CentOS类似&#xff0c;可参考本文&#xff09;---- 一、知识点 &#xff08;一&#xff09;文本配置工具nmtui(openEuler已预装) nmtui&#xff08;NetworkManager Text User Interface&#xff09;是一…

在线OJ——链表经典例题详解

引言&#xff1a;本篇博客详细讲解了关于链表的三个经典例题&#xff0c;分别是&#xff1a;环形链表&#xff08;简单&#xff09;&#xff0c;环形链表Ⅱ&#xff08;中等&#xff09;&#xff0c;随机链表的复制&#xff08;中等&#xff09;。当你能毫无压力地听懂和成功地…

【莫比乌斯变换-02】关于莫比乌斯变换属性梳理

文章目录 一、说明二、多视角看莫比乌斯变换2.1 从几何角度2.2 复分析中的莫比乌斯变换2.3 莫比乌斯变换运算组合2.4 莫比乌斯变换的不动点2.5 三个点决定一个莫比乌斯变换2.6 交叉比2.7 莫比乌斯变换的逆变换 三 莫比乌斯变换性质证明3.1 证明1&#xff1a;莫比乌斯变换将圆变…

【莫比乌斯变换-03】python实现圆对圆的变换

文章目录 一、说明二、python实现复平面的莫比乌斯变换三、线的变换四、画笑脸 一、说明 我们在前面的文章中&#xff0c;叙述了莫比乌斯变换的复数分析&#xff0c;以及种种几何属性&#xff0c;本篇中叙述如何程序地实现&#xff1a;复平面上的圆在莫比乌斯变换下的图像是另…

基于高德 API 的自动获取气候数据的 Python 脚本

文章目录 高德申请 Key脚本介绍运行结果示例 源代码&#xff1a; https://github.com/ma0513207162/PyPrecip。pyprecip\reading\read_api.py 路径下。 项目介绍&#xff1a;PyPrecip 是一个专注于气候数据处理的 Python 库&#xff0c;旨在为用户提供方便、高效的气候数据处理…

linux基本操作

vim的基本操作 正常模式&#xff1a;启动vim后默认处于正常模式。不论位于什么模式&#xff0c;按下Esc建都会进入正常模式。 插入模式&#xff1a;在正常模式中按下i&#xff0c;l&#xff0c;a&#xff0c;A等键&#xff0c;会进入插入模式。现在只用记住按i键会进行插入模…

文本内容如何扫码展示?文本转二维码常用技巧

随着网络的不断发展&#xff0c;现在很多人会通过二维码的方式来作为内容的载体&#xff0c;用来给其他人提供需要的信息或者其他内容。其中&#xff0c;将文本制作二维码就是很常用的一种方式&#xff0c;通过扫码展示文字内容&#xff0c;比如信件、物品信息、联系方式等类型…

EPAI手绘建模APP资源管理和模型编辑器2

g) 矩形 图 26模型编辑器-矩形 i. 修改矩形的中心位置。 ii. 修改矩形的长度和宽度。 h) 正多边形 图 27模型编辑器-内接正多边形 图 28模型编辑器-外切正多边形 i. 修改正多边形的中心位置。 ii. 修改正多边形中心距离端点的长度。 iii. 修改正多边形的阶数。阶数为3&…

【Unity 协程】

Unity中的协程&#xff08;Coroutine&#xff09;是一种编程结构&#xff0c;它允许你以一种看似同步的方式编写可能需要异步执行的代码。协程特别适用于需要在一定时间后执行操作&#xff0c;或者在循环执行某段代码直到某个条件满足时的场景。 协程使用IEnumerator委托来实现…

基于HAL库的stm32中定时器的使用--定时器中断每隔一秒进行led灯的闪烁以及定时器生成PWM

一&#xff1a;什么是定时器 &#xff08;1&#xff09;stm32定时器&#xff0c;是存在于stm32单片机中的一个外设。stm32共有八个定时器&#xff0c;两个高级定时器&#xff08;TIM1、TIM8&#xff09;&#xff0c;四个通用定时器&#xff08;TIM2、TIM3、TIM4、TIM5&#xff…

docker 指定根目录 迁移根目录

docker 指定根目录 迁移根目录 1、问题描述2、问题分析3、解决方法3.1、启动docker程序前就手动指定docker根目录为一个大的分区(支持动态扩容)&#xff0c;事前就根本上解决根目录空间不够问题3.1.0、方法思路3.1.1、docker官网安装文档3.1.2、下载docker安装包3.1.3、安装doc…