Paimon数据源

本文介绍云数据库 SelectDB 版如何通过Catalog集成Paimon数据源,对Paimon数据源进行联邦分析。

前提条件

  • 已将Paimon集群所有节点IP添加至SelectDB的白名单。具体操作,请参见设置白名单

  • 了解什么是Catalog,以及Catalog的基本操作。具体信息,请参见湖仓一体

注意事项

  • SelectDB不同的版本支持的Paimon不同。

    • SelectDB3.0支持Paimon 0.7及以下版本。

    • SelectDB4.0支持Paimon 0.8及以下版本。

  • 目前,云数据库 SelectDB 版对External Catalog中的数据只支持读操作。

操作步骤

本示例中,paimon_catalog为目标External Catalog,根据您的实际情况,替换成自己的参数。

步骤一:连接实例

连接SelectDB实例。具体操作,请参见通过MySQL客户端连接云数据库SelectDB版实例

步骤二:集成Paimon

SelectDB通过创建External Catalog集成外部数据源。Paimon Catalog支持基于两种Metastore类型创建Catalog:

  • Filesystem(默认):Paimon元数据和数据均存储在Filesystem。

  • Hive Metastore:Paimon元数据存储在Hive Metastore中,您可以直接从Hive访问这些表。

根据您Paimon的Metastore类型,选择合适的Catalog类型。

基于FileSystem

基于HDFS构建的Paimon

CREATE CATALOG `paimon_catalog` PROPERTIES (
    "type" = "paimon",
    "warehouse" = "hdfs://HDFS8000871/user/paimon",
    "dfs.nameservices" = "HDFS8000871",
    "dfs.ha.namenodes.HDFS8000871" = "nn1,nn2",
    "dfs.namenode.rpc-address.HDFS8000871.nn1" = "172.21.0.1:4007",
    "dfs.namenode.rpc-address.HDFS8000871.nn2" = "172.21.0.2:4007",
    "dfs.client.failover.proxy.provider.HDFS8000871" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider",
    "hadoop.username" = "hadoop"
);
参数说明
重要

创建Paimon Catalog中dfs相关的参数与Paimon配置文件hdfs-site.xml中的参数是一一映射关系,参数和参数含义都相同。所以此处dfs相关参数值均需与配置文件hdfs-site.xml中的值保持一致。

参数

是否必选

默认值

说明

type

Catalog类型,固定为paimon。

warehouse

仓库的HDFS路径。

hadoop.username

HDFS用户名。

dfs.nameservices

Name Service名称。

dfs.ha.namenodes.[nameservice ID]

NameNode的ID列表。

dfs.namenode.rpc-address.[nameservice ID].[name node ID]

NameNode的RPC地址,数量与NameNode数量相同。

dfs.client.failover.proxy.provider.[nameservice ID]

HDFS客户端连接活跃NameNode的Java类,通常是org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider

基于OSS构建的Paimon

重要

云数据库 SelectDB 版 3.0.6及其以上版本,支持以OSS作为数据来源进行Paimon对接。

CREATE CATALOG `paimon_oss_catalog` PROPERTIES (
    "type" = "paimon",
    "warehouse" = "oss://paimon-zd/paimonoss",
    "oss.endpoint" = "oss-cn-beijing.aliyuncs.com",
    "oss.access_key" = "ak",
    "oss.secret_key" = "sk"
);
参数说明

参数

是否必选

默认值

说明

type

Catalog类型,固定为paimon。

warehouse

仓库的OSS路径。

oss.endpoint

访问OSS数据的Endpoint。如何获取,请参见访问域名和数据中心

oss.access_key

访问OSS数据的Accesskey ID

oss.secret_key

访问OSS数据的AccessKey Secret

基于Hive Metastore

如果您的Paimon元数据存储在Hive Metastore中,您可以创建同Hive相同的hms类型的Catalog进行集成Paimon,此处仅提供简单示例,具体操作,请参见Hive数据源

CREATE CATALOG `paimon_hms` PROPERTIES (
    "type" = "paimon",
    "paimon.catalog.type" = "hms",
    "warehouse" = "hdfs://HDFS8000871/user/zhangdong/paimon2",
    "hive.metastore.uris" = "thrift://172.21.0.44:7004",
    "dfs.nameservices" = "HDFS8000871",
    "dfs.ha.namenodes.HDFS8000871" = "nn1,nn2",
    "dfs.namenode.rpc-address.HDFS8000871.nn1" = "172.21.0.1:4007",
    "dfs.namenode.rpc-address.HDFS8000871.nn2" = "172.21.0.2:4007",
    "dfs.client.failover.proxy.provider.HDFS8000871" = "org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider",
    "hadoop.username" = "hadoop"
);

步骤三:查看Catalog

您可以通过以下语句,查看Catalog创建是否成功。

SHOW CATALOGS; --查看CATALOG是否创建成功
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| CatalogId    | CatalogName  | Type     | IsCurrent | CreateTime              | LastUpdateTime      | Comment                |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+
| 436009309195 | paimon_catalog | paimon      |           | 2024-08-06 17:09:08.058 | 2024-07-19 18:04:37 |                        |
|            0 | internal     | internal | yes       | UNRECORDED              | NULL                | Doris internal catalog |
+--------------+--------------+----------+-----------+-------------------------+---------------------+------------------------+

步骤四:查看Paimon库表数据

  • 在目标External Catalog目录下查看Paimon库表数据。

    说明

    连接SelectDB实例后,默认操作目录为Internal Catalog。

    1. 切换目录至目标目录External Catalog。

      SWITCH paimon_catalog;
    2. 查看数据。

      完成目标目录切换后,您可以像使用Internal Catalog一样,对External Catalog的数据进行查看和访问。例如以下操作:

      • 查看数据库列表:SHOW DATABASES;

      • 切换数据库:USE test_db;

      • 查看数据库表列表:SHOW TABLES;

      • 查看表数据:SELECT * FROM test_t;

  • 在Internal Catalog目录下查看Paimon库表数据。

    --查看paimon_catalog目录下,数据库test_db中表test_t的数据。
    SELECT * FROM iceberg_catalog.test_db.test_t;

列类型映射

说明

以下部分复杂结构的数据类型支持嵌套使用。

  • Paimon Data Type:MapType、ArrayType

  • SelectDB Data Type:Map、Array

Paimon Data Type

SelectDB Data Type

BooleanType

Boolean

TinyIntType

TinyInt

SmallIntType

SmallInt

IntType

Int

FloatType

Float

BigIntType

BigInt

DoubleType

Double

VarCharType

VarChar

CharType

Char

DecimalType(precision, scale)

Decimal(precision, scale)

TimestampType,LocalZonedTimestampType

DateTime

DateType

Date

MapType

Map

ArrayType

Array

VarBinaryType, BinaryType

Binary