Catalog
Paimon提供一个Catalog抽象来管理表内容和元数据,Catalog抽象提供了一系列方法帮你更好的与计算引擎集成,推荐使用Catalog来访问Paimon表。
Catalogs
Paimon catalogs前支持三种类型的元存储:
- 文件系统元储存(默认),在文件系统中存储元数据和表文件。
- hive元储存,它在hive元存储中额外存储元数据,用户可以直接从Hive中访问表。
- jdbc元存储,它在像MySql、Postgres等关系型数据库中额外存储元数据。
文件系统 Catalog
元数据和表文件存储在hdfs:///path/to/warehouse
。
-- Flink SQL
CREATE CATALOG my_catalog WITH (
'type' = 'paimon',
'warehouse' = 'hdfs:///path/to/warehouse'
);
Hive Catalog
通过使用Paimon Hive Catalog,对Catalog的更改将直接影响相应的Hive元存储,在此Catalog中创建的表也可以直接从Hive中访问,元数据和表文件存储在hdfs:///path/to/warehouse
,此外,schema也存储在Hive元存储中。
-- Flink SQL
CREATE CATALOG my_hive WITH (
'type' = 'paimon',
'metastore' = 'hive',
-- 'warehouse' = 'hdfs:///path/to/warehouse', default use 'hive.metastore.warehouse.dir' in HiveConf
);
默认情况下,Paimon不会将新创建的分区同步到Hive元存储中,用户将在Hive中看到一个未分区的表,分区向下推将由过滤器向下推来执行。
如果你想在Hive中看到一个分区表,并将新创建的分区同步到Hive元存储中,请将表选项metastore.partitioned-table
设置为true
。
JDBC Catalog
通过使用Paimon JDBC Catalog,对Catalog的更改将直接存储在关系型数据库中,如SQLite,MySQL,postgres等。
-- Flink SQL
CREATE CATALOG my_jdbc WITH (
'type' = 'paimon',
'metastore' = 'jdbc',
'uri' = 'jdbc:mysql://<host>:<port>/<databaseName>',
'jdbc.user' = '...',
'jdbc.password' = '...',
'catalog-key'='jdbc',
'warehouse' = 'hdfs:///path/to/warehouse'
);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。