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'
);

博弈
2.5k 声望1.5k 粉丝

态度决定一切


引用和评论

0 条评论