经典解密数据库和表的创建
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典解密数据库和表的创建相关的知识,希望对你有一定的参考价值。
创建数据库和表是学习大数据必备的知识,那么数据库和表如何创建呢?使用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”微信公众号来提问。
本文出自 “11872756” 博客,请务必保留此出处http://11882756.blog.51cto.com/11872756/1888588
以上是关于经典解密数据库和表的创建的主要内容,如果未能解决你的问题,请参考以下文章