Hive基础—数据定义
Hive SQL 是Hive查询语言。HQL可能和MySQL的方言最接近,但是两者还是存在显著的差异。Hive不支持行级插入操作、更新操作和删除操作。Hive也不支持事务。
1. 数据库操作
下面一个例子展示了如何创建一个数据库:
hive > CREATE DATABASE abc;
如果数据库abc已经存在的话,那么就会抛出一个错误信息。使用以下信息可以避免这种情况:
hive > CREATE DATABASE IF NOT EXISTS abc;
随时可以通过如下命令方式查看Hive中所包含的数据库:
hive > SHOW DATABASE;
default
abc
如果数据库非常多的话,可以使用正则表达式匹配筛选出需要的数据库名。下面这个例子展示的是列举出所有以字母a开头,以其他字符结尾的数据库名:
hive > SHOW DATABASE LIKE 'a.*';
abc
Hive 会为每一个数据库创建一个目录。数据库中的表将会以这个数据库目录的子目录形式存储。有一个例子就是default数据库中的表,因为这个数据库本身没有自己的目录。
/user/hive/warehouse 是数据库所在目录配置项的默认位置,当我们创建数据库abc时,Hive将会对应的在此目录下创建一个abc.db文件。
用户可以通过如下的命令来修改这个默认的位置:
hive > CREATE DATABASE abc
> LOCATION '/my/preferred/directory';
用户也可以为这个数据库增加一个描述信息,这样通过DEACRIBE DATABASE 命令就可以查看该信息了。
hive > CREATE DATABASE abc
> COMMENT 'Stores all abc tables';
hive > DEACRIBE DATABASE abc ;
abc Stores all abc tables
hdfs://master-server//user/hive/warehouse/abc.db