美文网首页
hive --DDL&DML

hive --DDL&DML

作者: Ace_Wang | 来源:发表于2018-06-11 20:06 被阅读0次

DDL:Data Defination Language

描述Hive表数据的结构:create alter drop.....

Hive构建在Hadoop之上

Hive的数据存放在HDFS之上

Hive的元数据可以存放在RDBMS之上;

数据库操作:

创建数据库基础语句:CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name

default是Hive中默认的一个数据库

hive表在hdfs中的默认存放路径:/user/hive/warehouse/

数据库基本操作:

create 、alter 、drop 、show 、desc 、use

最最!!基本数据类型

int bigint  float  double  decimal

boolean        XXX

string

date/timestamp  XXX

分隔符

行: \n

列: \001 ^A  ==> 

1 zhangsan 30

1$$$zhangsan$$$30

全部数据类型见官网:

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types

表操作:

Table

进入数据库:use ruozedata;

创建表的同时,指定行分隔符:

CREATE TABLE ruozedata_person

(id int comment 'this is id', name string comment 'this id name' )

comment 'this is ruozedata_person'

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t' ;

create table ruozedata_emp

(empno int, ename string, job string, mgr int, hiredate string, salary double, comm double, deptno int)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t' ;

载入数据:

LOAD DATA LOCAL INPATH '/home/hadoop/data/emp.txt' OVERWRITE INTO TABLE ruozedata_emp;

local: 从本地文件系统加载数据到hive表

非local:从HDFS文件系统加载数据到hive表

OVERWRITE: 加载数据到表的时候数据的处理方式,覆盖

非OVERWRITE:追加;

创建一个表并把另一个表的数据结构完全导入
(相当于复制一个表):

CREATE table ruozedata_emp2 as select * from ruozedata_emp;

仅仅复制表结构:

CREATE table ruozedata_emp3 like ruozedata_emp;

改名:ALTER TABLE ruozedata_emp3 RENAME TO ruozedata_emp3_new;

表的基本操作:

create alter drop show desc

创建表默认使用的是MANAGED_TABLE:内部表

ruozedata_emp_managed

drop:hdfs+meta;

内部表删除是完全删除,hdfs中的数据,与mysql中的meta全部删除;

EXTERNAL:外部表

create EXTERNAL table ruozedata_emp_external

(empno int, ename string, job string, mgr int, hiredate string, salary double, comm double, deptno int)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY '\t'

LOCATION "/ruozedata/external/emp" ;

drop: drop meta;

外部表删除是只删除mysql中的meta,不删除hdfs中的数据,删除之后再创建一个表指到数据的位置,就可以获取数据了,内部表也可以通过指定LOCATION的方式,加载数据;

使用insert插入数据:

create table ruozedata_emp4 like ruozedata_emp;

INSERT OVERWRITE TABLE ruozedata_emp4

select * FROM ruozedata_emp;

关键是要插入数据与接受数据表的列数,参数类型要一致;int可以插入到string但是string不一定能插入int中;

最后附一张hive数据结构图:

相关文章

  • hive --DDL&DML

    DDL:Data Defination Language 描述Hive表数据的结构:create alter dr...

  • 17-Hive DDL&DML

    DDL:Data Defination Language描述Hive表数据的结构:create alter dro...

  • [从零开始学Hive]Hive数据类型&DDL&DML

    Hive数据类型 基本数据类型 Hive数据类型Java数据类型长度TINYINTbyte1byte有符号整数SM...

  • DDL&DML

    一、表设计(DDL)1、设计表:遵循三范式确定表名确定字段名 类型+约束(主键、外键、非空、默认、检查自定义规...

  • 数据仓库Hive

    Hive产生背景 Hive概述 HIve体系架构 Hive部署架构 Hive和RDBMS区别 Hive部署以及快速...

  • 数据查询-Hive基础

    outline 什么是Hive 为什么需要Hive Hive的架构 Hive的常用操作 什么是Hive Hive由...

  • 大数据知识 | hive初识

    hive简介 hive架构 hive是什么 官网这样说:https://hive.apache.org/ hive...

  • Hive | Hive 安装详解

    一、Hive 介绍 二、准备工作 三、Hive下载 四、Hive 安装 五、Hive 启动 一、Hive 介绍 H...

  • Hive日常使用

    hive 创建表: hive 执行: =========================hive 调用Python...

  • Hive常用的几种交互操作

    查看hive下的交互命令方式 -help(hive 外) 命令:bin/hive -helpusage: hive...

网友评论

      本文标题:hive --DDL&DML

      本文链接:https://www.haomeiwen.com/subject/uvzheftx.html