
hive
文章平均质量分 63
hive
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
不死鸟.亚历山大.狼崽子
太极计算机股份有限公司系统架构师,从事ios、.net、flex、java等开发
展开
-
Hive(28): CLIs and Commands客户端和命令
当使用-e或-f选项运行$ HIVE_HOME / bin / hive时,它将以批处理模式执行SQL命令。所谓的批处理可以理解为一次性执行,执行完毕退出。可以通过运行"hive -H" 或者 "hive --help"来查看命令行选项。所谓交互式模式可以理解为客户端和hive服务一直保持连接,除非手动退出客户端。在启动hiveserver2服务的前提下使用beeline远程连接HS2服务。比如metastore服务和hiveserver2服务的启动。标记为红色的为重要的参数。原创 2024-05-19 12:15:46 · 450 阅读 · 0 评论 -
Hive(27): join连接查询
在这种情况下,有时需要基于多张表查询才能得到最终完整的结果,SQL中join语法的出现是用于根据两个或多个表中的列之间的关系,从这些表中共同组合查询数据,因此有时为了得到完整的结果,我们就需要执行 join。其中inner可以省略。Hive作为面向分析的数据仓库软件,为了更好的支持数据分析的功能丰富,也实现了join的语法,整体上来看和RDBMS中的join语法类似,只不过在某些点有自己的特色。交叉连接cross join,将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积。原创 2023-07-12 19:44:44 · 770 阅读 · 0 评论 -
Hive(26):Select高级查询之Common Table Expressions(CTE)
公用表表达式(CTE)是一个临时结果集,该结果集是从WITH子句中指定的简单查询派生而来的,该查询紧接在SELECT或INSERT关键字之前。CTE仅在单个语句的执行范围内定义。一个或多个CTE可以在Hive SELECT,INSERT, CREATE TABLE AS SELECT或CREATE VIEW AS SELECT语句中使用。原创 2023-07-11 17:59:48 · 996 阅读 · 0 评论 -
Hive(25):Select高级查询之Subqueries子查询
1 from子句中子查询在Hive0.12版本,仅在FROM子句中支持子查询。而且必须要给子查询一个名称,因为FROM子句中的每个表都必须有一个名称。子查询返回结果中的列必须具有唯一的名称。子查询返回结果中的列在外部查询中可用,就像真实表的列一样。子查询也可以是带有UNION的查询表达式。Hive支持任意级别的子查询,也就是所谓的嵌套子查询。Hive 0.13.0和更高版本中的子查询名称之前可以包含可选关键字“ AS”。原创 2023-07-11 17:58:09 · 3469 阅读 · 0 评论 -
Hive(24):Select高级查询之Union联合查询
使用ALL关键字,不会删除重复行,结果集包括所有SELECT语句的匹配行(包括重复行)。1.2.0之前的Hive版本仅支持UNION ALL,在这种情况下不会消除重复的行。使用DISTINCT关键字与只使用UNION默认值效果一样,都会删除重复行。UNION用于将来自多个SELECT语句的结果合并为一个结果集。每个select_statement返回的列的数量和名称必须相同。原创 2023-07-11 15:19:14 · 1196 阅读 · 0 评论 -
Hive(23):Select高级查询之SORT/ORDER/CLUSTER/DISTRIBUTE BY
order by会对输入做全局排序,因此只有一个reducer,会导致当输入规模较大时,需要较长的计算时间。sort by不是全局排序,其在数据进入reducer前完成排序。因此,如果用sort by进行排序,并且设置mapred.reduce.tasks>1,则sort by只保证每个reducer的输出有序,不保证全局有序。distribute by(字段)根据指定字段将数据分到不同的reducer,分发算法是hash散列。原创 2023-07-11 15:07:29 · 1170 阅读 · 0 评论 -
Hive(22):Select查询数据之基础查询
要么是被聚合函数应用的字段。所谓分区裁剪指的是:对分区表进行查询时,会检查WHERE子句或JOIN中的ON子句中是否存在对分区字段的过滤,如果存在,则仅访问查询符合条件的分区,即裁剪掉没必要访问的分区。在select_expr中,如果出现category字段,则没有问题,因为同一组中category值一样,但是返回day就有问题了,day的结果不一样。HAVING子句可以让我们筛选分组后的各组数据,并且可以在Having中使用聚合函数,因为此时where,group by已经执行结束,结果集已经确定。原创 2023-07-11 14:09:56 · 807 阅读 · 0 评论 -
Hive(21):DML之Update、Delete更新、删除数据
首先,必须明确,你理解的Hive这款软件,定位是什么?是面向事务支持事务的RDBMS?还是面向分析,支持分析的数据仓库。这很重要。Hive是基于Hadoop的数据仓库,面向分析支持分析工具。因此在Hive中常见的操作的就是分析查询select操作。将已有的结构化数据文件映射成为表,然后提供SQL分析数据的能力。因此Hive刚出现的时候是不支持update和delete语法支持的,因为Hive所处理的数据都是已经存在的结构化文件,加载到hive表中即可。原创 2023-07-11 13:38:40 · 2702 阅读 · 0 评论 -
Hive(20):Transaction事务
原因很简单,毕竟Hive的设计目标不是为了支持事务操作,而是支持分析操作,且最终基于HDFS的底层存储机制使得文件的增加删除修改操作需要动一些小心思。Hive本身从设计之初时,就是不支持事务的,因为Hive的核心目标是将已经存在的结构化数据文件映射成为表,然后提供基于表的SQL分析处理,是一款面向分析的工具。这个定位就意味着在早期的Hive的SQL语法中是没有update,delete操作的,也就没有所谓的事务支持了,因为都是select查询分析操作。原创 2023-07-10 17:20:23 · 1126 阅读 · 0 评论 -
Hive(19):DML之Insert插入数据
在MySQL这样的RDBMS中,通常是insert+values的方式来向表插入数据,并且速度很快。这也是RDBMS中插入数据的核心方式。1 背景:RDBMS中insert使用(insert+values)原创 2023-07-10 15:42:22 · 1374 阅读 · 0 评论 -
Hive(18):DML之Load加载数据
用户也可以为本地文件指定完整的URI-例如:file:///user/hive/project/data1。回想一下,当在Hive中创建好表之后,默认就会在HDFS上创建一个与之对应的文件夹,默认路径是由参数hive.metastore.warehouse.dir控制,默认值是/user/hive/warehouse。filepath表示的待移动数据的路径,可以引用一个文件(在这种情况下,Hive将文件移动到表中),也可以是一个目录(在这种情况下,Hive将把该目录中的所有文件移动到表中)。原创 2023-07-10 15:40:34 · 1496 阅读 · 0 评论 -
Hive(17):Hive Show显示语法
Show相关的语句提供了一种查询Hive metastore的方法。可以帮助用户查询相关信息。原创 2023-06-30 23:37:03 · 756 阅读 · 0 评论 -
Hive(16):Partition(分区)DDL操作
但是,如果将新分区直接添加到HDFS(例如通过使用hadoop fs -put命令)或从HDFS中直接删除分区文件夹,则除非用户ALTER TABLE table_name ADD/DROP PARTITION在每个新添加的分区上运行命令,否则metastore(也就是Hive)将不会意识到分区信息的这些更改。使用此选项,它将把HDFS上存在但元存储中不存在的所有分区添加到元存储中。DROP PARTITIONS选项将从已经从HDFS中删除的metastore中删除分区信息。这将删除该分区的数据和元数据。原创 2023-06-30 23:24:13 · 939 阅读 · 0 评论 -
Hive(15):Table(表)DDL操作
DROP TABLE删除该表的元数据和数据。如果已配置垃圾桶(且未指定PURGE),则该表对应的数据实际上将移动到.Trash/Current目录,而元数据完全丢失。删除EXTERNAL表时,该表中的数据不会从文件系统中删除,只删除元数据。如果指定了EXTENDED关键字,则它将以Thrift序列化形式显示表的所有元数据。如果指定了PURGE,则表数据不会进入.Trash/Current目录,跳过垃圾桶直接被删除。因此如果DROP失败,则无法挽回该表数据。(5)更改表的文件存储格式 该操作仅更改表元数据。原创 2023-06-28 00:15:09 · 601 阅读 · 0 评论 -
Hive(14):Database|schema(数据库) DDL操作
Hive中DATABASE的概念和RDBMS中类似,我们称之为数据库。在Hive中, DATABASE和SCHEMA是可互换的,使用DATABASE或SCHEMA都可以。Hive中的DESCRIBE DATABASE语句用于显示Hive中数据库的名称,其注释(如果已设置)及其在文件系统上的位置等信息。Hive中的USE DATABASE语句用于选择特定的数据库,切换当前会话使用哪一个数据库进行操作。Hive中的ALTER DATABASE语句用于更改与Hive中的数据库关联的元数据。原创 2023-06-27 23:53:51 · 974 阅读 · 0 评论 -
Hive(13):物化视图 materialized views
不同于视图,物化视图能够缓存数据,在创建物化视图的时候就把数据缓存起来了,hive把物化视图当成一张“表”,将数据缓存。物化视图创建后即可用于相关查询的加速,用户提交查询query,若该query经过重写后可命中已建视图,则被重写命中相关已建视图实现查询加速。(1)物化视图创建后,select查询执行数据自动落地,"自动"也即在query的执行期间,任何用户对该物化视图是不可见的。视图的目的是简化降低查询的复杂度,而物化视图的目的是提高查询性能。物化视图是真实的,物理存在的,里面存储着预计算的数据。原创 2023-06-27 20:04:12 · 1072 阅读 · 0 评论 -
Hive(12):View视图
Hive中的视图(view)是一种虚拟表,只保存定义,不实际存储数据。通常从真实的物理表查询中创建生成视图,也可以从已经存在的视图上创建新视图。创建视图时,将冻结视图的架构,如果删除或更改基础表,则视图将失败,并且视图不能存储数据,操作数据,只能查询。概况起来就是:视图是用来简化操作的,它其实是一张虚表,在视图中不缓冲记录,也没有提高查询性能。1 将真实表中特定的列数据提供给用户,保护数据隐式。2 降低查询的复杂度,优化查询语句。原创 2023-06-27 19:48:01 · 1476 阅读 · 0 评论 -
Hive(11):Transactional Tables事务表
原因很简单,毕竟Hive的设计目标不是为了支持事务操作,而是支持分析操作,且最终基于HDFS的底层存储机制使得文件的增加删除修改操作需要动一些小心思。Hive本身从设计之初时,就是不支持事务的,因为Hive的核心目标是将已经存在的结构化数据文件映射成为表,然后提供基于表的SQL分析处理,是一款面向分析的工具。这个定位就意味着在早期的Hive的SQL语法中是没有update,delete操作的,也就没有所谓的事务支持了,因为都是select查询分析操作。Hive中事务表的创建使用。(2)创建Hive事务表。原创 2023-06-27 19:39:04 · 910 阅读 · 0 评论 -
Hive(10):Hive分桶表
在分桶时,我们要指定根据哪个字段将数据分为几桶(几个部分)。抽样可以从被抽取的数据中估计和推断出整体的特性,是科学实验、质量检验、社会调查普遍采用的一种经济有效的工作和研究方法。字段含义如下:count_date(统计日期),county(县),state(州),fips(县编码code),cases(累计确诊病例),deaths(累计死亡病例)。如果是其他类型,比如bigint,string或者复杂数据类型,hash_function比较棘手,将是从该类型派生的某个数字,比如hashcode值。原创 2023-06-27 15:09:25 · 1132 阅读 · 0 评论 -
Error: Error while processing statement: FAILED: Execution Error, return code 2 from org.apache.hado
在yarn-site.xml 文件中增加内容。原创 2023-04-09 19:04:40 · 110 阅读 · 0 评论 -
Hive(10):Hive分桶表
在分桶时,我们要指定根据哪个字段将数据分为几桶(几个部分)。默认规则是:Bucket number = hash_function(bucketing_column) mod num_buckets。如果是其他类型,比如bigint,string或者复杂数据类型,hash_function比较棘手,将是从该类型派生的某个数字,比如hashcode值。分桶表也叫做桶表,源自建表语法中bucket单词。是一种用于优化查询而设计的表类型。如果是int类型,hash_function(int) == int;原创 2023-04-07 13:36:02 · 204 阅读 · 0 评论 -
Hive(9):Hive分区表
现有6份数据文件,分别记录了《王者荣耀》中6种位置的英雄相关信息。现要求通过建立一张表t_all_hero,把6份文件同时映射加载。建表并且加载数据文件到HDFS指定路径下。原创 2023-04-06 15:38:34 · 220 阅读 · 0 评论 -
Hive(8):Hive内、外部表
内部表(Internal table)也称为被Hive拥有和管理的托管表(Managed table)。默认情况下创建的表就是内部表,Hive拥有该表的结构和文件。换句话说,Hive完全管理表(元数据和数据)的生命周期,类似于RDBMS中的表。当您删除内部表时,它会删除数据以及表的元数据。num int,age int,可以使用DESCRIBE FORMATTED itcast.student;来获取表的描述信息,从中可以看出表的类型。原创 2023-02-03 22:45:14 · 232 阅读 · 0 评论 -
Hive(7):maven整合hive简单实例
注意:引入的jar包的版本根据自己的hive版本进行选择。确保集群上hivesever2的服务已启动。hive数据库一般在10000端口。新建一个maven项目。原创 2023-02-02 22:52:17 · 242 阅读 · 0 评论 -
Hive(6):数据定义语言(DDL)案例
字段含义:id、name(英雄名称)、hp_max(最大生命)、mp_max(最大法力)、attack_max(最高物攻)、defense_max(最大物防)、attack_range(攻击范围)、role_main(主要定位)、role_assist(次要定位)。文件archer.txt中记录了相关信息,内容如下所示,其中字段之间分隔符为制表符\t,要求在Hive中建表映射成功该文件。建表成功之后,在Hive的默认存储路径下就生成了表对应的文件夹,把archer.txt文件上传到对应的表文件夹下。原创 2023-02-02 16:20:56 · 729 阅读 · 0 评论 -
Hive(5):数据定义语言(DDL)
1.1 DDL语法的作用数据定义语言 (Data Definition Language, DDL),是SQL语言集中对数据库内部的对象结构进行创建,删除,修改等的操作语言,这些数据库对象包括database(schema)、table、view、index等。核心语法由CREATE、ALTER与DROP三个所组成。DDL并不涉及表内部数据的操作。在某些上下文中,该术语也称为数据描述语言,因为它描述了数据库表中的字段和记录。1.2 Hive中DDL使用。原创 2023-02-02 12:40:39 · 778 阅读 · 0 评论 -
Hive:本地连接hive报java.net.ConnectException: Connection timed out: connect.
【代码】 Hive:本地连接hive报java.net.ConnectException: Connection timed out: connect.原创 2023-02-02 11:17:23 · 697 阅读 · 0 评论 -
Hive(番外):Hive可视化工具IntelliJ IDEA
Sublime、Emacs 、EditPlus、UltraEdit、Visual Studio Code等 有些不支持作为客户端连接Hive服务,但是支持SQL语法环境,那就再编辑器中开发SQL,复制到Hive CLI执行;IntelliJ IDEA、DataGrip、Dbeaver、SQuirrel SQL Client等。这类工具往往专门针对SQL类软件进行开发优化、页面美观大方,操作简洁,更重要的是SQL编辑环境优雅;SQL语法智能提示补全、关键字高亮、查询结果智能显示、按钮操作大于命令操作;原创 2023-02-01 22:03:50 · 1935 阅读 · 0 评论 -
Hive(4):场景案例:Apache Hive初体验
对于初次接触Apache Hive的人来说,最大的疑惑就是:Hive从数据模型看起来和关系型数据库mysql等好像。包括Hive SQL也是一种类SQL语言。那么实际使用起来如何?体验步骤:按照mysql的思维,在hive中创建、切换数据库,创建表并执行插入数据操作,最后查询是否插入成功。原创 2023-02-01 09:53:31 · 348 阅读 · 0 评论 -
Hive(3):Hive客户端使用
在嵌入式模式下,它运行嵌入式 Hive(类似于Hive Client),而远程模式下beeline通过 Thrift 连接到单独的 HiveServer2 服务上,这也是官方推荐在生产环境中使用的模式。二是用于Hive相关服务的启动,比如metastore服务。第二代客户端(recommended 推荐使用):$HIVE_HOME/bin/beeline,是一个JDBC客户端,是官方强烈推荐使用的Hive命令行工具,和第一代客户端相比,性能加强安全性提高。Hive发展至今,总共历经了两代客户端工具。原创 2023-01-31 22:37:37 · 2527 阅读 · 0 评论 -
Hive:Error: FUNCTION ‘NUCLEUS_ASCII‘ already exists. (state=X0Y68,code=30000)
将之前初始化的进行删除或者修改成其他的名称。因为之前已经初始化了metadata。再执行以下命令就没问题了。原创 2023-01-31 14:17:31 · 320 阅读 · 0 评论 -
Hive(2):Apache Hive 安装部署
此种模式下,元数据存储在内置的Derby数据库,并且Derby数据库和metastore服务都嵌入在主HiveServer进程中,当启动HiveServer进程时,Derby和metastore都会启动。本地模式(Local Metastore)下,Hive Metastore服务与主HiveServer进程在同一进程中运行,但是存储元数据的数据库在单独的进程中运行,并且可以在单独的主机上。元数据包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。原创 2023-01-30 11:56:12 · 444 阅读 · 0 评论 -
Hive(1):Apache Hive入门
1.1 什么是HiveApache Hive是一款建立在Hadoop之上的开源数据仓库系统,可以将存储在Hadoop文件中的结构化、半结构化数据文件映射为一张数据库表,基于表提供了一种类似SQL的查询模型,称为Hive查询语言(HQL),用于访问和分析存储在Hadoop文件中的大型数据集。Hive核心是将HQL转换为MapReduce程序,然后将程序提交到Hadoop群集执行。Hive由Facebook实现并开源。原创 2023-01-29 18:17:04 · 278 阅读 · 0 评论