Amoro组件概述
更新时间 2026-10-12 11:42:33
最近更新时间: 2026-10-12 11:42:33
本章节介绍Amoro服务基础概述。
Amoro 是构建在开放数据湖格式之上的湖仓(Lakehouse)管理系统。它与 Flink、Spark、Trino 等计算引擎协同,为数据湖提供统一 Catalog、表管理、自优化、数据过期、指标监控和 SQL Terminal 等能力,使开放表格式具备接近传统数据仓库的管理体验。
主要功能
统一管理多个 Catalog、数据库和表,表的完整名称标识为$catalog.$database.$table。
支持 Iceberg、Paimon、Mixed-Iceberg 和 Mixed-Hive 等表格式。
持续检测表文件变化,通过 Optimizer 执行小文件合并、排序、去重和布局优化。
提供 WebUI、Open API、SQL Terminal、Prometheus 指标和高可用能力。
核心组件
| 名称 | 描述 |
|---|---|
| AMS | Amoro Management Service,提供 WebUI、Catalog 服务、表管理、自优化任务管理等功能。 |
| Optimizer | 执行文件合并、排序、去重和布局优化,可运行在本地或Flink、Spark等计算引擎。 |
| Terminal | 在 Amoro WebUI 中提供SQL命令行工具。 |
| LogStore | 基于Kafka、Pulsar 等消息队列提升 Mixed Format 的实时处理时效,为实时数据处理提供毫秒级至秒级的SLA。 |
自优化机制
AMS 持续检测表文件变化,规划自优化任务并调度给优化器( Optimizer )分布式执行,最后提交优化结果。自优化与业务读写相互独立、互不阻塞,分为 Minor、Major 和 Full 三种类型。
Amoro自优化架构(图片来源:Apache Amoro™)
| 类型 | 主要作用 |
|---|---|
| Minor | 快速合并碎片小文件(<16MB,该阈值可配置)为片段文件(16~128MB,该阈值可配置),并将写友好的文件形态转换为读友好的文件形态(如将eq-delete文件转为pos-delete文件)。 |
| Major | 合并片段文件为更大的文件(>128M),清理主键重复数据和删除数据(如有)。 |
| Full | 重写目标空间内全部文件,仅保留有效数据。 |