跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
Hive
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{Infobox software | name = Apache Hive | logo = | screenshot = | caption = | developer = [[Apache软件基金会]] | released = {{Start date and age|2010|10}} | latest release version = 4.0.0 | latest release date = {{Start date and age|2022|12|15}} | programming language = [[Java (编程语言)|Java]] | operating system = 跨平台 | genre = [[数据仓库]] | license = [[Apache许可证2.0]] | website = {{URL|https://hive.apache.org/}} }} '''Apache Hive'''是一个建立在[[Hadoop]]之上的开源[[数据仓库]]工具,由[[Facebook]]开发并贡献给[[Apache软件基金会]]。它提供了类似[[SQL]]的查询语言(称为HiveQL),使得熟悉SQL的用户能够轻松地对存储在Hadoop分布式文件系统([[HDFS]])中的大规模数据集进行查询和分析。 == 概述 == Hive最初由Facebook开发,用于处理其快速增长的数据分析需求。它于2008年开源,2010年成为Apache顶级项目。Hive的主要特点包括: * 将SQL-like查询转换为[[MapReduce]]、[[Tez]]或[[Spark]]作业 * 支持外部表概念,数据可以保留在原始位置 * 提供索引加速查询 * 支持用户定义函数(UDF) * 具备分区和分桶功能优化查询性能 == 架构 == Hive的架构主要由以下组件组成: <mermaid> graph TD A[用户接口] --> B[Hive服务器] B --> C[元数据存储] B --> D[执行引擎] D --> E[MapReduce/Tez/Spark] E --> F[HDFS] C --> F </mermaid> === 主要组件 === * '''用户接口''':包括CLI、JDBC/ODBC驱动和Web UI * '''Hive服务器''':提供Thrift接口,允许远程客户端提交请求 * '''元数据存储''':通常使用[[关系型数据库]](如[[MySQL]])存储表结构等元数据 * '''执行引擎''':将HiveQL转换为底层计算框架任务 * '''HDFS''':存储实际数据 == HiveQL == HiveQL是Hive的查询语言,与SQL-92标准高度兼容但有一些扩展和限制。以下是一个基本示例: <syntaxhighlight lang="sql"> -- 创建表 CREATE TABLE IF NOT EXISTS employees ( id INT, name STRING, salary FLOAT, department STRING ) COMMENT '员工信息表' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE; -- 加载数据 LOAD DATA LOCAL INPATH '/path/to/employees.csv' OVERWRITE INTO TABLE employees; -- 查询示例 SELECT department, AVG(salary) as avg_salary FROM employees GROUP BY department HAVING avg_salary > 5000; </syntaxhighlight> == 数据模型 == Hive支持多种数据模型: === 表类型 === * '''托管表''':数据由Hive管理,删除表时数据也会被删除 * '''外部表''':数据存储在外部位置,删除表仅删除元数据 === 存储格式 === Hive支持多种存储格式: * 文本文件(TEXTFILE) * 序列文件(SEQUENCEFILE) * [[ORC]](优化行列式) * [[Parquet]](列式存储) == 性能优化 == Hive提供了多种优化技术: * '''分区''':按列值将表数据物理分割 * '''分桶''':基于哈希值将数据分散到固定数量的桶中 * '''索引''':加速数据查找 * '''向量化查询''':一次处理一批记录而非单条记录 * '''CBO(基于成本的优化器)''':优化查询执行计划 == 与其他技术的集成 == Hive可以与多种大数据技术集成: * 通过[[HBase]]集成实现实时查询 * 使用[[Spark]]作为执行引擎提高性能 * 与[[Presto]]或[[Impala]]配合实现交互式查询 * 通过[[Tez]]优化任务执行 == 应用场景 == Hive广泛应用于: * 数据仓库构建 * 商业智能分析 * 日志处理 * 数据挖掘 * ETL(提取、转换、加载)流程 == 版本历史 == Hive的主要版本发布历史: * 0.1.0 (2009) - 初始版本 * 0.7.0 (2011) - 添加索引支持 * 0.13.0 (2014) - 引入基于成本的优化器 * 1.0.0 (2015) - 首个稳定版本 * 2.0.0 (2016) - LLAP(Live Long and Process)功能 * 3.0.0 (2018) - 重大性能改进 * 4.0.0 (2022) - 支持JDK 11,改进ACID功能 == 限制 == 尽管功能强大,Hive也有一些限制: * 不适合低延迟查询(通常秒级响应) * 不支持事务(完整ACID支持在较新版本中有限实现) * 更新和删除操作效率较低 * 子查询支持有限 == 参见 == * [[Hadoop]] * [[Spark]] * [[Pig]] * [[Impala]] * [[Presto]] * [[数据仓库]] == 参考资料 == {{Reflist}} [[Category:数据仓库]] [[Category:Apache软件基金会项目]] [[Category:大数据技术]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
该页面使用的模板:
模板:Infobox
(
编辑
)
模板:Infobox software
(
编辑
)
模板:Infobox software/simple
(
编辑
)
模板:MONTHNAME
(
编辑
)
模板:MONTHNUMBER
(
编辑
)
模板:Main other
(
编辑
)
模板:Plainlist
(
编辑
)
模板:Plainlist/styles.css
(
编辑
)
模板:Reflist
(
编辑
)
模板:Reflist/styles.css
(
编辑
)
模板:Start date and age
(
编辑
)
模板:Template link expanded
(
编辑
)
模板:Template other
(
编辑
)
模板:Time ago
(
编辑
)
模板:Tlx
(
编辑
)
模板:Trim
(
编辑
)
模板:URL
(
编辑
)
模板:Wikidata
(
编辑
)
模板:Years or months ago
(
编辑
)
模板:Yesno
(
编辑
)
模块:Arguments
(
编辑
)
模块:Check for unknown parameters
(
编辑
)
模块:Date
(
编辑
)
模块:Infobox
(
编辑
)
模块:Infobox/styles.css
(
编辑
)
模块:InfoboxImage
(
编辑
)
模块:Template link general
(
编辑
)
模块:Time ago
(
编辑
)
模块:URL
(
编辑
)
模块:Wd
(
编辑
)