DDL和DML

作者: 乔一波一 | 来源:发表于2019-04-01 21:10 被阅读0次

DDL(Hive Data Definition Language)(官网链接)

建库的就不多说了,跟关系型数据库差不多,这里主要说建表;

在hive中创建一张如下所示的表:

        hive中的数据类型:前三个是复杂数据类型,后面的是基本数据类型,注意这里的字符串用的是String类型;

hive数据类型

hive完整DDL建表规则

        其中中括号[]括起来的表示可选的;

 既然知道了建表的语法,那么建如下表的sql语句要怎么写呢,表中有四个字段,分别是id,姓名,爱好,住址,

建表语句如下:

        第一种:采用指定分隔符行匹配规则

指定分隔符

        第二种:正则表达时行匹配规则;这种方式更加灵活,可以达到ETL(数据清洗),过滤掉不必要的符号;

比如如下格式数据:七个字段,字段之间用空格隔开;

数据

在hive客户端建表;

建表

加载数据;

加载数据

查询数据:

查询结果

另外两种建表的形式:

        create table psn1 as select * from psn  ; 表结构与数据全部创建和导入

        create 。。。。like  仅仅拷贝表的架构,不包括数据

DML(Data Manipulation Language)

表建完了,接下来该向表中添加数据了;

hive中当然也可以采用insert 的方式向表中插入数据,但是显然使用这种方式效率是很低的;因此一般我们采用load的方式,语法如下:

load加载数据

注意:

        local代表的是本地的文件,不指定的话默认是hdfs中的数据,load 加载hdfs中的数据是移动文件而不是复制文件(因为hdfs中的数据默认是3个副本,如果数据传输还是复制的话,那么hdfs的存储空间就会大打折扣);

        filepath顾名思义,指的就是文件路径了;

hive中加载数据的时候随便一个文件,都不会失败,但是分隔不匹配的话,查询数据就会显示一行一行的NULL;

这是因为hive数据仓库跟关系型数据库还是有区别的:

        关系型数据库是  写时检查,插入数据的时候格式不匹配就会报错;

        hive数据仓库是  读时检查,所以任何文件都可以加载到表中;

load加载数据到hive表中的方式并不能适用于所有需求,当我们想要把一张表的字段拆分,插入到多张表时可以采用下面这种方式;

一个from关键字后面可以跟多个insert和select语句,理论上应该是一个select对应一个from,但是采用这种一个from方式可以节省数据访问的开销;

Hive中内部表跟外部表的区别

首先建表的时候语句不同,还是拿之前的数据,创建内部表如下;

创建内部表

创建外部表;指定external关键字,下面location指定hdfs文件路径; 

创建外部表

总结:

        (1):建表的语句不一样;

        (2):内部表是先创建表在加载数据,外部表直接是加载hdfs中的数据,数据本来就放在hdfs中;

        (3):删除表的时候,内部表关系型数据库中的元数据跟hdfs中的数据都会删除,外部表只删除关系型数据库的元数据,hdfs中的数据不删除;

相关文章

  • SQL DML 和 DDL 查询和更新指令构成了 SQL 的 DML 部分: SQL 的数据定义语言 (DDL) ...

  • sql语法

    SQL DML 和 DDL 数据操作语言 (DML) 和 数据定义语言 (DDL)。SQL (结构化查询语言)是用...

  • 重新学sql 基础语法笔记 (其实大部分都是co的)

    SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。...

  • DDL和DML

    DDL(Hive Data Definition Language)(官网链接) 建库的就不多说了,跟关系型数据库...

  • mysql

    DDL DML

  • 常用sql

    内容 1 DDL2 DML3 binlog4 其他 DDL DML binlog 其他

  • 浅谈 DML、DDL、DCL的区别

    浅谈 DML、DDL、DCL的区别 一、DML DML(data manipulation language)数据...

  • 数据库基础篇(三)—— SQL之数据操纵、定义

    写在前面:今天我们来学习DML数据操纵语言和DDL数据定义语言。DML包括插入、修改、删除;DDL包括表和库的管理...

  • 数据库

    1 DDL、DML、DCL 分别指什么ans: DML, Data Manipulation Language,...

  • DDL,DML

    DDL(Data Definition Language 数据定义语言) 用于操作对象和对象的属性,这种对象包括数...

网友评论

      本文标题:DDL和DML

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