大数据-hive基本语法整理

这篇具有很好参考价值的文章主要介绍了大数据-hive基本语法整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

hive基本语法

一、hive建表语句

create external table if not exists ods_base_org_info
(
 id                   string comment '主键',
 org_code             string comment '组织编码',
 org_code_out         string comment '对应主数据编码',
 org_name             string commet '机构编码',
 org_simple_name      string comment '中文简称',
)
comment '组织机构信息表'
partitioned by (hdfs_date_dt string)
row format serde 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe' 
with serdeproperties ("field.delim"="|@|")
stored as textfile
location '/warehouse/tablespace/external/hive/ods/ods_base_org_info'
;

语法解析:

  • partitioned by (hdfs_date_dt STRING)
    –使用字符串类型字段hdfs_date_dt作为分区键
  • row format serde
    ‘org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe’
    with serdeproperties (“field.delim” = “|@|” )

    –指定行格式和序列化/反序列化方式,设置字段分隔符为"|@|"
  • stored as textfile
    – 数据以文本文件形式存储,数据存储格式有textfile, orc, parquet等
  • location ‘/warehouse/tablespace/external/hive/ods/ods_base_org_info’
    对于外部表,指定表数据在HDFS上的具体路径
  • external 代表外部表含义
    外部表特点及含义如下:
    数据位置:外部表的数据存储在HDFS的指定路径下,而不是由Hive直接管理。这意味着用户可以自己决定数据的存放位置,并且即使删除了该外部表,Hive也不会自动删除底层HDFS上的实际数据文件。
    数据所有权:相比于内部表(Managed Table),Hive对外部表的数据不拥有管理权。删除外部表时,仅会移除表的元数据(表结构)信息,但不会删除数据源文件。
    数据共享:由于外部表与底层数据文件解耦,因此这种表特别适用于跨多个Hive表或与其他系统(如Spark、MapReduce等)共享数据的情况。
    重定位数据:若需要移动或调整数据源的位置,只需更改外部表定义中的LOCATION属性即可,而无需重新加载数据。
    跨Hive实例:在不同Hive实例间,可以通过指向同一份HDFS数据源来实现外部表内容的共享。
    Hive升级或迁移:如果需要升级Hive版本或者将数据迁移到其他Hive集群,外部表的数据可以在迁移过程中保持不变,只需要重新创建指向相同HDFS路径的外部表即可。

二、hive insert 插入语句

insert overwrite table  dwd.dwd_base_org_info partition(hdfs_date_dt = 'HDFS_DATE_DT')
select 
id,
 org_code,
 org_code_out,
 org_name,
 org_simple_name
from ods.ods_base_org_info 
where hdfs_date_dt = '2023-12-31' ;

在执行INSERT OVERWRITE时,请确保目标表结构与源表查询结果匹配,包括列的数量、类型以及对于分区表来说的分区键值。同时,使用OVERWRITE意味着会删除目标表原有的对应数据并用新的数据替代

三、hive 查询语句

1. 基本的全表查询
SELECT * FROM table_name;

2. 查询特定列
SELECT column1, column2, ... FROM table_name;

3. 别名使用
SELECT column1 AS alias1, column2 AS alias2 FROM table_name;

4. 条件查询
SELECT * FROM table_name WHERE condition;
示例:查询所有amount大于100的记录
SELECT * FROM sales_table WHERE amount > 100;

 5. 排序查询
SELECT * FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC] ...
示例:按时间字段降序排序
SELECT * FROM transactions ORDER BY transaction_date DESC;

6. 分组和聚合函数查询
SELECT column1, COUNT(column2), SUM(column3) 
FROM table_name GROUP BY column1;

   示例:统计每个类别的总金额
SELECT category, SUM(amount) AS total_amount 
FROM transactions 
GROUP BY category;

7. 连接查询(JOINSELECT a.column1, b.column2 
FROM table1 AS a 
JOIN table2 AS b 
ON a.common_column = b.common_column;

    示例:连接两个表,根据id匹配数据
SELECT t1.id, t1.name, t2.address 
FROM customers t1 
JOIN addresses t2 
ON t1.customer_id = t2.customer_id;

8. 子查询
SELECT * FROM table_name WHERE column IN (SELECT column FROM another_table);

   示例:查找与某个城市客户相关的订单
SELECT * FROM orders 
WHERE customer_id IN (
    SELECT customer_id FROM customers 
    WHERE city = 'New York');

四、hive 删除语句

  1. 删除表中的所有数据(保留表结构):

    TRUNCATE TABLE database_name.table_name;

  2. 删除特定分区的数据:

    ALTER TABLE database_name.table_name DROP IF EXISTS PARTITION
    (partition_column=value[, partition_column=value …]); 示例: ALTER
    TABLE sales DROP IF EXISTS PARTITION (year=2022, month=05);

  3. 删除整个表(包括元数据和数据):

    DROP TABLE [IF EXISTS] database_name.table_name [PURGE]; IF
    EXISTS:如果表不存在,则不抛出错误。 PURGE:彻底删除表,连同其元数据一起从 metastore
    中移除。对于外部表,默认情况下只删除元数据,不删除实际数据文件。 示例: DROP TABLE IF EXISTS
    my_database.my_table PURGE;

  4. 删除表的部分行(基于某些条件)
    直接删除部分行在Hive中并不直接支持,但可以通过创建一个新的临时表或视图来实现类似功能,例如先查询需要删除的行,然后插入到新的临时表,最后用新表替换原表。

    CREATE TABLE new_table AS SELECT * FROM old_table WHERE condition_to_exclude_rows;

    – 确保新表数据正确后,重命名或交换表名 ALTER TABLE database_name.old_table RENAME TO old_table_backup; ALTER TABLE database_name.new_table RENAME TO
    old_table;文章来源地址https://www.toymoban.com/news/detail-822791.html

到了这里,关于大数据-hive基本语法整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库语法整理及WAF绕过方式

    关系型数据库:指采用了关系模型来组织数据的数据库。 直白的说就是:关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 当今主流的关系型数据库有:Oracle,Microsoft SQL Server,MySQL,PostgreSQL,DB2, Microsoft Access, SQLite,MariaDB Oracle Oracl

    2024年02月21日
    浏览(35)
  • 云计算复习之Hive数据仓库期末复习整理

    声明:                 1. 本文针对的是一个知识的梳理,自行整理以及方便记忆               2. 若有错误不当之处, 请指出 一、hive的定义与理解 首先,hive是一个构建于hadoop集群之上的数据仓库应用。那么,得先了解一下什么是数据仓库?数据仓库是一个数据集合,用于

    2024年02月04日
    浏览(43)
  • 大数据技术之Hadoop学习(七)——Hive数据仓库

    目录 素材 一、数据仓库简介 1、数据仓库的认识 (1)数据仓库是面向主题的。 (2)数据仓库是随时间变化的。 (3)数据仓库相对稳定 (4)OLTP和OLAP 2、数据仓库的结构 (1)数据源 (2)数据存储及管理 (3)OLAP 服务器 (4)前端工具 3、数据仓库的数据模型 (1)星状模

    2024年02月17日
    浏览(45)
  • 大数据Hadoop之——部署hadoop+hive+Mysql环境(window11)

    目录 一、安装JDK8 1)JDK下载地址 2)设置环境变量 二、Hadoop安装(window10环境) 1)下载Hadoop3.1.3 2)Hadoop配置环境变量 3)在hadoop解压目录下创建相关目录 4)修改Hadoop配置文件 1、core-site.xml文件:添加以下配置 2、hdfs-site.xml文件:添加以下配置,路径改成自己的安装路径 3、

    2024年02月08日
    浏览(47)
  • HDFS 跨集群数据同步(hive,hadoop)

    两个不同的HDFS 集群数据迁移( A集群的数据 - B 集群) 采用的是 SHELL 脚本  按表进行; 日期分区进行; #!/bin/bash ##################### #创建人:DZH #创建日期: 2020-04 #内容: 数据迁移 ##################### ##################################### [ \\\"$#\\\" -ne 0 ] FILE=$1 path=$(cd `dirname $0`; pwd) ############## 获取执

    2024年04月27日
    浏览(58)
  • 【大数据之Hive】二十三、HQL语法优化之数据倾斜

      数据倾斜指参与计算的数据分布不均,即某个key或者某些key的数据量远超其他key,导致在shuffle阶段,大量相同key的数据被发往同一个Reduce,导致该Reduce所需的时间远超其他Reduce,成为整个任务的瓶颈。   Hive中的数据倾斜常出现在分组聚合和join操作的场景中 。   

    2024年02月16日
    浏览(57)
  • 0401hive入门-hadoop-大数据学习.md

    Apache Hive是一个开源的数据仓库查询和分析工具,最初由Facebook开发,并后来捐赠给Apache软件基金会。Hive允许用户使用SQL语言来查询和分析存储在Hadoop分布式文件系统(HDFS)中的大规模数据集。它的设计目标是使非技术用户能够轻松地在Hadoop集群上执行数据查询和分析任务,

    2024年02月09日
    浏览(46)
  • 详解数据库、Hive以及Hadoop之间的关系

    数据库是一个用于存储和管理数据的系统。 数据库管理系统(DBMS)是用于管理数据库的软件。 数据库使用表和字段的结构来组织和存储数据。 关系型数据库是最常见的数据库类型,使用SQL(Structured Query Language)进行数据操作和查询。 数据库管理系统(DBMS):数据库管理系

    2024年03月15日
    浏览(58)
  • hive查看数据库出现org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

    在启动hive后,使用show databses查看数据库时发现,出现了这个错误 根据搜索查找以及分析得知:可能是hive的数据库MySQL在安装的时候没有初始化,初始化数据库即可 schematool -dbType mysql -initSchema  1.在MySQL中删除元数据 drop database metastore; 2.进入hive中的bin里面 ,输入格式化命令

    2024年02月07日
    浏览(56)
  • Spark、RDD、Hive 、Hadoop-Hive 和传统关系型数据库区别

    Hive Hadoop Hive 和传统关系型数据库区别 Spark 概念 基于内存的分布式计算框架 只负责算 不负责存 spark 在离线计算 功能上 类似于mapreduce的作用 MapReduce的缺点 运行速度慢 (没有充分利用内存) 接口比较简单,仅支持Map Reduce 功能比较单一 只能做离线计算 Spark优势 运行速度快

    2024年02月13日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包