Apache Gravitino 项目:使用JDBC连接管理Apache Doris元数据指南
概述
Apache Gravitino 作为一个元数据管理框架,提供了通过JDBC连接管理Apache Doris元数据的能力。本文将详细介绍如何在Gravitino中配置和使用Doris Catalog,包括其功能特性、配置参数以及最佳实践。
Doris Catalog核心能力
基本特性
- 实例映射:每个Gravitino Catalog对应一个Doris实例
- 版本支持:兼容Doris 1.2.x版本的元数据管理
- 索引支持:支持表索引功能
- 默认值支持:支持列默认值设置
重要注意事项
Gravitino会在schema和表的注释中保存系统信息(如(From Gravitino, DO NOT EDIT: gravitino.v1.uid1078334182909406185)),请勿修改或删除这些信息,否则可能导致元数据管理异常。
配置Doris Catalog
必备配置参数
| 参数名称 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
jdbc-url | 数据库连接URL,如jdbc:mysql://localhost:9030 | 是 | 无 |
jdbc-driver | JDBC驱动类名,如com.mysql.jdbc.Driver | 是 | 无 |
jdbc-user | 数据库用户名 | 是 | 无 |
jdbc-password | 数据库密码 | 是 | 无 |
连接池配置
| 参数名称 | 描述 | 是否必填 | 默认值 |
|---|---|---|---|
jdbc.pool.min-size | 连接池最小连接数 | 否 | 2 |
jdbc.pool.max-size | 连接池最大连接数 | 否 | 10 |
Doris特有配置
| 参数名称 | 描述 |
|---|---|
replication_num | 表副本数,当BE节点数小于3时默认为1,大于等于3时使用Doris默认值3 |
高级配置技巧
可以通过添加gravitino.bypass.前缀传递任意非Gravitino定义的属性到底层数据源。例如,设置gravitino.bypass.maxWaitMillis会将maxWaitMillis传递给数据源。
驱动准备
由于许可限制,Gravitino不包含Doris JDBC驱动,使用前需手动下载对应驱动并放置到catalogs/jdbc-doris/libs目录下。
Schema管理
核心能力
- 概念映射:Gravitino中的schema对应Doris中的database
- 创建与删除:支持schema的创建和删除操作
- 属性支持:支持Doris数据库属性和用户自定义属性
表管理
数据类型映射
Gravitino与Doris类型对应关系如下:
| Gravitino类型 | Doris类型 |
|---|---|
Boolean | Boolean |
Byte | TinyInt |
Short | SmallInt |
Integer | Int |
Long | BigInt |
Float | Float |
Double | Double |
Decimal | Decimal |
Date | Date |
Timestamp | Datetime |
VarChar | VarChar |
FixedChar | Char |
String | String |
注意:Doris不支持Gravitino的Fixed、Struct、List、Map等复杂类型,这些类型会被映射为Gravitino的Unparsed Type。
索引支持
目前仅支持单列主键索引,配置示例如下:
Index[] indexes = new Index[] {
Indexes.of(IndexType.PRIMARY_KEY, "PRIMARY", new String[][]{{"id"}})
}
表属性
仅支持Doris原生表属性,不支持用户自定义属性。
表操作支持
Gravitino支持以下表变更操作:
- 表重命名(
RenameTable) - 更新表注释(
UpdateComment) - 添加列(
AddColumn) - 删除列(
DeleteColumn) - 更新列类型(
UpdateColumnType) - 更新列位置(
UpdateColumnPosition) - 更新列注释(
UpdateColumnComment) - 设置属性(
SetProperty)
操作注意事项
- 批量处理:模式变更操作(如增删改列)支持批量处理
- 列注释:支持同时修改多个列的注释
- 限制:不支持同时修改列类型和列注释
- 异步特性:Doris的模式变更是异步的,变更后立即查询可能获取到旧模式,建议变更后稍作等待
最佳实践
- 连接管理:根据业务负载合理配置连接池大小
- 副本配置:根据集群规模设置合适的
replication_num - 变更操作:重要变更操作建议在业务低峰期执行
- 元数据同步:执行关键操作后适当等待以确保元数据同步完成
通过本文介绍,您应该已经掌握了在Apache Gravitino中管理Apache Doris元数据的基本方法和注意事项。合理利用这些功能可以显著提升大数据环境下的元数据管理效率。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



