管理Catalog中的数据库

每个catalog中都有一个叫default的默认数据库。在Iceberg中,数据库与命名空间(namespace)等价。也可以明确地创建一个数据库(或命名空间)并命名。

如果要查看当前的catalog和命名空间(数据库),代码如下:

spark.sql("SHOW CURRENT NAMESPACE").show()

要查看当前有哪些命名空间,代码如下:

spark.sql("SHOW NAMESPACES").show()
// 或者
spark.sql("SHOW DATABASES").show()

可以使用下面的语句创建新的命名空间,代码如下:

spark.sql("CREATE NAMESPACES TEST_DB")
// spark.sql("CREATE DATABASE TEST_DB")    // 等价

也可以查看指定catalogs中包含哪些数据库/命名空间。例如,查看名为hadoop_catalog的目录下的有哪些数据库/命名空间,代码如下:

spark.sql("show namespaces in hadoop_prod").show()
spark.sql("show databases in hadoop_prod").show()

如果要查看指定命名空间中有哪些表,代码如下:

spark.sql("show tables in hadoop_prod.default").show()

如果要删除某个命名空间,用drop database或drop namespace都可以。不过需要注意的是,只可以删除空的命名空间(即不存在表的命名空间),代码如下:

spark.sql("drop database hadoop_prod.jd_db")  
// spark.sql("drop namespace hadoop_prod.jd_db")  

《Spark原理深入与编程实战》