Hive的DDL数据定义语言

1.创建数据库

  hive>create database myhive;

  hive>create database if not exists myhive;

  hive>show databases;

  hive>show databases like ‘*t*‘;

  说明:hive为创建的数据库生成了相对应的目录(*.db),目录在{hive.metastore.warehouse.dir}属性下,同时,数据库中的表将以目录中的子目录进行存储;default默认数据库除外。

  a.自定义修改数据库存放位置,需单独指定(*.db)目录

    hive>create database myhive3 location ‘/user/hive/myhive3.db‘;

  b.对数据库可以增加描述信息(通过comment)

    hive>create database if not exists myhive4 comment ‘创建hive测试库‘;

  c.对数据库添加属性信息

    hive>create database myhive5 with dbproperties (‘name‘=‘zhangsan‘,‘data‘=‘2018-8-14‘);

  d.使用数据库

    hive>use myhive;

  e.删除数据库

    hive>drop database if exists myhive5;

    hive>drop database if not exists myhive3 cascade;

      说明:cascade表示级联关系;restrict表示限制约束(默认值);

2.修改数据库

  除数据库的属性以外,其他信息均不能修改:

    hive>alter database myhive5 set dbproperties (‘name‘=‘lyr‘,‘data‘=‘2018-7-12‘);

3.创建表

  a.创建表

    hive>create table hive.student (sid int comment ‘num‘,name string comment ‘mingzi‘) comment ‘student_table‘ tblproperties (‘name‘=‘leiyanrui‘,‘data‘=‘2-18-8-15‘);

  b.查看表属性

    hive>desc hive.student;

    hive>desc extended hive.student;

  c.拷贝表模型,创建新的表(数据不拷贝)

    hive>create table hive.student2 like hive.student;

4.管理表

  默认创建的表均为管理表,表达形式{MySQL:hive:TBLS}表的TBL_TYPE字段显示为MANAGER_TABLE;

  一般也把管理表称为“内部表”;

  内部表特性:将数据move移动到{hive.metastore.warehouse.dir}目录相关的database下;

5.外部表

  $hadoop fs -mkdir /data

  $hadoop fs -mkdir /data/stocks

  $>hadoop fs -put /mnt/hgfs/2.安装环境/data/stocks/stocks.csv /data/stocks

  hive>create external table if not exists stocks (exchange1 string,symbol string,ymd string,price_open float,price_high float,price_low float,price_close float,volume int,price_adj_close float) row format delimited fields terminated by ‘,‘ location ‘/data/stocks‘;

  hive>select count(*) from stocks;

6.分区表partition

  hive中的分区针对{表组织}进行规划的;

  [静态分区]

    hive>create table logs(st bigint,line string) partitioned by (dt string,country string) row format delimited fields terminated by ‘,‘;

    $>gedit logs1.txt

        12,ccc

        32,aaa

        31,ffff

      hive>load data inpath ‘/home/hyxy/logs.txt‘ into table hive.logs partition (dt=‘2018-9-8‘,country=‘changchun‘);

     hive>load data local inpath ‘/home/hyxy/logs1.txt‘ into table hive.logs partition(dt=‘2018-7-1‘,country=‘beijing‘);

     hive>select * from hive.logs;

     hive>select * from hive.logs where country=‘beijing‘;

      查看分区

      hive>show partition hive.logs;

     注意:静态分区的缺点:针对分区列,手动设置,如果分区数据比较多的话,将会较麻烦。

  [动态分区]

    hive>create table stocks_partition (exchange1 string,symbol string,ymd string ,price_open,float,price_high,float,price_low,float,price_close float,volume int,price_adj_close float) partition by (year string,month string) row format delimited fields terminated by ‘,‘;

    hive>set hive.exec.dynamic.partition,mode=nonstrit;

    hive>set hive.exec.max.dynamic.partitions=100000;

    hive>set hive.exec.max.dynamic.aprtitions.pernode=100000;

    hive>insert overwrite table stocks_partitions partition(year,month) select exchange1,symbol,ymd,price_open,price_high,price_low,price_close,volume,price_adj_close,substr(ymd,0,4) as year,substr(ymd,6,2) as month from stocks;

    说明:按照year和month进行分区。

    

原文地址:https://www.cnblogs.com/lyr999736/p/9473870.html

时间: 2025-01-08 16:21:24

Hive的DDL数据定义语言的相关文章

Hive 官方手册翻译 -- Hive DDL(数据定义语言)

Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL 翻译:Google Google翻译,金山软件 金山词霸 校对:南大通用 范振勇 (2018.9.26) 一.概述 这里是HiveQL DDL语句的文档,其中包括: CREATE 数据库/SCHEMA,表

Mysql数据库 DDL 数据定义语言

数据库(Database,DB): 按照数据结构来组织.存储和管理数据的仓库,本质上就是文件系统,数据按照一定的格式存储,用户可以进行CRUD(增删改查) 数据库管理系统(Data Base Management System,DBMS): 创建和管理数据库的,介于应用程序和操作系统之间,不仅具有最基本的数据管理功能,还能保证数据的完整性.安全性和可靠性.eg:MySQL.Oracle.SQL.Server.DB2等. 数据库系统(DataBase System,DBS): 是由硬件和软件组成的

DDL(数据定义语言)

DDL,是对数据库内部的对象进行创建,删除,修改等的操作语言.它和DML语言最大的区别是DML只是对表内部数据的操作,而不涉及到表的定义,结构的修改,更不会涉及到其它对象. 1.连接数据库:注:1.mysql代表客户端命令,-u后面跟连接的数据库用户,-p表示需要输入密码.    2.命令的结束符用;或者\g结束 2.创建数据库:格式:create database dbname; Query OK执行成功1 row affected 只影响了数据库中一行的记录.0.13 sec 记录了操作执行

MySql DDL数据定义语言

1.数据库创建.查看以及使用/切换 直接创建数据库 db1 create database db1; 查看当前在哪个库里边 select database(); 进入库的操作:use 库名; use db1; 判断是否存在,如果不存在则创建数据库 db2 create database if not exists db2; 创建数据库db3,并指定字符集为 gbk create database db3 default character set gbk; 查看某个库是什么字符集: show c

DDL(Data Definition Language)数据定义语言基础

数据定义语言DDL(Data Definition Language)是SQL语言的三个主要组成部分之一(另外两个分别是数据操作语言DML(Data Mainpulation Language)和数据控制语言(Data Control Language)). 1:创建用户Create User 创建用户使用如下的语法 Create user 用户名 identified by 密码 [default tablespace 缺省表空间] [temporary tablespace 临时表空间].如

mysql学习笔记之六(数据定义语言DDL)

SQL语言包括四类种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)还有事务控制语言(TCL). ※  数据定义语言(DDL),例如:CREATE.DROP.ALTER等语句. ※  数据操作语言(DML),例如:INSERT(插入).UPDATE(修改).DELETE(删除)语句. ※  数据查询语言(DQL),例如:SELECT语句.(一般不会单独归于一类,因为只有一个语句). ※  数据控制语言(DCL),例如:GRANT.REVOKE等语

ddl(数据定义语言) ,dml (数据操控语言),dcl(数据控制语言)

DDL.DML和DCL的理解 1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性的管理和定义具体表现在Create.Drop和Alter上.特别注意:DDL操作的"对象"的概念,"对象"包括对象及对象的属性,而且对象最小也比记录大个层次.以表举例:Create创建数据表,Alter可以更改该表的字段,Dro

mysql学习一 DDL(数据定义语言)

一.mysql的具体安装这里就不多说了,网上有很多.大家可以在网上找找,有安装版本和压缩版本. 二.验证数据库是否安装成功: 在dos的命令行下面输入:mysql -u root -p(默认的是直接回车就可以了,如果你没有设置密码) 如果你设置了密码就得输入密码 就会登录上mysql,有mysql的提示信息. 三.DDL:数据定义语言 简述:什么是DDL呢?Data Definition Language(数据定义语言):我们知道是什么了,接下来应该了解它有什么作用吧?我想我们学习很多东西的时候

DDL(数据定义语言)

1.Oracle中常见的数据类型分类:(A) 1.number(x,y) 数字类型,x表示最大长度,y表示精度对应java中除char外所有基本数据类型(byte.short.int.long.float.double.boolean) 2.varchar2(x) 可变字符串,x表示最大长度.对应java中String 3.char(x) 定长字符串,x表示最大长度. 对应java中String 4.long 长字符串,最大2G.对应java中String 5.Date,日期(年月日时分秒)对应