Hive中几个非常重要的问题

news2024/11/27 4:12:29

1、Hive 有哪些方式保存元数据,各有哪些优缺点

     (1).DerBy数据库:默认自带

        优点:使用简单,不需要额外的配置。 

        缺点:只有一个客户端,多个客户访问会报错。

     (2).使用MySql数据库存储

        优点:单独的进程,可以在同一台机器上运行,也可以在远程机器上运行。

        缺点:使用时需要配置,其中包括copy驱动包,执行初始化指令等。

2、Hive的HiveSQL转换为MapReduce的过程?

        SQL Parser:Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象 语法树AST Tree;

        Semantic Analyzer:遍历AST Tree,抽象出查询的基本组成单元QueryBlock;

        Logical plan:遍历QueryBlock,翻译为执行操作树OperatorTree;

        Logical plan optimizer: 逻辑层优化器进行OperatorTree变换,合并不必要的ReduceSinkOperator,减少shuffle数据量;

        Physical plan:遍历OperatorTree,翻译为MapReduce任务;

        Logical plan optimizer:物理层优化器进行MapReduce任务的变换,生成最终的执行计划;

3、写出hive中split、coalesce及collect_list函数的用法

        split:字符串分割函数,格式为split(字符串,'分隔符'),来实现字符串的分割,返回一个数组

        coalesce:该函数格式为(expression1,expression2......,expression_n),依次参照各个参数表达式,遇到非null即返回,倘若所有表达式全部为空,则返回null

        collect_list:该函数为聚合函数,将同一分组内的值收集到一个列表之中。

4、Hive内部表和外部表的区别?

        Hive内部表与外部表的区别在于内部表有控制器,在删除表时,内部的数据也会被删除,但是外部表不会。

5、Hive 中的压缩格式TextFile、SequenceFile、RCfile 、ORCfile各有什么区别

(1).TextFile(文本文件)
  • 特点: TextFile 是一种简单的文本文件格式,数据以文本形式存储,每行代表一条记录,字段之间通常使用特定的分隔符(如制表符 \t 或逗号 ,)分隔。
  • 优点: TextFile 格式简单,易于阅读和处理。
  • 缺点: 不适合存储大量结构化数据,查询性能较差,因为每次查询需要扫描整个文件。
(2).SequenceFile(序列文件)
  • 特点: SequenceFile 是 Hadoop 中的一种二进制文件格式,它将数据序列化为二进制格式进行存储,支持键值对形式的数据。
  • 优点: SequenceFile 适合存储大规模的数据集,可以减少存储空间,并且支持高效的序列化和反序列化操作。
  • 缺点: 不太适合直接阅读和处理,需要使用特定的工具或 API 进行操作。
(3). RCFile(记录列文件)
  • 特点: RCFile 是一种列式存储文件格式,将数据按列存储,每个列单独存储在文件中,相同列的数据存储在一起。
  • 优点: RCFile 适合存储大规模的结构化数据,可以提高查询性能,特别是对于查询特定列的数据时,效率更高。
  • 缺点: 对于频繁更新和删除操作的场景,RCFile 可能不太适用。
(4).ORCFile(Optimized Row Columnar File)
  • 特点: ORCFile 是一种高度优化的列式存储文件格式,它在 RCFile 的基础上进行了进一步的优化,支持更高的压缩比和更快的查询性能。
  • 优点: ORCFile 能够在保证数据压缩的同时提高查询性能,减少 I/O 开销,同时支持更多的数据类型和高级特性,如嵌套数据类型、复杂数据结构等。
  • 缺点: ORCFile 文件格式相比其他格式可能稍微复杂一些,但对于大规模数据的存储和查询,通常是更优的选择。

6、Hive函数分为哪三大类

(1).内置函数(Built-in Functions)

内置函数是 Hive 提供的一组默认函数,用于执行常见的数据操作和计算。这些函数涵盖了各种数据类型和操作,包括字符串操作、数值操作、日期操作、聚合函数等。内置函数通常是高效的,并且在 Hive 中使用广泛。

示例:
  • 字符串函数:substring(), concat(), lower(), upper()
  • 数值函数:abs(), round(), ceil(), floor()
  • 日期函数:year(), month(), dayofweek(), datediff()
  • 聚合函数:sum(), avg(), min(), max()
(2). 用户自定义函数(User-Defined Functions,UDFs)

用户自定义函数是用户根据自己的需求编写的函数,用于扩展 Hive 的功能。UDFs 可以是标量函数(Scalar UDFs)、聚合函数(Aggregate UDFs)或表生成函数(Table-Generating UDFs),允许用户根据特定的业务逻辑定义自己的函数,以便在 Hive 中使用。

示例:
  • 标量函数:自定义一个函数用于计算两个字符串的相似度。
  • 聚合函数:自定义一个函数用于计算一组数据的中位数。
  • 表生成函数:自定义一个函数用于生成指定格式的数据表。
(3).内置表生成函数(Built-in Table-Generating Functions)

内置表生成函数是一类特殊的内置函数,用于生成表格化的数据输出。这些函数通常用于查询操作或者连接操作中,可以生成结果数据的格式化输出。

示例:
  • explode(): 将一个数组列拆分成多行。
  • inline(): 将 MAP 类型列展开成键值对形式的多行输出。
  • json_tuple(): 从 JSON 字符串中提取指定键的值。

7、Hive的动态分区和静态分区?使用动态分区两个具体事项?

区别:

静态分区:静态分区是手动指定,有没有结果集都会创建

动态分区:是通过数据来进行判断,只有有结果集时才会创建,没有则不创建。

注意事项:

1-需要先将动态分区设置打开(set hive.exec.dynamic.partition.mode=nonstrict )

2-通过普通表选出的字段包含分区字段,分区字段放置在最后,多个分区字段按照分区顺序放置

8、大数据项目的数据仓库是如何设计数据分层的,阐述每层的具体做的事情

此层可以细分为三层:

明细层DWD(Data Warehouse Detail):存储明细数据,此数据是最细粒度的事实数据。该层一般保持和ODS层一样的数据粒度,并且提供一定的数据质量保证。同时,为了提高数据明细层的易用性,该层会采用一些维度退化手法,将维度退化至事实表中,减少事实表和维表的关联。

中间层DWM(Data WareHouse Middle):存储中间数据,为数据统计需要创建的中间表数据,此数据一般是对多个维度的聚合数据,此层数据通常来源于DWD层的数据。

业务层DWS(Data WareHouse Service):存储宽表数据,此层数据是针对某个业务领域的聚合数据,业务层的数据通常来源与此层,为什么叫宽表,主要是为了业务层的需要在这一层将业务相关的所有数据统一汇集起来进行存储,方便业务层获取。此层数据通常来源与DWD和DWM层的数据。

在实际计算中,如果直接从DWD或者ODS计算出宽表的统计指标,会存在计算量太大并且维度太少的问题,因此一般的做法是,在DWM层先计算出多个小的中间表,然后再拼接成一张DWS的宽表。由于宽和窄的界限不易界定,也可以去掉DWM这一层,只留DWS层,将所有的数据在放在DWS亦可。

9、大数据项目是如何组织的?请以一个看板为例梳理业务看板具体的构建流程及思路?

数据采集,数据存储,数据分析,数据清洗,数据展示。

教育项目看板构建流程思路分别从建模,数据采集,数据存储,数据分析,指标分析,任务调度回答。

10、美图鉴赏

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

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

相关文章

OSPF的LSA详解

一、什么是LSA?LSA作用? 在OSPF协议中,LSA全称链路状态通告,主要由LSA头部信息(LSA摘要)和链路状态组成。部分LSA只有LSA头部信息,无链路状态信息。使用LSA来传递路由信息和拓扑信息&#xff0c…

linux系统安全

一、账号安全基本措施 1.1 系统账号清理 1.1.1 将用户设置为无法登录-- 改登录shell 登录shell是用户与计算机系统直接交互的接口,使用户能够通过命令行方式进行各种操作和管理。 所以让用户无法登录,其实就是将登录shell改为 /sbin/nologin,可以用us…

移动应用安全

移动应用安全 移动应用安全主要关注Android、iOS、Windows Phone等平台上移动应用软件安全状态。它涉及应用程序在其设计运行的平台上下文中的安全问题、它们使用的框架以及预期的用户集。所有主流的移动平台都提供大量可选的安全控制,旨在帮助软件开发人员构建安全…

面试官问如何实现二级缓存怎么进行回答以及延伸出更多知识点呢?

二级缓存的优势与缺点 优点: 1)二级缓存相比只调用一层 Redis 缓存,访问速度更快。对于一些不经常修改的数据而查询十分频繁的可以直接放在本地缓存(一级)里面。 作为面试者的扩展延伸:我在本地缓存的实…

【MySQL 数据宝典】【索引原理】- 002 示例+逐个字段学明白 Explain

一、Explain 概述 使用 EXPLAIN 关键字可以模拟优化器来执行SQL查询语句,从而知道MySQL是如何处理我们的SQL语句的。分析出查询语句或是表结构的性能瓶颈。 1.1 MySQL 查询过程 通过explain我们可以获得以下信息: 表的读取顺序数据读取操作的操作类型…

华为ensp中链路聚合两种(lacp-static)模式配置方法

作者主页:点击! ENSP专栏:点击! 创作时间:2024年4月26日11点54分 链路聚合(Link Aggregation),又称为端口聚合(Port Trunking),是一种将多条物理…

OU和域用户的创建

OU和域用户的创建 导航 文章目录 OU和域用户的创建导航一、创建ou二、创建用户三、验证 一、创建ou 在服务器管理器里面点击右上角的工具,选择Active Directory 用户和计算机右击我们的域,选择新建,选择组织单位,并填入我们的单位名字 二、创建用户 右击我们刚刚新建的组织…

prompt提示词:AI英语词典优化版Pro,让AI教你学英语,通过AI实现一个网易有道英语词典

目录 一、前言二、效果对比三、优化《AI英语词典》提示词四、其他获奖作品链接 一、前言 不可思议!我的AI有道英语字典助手竟然与百度千帆AI应用创意挑战赛K12教育主题赛榜首作品差之毫厘 ,真的是高手都是惺惺相惜的,哈哈,自恋一…

pytest参数化数据驱动(数据库/execl/yaml)

常见的数据驱动 数据结构: 列表、字典、json串 文件: txt、csv、excel 数据库: 数据库链接 数据库提取 参数化: pytest.mark.parametrize() pytest.fixture()…

Stable Diffusion WebUI 使用 VAE 增加滤镜效果

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 大家好,我是水滴~~ 本文主要介绍 VAE 模型,主要内容有:VAE 模型的概念、如果下载 VAE 模型、如何安装 VAE 模型、如…

苍穹外卖学习

并不包含全部视频内容&#xff0c;大部分都按照操作文档来手搓代码&#xff0c;资料&#xff0c;代码都上传git。 〇、实际代码 0.1 Result封装 package com.sky.result;import lombok.Data;import java.io.Serializable;/*** 后端统一返回结果* param <T>*/ Data pub…

【EP2C35F672C8 EDA试验箱下载 38译码器实现】

文章目录 前言一、实验设备1.实验箱2.下载器&#xff1a; 二、编译工程1.编译工程2.添加tcl引脚配置文件2.1将tcl文件拷贝到工程目录下&#xff1a;2.2 在软件中添加tcl文件 3.tcl文件简答讲解 三、下载四、实验结果总结 前言 提示&#xff1a;这里可以添加本文要记录的大概内…

【LeetCode:2095. 删除链表的中间节点 + 链表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

虚拟现实(VR)的应用场景

虚拟现实&#xff08;VR&#xff09;技术创建和体验三维虚拟世界的计算机仿真技术。用户通过佩戴VR头显等设备&#xff0c;可以完全沉浸在虚拟世界中&#xff0c;并与虚拟世界中的物体进行交互。VR技术具有广泛的应用前景&#xff0c;可以应用于各行各业。以下是一些VR的应用场…

C++ 并发编程 - 入门

目录 写在前面 并发编程&#xff0c;启动&#xff01; 写在前面 计算机的并发指在单个系统里同时执行多个独立的任务。 在过去计算机内只有一个处理器时并发是通过快速的切换进程上下文所实现的&#xff0c;而现在计算机已经步入了多核并发时代&#xff0c;所以多个进程的并…

利用STM32 HAL库实现USART串口通信,并通过printf重定向输出“Hello World“

一、开发环境 硬件&#xff1a;正点原子探索者 V3 STM32F407 开发板 单片机&#xff1a;STM32F407ZGT6 Keil版本&#xff1a;5.32 STM32CubeMX版本&#xff1a;6.9.2 STM32Cube MCU Packges版本&#xff1a;STM32F4 V1.27.1 上一篇使用STM32F407的HAL库只需1行代码实现US…

EDM营销工具效果如何评估?如何优化性能?

EDM营销工具的功能优势有哪些&#xff1f;怎么使用邮件营销工具&#xff1f; 对于许多营销人员来说&#xff0c;如何评估EDM营销工具的效果&#xff0c;却是一个颇具挑战性的问题。AokSend将围绕这一问题展开讨论&#xff0c;帮助读者更好地理解EDM营销工具效果的评估方法和技…

AI大模型蜂拥而至,PC准备好了吗?

通信世界网消息&#xff08;CWW&#xff09;在这个大模型风起云涌的年代&#xff0c;各行各业都在积极拥抱这波风口&#xff0c;试图让这个世界充满AI。根据最新公开的数据&#xff0c;截至2024年3月&#xff0c;中国共有117个大模型成功完成备案。这些大模型涵盖了各个领域&am…

Windows系统下将MySQL数据库表内的数据全量导入Elasticsearch

目录 下载安装Logstash 配置Logstash配置文件 运行配置文件 查看导入结果 使用Logstash将sql数据导入Elasticsearch 下载安装Logstash 官网地址 选择Windows系统&#xff0c;需下载与安装的Elasticsearch相同版本的&#xff0c;下载完成后解压安装包。 配置Logstash配…

黑马-设计模式-笔记(未完)

一、基础 UML类图 可见性&#xff1a; public- private#protected 表示方式&#xff1a;属性&#xff1a;可见性 名称:类型[默认值]方法&#xff1a;可见性 名称(参数)[:返回类型] 关系&#xff1a;关联关系&#xff1a;实线&#xff0c;引用关系&#xff0c;类属性里有另一个…