自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 收藏
  • 关注

原创 Hive优化操作(二)

数据倾斜是指由于数据分布不均匀,导致大量数据集中到某个节点或任务中,造成处理延迟和性能瓶颈。

2024-10-06 21:14:43 4745 1

原创 Hive优化操作(一)

在使用 Hive 进行数据分析时,提高查询性能至关重要。以下是一些具体的优化策略,帮助我们在工作中更有效地管理和查询数据。

2024-10-06 18:24:21 5026

原创 Hive数仓操作(十七)

一、Hive 四种存储格式在 Hive 中,支持四种主要的数据存储格式,每种格式有其特点和适用场景,不过一般只会使用Text 和 ORC 二、Hive 行列存储三、Hive 压缩格式1. TEXTFILE压缩算法:可使用 Gzip、Bzip2 等压缩算法。四、Hive 建表手册创建表的基本语法

2024-10-05 21:16:09 6154 1

原创 Hive数仓操作(十六)

Hive的DML语句一、 插入操作INSERT一般不会单条或几行插入,使用多表复制即可二、更新操作UPDATE 和删除操作 DELETE数仓中的数据存在即有意义,一般不会进行更新和删除操作,虽然公司不用但一般都有这些功能,了解即可,反正我没用过更新和删除操作的条件表必须为分桶表:表格需要使用分桶(Bucketing),这可以提高数据的管理和查询效率。数据存储格式:表格的数据必须存储为 ORC 格式,而不能是文本格式。ORC 格式支持 ACID 操作的事务特性。事务支持:表格必须启用

2024-10-05 20:17:05 6645

原创 Hive数仓操作(十五)

Hive 开窗函数窗口函数的基本组成部分窗口边界标识符窗口边界函数示例数据集SQL 查询运行结果1. 查询在2017年4月份购买过的顾客Hive窗口函数是一种特殊的函数,允许用户在查询中对一组行进行计算,而不仅仅是单独的行。窗口函数可以在 SQL 查询中进行聚合、排名、累积计算等。这使得窗口函数在数据分析和报告生成中非常有用。

2024-10-04 20:22:00 7006

原创 Hive数仓操作(十四)

一、Hive的DDL语句1. 创建数据库和表2. 修改表示例注意3. 删除数据库和表4. 分区和分桶5. 修改分区二、Hive的子查询查询出和10号部门的工作岗位相同的其他部门的员工信息1. IN 子查询(由于HIVE莫名的不可抗力会经常报错,建议用后两种方法)2. LEFT SEMI JOIN

2024-10-04 19:22:01 7208

原创 Hive数仓操作(十三)

一、JSON 数据1. JSON 特点2. JSON 的语法3. JSON 在 Hive 中的使用get_json_object()二、HIVE的JSON 数据处理示例数据格式第一步:提取数据第二步:数据处理JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,在不同的编程语言之间进行数据传输时非常通用和常用。JSON 格式简单直观,易于阅读和编写,并且可以被大多数编程语言轻松解析和生成。

2024-10-03 23:25:16 8530 3

原创 Hive数仓操作(十二)

一、Hive 中的行列转换1. 行转列: collect_list()2. 行转列:collect_set()3. 列转行:explode()二、Hive 收集切割1. split()2. split()常和concat_ws() 一起使用行转列: collect_list()collect_list() 函数用于将一个列中的数据收集成一个数组。 列转行:explode()explode() 函数用于将数组里的元素拆分开来,并用行展示。通常与 lateral view 函数搭配使用。

2024-10-03 21:19:58 8648

原创 Hive数仓操作(十一)

一、Hive 日期函数二、Hive 条件函数三、Hive 空值处理函数四、聚合函数常用的聚合函数有 MAX、SUM、COUNT、MIN、AVG 以及 GROUP BY 和 HAVING 的用法和 Mysql、Oracle 是一样的。在日常的数据处理工作中,日期和时间的处理是非常常见的操作。Hive 提供了丰富的日期函数,能够帮助我们方便地进行日期和时间的计算。本文将详细介绍 Hive 中常用的日期函数,并通过具体的示例展示其用法和结果。

2024-10-02 00:05:33 10009

原创 Hive数仓操作(十)

一、Hive 分页查询1. 基本用法2. 基本语法:3. 示例4. 注意事项二、Hive 常用函数1. 查看和描述系统自带的函数2.常用字符串函数在大数据处理中,分页查询是非常常见的需求。Hive 提供了LIMIT和OFFSET关键字来方便地进行分页操作。本文将详细介绍它们的用法。

2024-10-02 00:04:29 10834 1

原创 Hive数仓操作(九)

一、Hive的DQL查询顺序二、Hive的排序方式Hive有四种排序方式,也称为四个By1. Order By2. Sort By3. Distribute By4. Cluster ByHQL语法基本上与传统的SQL一致,包括SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY和LIMIT等关键步骤。

2024-10-02 00:04:05 10088

原创 Hive数仓操作(八)

一、Hive中的分桶表1. 分桶表的概念2. 分桶表的原理3. 分桶表的用途4. 分桶表的创建5. 分桶表的查询6. 分桶与分区的区别分桶表是Hive中一种用于提升查询效率的表类型。分桶指的是根据指定列的哈希值将数据划分到不同的文件(桶)中。当两个表的连接字段作为分桶字段时,且分桶数量相等或成倍数关系时,能够加快连接速度。支持抽样查询:可以快速获取数据的样本

2024-10-01 15:23:33 11475 3

原创 Hive数仓操作(七)

一、 Hive动态分区表1. 动态分区与静态分区的区别2. 动态分区设置示例二、 Hive外部分区表1. 创建外部分区表2. 挂载已有分区数据3. 自动修复分区外部分区表关联数据的方静态分区:在插入数据时,需要手动指定分区字段的值。动态分区:分区字段的值是根据数据中的某个字段自动生成的,用户只需指定分区字段的类型。数据加载方式:静态分区:可以通过 LOAD DATA 和 INSERT ... SELECT 加载数据。动态分区:只能通过 INSERT ... SELECT 加载数据。

2024-10-01 00:13:39 10976 1

原创 Hive数仓操作(六)

一、 Hive 分区表1. 创建分区表2. 查看分区信息3. 分区表的创建示例一:创建分区表并加载数据示例二:将已有表转化为分区表二、 Hive 分区操作三、 Hive脚本化运行Hive 的分区表通过在 HDFS 中以不同的目录存储不同的分区数据,来提高查询性能并减少数据扫描量。分区表可以根据特定的列(如性别列的男女)将数据划分为多个部分,使得查询时只需要扫描相关的分区,而不是整个表,下文讲解一下静态分区表。

2024-10-01 00:11:26 11034

原创 Hive数仓操作(五)

一、Hive 信息查看二、 Hive表的复制方式三、 Hive表的插入方式四、Hive 中的内部表与外部表Hive 将表的元数据(如表名、列名、类型等)存储在关系型数据库中,通常是 MySQL。元数据的主要表包括:TBLS:存储表的信息(表名、类型、ID 等)。COLUMNS_V2:存储每个列的详细信息(列名、类型等)。DBS:存储数据库的信息。SDS:存储数据文件的位置。

2024-09-30 00:07:04 11264

原创 Hive数仓操作(四)

一、Hive 创建表案例一(ARRAY数组类型)1. 准备数据文件2. 上传文件到 HDFS3. 创建 Hive 数据库4. 使用数据库5. 创建 Hive 表6. 加载数据到表中7. 测试查询数据8. 多次查询的示例9. 插入新数据二、Hive 创建表案例二(MAP类型)1. 数据文件

2024-09-30 00:06:34 11395

原创 Hive数仓操作(三)

一、Hive 数据库操作5. 显示数据库信息二、Hive 创建内部表Hive 表的类型创建内部表的步骤创建表的语法结构三、Hive 内部表的其他操作1. 向内部表中插入数据2. 查询内部表3. 删除内部表4. 更新内部表从 HDFS 导入数据从本地Linux导入数据查询表的数据

2024-09-29 19:02:21 11497

原创 Hive数仓操作(二)

Hive 数据类型与连接一、Hive 基本数据类型-二、Hive 集合数据类型-三、数据导入 Hive-四、Hive的连接-1. 直接使用 Hive 客户端2. 使用 Beeline 客户端3. 使用第三方工具连接Hive 是一个用于处理大规模数据集的工具,支持多种数据类型以满足不同的需求。本文将详细介绍 Hive 的基本数据类型和集合数据类型。

2024-09-29 14:37:32 11393

原创 Hive数仓操作(一)

Hive 介绍1. Hive 的本质: HQL转化为MapReduce2. Hive 的执行流程3. Hive 的优点4. Hive 和关系型数据库的比较5. Hive 的元数据存储Hive 是一个基于 Hadoop 的数据仓库工具,旨在简化大规模数据集的管理和分析。它将结构化数据文件映射为表,并提供类似 SQL 的查询功能。Hive 的数据存储在 Hadoop 分布式文件系统(HDFS)中,使用 Hive 查询语言(HQL)进行数据处理。

2024-09-29 00:01:39 11966 2

原创 数据仓库简介(一)

面向主题的:专注于特定的业务主题。集成的:从不同的数据源聚合数据。相对稳定的:数据在装入后一般不可更新,主要用于查询。反映历史变化的:保存历史数据,支持管理决策。

2024-09-28 18:24:28 11507

原创 Hadoop三大组件之YARN(一)

YARN(Yet Another Resource Negotiator)是Hadoop生态系统中的一个重要组成部分,主要用于资源管理和调度。

2024-09-28 16:32:07 12156

原创 Hadoop三大组件之MapReduce(二)

在HDFS(Hadoop Distributed File System)中,数据块是物理上将数据分成一块块的单位,是HDFS存储数据的基本单位。数据切片是在逻辑上对输入数据进行分块,它并不代表在磁盘上的物理切分。数据切片是MapReduce程序计算输入数据的单位,每个切片会对应启动一个MapTask。环形缓冲区是为了解决数据传输和处理效率而设计的,它在Map和Reduce阶段之间扮演着至关重要的角色。是MapReduce中默认的输入格式,负责将输入数据划分为切片。默认情况下,切片大小等于Block大小。

2024-09-28 14:28:40 11841

原创 Hadoop三大组件之MapReduce(一)

MapReduce是一个分布式运算程序的编程框架,旨在帮助用户开发基于Hadoop的数据分析应用。它的核心功能是将用户编写的业务逻辑代码与自带的默认组件整合,形成一个完整的分布式运算程序,并并发运行在一个Hadoop集群上。

2024-09-28 14:28:14 12016

原创 MySQL基础知识(三)

通过这种方式,可以提高执行效率,因为存储过程在编译后只需通过调用和参数传递来使用,而无需每次执行时都进行解析和编译。在使用索引进行查询时,若索引字段未能完全满足查询条件,MySQL将需要通过索引查找后再访问实际数据表进行数据的完整读取,这个过程称为“回表”。主从同步通过在主数据库上执行写操作,并将数据同步到从数据库,实现读写分离,提高性能及数据安全。MySQL通过使用不同的存储引擎来存储和管理数据,支持高效的读写操作,满足多种业务需求。:只统计主键列的数量,效率较低。的性能是相同的,通常优于。

2024-09-27 02:45:00 11540

原创 MySQL基础知识(二)

索引是数据库中用于优化查询性能的数据结构。它存储着满足特定查找的数据,并通过指针引用表中的数据,从而实现高效的数据访问。索引可以快速定位到所需的数据行,并避免全表扫描。

2024-09-27 02:30:00 11024

原创 MySQL基础知识(一)

数据库引擎是数据库管理系统(DBMS)的核心组件之一,负责数据的存储、查询、更新和管理。不同的引擎有不同的特性和适用场景。事务是数据库操作的一个基本单元,可以包含一个或多个SQL语句。事务的特点是原子性:要么全部执行成功,要么全部失败。脏读:一个事务读取了未提交的其他事务的数据,如果那个事务最终被回滚,读取的数据就会变得不准确。不可重复读:同一事务在两次查询之间,其他事务可能修改了数据,从而导致结果不一致。幻读:在一个事务中,多次执行相同查询,但其他事务可能插入或删除数据,导致结果集不一致。

2024-09-26 22:03:32 11466

原创 Hadoop三大组件之HDFS(二)

Hadoop 分布式文件系统 (HDFS) 提供了灵活且高效的文件管理方式,类似于 Linux 文件系统。本文将介绍常用的 HDFS 操作命令,帮助您更好地掌握 HDFS 的基本操作。会在 /user/username 目录下创建一个名为 myfolder 的新目录。选项可以使 Hadoop 递归地检查该文件夹中的所有文件和子文件夹并将其一并删除。选项,Hadoop 将不会删除文件夹(即使文件夹为空),因为。HDFS 的目录结构与 Linux 类似,顶层目录为。只处理单个文件的删除,与Linux略有不同。

2024-09-26 21:02:39 12364

原创 经典sql题(十四)炸裂函数的恢复

CONCAT: 直接将字符串连接,不支持分隔符。CONCAT_WS: 允许指定分隔符,使合并结果更具可读性。

2024-09-25 23:24:45 11682

原创 经典sql题(十三)炸裂对应学生的姓名和成绩

行数: 两者在行数上是相同的(即每个数组元素生成一行)。输出内容explode只返回元素,而posexplode返回元素及其对应的索引。

2024-09-25 16:52:14 11988

原创 经典sql题(十二)UDTF之Explode炸裂函数

函数 是Hive 中的一种用户定义的表函数(UDTF),用于将数组或映射结构中的复杂的数据结构每个元素拆分为单独的行。,可以帮助我们更高效地进行数据清洗、转换和分析,为决策提供有力支持,掌握这些函数和技术,将极大地提高我们在数据分析中的灵活性和效率。允许我们将 UDTF 的输出与原始表中每一行的数据连接在一起,这样就可以在查询中灵活地处理嵌套数据。Hive 提供了一种强大的方式来处理和分析复杂的嵌套数据结构,在实际应用中,合理地结合使用。我们希望将评论中的每个单词拆分出来。列中的数组拆分为多行。

2024-09-24 23:55:13 11730

原创 经典sql题(十一)查找共同好友或相互关注 二

在处理海量数据时,使用 JOIN 可能会导致性能瓶颈,特别是当参与 JOIN 的表非常大时,JOIN 操作通常需要扫描多个表,并且在连接条件上进行复杂的匹配,这会消耗大量的计算资源和时间。相反,使用聚合或过滤的方法可以减少数据处理的复杂性,从而提高性能。以下是使用不依赖于 JOIN 的方法找出互相关注用户对的方法。

2024-09-24 22:39:09 11250

原创 关于 SQL 的 JOIN 操作

JOIN用于将两个或多个表中的行结合起来,基于它们之间的相关性。通过JOIN,我们可以一次性检索来自不同表的数据,这在处理复杂的数据关系时尤为重要。

2024-09-23 23:51:47 11403 2

原创 经典sql题(十)查找共同好友或相互关注 一

这题我们使用的是 LEFT JOIN,也称为左外连接。它用于从左侧表(tl)中返回所有行,并且在右侧表(t2)中查找匹配的行。如果没有匹配,右侧表的结果将为 NULL。INNER JOIN vs LEFT JOIN:INNER JOIN 仅返回两个表中匹配的行,而 LEFT JOIN 保留左侧表的所有行。在使用 LEFT JOIN 时,如果在右侧没有找到匹配的行,结果将返回 NULL。在这种情况下,通常需要通过条件判断来处理这些 NULL 值,比如通过 IF 或 CASE 来判断双向关系是否存在。

2024-09-23 23:48:57 11571

原创 Hadoop三大组件之HDFS(一)

HDFS(Hadoop Distributed File System)采用主从架构,由一个NameNode(主节点)和多个DataNode(从节点)组成。NameNode负责管理数据块映射信息(如文件名、文件目录、权限、块位置等)并配置副本策略,而DataNode负责存储实际的数据块。定期从NameNode获取fsimage和edits文件,合并生成新的fsimage文件,发送回NameNode,以减小edits文件大小,防止NameNode重启时加载过多日志。较大文件块减少寻址时间,提高传输效率。

2024-09-20 23:54:36 11805

原创 Shell脚本编程基础(五)

五种常用文本工具和Crontab调度工具(二)1. **cut**: 用于从文本中提取特定的字段或列。2. **grep**: 用于搜索文本中的特定模式。3. **awk**: 用于处理和分析文本。4. **sed**: 用于文本替换和编辑。5. **sort**: 用于对文本行进行排序。

2024-09-20 01:27:48 12099

原创 Shell脚本编程基础(四)

五种常用文本工具和Crontab调度工具(一)cut: 用于从文本中提取特定的字段或列。grep: 用于搜索文本中的特定模式。awk: 用于处理和分析文本。

2024-09-19 12:10:43 11885

原创 Shell脚本编程基础(三)

Shell 脚本中的条件判断和循环是控制脚本执行流程的关键。通过if和case语句,我们可以根据不同的条件执行相应的操作,而for循环和while循环则使我们能够轻松地处理列表中的每个元素。

2024-09-19 10:18:34 11501

原创 Shell脚本编程基础(二)

和前后必须有空格,否则会产生语法错误。用于比较字符串是否相等。-lt:小于-gt:大于-eq:等于-le:小于等于-ge:大于等于&&表示逻辑与。||表示逻辑或。-e:检查文件是否存在。-r:检查文件是否有读权限。-w:检查文件是否有写权限。-x:检查文件是否有执行权限。-d:检查是否是目录。-f:检查是否是普通文件。-s:检查文件是否为空。

2024-09-18 14:02:14 11740

原创 Shell脚本编程基础(一)

Shell 是一种解释型的编程语言,通过解释器将代码翻译成计算机可理解的语言。sh和bash。在 CentOS 系统中,默认的解析器是bash。

2024-09-18 11:09:54 12080

原创 经典sql题(九)SQL 查询详细指南总结二

这些步骤展示了 SQL 查询如何逐步处理数据,应用过滤、分组、排序和限制操作,最后返回所需结果。为了演示这条 SQL 查询的执行,可以先定义数据库表架构并插入一些示例数据。结果与 ORDER BY 相同,因为只有 3 行。在这个例子中已经处理。

2024-09-17 17:56:41 12060

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除