如何将Hive表的分区字段插入PG表对应的时间戳字段?

文章目录

1、背景描述

数据仓库的建设通常是为业务和决策服务的。在数仓开发的应用层阶段,BI可以直接从主题层/业务层取数,而前端需要根据具体的作图需求通过后端查询数据库

作图的指标需要根据主题层/业务层做查询计算,然后将查询的结果导出到数据库以供前端作图。这个过程可以称为从数据仓库到OLTP数据库的ETL过程

然而,在ETL过程中,最棘手的问题就是数据类型兼容性问题,简单来说就是如何做数据类型转化,因为ETL的输入和输出是不同的系统

ETL的实现通常需要专门的工具或软件,例如DataX、Sqoop、Kettle等。当然,在湖仓一体化的环境下,ETL的成本将极大降低,因为我们可以直接使用SQL实现

例如,如何将Hive表的分区字段(string)通过SQL插入PG表对应的时间戳(timestamp)字段?

2、场景分析

在PostgreSQL中,时间戳(timestamp)类型主要用于存储日期和时间的值,包括年、月、日、时、分、秒和小数秒

例如,我们已经创建了一个应用层PG表,该表包含了某个作图图表的一些指标字段和一个时间戳(timestamp)字段,现在需要将Hive查询计算的结果插入到该PG表,其中分区(string)字段对应到PG表的时间戳字段(timestamp)

如何进行转换以确保插入成功?

在PostgreSQL中,根据声明日期时间类型的方式,只需要使用日期时间的字符串格式yyyy-MM-dd HH:mm:ss,直接在字符串的前面使用数据类型进行转换就可以了

sql 复制代码
insert into pg_table (col1,col2,...,stat_date)
select 
col1,
col2,
...,
timestamp ('2024-06-01 00:00:00') as stat_date 
from hive_table

因此,我们只需要将Hive的分区字段转换成yyyy-MM-dd HH:mm:ss格式,并使用timestamp声明即可完成插入

总的来说,湖仓一体化场景下,ETL的成本大大降低了,但是企业对用工人员的要求更高了,工人不仅需要熟悉数据仓库,还需要熟悉一些常见的数据库,以及它们之间如何融合使用

相关推荐
SelectDB技术团队20 小时前
上市大模型企业数据基础设施的选择:MiniMax 基于阿里云 SelectDB 版,打造全球统一AI可观测中台
数据库·数据仓库·人工智能·ai·apache
weixin_4624462320 小时前
Hive Metastore 使用 MySQL 8(CJ 驱动)完整配置实战(含完整 Shell 脚本)
hive·hadoop·mysql
zgl_2005377920 小时前
源代码:ZGLanguage 解析SQL数据血缘 之 显示 MERGE SQL 结构图
数据库·数据仓库·hive·数据治理·etl·sql解析·数据血缘
Gain_chance20 小时前
24-学习笔记尚硅谷数仓搭建-DIM层的维度表建表思路及商品表维度表的具体建表解析
数据仓库·hive·笔记·学习·datagrip
编程小风筝21 小时前
MySQL数据库如何实现实现数据仓库存储?
数据库·数据仓库·mysql
talle20211 天前
Hive | 分区与分桶
大数据·数据仓库·hive
Gain_chance2 天前
23-学习笔记尚硅谷数仓搭建-ODS层业务全量表、增量表结构设计及数据装载脚本
数据仓库·hive·笔记·学习
JZC_xiaozhong2 天前
什么是ETL?一文了解提取、转换与加载
数据库·数据仓库·数据分析·etl·数据一致性·数据孤岛解决方案·数据集成与应用集成
zhangxl-jc2 天前
Hive基本操作日记
数据仓库·hive·hadoop
叮铃铃上课了2 天前
Hive实战:精准拆分中英文混合字符串(含重音/空格场景)
数据仓库·hive·hadoop