创建数据库:
CREATE [REMOTE] (DATAbase|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] [LOCATION hdfs_path] [MANAGEDLOCATION hdfs_path] [WITH DBPROPERTIES (property_name=property_value, ...)];
[] 表可有可无;(|)表二选一;
REMOTE:在Hive 4.0.0 (Hive -24396)中添加了远程数据库,以支持数据连接器;
DATAbase|SCHEMA:创建数据库或者SCHEMA;
IF NOT EXISTS:判断语句,防止报错;
COMMENT:数据库注释;
LOCATION指的是外部表的默认目录,MANAGEDLOCATION(在hive 4.0.0加入)指的是内部表(即管理表)的默认目录。
删除数据库:
DROP (DATAbase|SCHEMA) [IF EXISTS] database_name [RESTRICT|CASCADE];
SCHEMA和DATAbase的用法是可以互换的,它们的意思是一样的。Hive 0.6 (Hive -675)增加了DROP DATAbase。默认行为是RESTRICT,如果数据库不是空的,DROP DATAbase将失败。要删除数据库中的表,请使用drop database…CASCADE。Hive 0.8 (Hive -2090)增加了对RESTRICT和CASCADE的支持。
修改数据库:
ALTER (DATAbase|SCHEMA) database_name SET DBPROPERTIES (property_name=property_value, ...); -- (Note: SCHEMA added in Hive 0.14.0) ALTER (DATAbase|SCHEMA) database_name SET OWNER [USER|ROLE] user_or_role; -- (Note: Hive 0.13.0 and later; SCHEMA added in Hive 0.14.0) ALTER (DATAbase|SCHEMA) database_name SET LOCATION hdfs_path; -- (Note: Hive 2.2.1, 2.4.0 and later) ALTER (DATAbase|SCHEMA) database_name SET MANAGEDLOCATION hdfs_path; -- (Note: Hive 4.0.0 and later)
Hive 0.14 (Hive -6601)增加了ALTER SCHEMA。
ALTER DATAbase…SET LOCATION语句不会将数据库当前目录的内容移动到新指定的位置。它不会更改指定数据库下现有表或者分区的位置。它只会更改默认的父目录,在父目录中将为该数据库添加新表。这种行为类似于更改表目录不会将现有分区移动到新的位置。
ALTER DATAbase…SET MANAGEDLOCATION与ALTER DATAbase…SET LOCATION类似,都是只会更改默认的父目录,而不会更改现有表/分区的位置。
不能修改数据库的其他元数据。
使用数据库:
USE database_name; USE DEFAULT;
USE为所有后续Hive SQL语句设置当前数据库。要恢复到默认数据库,请使用关键字“default”而不是数据库名称。查询当前使用的数据库:SELECT current_database() (as of Hive 0.13.0)。
Hive 0.6 (Hive -675)新增USE database_name。
创建连接器
CREATE ConNECTOR [IF NOT EXISTS] connector_name [TYPE datasource_type] [URL datasource_url] [COMMENT connector_comment] [WITH DCPROPERTIES (property_name=property_value, ...)];
Hive 4.0.0(Hive -24396)添加了对数据连接器的支持。首次包括了基于JDBC数据源的连接器实现,如MYSQL、POSTGRES、DERBY。其他连接器实现将通过后续版本升级添加。
TYPE -此连接器连接到的远程数据源的类型。例如MYSQL。类型确定驱动程序类和特定于此数据源的任何其他参数。
URL—远程数据源的URL。对于JDBC数据源,则是JDBC连接URL。对于hive类型,它将是thrift URL。
COMMENT - 这个连接器的简短描述。
DCPROPERTIES:包含为连接器设置的一组名称/值对。远程数据源的凭证被指定为DCPROPERTIES的一部分,如JDBC Storage Handler文档中所述。所有以“hive.sql”开头的属性,将被添加到此连接器映射的表中。
删除连接器
DROP ConNECTOR [IF EXISTS] connector_name;
自Hive 4.0.0添加。如果有该连接器映射的数据库,删除操作仍然会成功。在映射的数据库中运行ddl(如“show tables”)时,用户将看到错误。
修改连接器
ALTER ConNECTOR connector_name SET DCPROPERTIES (property_name=property_value, ...); ALTER ConNECTOR connector_name SET URL new_url; ALTER ConNECTOR connector_name SET OWNER [USER|ROLE] user_or_role;
ALTER ConNECTOR … SET DCPROPERTIES:新有属性集替换旧的属性集。
ALTER ConNECTOR connector_name SET URL:新有URL替换旧有URL。使用连接器创建的任何REMOTE数据库都将继续工作,因为它们是按名称关联的。
The ALTER ConNECTOR … SET OWNER:更改hive中连接器对象的所有权。



