经典解密数据库和表的创建

创建数据库和表是学习大数据必备的知识,那么数据库和表如何创建呢?使用Impala和Hive创建数据库和表又有什么区别呢?

数据库和表通过HiveQL或ImpalaSQL的DDL语句进行创建和管理,和标准SQL DDL非常相似。但是它们又有各自不同的语法,这个差异会在后面具体提出来,如果没有提到就是两者相通的。

一、创建数据库

Hive和Impala数据库就是简单的命名空间,用来统一管理一部分表和视图。数据库在HDFS上的体现就是一个建立在表上的目录。

(1)创建新的数据库:

这是和所有关系型数据库相通的一个命令,执行此操作就会添加数据库定义到元数据库,并且在HDFS里创建存储目录,比如:/user/hive/warehouse/loudacre.db

(2)可以带条件创建新数据库


这是一个友好的写法,就是当你要把创建数据库的动作放到脚本中去执行,前提必须保证脚本可以重复执行,不会出现任何失败,所以可以加IF NOT EXISTS。当这个数据库不存在的时候,这个语句可以正常的运行,去创建一个数据库;如果存在的话,就进行下一步。放在脚本中执行,不需要担心执行会失败,最起码在这一步执行中是不会失败的。

(3)移除数据库

移除数据库和创建类似,只是替换CREATE为DROP


但是如果数据库中包含一些表的话,那么上述命令的执行就会失败。当然有些情况下,我们需要直接执行这个命令,然后同时让它把这个数据库下面所有的表和结构信息全部删除,那么我们执行如下命令:


二、创建表

(1)数据类型:

当我们去创建一个表的时候,我们需要去指定列,那么这个列也有自己特定的数据类型,在我们创建表的时候需要去指定这个数据类型,对不符合的类型的数据将会返回NULL。常见数据类型:


在这里重点强调Hive支持支持复杂数据类型,比如maps和arrays,而Impala根据版本不同会不一样。

(2)基本语法:


当我们执行了这样一个操作,它会在HDFS的数据仓库目录创建一个子目录。如果你没有指定数据库名,它会在/user/hive/warehouse/这个默认的数据仓库目录下有tablename这样一个表的目录;但是如果你创建一个DB,那么会在DB下面去创建子目录。具体如下:

默认数据库:
 /user/hive/warehouse/tablename

命名的数据库:
 /user/hive/warehouse/dbname.db/tablename

(3)创建表的类型:


在hive里面是以什么来判断数据呢?它是以指定行或列的分隔来去判断我们的数据有几条,有几个字段,所以我们必须指定行或列的分隔


(4)数据分隔


(5)数据存储


以上就是根据自身经验分享的表和数据库的创建过程,你可以关注“大数据cn”微信资讯平台,提出你的疑问,和同行一起来交流。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值