Hive(二) -- ddl

2023-05-16

        Hive支持标准SQL,同时又有自己的特点,属于方言版SQL。Hive的ddl主要包含对于数据库和表的查询、创建和删除。dml包含数据查询和插入,其中插入有load和insert两种方式,针对于4种表的特点有不同的插入方式。

一、ddl : data define language

库:

        创建库:create database dname;

        切换库:use dname;

        查询库列表:show database;        show database like 'dname*';

        查询正在使用的库:select current_database();

        查询库的详细信息:desc database dname;

        删除库:drop database dname [cascade];  # 若库中有表存在,需要添加cascade

表:

        1. 创建

        Hive表的创建共有三种方式:create、CTAS、like

1)create

        create [external] table [if not exists] tname(col_name data_type)

                [partitioned by (col_name data_type)]   

                [(clustered by (col_name, col_name, ...))

                [sorted by (col_name [ASC | DESC], ...)] into num_buckets buckets]

                [row format row_format]

                [location hdfs_path] 

        [解析]:

        1)[external]:外部表关键字。不加默认创建内部表(又名管理表)

                若数据已经存储在HDFS上,需要使用Hive去做数据分析,并且该数据还可能使用其它

        数据引擎做计算,此时应该选择外部表。

        2)[partitioned by (col_name data_type)]:

              partitioned by 创建分区表关键字。后边的分区字段可以是一个或多个。

              [注意]  分区字段不可以出现在建表字段中。Hive中每个分区以文件夹的形式单独存放在表

                        文件夹的目录下,分区以字段的形式存放在表结构中,但该字段不存放实际内容,

                        仅仅是分区的表示。

        3)[(clustered by (col_name, col_name, ...))

             clustered by 创建分桶表关键字。分桶字段可以一个或多个。

             [注意]  分桶字段必须是建表字段中的某个字段。

             [sorted by (col_name [ASC | DESC], ...)]  指定桶中排序规则

             into num_buckets buckets]  分桶个数。Hive采用对列值Hash,然后对桶的个数求余的方

                                                                            式确定该条记录存放在哪个桶中。

        4)[row format row_format]:指定分隔符

                列分隔符:fields terminated by ','

                行分隔符:lines terminated by '\n'    # 一般不需要指定

                元素分隔符:items terminated by '\t'    # 通常字段中存在map、array等复杂结构时使用

        5)[location hdfs_path]:指定Hive当前所建表的数据存储路径(HDFS上的路径)

                若指定location,则相当于将该数据与Hive表做了关联。若不指定location,则会将该数

        据移动至Hive表的创建目录中。通常情况下,若需要指定location,则创建外部表。内部表最

        好不要指定存储路径。

2)CTAS

        将另一个表中查询的数据保存到新建的表中。

        Create Table tname As Select ... from ...

3)like

        复制表。只复制表结构,不复制表中的数据。

        create table tname like old_tname;

2. 查看

        查看表列表:show tables;    show tables in db;    show table like '*';

        查看建表语句:show create table tname;

        查看表详细信息:desc [extended / formatted] tname;

        查看表的分区信息:show partitions tname;

3. 修改

        修改表名称:alter table tname rename to new_tname;

        修改表字段:alter table tname add columns (col_name, col_type)  # 添加列

                              alter table tname change col_name new_col_name col_type;  # 修改列

        修改分区:p代表分区字段

                          alter table tname add partition(p='aa') partition(p='bb')... [location '/user/hive/ptn']                                 # 添加分区 [可以指定分区路径]

                          alter table tname drop partition(p='aa')  # 删除分区

4. 删除

        清空表:truncate table tname;

        删除表:drop table tname [cascade];

视图:

        1. Hive中只有逻辑视图,没有物化视图

        2. Hive中的视图仅仅相当于一条查询语句的快捷方式

        3. Hive中的视图只支持查询,在执行查询时才开始执行视图对应的那些子查询

        4. 视图会将自己代表的SQL语句存储在元数据库中

1. 创建视图:create virw view_name as select ...;

2. 查看视图:show tables;        desc view_name;

3. 删除视图:drop view view_name;

        

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive(二) -- ddl 的相关文章

随机推荐

  • 西瓜的JSON笔记

    1 JSON是什么 JSON 指的是 JavaScript 对象表示法 xff08 J ava S cript O bject N otation java xff0c 脚本 xff0c 对象 xff0c 注释 xff09 JSON的特点
  • Windows 下安装 Ubuntu 双系统

    转载自 xff1a Windows 下安装 Ubuntu 双系统 一 准备 xff1a xff08 一 xff09 准备工具 xff1a U盘一个 xff08 请提前备份U盘里面的资料 xff0c 因为后面操作要格式化U盘 xff09 Ub
  • FreeRTOS 互斥信号量和二值信号量对比

    互斥信号量 1 有优先级继承 2 尽量不要在中断中调用 3 xSemaphoreCreateMutex创建后 xff0c 可以直接take使用 二值信号量 1 无优先级继承 2 允许在中断中调用 3 可以当做标志位来使用 4 xSemaph
  • 工作站常见问题处理

    常见问题1 xff1a 系统重启网桥消失 1 现象 公司的工作站自从搬到新地方以来 xff0c 每次关机再启动 xff0c 或重启后 xff0c 都会出现网桥消失的情况 2 分析 查找了网桥和网卡的配置 xff0c 也觉得没有什么问题 xf
  • Ubuntu17 安装ProxyChains4

    span class hljs preprocessor 切换目录 span cd Downloads span class hljs preprocessor 下载 span git clone https span class hljs
  • c++实现ip是否在同一个网段的判断

    废话不说直接贴代码 xff1a ip的数据结构 typedef struct IP Struct ip地址划分后各个域的值 struct IpAdress Struct int first int second int third int
  • 计算ip地址是否在同一网段

    一 要判断两个IP地址是不是在同一个网段 xff0c 就将它们的IP地址分别与子网掩码做与运算 xff0c 得到的结果 gt 网络号 xff0c 如果网络号相同 xff0c 就在同一子网 xff0c 否则 xff0c 不在同一子网 例 xf
  • 面试官再问你 HashMap 底层原理,就把这篇文章甩给他看

    前言 HashMap 源码和底层原理在现在面试中是必问的 因此 xff0c 我们非常有必要搞清楚它的底层实现和思想 xff0c 才能在面试中对答如流 xff0c 跟面试官大战三百回合 文章较长 xff0c 介绍了很多原理性的问题 xff0c
  • Java核心技术读书笔记——集合

    本笔记为读 Java核心技术 卷1 第9版 而记录 目录 1 集合接口与实现相互分离1 1Java类库中集合接口和迭代器接口1 2泛型实用方法 2 具体的集合2 1链表2 2数组列表2 3散列表2 4树集2 5对象的比较2 6队列与双端队列
  • #每天一篇论文#(213/365) Joint 2D-3D-Semantic Data for Indoor Scene Understanding 结合2D-3D室内语义数据场景理解

    Joint 2D 3D Semantic Data for Indoor Scene Understanding http 3Dsemantics stanford edu A 摘要 本文提供了一个大型室内空间的数据集 xff0c 它提供了
  • 我心中的AI

    首先说一下我的身份 xff0c 一个刚刚踏入IT行业的年轻小伙 xff0c 相信在坐的大家心中都会有一个小小的梦想 拥有一个 大黄蜂 xff0c 这是我从事这个职业的原因所在 人工智能从诞生以来 xff0c 理论和技术日益成熟 xff0c
  • 2021-09-04 **mininet+flowvisor+floodlight实现网络切片功能**

    mininet 43 flowvisor 43 floodlight实现网络切片功能 这个项目所使用的软件flowvisor 和floodlight 都已经过时了网上能找到的资料太少了 xff0c 整个项目搭建过程中遇到的坑太多了 花了大量
  • CentOS 6.5 时间同步

    1 检查是否安装ntpdate rpm qa grep ntp 有返回说明已经安装 xff0c 若无返回 xff0c 执行安装命令进行安装 2 安装ntpdate yum install y ntp ntpdate 3 修改时区 vi et
  • 在linux安装elasticsearch-7.6.2 所遇到的坑

    64 TOC在linux安装elasticsearch 7 6 2 所遇到的坑 问题描述 刚接触学习elasticsearch xff0c 在linux环境安装就遇到了一些问题 运行角色问题 elasticsearch不建议使用root账号
  • freeRTOS多任务启动流程和源码分析

    最近学习白问网韦东山老师在B站开源的freeRTOS课程 xff0c 网址 xff1a 韦东山直播公开课 xff1a RTOS实战项目之实现多任务系统 第1节 xff1a 裸机程序框架和缺陷 哔哩哔哩 bilibili和7天物联网训练营 第
  • mkdir 创建目录命令

    mkdir命令 mkdir 命令简介 mkdir命令用来创建指定的名称的目录 xff0c 要求创建用户在当前目录权限 xff0c 并且制定的目录名不能是当前目录中已有的目录 命令格式 mkdir 选项 目录 命令参数 m mode 61 模
  • UCOS-II任务间通信(信号量、邮箱、消息队列)

    保护任务之间的共享数据和提供任务之间的通讯方法 xff1a 利用宏OS ENTER CRITICAL 和OS EXIT CRITICAL 来关闭和打开中断 xff0c 这可以用于多任务或者任务和ISR共享某些数据时可以采用这种方法 利用OS
  • 高考到程序员,从娇惯到耐艹

    现在的我刚好是走出校门没两天 xff0c 踏入it行业的程序员 此刻的心情 xff0c 有与挚友分别的不舍 xff0c 有悔恨当初的颓废 xff0c 还有一种提到望月的闯劲儿 总之心理活动错综复杂 xff0c 和高考那会儿玩世不恭的我大不相
  • AI浪潮下需要思考的事

    一 AI的意义 AI xff0c 即ArtificialIntelligence的缩写 xff0c 它是研究如何以人类的智能行为以及思考方式来解决问题的计算机科学的一个分支 目前主要研究的领域包括语音识别 图像识别 自然语言处理以及在某一特
  • Hive(二) -- ddl

    Hive支持标准SQL xff0c 同时又有自己的特点 xff0c 属于方言版SQL Hive的ddl主要包含对于数据库和表的查询 创建和删除 dml包含数据查询和插入 xff0c 其中插入有load和insert两种方式 xff0c 针对