doris:Paimon Catalog

使用须知

  1. 数据放在 hdfs 时,需要将 core-site.xml,hdfs-site.xml 和 hive-site.xml 放到 FE 和 BE 的 conf 目录下。优先读取 conf 目录下的 hadoop 配置文件,再读取环境变量 HADOOP_CONF_DIR 的相关配置文件。
  2. 当前适配的 Paimon 版本为 0.8。

创建 Catalog

Paimon Catalog 当前支持两种类型的 Metastore 创建 Catalog:

  • filesystem(默认),同时存储元数据和数据在 filesystem。
  • hive metastore,它还将元数据存储在 Hive metastore 中。用户可以直接从 Hive 访问这些表。

基于 FileSystem 创建 Catalog

HDFS
CREATE CATALOG `paimon_hdfs` 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"
);

CREATE CATALOG `paimon_kerberos` 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.security.authentication' = 'kerberos',
    'hadoop.kerberos.keytab' = '/doris/hdfs.keytab',   
    'hadoop.kerberos.principal' = 'hdfs@HADOOP.COM'
);

MINIO
CREATE CATALOG `paimon_s3` PROPERTIES (
    "type" = "paimon",
    "warehouse" = "s3://bucket_name/paimons3",
    "s3.endpoint" = "http://<ip>:<port>",
    "s3.access_key" = "ak",
    "s3.secret_key" = "sk"
);

OBS
CREATE CATALOG `paimon_obs` PROPERTIES (
    "type" = "paimon",
    "warehouse" = "obs://bucket_name/paimon",
    "obs.endpoint"="obs.cn-north-4.myhuaweicloud.com",
    "obs.access_key"="ak",
    "obs.secret_key"="sk"
);

COS
CREATE CATALOG `paimon_s3` PROPERTIES (
    "type" = "paimon",
    "warehouse" = "cosn://paimon-1308700295/paimoncos",
    "cos.endpoint" = "cos.ap-beijing.myqcloud.com",
    "cos.access_key" = "ak",
    "cos.secret_key" = "sk"
);

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

基于 Hive Metastore 创建 Catalog

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

CREATE CATALOG `paimon_kerberos` PROPERTIES (
    "type" = "paimon",
    "paimon.catalog.type" = "hms",
    "warehouse" = "hdfs://HDFS8000871/user/zhangdong/paimon2",
    "hive.metastore.uris" = "thrift://172.21.0.44:7004",
    "hive.metastore.sasl.enabled" = "true",
    "hive.metastore.kerberos.principal" = "hive/xxx@HADOOP.COM",
    "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.security.authentication" = "kerberos",
    "hadoop.kerberos.principal" = "hdfs@HADOOP.COM",
    "hadoop.kerberos.keytab" = "/doris/hdfs.keytab"
);

基于 Aliyun DLF 创建 Catalog

该功能自 2.1.7 和 3.0.3 版本支持。

CREATE CATALOG `paimon_dlf` PROPERTIES (
    "type" = "paimon",
    "paimon.catalog.type" = "dlf",
    "warehouse" = "oss://xx/yy/",
    "dlf.proxy.mode" = "DLF_ONLY",
    "dlf.uid" = "xxxxx",
    "dlf.region" = "cn-beijing",
    "dlf.access_key" = "ak",
    "dlf.secret_key" = "sk"
    
    -- "dlf.endpoint" = "dlf.cn-beijing.aliyuncs.com",  -- optional
    -- "dlf.catalog.id" = "xxxx", -- optional
);

列类型映射

Paimon Data TypeDoris Data TypeComment
BooleanTypeBoolean
TinyIntTypeTinyInt
SmallIntTypeSmallInt
IntTypeInt
FloatTypeFloat
BigIntTypeBigInt
DoubleTypeDouble
VarCharTypeVarChar
CharTypeChar
VarBinaryType, BinaryTypeString
DecimalType(precision, scale)Decimal(precision, scale)
TimestampType,LocalZonedTimestampTypeDateTime
DateTypeDate
ArrayTypeArray支持 Array 嵌套
MapTypeMap支持 Map 嵌套
RowTypeStruct支持 Struct 嵌套(2.0.10 和 2.1.3 版本开始支持)
<think>嗯,用户想了解Doris中的Catalog。首先,我需要回忆一下Doris的相关知识,确定Catalog在其中的作用。记得Doris是一个MPP架构的实时分析数据库,Catalog可能涉及数据目录的管理。 用户可能已经知道Doris的基础概念,但需要更深入的信息。根据系统指令,要分步骤解释,结构清晰。首先,应该明确Catalog的定义,然后说明其核心功能,比如统一元数据管理、多Catalog支持等。 需要确认Doris版本是否支持多Catalog功能,因为不同版本可能有差异。例如,Doris 1.2之后可能引入了多Catalog,而之前可能只有内部Catalog。这点需要准确,避免误导用户。 接下来,分类介绍不同的Catalog类型,比如Internal Catalog、External Catalog(如Hive、ES、JDBC等)。每个类型的具体用途和如何操作,比如创建外部Catalog的SQL语法示例,这样用户能更清楚如何使用。 还要提到使用场景,比如数据湖分析、联邦查询等,帮助用户理解何时使用Catalog。注意事项部分需要提醒用户权限、性能、元数据一致性等问题,这些是实际应用中容易遇到的坑。 要确保使用正确的中文术语,比如“数据目录”而不是直译。同时检查LaTeX格式是否正确,虽然问题中可能不需要数学公式,但如果有示例代码或命令,要用行内代码块标记,但根据用户指令,这里可能更多是文字描述,但需注意如果有技术术语或代码,如CREATE CATALOG,要用反引号。 最后,总结Catalog的重要性,强调其简化数据管理的优势。确保回答结构清晰,分点明确,用户能逐步理解。需要验证所有信息是否准确,特别是Doris的版本特性,必要时参考最新文档确认,避免过时信息。</think>Doris 中的 Catalog(数据目录)是其2.0版本引入的核心功能,用于统一管理内部数据与外部数据源的元数据。以下从4个关键维度为您解析: 🔹 **核心定义** CatalogDoris 的元数据逻辑集合,相当于一个虚拟数据库集群,可包含: - 内部管理的数据库/表(Internal Catalog) - 外部数据源映射(如 Hive/Iceberg/Elasticsearch 等) - 跨数据源的统一视图 🔹 **核心功能** 1. **统一元数据管理** - 通过 `SHOW CATALOGS` 查看所有 Catalog - 使用 `USE CATALOG` 切换上下文 - 支持跨 Catalog 的联合查询 2. **多 Catalog 类型** ```sql -- 创建 Hive Catalog 示例 CREATE CATALOG hive_catalog PROPERTIES ( "type"="hms", "hive.metastore.uris"="thrift://172.21.0.1:9083" ); ``` 3. **数据源对接能力** - 支持对接的 Catalog 类型: 📌 Hive/Iceberg(HMS协议) 📌 Elasticsearch 📌 JDBC(MySQL/PostgreSQL等) 📌 Delta Lake 📌 Paimon 🔹 **典型应用场景** 1. **湖仓联邦查询** ```sql SELECT * FROM hive_catalog.sales_db.orders JOIN internal_catalog.user_db.profiles ON orders.user_id = profiles.id; ``` 2. **平滑数据迁移** - 通过 Catalog 映射外部数据源 - 使用 `INSERT INTO SELECT` 逐步迁移数据 3. **实时离线融合分析** - Doris 内部表(实时数据) + Hive 外部表(历史数据) = 统一分析视图 🔹 **注意事项** 1. 权限控制:通过 Doris 的 RBAC 系统管理 Catalog 访问权限 2. 性能优化:外部 Catalog 查询建议开启数据缓存 3. 元数据同步:外部 Catalog 支持自动/手动刷新元数据 4. 版本兼容性:不同 Catalog 类型对数据源版本有特定要求 🌟 **核心价值**:Catalog 使 Doris 从单一数仓升级为"统一数据网关",实现: - 元数据层统一纳管 - 计算层跨源下推 - 存储层透明访问 建议通过 `EXPLAIN` 命令查看具体查询在 Catalog 中的执行计划,这对性能调优非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值