配置和使用Catalog

要在Apache Spark中使用Iceberg,首先要配置catalogs(目录)。那么,catalog是什么?

Catalog是Iceberg对表进行管理(create、drop、rename等)的一个组件。通过Iceberg附带的catalog目录,我们可以使用SQL命令管理表并按名称加载表。通过设置spark.sql.catalog下的Spark属性来配置Spark catalogs。Catalog名称在SQL查询中用于标识一个表。

配置Catalog

目前Iceberg支持两种catalog,分别是HiveCatalog和HadoopCatalog。其中HiveCatalog将当前表的元数据文件路径存储在Hive Metastore,因为这个表元数据文件是所有读写Iceberg表的入口,所以每次读写Iceberg表都需要先从Hive Metastore中取出对应的表元数据文件路径,然后再解析这个元数据文件以进行接下来的操作。而HadoopCatalog是将当前表元数据文件路径记录在一个文件目录下,因此不需要连接Hive MetaStore。

Catalog(目录)的创建和命名是通过添加Spark属性spark.sql.catalog.(catalog-name),其值为实现类。目前Iceberg支持两个实现:

(1) org.apache.iceberg.spark.SparkCatalog:支持Hive Metastore或Hadoop目录作为catalog。

(2) org.apache.iceberg.spark.SparkSessionCatalog:将对Iceberg表的支持添加到Spark的内置catalog中,并将非Icegerg表委托给内置catalog。

例如,创建一个名为hive_prod的Iceberg catalog目录,并指定表元 ......

......

抱歉,只有登录会员才可浏览!会员登录


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