Hive中几个非常重要的问题

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.mfbz.cn/a/575049.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电商技术揭秘三十二:智能风控体系构建

相关系列文章 电商技术揭秘相关系列文章合集(1) 电商技术揭秘相关系列文章合集(2) 电商技术揭秘二十八:安全与合规性保障 电商技术揭秘二十九:电商法律合规浅析 电商技术揭秘三十:知识产权保…

PyQt介绍——动画使用详解之QPropertyAnimation

一、继承关系 PyQt5的动画框架是QAbstractAnimation,它是一个抽象类,不能直接使用,需要使用它的子类。它的类结构如下: QAbstractAnimation:抽象动画,是所有动画的基类,不能直接使用。 QVariant…

SpringCloud之负载均衡Ribbon

Ribbon 是一个客户端负载均衡工具,主要功能是将面向服务的Rest模板(RestTemplate)请求转换成客户端负载均衡的服务调用。通过Ribbon,开发人员可以在客户端实现请求的负载均衡,而无需单独部署负载均衡器。Ribbon支持多…

C#基础之值类型和引用类型

值类型和引用类型 文章目录 值类型和引用类型1、使用和存储上的区别2、特殊的引用类型string 引用类型:string,数组,类 值类型:其他类型,结构体 1、使用和存储上的区别 1、使用上的区别//值类型int a 10;//引用类型…

Python函数小知识

目录 一、函数的定义和调用 二、函数参数 三、函数作用域 四、递归函数和匿名函数 一、函数的定义和调用 def 函数名(参数): 自定义函数可以分为有参函数和无参函数 。 函数的作用: 在Python中定义函数可以提高代码的复用率,避免重复的代码,…

Android 记录一个SeekBar的滑块显示问题

这两天,要实现一个自定义的进度条SeekBar,从UI那里拿到切图之后,就开始做了,但是最后发现一个问题,看一下图吧: 应该看的很清楚吧,那个滑块周围多了一些“阴影” 我刚开始以为是切图又问题&…

opencv基础篇 ——(七)边缘检测和图像锐化

锐化和边缘检测是图像处理中常用的两种技术,它们可以用来增强图像的特征以及检测图像中的边缘 锐化: 锐化是一种增强图像中细节和边缘的技术,它使图像中的过渡区域更加明显,从而提高图像的清晰度和对比度。常见的锐化方法包括拉普…

matlab保存示波器数据

再重新运行一下示波器 然后就可以在工作区看见(这里没有运行所以没有) 将保存到文件夹中方便后续绘图

第十五届蓝桥杯省赛第二场C/C++B组D题【前缀总分】题解(AC)

暴力解法 O ( 26 n 5 ) O(26n^5) O(26n5) 枚举将第 i i i 个字符串的第 j j j 个字符改为 c c c 的所有方案,时间复杂度 O ( 26 n 2 ) O(26n^2) O(26n2),修改并计算总分, O ( n 3 ) O(n^3) O(n3)。 暴力优化 O ( 26 n 3 log ⁡ n ) O…

解析企业绩效通系统架构:构建高效管理与激励平台

在当今竞争激烈的商业环境中,企业需要不断提升管理效率和员工激励力度,以保持竞争优势并实现可持续发展。绩效通系统作为一种集成了绩效管理、激励机制和员工发展规划的管理工具,正逐渐成为现代企业管理的核心组成部分。本文将深入探讨企业绩…

mybatis-plus(二)集成与demo

一、集成 1、pom&#xff1a; 2、配置文件 3、启动类与业务逻辑&#xff1a; 无变化。引入mybatis-plus后&#xff0c;原mybatis逻辑可以正常使用。 二、demo 1、代码框架 &#xff08;1&#xff09;pom&#xff1a; <?xml version"1.0" encoding"UT…

Python实现本地视频/音频播放器

Python实现本地视频/音频播放器 在Python中&#xff0c;有几个库可以用于视频播放&#xff0c;但是没有一个库是完美的&#xff0c;因为它们可能依赖于外部软件或有一些限制。 先看介绍用Python实现本地视频播放器&#xff0c;再介绍用Python实现本地音乐播放器。 Python实现…

CSS Position定位(详解网页中的定位属性)

目录 一、Position介绍 1.概念 2.特点 3.作用 4.应用 二、Position用法 1.position属性 2.static定位 3.fixed定位 4.relative定位 5.absolute定位 6.sticky定位 7.重叠的元素 三、CSS定位属性 四、总结 一、Position介绍 1.概念 文档流&#xff08;Document Fl…

【从后端日志文件中过滤出sql语句】

从后端日志文件中过滤出sql语句 why?思路日志文件的格式 结果 why? 为什么会有这种需求&#xff1f;&#xff0c;mysql数据不小心被删了完全可以从备份数据恢复&#xff0c;或者从binlog中恢复&#xff0c;但是如果前面这两种方法没办法处理&#xff08;没有备份数据库文件、…

ray.tune调参学习笔记1:超参数优化器tuner设置

最近研究中学习使用python的ray.tune进行神经网络调参。在这里记录学习过程中的收获&#xff0c;希望能够帮助到有同样需求的人。学习过程主要参考ray官网文档&#xff0c;但由于笔者使用的ray为2.2.0版本&#xff0c;而官方文档为更高级版本&#xff0c;笔者代码和官方文档代码…

数字藏品:重塑艺术与科技的新媒介

数字藏品&#xff0c;这个新兴的词汇&#xff0c;正在逐渐渗透到我们的日常生活中。它不仅是一种新的艺术表达方式&#xff0c;更是一种科技与艺术相结合的全新媒介。那么&#xff0c;数字藏品究竟是什么呢&#xff1f; 首先&#xff0c;我们需要明确一点&#xff0c;数字藏品并…

qt QTreeWidget 学习

树形控件的节点可以有多层、多个子节点&#xff0c; 如果将子节点全部展开&#xff0c;那么每一行都是一个数据条目。QTreeWidgetItem 比较特殊&#xff0c;一个条目内部可以有多列数据信息&#xff0c;相当于表格控件一整行的表格单元集成为一个条目。 默认情况下&#xff0c;…

ELK技术介绍:背景、功能及应用场景全面解析

一、ELK概述 ELK是由Elasticsearch、Logstash和Kibana三个开源软件组成的日志管理解决方案&#xff0c;这一组合在近年来得到了广泛的关注和应用。ELK的出现&#xff0c;源于大数据和云计算技术的快速发展&#xff0c;以及对高效日志管理的迫切需求。 随着企业信息化程度…

Nginx 配置 SSL(HTTPS)详解

Nginx作为一款高性能的HTTP和反向代理服务器&#xff0c;自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL&#xff0c;实现HTTPS的访问。 随着互联网安全性的日益重要&#xff0c;HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务…

6、ES单机设置用户名密码、集群设置用户名密码、es-head登录、如何去掉密码

目录 一、ES单节点密码配置1、修改配置文件2、 重启es服务3&#xff0c;执行修改密码命令4、访问服务 二、ES集群密码配置1、确定主节点2、生成elastic-stack-ca.p123、生成elastic-certificates.p124、修改配置文件并重启集群5、进行密码配置6、验证 三、es-head登录增加密码的…
最新文章