首页 > 其他分享 >Hive数仓操作(二)

Hive数仓操作(二)

时间:2024-09-29 20:20:04浏览次数:10  
标签:数仓 数据类型 hive Hive Beeline 操作 连接 客户端

Hive 数据类型与连接

Hive 是一个用于处理大规模数据集的工具,支持多种数据类型以满足不同的需求。本文将详细介绍 Hive 的基本数据类型和集合数据类型。

一、Hive 基本数据类型

Hive 提供了多种基本数据类型,适用于不同的数据存储和处理需求:

数据类型描述长度示例
TINYINT1 字节有符号整数1 byte20
SMALLINT2 字节有符号整数2 bytes20
INT4 字节有符号整数4 bytes20
BIGINT8 字节有符号整数8 bytes20
BOOLEAN布尔类型,取值为 true 或 false-TRUE, FALSE
FLOAT单精度浮点数4 bytes3.14159
DOUBLE双精度浮点数8 bytes3.14159
STRING字符串类型,可指定字符集最大 2GB'now is the time’或"for all good men"
TIMESTAMP时间戳类型-‘2023-10-01 12:00:00’
BINARY字节数组-(binary data)

注意

  • Hive 的 STRING 类型相当于数据库中的 VARCHAR 类型,但不能声明最大字符数,理论上可以存储 2GB 的字符数据。
  • Hive 在处理时间时通常使用字符串格式存储日期和时间,支持灵活的时间字符串格式。

二、Hive 集合数据类型

Hive 还支持集合数据类型,这些数据类型允许存储复杂的数据结构。

数据类型描述语法示例
STRUCT类似于 C 语言中的结构体,通过“点”符号访问元素内容。struct<first:STRING,last:STRING>
MAP键-值对集合,使用数组表示法访问数据。map<STRING, STRING>
ARRAY数组,相同类型元素的集合,每个元素有一个编号。array<STRING>

例子

  1. STRUCT 示例

    SELECT person.name.first FROM table;
    
  2. MAP 示例

    SELECT person.address['city'] FROM table;
    

    假设有一个 address 列,这个列的类型是 MAPaddress 列存储了以下键-值对:

  • 'city' -> 'New York'
  • 'state' -> 'NY'
  • 'zip' -> '10001'
  1. ARRAY 示例
    SELECT names[1] FROM table;  -- 获取第二个名字
    

三、数据导入 Hive

在 Hive 中,数据的导入通常有两种方式:

  • Pull(自己获取数据)
    通过工具、存储过程或 SQL 语句,从其他系统查询数据,经过处理后保存到 Hive 中。

  • Push(其他系统提供数据)
    其他系统将数据保存为文件(如 TXT 和 CSV 格式),然后将文件导入 Hive。这通常涉及文件和表的映射关系。


四、Hive的连接

1. 直接使用 Hive 客户端

在 Linux 命令行下,你可以直接输入 hive 命令来启动 Hive 客户端。

hive
终端
$ hive
Logging initialized using configuration in /path/to/hive/conf/hive-log4j.properties
Hive CLI is running on Apache Hive <version> (Hive <version>)
Type "exit" or "quit" to quit.
hive (default)>
结果:
  • 当看到提示符 hive (default)> 时,表示你已成功进入 Hive 客户端。
  • 注意:这种方式仅能连接到本地的 Hive 服务。

2. 使用 Beeline 客户端

要使用 Beeline 客户端,首先需要启动被连接的 HiveServer2 服务。启动命令如下:

hiveserver2 &
连接 Beeline:

然后,你可以通过 Beeline 连接到 HiveServer2。启动 Beeline 客户端:

beeline
连接到 Hive:

在 Beeline 提示符下,使用以下命令连接到 Hive:

!connect jdbc:hive2://192.168.150.130:10000
终端
beeline> !connect jdbc:hive2://192.168.150.130:10000
Connecting to jdbc:hive2://192.168.150.130:10000
Enter username for jdbc:hive2://192.168.150.130:10000: root
Enter password for jdbc:hive2://192.168.150.130:10000: ********
结果:
  • 输入连接信息后,你将被提示输入用户名和密码(如果需要)。
  • 成功连接后,你就可以在 Beeline 中执行 SQL 查询。

3. 使用第三方工具连接

例如,使用 DataGrip 或其他 SQL 客户端工具连接到 Hive。以 DataGrip 为例:

设置 DataGrip 连接:
  1. 打开 DataGrip。
  2. 创建新的数据源,选择 Hive 作为数据库类型。
  3. 填入连接信息:
    • 驱动: 选择 Hive JDBC 驱动。
    • URL: jdbc:hive2://192.168.150.130:10000
    • 用户名密码(如果需要)。
结果:
  • 点击“测试连接”确认连接成功。
  • 成功连接后,可以在 DataGrip 中编写和执行 Hive 查询。

标签:数仓,数据类型,hive,Hive,Beeline,操作,连接,客户端
From: https://blog.csdn.net/m0_58076578/article/details/142633874

相关文章

  • 系统固态扩容-全小白操作示意 不需要BIOS
    机械革命有两个插槽,我有一个500G(系统盘)一个1T的固态,由于1.5T的固态都快用完了,所以买了一个2T的固态,将1T的内容迁移到2T中,将500G的迁移到1T中。为了防止内容丢失先将500G系统盘做了备份,用的傲梅轻松备份。1T->2T然后就是将2T的固态用绿联的固态盒子先当做移动硬盘,用分区助手进......
  • Qt - 文件操作3
    8.QSettings 8.1简介用户通常希望应用程序在会话中记住它的设置(窗口大小和位置,选项等)。这些信息通常存储在Windows上的系统注册表中(HKEY_CURRENT_USERSoftware/MySoft),以及macOS和iOS上的属性列表文件中。在Unix系统上,在缺乏标准的情况下,许多应用程序(包括KDE应用程序......
  • Qt - 文件操作2
    4.QFileInfo4.1简介QFileInfo类提供与系统无关的文件信息,QFileInfo提供了关于文件的名称和在文件系统中的位置(路径)、它的访问权限以及它是目录还是符号链接等信息。文件的大小和最后修改/读取时间也可用。4.2常用方法 boolisDir()const//.如果该对象......
  • neo4j 统计多个节点之间关系总和的写法-包含多个collect合并成一个并去重操作
    在使用neo4j数据库时,会遇到计算与指定节点产生关联的数量统计需求,例如指定6个节点1,2,3,4,5,6需要找出与这6个节点中4个节点有关联的节点(要求排除这6个节点的数据)先看实现查询语句:MATCH(start:person_info)-[r1]-(n)-[r2]-(end:person_info)WHEREstart.persocountIdin['1......
  • 使用异或操作实现字符串加密与解密
    异或加密是一种简单而有效的加密技术,它的特点是同一密钥可用于加密和解密,以下是一个例子:usingSystem;usingSystem.Text;publicstaticclassEncryption{///<summary>///bytes数据通过encryptCode进行异或(加密|解密)///将传入的bytes作为返回值,不再额外分......
  • `->` 操作符重载的注意事项
    在C++中,->操作符可以被重载,用于对象的指针成员访问。重载后的->操作符主要用于模拟指针访问行为,常见于智能指针的实现等复杂场景。->操作符重载后的调用触发流程:在对象上使用->操作符时,编译器按照以下步骤处理:检查对象类型是否有operator->()重载:如果对象是一个......
  • Flume实战--Flume中的拦截器详解与操作
            在处理大规模数据流时,ApacheFlume是一款功能强大的数据聚合工具,它可以通过拦截器在运行时对Event进行修改或丢弃。本文将详细讲解Flume中的拦截器,包括时间戳拦截器、Host添加拦截器、静态拦截器以及如何自定义拦截器。拦截器拦截器的作用拦截器用于在事件......
  • Django操作ES实现搜索功能
    Django操作ES实现题目的高亮搜索功能一、基础配置二、使用ES完成题目的高亮搜索1.ES的初始化接口2.使用ES实现题目的增删改查1.题目的高亮搜索2.题目的高亮搜索优化3.将数据存储到MYSQL中持久化存储并同步到ES中一、基础配置下载依赖,与之前配......
  • 记一次触发器用最新一条记录更新另外一条记录字段值的操作
    查询数据库里面最新一条记录的正确思路数据库里面的记录肯定有时间字段,找到时间的最大值,在where里面查询最新的的时间触发器查询的时候应该加上时间限制,不然随着时间的推移查询越来越慢触发器应该是beforeinsert类型不然会存在递归引用使用oracle函数或者mysql函数来执行时......
  • Git仓库代码在不同操作系统里结尾^M问题的记录
    每次按键盘上的Return时,会插入一个称为行结束符的不可见字符^M。不同的操作系统处理行结束符的方式不同。在使用Git或者GitHub协作处理项目时,Git可能产生意外结果。例如,您在Windows计算机上操作,而您的协作者是在macOS或者Linux中做的更改。您可以将Git配置为自动处理行结束符,以......