
Hive
文章平均质量分 79
Hive 介绍、环境搭建、属性配置、sql 语法、函数介绍
半吊子Kyle
这个作者很懒,什么都没留下…
展开
-
检查HIVE分区是否连续
我们经常可能会有这样的诉求,需要对一张目标表进行分区检查,查看是否存在不连续的情况,该诉求频繁且重要,因此以下语句可以实现我们的诉求。原创 2024-06-17 09:39:21 · 354 阅读 · 0 评论 -
数据仓库建模(四):维度表的设计
数据仓库建模(四):维度表的设计维度表的结构维度表的结构原创 2022-10-23 17:47:21 · 4153 阅读 · 0 评论 -
彻底搞懂 Hive|Spark DDL语句 | ALTER 语法
HIVE 的DDL语句中的 ALTER 语法你了解多少,本博客让你彻底搞懂原创 2022-07-24 22:21:23 · 5387 阅读 · 1 评论 -
Hive|Spark 查看表的各种信息
Hive | Spark 中的 SHOW 语法你了解多少?不能错过的好文章原创 2022-07-10 19:15:35 · 7480 阅读 · 4 评论 -
HIVE 生成过多小文件的问题
HIVE 生成过多小文件的问题笔者公司的HIVE现状看下怎么插数会造成小文件过多今天运维人员突然发来了告警,有一张表生成的小文件太多,很疑惑,然后排查记录了下笔者公司的HIVE现状HIVE的版本 2.x,使用的引擎是 MR,该张表是 WEB 开发人员通过 HIVE JDBC 插入的看下怎么插数会造成小文件过多① 建表语句CREATE TABLE if not exists cust_info( user_id string COMMENT '用户ID' ,user_name原创 2022-04-16 23:50:13 · 3888 阅读 · 0 评论 -
HDFS 压缩算法对比
HDFS 压缩算法对比Hive 在处理数据时,一般都需要经历文件读取和文件写出的过程,如果按照原文件的大小进行读写和传输,不仅效率查而且带宽的占用也很高,此时就需要我们这里所讲的 存储格式 和 压缩算法文件存储格式不同对应不同的压缩算法,从而带来不同的性能,我们根据实际使用考虑压缩算法的性能,主要通过以下 3 个指标:① 压缩比压缩比越高,压缩后文件越小,所以压缩比越高越好② 压缩时间越快越好③ 压缩后的文件是否可以再分割可以分割的格式允许单一文件由多个Mapper程序处理,可以更好的并行化原创 2022-04-16 17:23:50 · 3168 阅读 · 0 评论 -
HIVE 数据仓库容量清理
HIVE 数据仓库容量清理的一般操作清理无用数据归档访问频率低的冷历史数据未压缩的文本表进行压缩处理本博客结合笔者公司,总结了一下一般的数据仓库容量清理手段,见识浅陋,如有大佬路过,欢迎指点随着数据仓库数据量的不断上升,一些表的文件越来越大,HADOOP 集群需要不断的加机器,随着不断的拓展,我们会发现:优化和清理同样重要,优化和清理的尽头才是加机器此时我们需要对HIVE的容量着手,开始考虑如何清理容量,一般有有一下几点:清理无用数据无用的数据很主观,需要对整个仓库的表进行梳理,主要针对以下这原创 2022-04-15 11:18:56 · 2845 阅读 · 0 评论 -
HIVE 导入导出文件
HIVE 导入导出文件导入文件导出文件表中的数据到本地文件表中数据到 HDFS参考:HIVE 导出文件导入文件导出文件表中的数据到本地文件其实在实际开发场景,一些关键性的数据可能还是需要我们导出来,然后下发给业务,所以此时就需要一些导出数据的操作,需要注意以下几点:1. 文件夹路径的文件夹应该是一个空文件夹,防止原数据被覆盖2. 如果使用了 LOCAL 关键字,HIVE 会把数据写入到本地文件系统中3. 数据会序列化到本地文件中,字段的分隔符默认为 ^A,行的分隔符默认为新的一行,如果字段原创 2022-04-11 23:51:25 · 2361 阅读 · 0 评论 -
Hive|Spark 函数详解
Hive|Spark 函数详解基本比较运算函数=、==!!=、<><=><、<=>、>=特殊比较运算函数BETWEENIS [NOT] NULLIN基本数学运算函数+基本比较运算函数 注意: 在比较比较运算函数中, 对于一些可能存在为 NULL 的情况, 一定要增加逻辑判断和处理 =、==expr1 = expr2 - 如果 expr1 equals expr2 则返回 true , 否则返回 false ① 为 NULL 的情况如果 expr1原创 2022-04-10 16:19:17 · 1694 阅读 · 0 评论 -
数据仓库建模(三):事实表的设计
数据仓库建模(三):事实表的设计事实表结构可加、半可加、不可加事实事实表中的空值一致性事实(事实表中字段命名尽量保持统一)事务事实、周期性快照事实表、累计快照事实表、无事实的事实表事实表结构事实表中每一行对应一个度量事件,反之亦然,比如订单表,每一行对应一个用户下单的事件,此时如果下单送积分的话,那么积分应该对应一个新的积分表,因为积分和下单是不同的事件,不要把这两个事件混在同一个表中。每个事件都对应一个度量,一般情况下是数字度量,比如用户下单事件对应的数字度量应该是订单金额。事实表一般包含外键,用原创 2022-03-20 16:46:25 · 4392 阅读 · 1 评论 -
数据仓库建模(二):建模流程
数据仓库建模(二):建模流程说明kimball 维度建模维度建模设计流程说明该系列的文章仅为记录以及《数据仓库工具箱(维度建模指南)》的读后心得和思考,如有异议,请留言将某些事情以具体、有形的方式抽象成数据集展示出来是数仓建设的最终目的,因此数据模型一定要保持简单性的设计,如果从复杂的数据模型起步,最终将会导致模型过于复杂,从而导致查询性能低下。爱因斯坦曾经说过:“凡事应该尽量简单,直到不能再简单为止”。– 《数据仓库工具箱(维度建模指南)》kimball 维度建模Ralph Kimball原创 2022-03-20 12:08:21 · 2425 阅读 · 0 评论 -
HIVE 增加修改删除字段
HIVE 增加修改删除字段非分区表增加字段修改字段(修改字段名称、类型、注释、顺序)删除字段分区表新增字段非分区表增加字段增加字段可以使我们在所有字段之后和分区字段之间增加一个字段使用格式ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...) [CASCADE|RESTRICT] -- (Note: Hive 1.原创 2022-03-19 22:28:39 · 24688 阅读 · 4 评论 -
词根的定义规则
词根的定义规则字段命名的一些问题可以改善以上问题的方法词根定义规范字段命名的一些问题在数据的开发过程中,经常需要定义一些字段或者表名,规则的不完善或者每个人的命名风格都会导致我们遇到以下问题:① 字段的命名不同,但是字段含义完全相同② 确定字段命名时,常常因为候选的单词太多,而无法立即确定用哪个字段③ 中文含义太长,需要把整个中文翻译为字段名吗…可以改善以上问题的方法① 建立统一的词根及字段命名库,防止重复命名② 制定词根和字段命名的规则,最大限度避免个性化词根定义规范在我们公司没有健原创 2022-03-15 23:59:57 · 1066 阅读 · 0 评论 -
彻底弄懂 HIVE 和 SPARK 中的 JOIN
HIVE 和 SPARK 中的 JOINJOIN 的作用INNER JOIN(内连接)LEFT JOIN(左外连接 | 左连接)RIGHT JOIN(右外连接 | 右连接)FULL JOIN(完全连接 | 完全外连接)CROSS JOIN(交叉连接 | 笛卡尔积)SEMI JOIN(半连接)ANTI JOIN(反连接)参考了以下文档:① Spark 3.2.1 - JOIN②JOIN 的作用JOIN 用来将又关系的行进行关联常见的 JOIN 类型有:[ INNER ] | CROSS | LE原创 2022-03-02 23:55:22 · 2615 阅读 · 0 评论 -
HIVE 使用正则输出符合条件的字段
HIVE 使用正则输出符合条件的字段HIVE 查询除了其中某个字段剩余所有字段无意中了解到 HIVE 中可以使用正则来实现匹配符合条件的列,特此记录,文档如下:hive.support.quoted.identifiersHIVE 查询除了其中某个字段剩余所有字段create table if not exists user_temp( user_id string comment '用户ID', user_name string comment '用户姓名', emp_i原创 2022-03-02 20:58:54 · 2122 阅读 · 0 评论 -
HIVE 自定义字段插入数据
HIVE 自定义字段插入数据环境介绍只插入自定义字段(单条数据插入)只插入自定义字段(多条数据插入)环境介绍① 环境说明HIVE 2.1.0 + Hadoop 2.7.5② 文章参考HIVE INSERT 说明只插入自定义字段(单条数据插入)① 非分区表的插入方式-- 建表语句create table if not exists user_card_info_temp( user_id string comment '用户ID', user_name string c原创 2022-03-02 17:20:42 · 6839 阅读 · 0 评论 -
HIVE 多表关联的顺序
HIVE 多表关联的顺序多表关联顺序的问题多表关联的顺序多表关联顺序的问题当多张表进行关联的时候,既有 LEFT JOIN,又有 JOIN,此时的关联顺序是如何进行的,假设我们有三张表,数据如下:① 用户信息表-- 用户信息表create table if not exists user_temp( user_id string comment '用户ID', user_name string comment '用户姓名', emp_id string comment '原创 2022-03-02 16:15:54 · 4957 阅读 · 0 评论 -
HIVE 打印表头配置
HIVE 客户端打印表头配置通过配置参数打印表头(当前会话有效)通过配置参数打印数据库名(当前会话有效)通过配置文件配置(永久生效)通过配置参数打印表头(当前会话有效)① 不打印表头set hive.cli.print.header=false;② 打印表头,显示为 表名.字段名set hive.cli.print.header=true;③ 打印表头,只显示为 字段名-- 该配置必须开启set hive.cli.print.header=true;set hive.results原创 2022-03-02 15:09:22 · 3412 阅读 · 0 评论 -
Hive 循环插数脚本
说明当前有一个日期分区表,分区字段为 ds ,我们需要通过循环每天日期实现把一段日期的数据插入另外一张表中,建表语句如下:-- 建表语句CREATE TABLE crm_user_info ( cust_no string COMMENT '客户编号', cust_name string COMMENT '客户姓名', gender string COMMENT '客户性别',) COMMENT '客户信息表'partitioned by原创 2022-02-07 22:05:22 · 2542 阅读 · 0 评论 -
数据仓库建模(一):整体描述
数据仓库建模的心得分享(一)说明该系列的文章仅为记录以及《数据仓库工具箱(维度建模指南)》的读后心得和思考,如有异议,请留言将某些事情以具体、有形的方式抽象成数据集展示出来是数仓建设的最终目的,因此数据模型一定要保持简单性的设计,如果从复杂的数据模型起步,最终将会导致模型过于复杂,从而导致查询性能低下。爱因斯坦曾经说过:“凡事应该尽量简单,直到不能再简单为止”。– 《数据仓库工具箱(维度建模指南)》为什么要建模这些问题在我们的工作中其实经常接触到:① 我们希望方便的对数据进行聚合和计算,从原创 2021-12-05 18:42:37 · 2661 阅读 · 0 评论 -
LATERAL VIEW 使用总结
LATERAL VIEW 使用总结使用案例一(单个):split + explode + LATERAL VIEWThe LATERAL VIEW clause is used in conjunction with generator functions such as EXPLODE, which will generate a virtual table containing one or more rows. LATERAL VIEW will apply the rows to each or原创 2021-11-08 09:59:23 · 4968 阅读 · 0 评论 -
Hive 中的临时表使用对比
Hive 中的临时表使用对比说明(使用 spark-sql 测试)unionwith...ascreate temporary viewcache table说明(使用 spark-sql 测试)需求说明:假设我们现在有 3 张表,如下图所示,分别为 tra_stock_info 、tra_stock_info_ss 、 tra_stock_info_sz我们现在需要将 tra_stock_info_ss 和 tra_stock_info_sz 的数据插入到 tra_stock_info 表中,那么原创 2021-09-27 18:15:15 · 4116 阅读 · 0 评论 -
Hive/Spark SQL使用案例
Hive/Spark 函数使用示例求 TOPN:开窗函数求天数:datediff() 函数求每个学生的成绩都大于...系列:开窗 / 分组表转置/行转列系列:concat_ws 函数【关键字:Hive SQL 面试、Hive SQL 练习、Hive SQL 函数示例、Spark SQL 面试、Spark SQL 练习、Spark SQL 函数示例】如有错误,欢迎留言指出!求 TOPN:开窗函数需求说明求出每个部门工资最高的前三名员工,并计算这些员工的工资占所属部门总工资的百分比建表和数据原创 2021-09-13 11:18:16 · 1516 阅读 · 0 评论 -
DataGrip 连接 Hive 1.1
DataGrip 连接 Hive 1.1环境介绍MacBook M1 + DataGrip 2021 + Hive 1.1直接连接,报错,原因为 hive-jdbc 的版本太高[ 08S01] Could not open client transport with JDBC Uri: jdbc:hive2://10.20.147.31:10000/default: Could not establish connection to jdbc:hive2://10.20.147.31:原创 2021-05-14 19:36:31 · 947 阅读 · 2 评论 -
Hive 安装 以及使用 DataGrip 连接 Hive
Hive 安装 以及使用 DataGrip 连接 HiveHive 安装说明Hive 安装前的准备Hive 安装Hive 启动Hive 安装常见的问题Hive 安装说明① 环境说明Hadoop 环境已通过腾讯云服务器完成搭建,我是将 hive 安装到 该 hadoop 集群的某个节点了Mysql 中间件使用的是阿里云的产品② 版本说明Hadoop 2.7.5 +Hive 2.1.1 + Mysql 8.0.18 + Centos 7 + DataGrip 2021Hive 安装前的准备① 搭原创 2021-06-13 14:23:21 · 6568 阅读 · 4 评论 -
Hive 调优总结...持续更新
Hive 调优总结...持续更新Fetch抓取(Hive可以避免进行MapReduce)本地模式Join 优化Map 端 Join 优化(大表 Join 小表)空key过滤(大表 Join 大表)空key转换(大表 Join 大表)SQL 优化列裁剪分区裁剪GroupByCount(distinct)笛卡尔积动态分区调整优化动态分区参数设置案例分析数据倾斜优化Map 数据倾斜Reduce 数据倾斜并行执行优化严格模式JVM 重用推测执行存储方式和压缩方式Fetch抓取(Hive可以避免进行MapReduc原创 2021-06-21 10:14:15 · 1245 阅读 · 3 评论 -
Hive 中的函数概览
Hive 中的函数概览Hive 内置函数Hive 内置函数说明Hive 数学函数Hive 字符串函数Hive 日期函数Hive 条件函数Hive 转换函数Hive 行转列Hive 表生成函数explode 函数介绍LATERAL VIEW侧视图Reflect函数Hive 开窗函数窗口函数(1) NTILE,ROW_NUMBER,RANK,DENSE_RANKHive分析窗口函数(2) SUM,AVG,MIN,MAXHive分析窗口函数(3) LAG,LEAD,FIRST_VALUE,LAST_VALUEH原创 2021-06-18 22:59:51 · 2319 阅读 · 2 评论 -
Hive 的SQL基本操作
Hive 的基本操作Hive 数据库操作Hive 数据库表操作Hive 数据库操作切换数据库-- 切换为 myhive 数据库use myhive;查看所有的数据库-- 切换为 myhive 数据库show databases;查看数据库的详细信息-- 查看数据库 myhive 的详细信息desc database myhive;创建数据库-- 创建一个名称为 myhive 的数据库create database if not exists myhive;数据库表原创 2021-06-17 22:12:52 · 3032 阅读 · 9 评论