大数据-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日
    浏览(42)
  • 大数据技术之Hadoop学习(七)——Hive数据仓库

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

    2024年02月17日
    浏览(42)
  • 大数据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日
    浏览(44)
  • 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日
    浏览(52)
  • 0401hive入门-hadoop-大数据学习.md

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

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

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

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

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

    2024年02月13日
    浏览(43)
  • 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日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包