
- Hive相关基础知识
- 1. Hive简介
- 2. Hive数据模型
- 3. Hive特点
- 4. 使用Hive *** 作数据
- 5. 参考链接
1. Hive简介
Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行,通过自己的SQL查询分析需要的内容,这套SQL简称Hive SQL。
2. Hive数据模型- Hive数据库。类似传统数据库的Database。
- 内部表。Hive的内部表与数据库中的Table在概念上是类似。
- 外部表。外部表指向已经在HDFS中存在的数据,可以创建Partition。它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异。
- 分区。Partition对应于数据库中的Partition列的密集索引。
- 桶。Buckets是将表的列通过Hash算法进一步分解成不同的文件存储。
Hive表的数据默认只能在末尾追加。我们通常可以认为Hive不支持更新 *** 作,这是因为Hive开启更新 *** 作对性能影响极大,因此一般关闭Hive的更新功能。
- Hive *** 作数据的特点:
- 支持分区存储数据
- 追加数据(append)
- 全表覆盖+新增(overwrite)
- 不支持更新
- 不支持删除
- Hive本身特点:
- 可伸缩(在Hadoop的集群上动态添加设备)
- 可扩展
- 容错
- 输入格式的松散耦合
使用Scala语言来进行Hive的相关 *** 作。
object HiveTest {
// 设置用户
System.setProperty("HADOOP_USER_NAME", "hdfs")
// 设置SparkConf对象
var conf: SparkConf = new SparkConf()
conf.setAppName("HiveTest")
conf.setMaster("local")
// 创建SparkContext对象
val spark: SparkContext = new SparkContext(conf)
// 创建SparkSession对象
val sparkSession: SparkSession = SparkSession
.builder()
.config(conf)
.enableHiveSupport()
.getOrCreate()
def main(args: Array[String]): Unit = {
val df01: Dataframe = select()
df01.show(10)
}
// 查找SQL
def select(): Dataframe = {
val sql = "select * from ods_frtfd.ods_ind_doc where date_ymd = '2021-11-03'"
val dataframe : Dataframe = sparkSession.sql(sql)
dataframe
}
}
5. 参考链接
https://baike.baidu.com/item/hive/67986?fr=aladdin
https://blog.csdn.net/l1212xiao/article/details/80432759
https://cwiki.apache.org/confluence/display/Hive/Tutorial
https://www.cnblogs.com/ggzhangxiaochao/p/9363029.html
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)