当前位置: 首页 > 网络应用技术

Hive Hadoop的基本操作

时间:2023-03-08 01:44:48 网络应用技术

  Hive的数据库默认存储在/用户/Hive/Warehouse目录中

  创建数据库特定的存储路径,本地

  更多细节

  删除一个空数据库。如果数据库下有数据表,将报告错误

  强制删除数据库,该数据库包含数据库下方的数据库以删除

  使用Alter数据库命令数据库dbproperties将键值设置为属性值以描述此数据库的属性信息

  修改数据库的属性,但是无法更改元数据信息(数据库名称和数据库所在的位置)

  Tinyint Byte 8具有符号完整性。价值范围:-128?127 SmallInt短16位符号整数。价值范围:-32768?32767 INT INT INT INT 32位符号整数。值:-2 31??2 31 -1 bigint长64 -bit是符号整数。价值:-2 63 +1?2 63 -1二进制数据类型,当前长度限制为8MB float float 32 -bit Double Double Double 64-bit 64-bit Binary Floating- 点十进制(精度,比例)10-精度准确性。数字类型。

  精度:这意味着可以指示多少位数字。值:1 <= precision <=38

  scale:表示小数部分的位数。取值范围: 0 <=scale <= 38 。

  如果不指定以上两个参数,则默认为decimal(10,0) VARCHAR(n) 变长字符类型,n为长度。取值范围:1~65535 CHAR(n) 固定长度字符类型,n为长度。最大取值255。长度不足则会填充空格,但空格不参与比较。 STRING string 字符串类型,目前长度限制为8MB DATE 日期类型,格式为 yyyy-mm-dd 。取值范围:0000-01-01~9999-12-31 DATETIME 日期时间类型。取值范围:0000-01-0100:00:00.000~9999-12-31 23.59:59.999,精确到毫秒 TIMESTAMP 与时区无关的时间戳类型。取值范围:0000-01-0100:00:00.000000000~9999-12-3123.59:59.999999999,精确到纳秒 BOOLEAN boolean BOOLEAN类型。取值:True、False ARRAY array<1nt>array> 阵列(1,2,3)

  阵列(阵列(1,2)

  阵列(3,4))地图 ?地图 地图(“ K1”,“ V1”,“ K2”,“ V2”)

  地图(1s,阵列('a','b'),2s,阵列('x',y y’))struct struct struct

  结构> 名称_struct('x',1,'y',2)

  nuper_struct('field1',100L,“ field2”,数组(1,2),“ field3”,地图(1,100,2,200))创建表出现异常:

  异常解决方案:数据库的默认编码是UTF-8或UTFMB4,并修改HIVE数据库编码位置Latin1

  创建表

  外部的

  评论

  被分割

  聚集

  排序

  行格式

  存储为

  地点

  喜欢

  复杂的桌子

  修改表的名称

  添加列

  更新列

  删除表时,将一起删除内部表的元数据和数据,而外部表仅通过元数据删除,并且不会删除数据。

  外部手表是将指定的HDFS路径的数据加载到表中。蜂巢表不完全监视。

  创建一个内部表并指定字段之间的分离器

  根据查询结果创建表(通过复制表结构和表内容创建新表)

  根据现有表结构创建表

  创建外部表并指定字段之间的分离器

  1.加载Linux本地数据

  加载数据(将原始数据复制到HDFS表目录)

  加载数据并介绍现有数据

  2.加载HDFS数据

  将数据从HDFS文件系统加载到表格(将文件从HDFS剪切到HDFS表目录)

  3.通过查询数据表加载数据表

  在查询结果中,插入表

  查询结果一次存储在多个表中

  1.出口到本地

  创建数据存储目录

  将查询结果数据留在当地

  按照指定的方式将数据输出到本地

  导出到HDFS

  查询结果输出到HDFS

  使用HDFS命令将文件复制到其他目录

  同时返回表结构和数据

  根据某些规则(年,月,日,日,时间)将大数据切成小文件,然后操作小文件

  创建皮带1分区,分区的字段不能与表的字段相同

  创建皮带多个分区,父子之间和之后的两个分区之间的关系

  部门协会查询

  负载方法

  选择方法

  以上操作属于静态分区

  静态分区和动态分区之间的主要区别在于手动指定静态分区,动态分区是通过数据判断

  静态分区列表由编译期间用户传输确定;只有在执行SQL时才能确定动态分区

  要启动动态分区,请在Hive会话中首先设置

  其他参数:

  创建一个分区表

  创建外表

  如果静态分区,则插入的数据必须指定分区的值。如果有多个不同的分区值,将多次执行

  如果使用动态分区,则动态分区将根据选择的结果自动确定数据,应加载到该分区

  根据指定的字段将数据划分为要分为多个桶(多个文件)。

  Hive使用列表价值海滩,然后确定以找到枪管数量的方式存储哪个桶。

  创建普通表,通过插入覆盖物通过内表加载普通表的数据

  通过插入覆盖在枪管中加载数据

  数据块采样:Hive随机提取n行数据,总数据的百分比(n个百分比)或n个字节数据

  水桶采样

  随机采样

  顺序

  排序方式

  分发

  聚集

  别名

  限制语句,限制返回的行数

  在陈述中,有条件的过滤

  就像在mysql中使用的用法一致

  Rlike子句是Hive中此功能的扩展,可以通过Java正则表达式指定匹配条件

  数数

  最大(最大)

  最小值(最小值)

  摘要(总和)

  平均(AVG)

  按声明组

  有声明

  Hive支持通常的SQL加入语句,但仅支持等效连接,并且不支持非等效连接。

  相等的

  内部连接,将返回两个表中连接条件的数据

  左外,所有符合符合左表中句子的句子的记录将被返回

  连接到右侧,所有符合右表中的句子的记录将返回位置

  多桌连接,至少N-1连接条件需要

  在大多数情况下,Hive启动每对连接对象的MAPREDUCE任务

  例如:首先在TB_A和TB_B上启动MapReduce作业连接操作,然后开始MAPREDUCE作业

  全球分类

  订单是与降低相对应的全局排序,因此,当输入量表很大时,则需要更长的计算时间;

  在选择语句结束时订购;按顺序与顺序排序

  别名

  多行排序

  通过本地排序排序

  按本地排序排序是在内部对每个MapReduce进行排序,并且数据在数据输入还原之前完成了排序

  通过(通过)通过(字段)分发:根据指定字段分布到不同的还原器,并且出口算法是哈希分布

  需要使用排序并通过

  划分和排序集群

  查看系统的功能到来

  随附的功能的用法

  详细显示构建-in功能功能功能的用法

  当蜂巢构建的功能无法满足业务需求时,可以通过UDF自定义它来促进扩展

  自定义功能分为三类:

  添加依赖项

  写作功能

  包装并上传到蜂巢

  蜂巢客户添加罐袋

  设置要与自定义功能关联的功能

  使用自定义功能

  原始:https://juejin.cn/post/7098144957932044325