统一的湖仓格式(Iceberg / Paimon / Lance / Delta Lake / Hudi / Retina / TiDB)测试工具, 基于 湖仓系统标准测试模板 的 9 步标准流程。
| 格式 | HyBench SF100 | HyBench SF1000 | CHBenchmark WH10000 |
|---|---|---|---|
| Iceberg | ✓ | ✓ | ✓ |
| Paimon | ✓ | ✓ | ✓ |
| Lance | ✓ | ✓ | |
| Delta Lake | ✓ | ✓ | |
| Hudi | ✓ | ✓ | |
| Retina / Pixels | ✓ | ✓ | ✓ |
| TiDB / TiFlash | ✓ |
cd ~/Projects
git clone <repo-url> lakehouse-experiment-agent
cd lakehouse-experiment-agent
cp env.local.sh.example env.local.sh
# 编辑 env.local.sh,填入你的密钥、S3 bucket、集群 IP
vim env.local.shsource env.sh
./bin/prepare_repos.sh# 例如:Iceberg + HyBench SF100
source env.sh
./scripts/02_import/import_iceberg_hybench_sf100.sh # 初始导入
./scripts/03_backup/backup_iceberg_s3.sh # 备份
./scripts/04_cdc/cdc_iceberg_hybench_sf100.sh # 启动 CDC
./scripts/07_ap_query/ap_iceberg_static.sh # AP baseline
./scripts/07_ap_query/ap_iceberg_after_1pct.sh # AP after 1% CDCTiDB / TiFlash 示例:
source env.sh
./scripts/01_environment/setup_tidb.sh
./scripts/02_import/import_tidb_hybench_sf100.sh
./scripts/03_backup/backup_tidb_database.sh
./scripts/04_cdc/cdc_tidb_hybench_sf100.sh
./scripts/05_validate/validate_tidb.sh
./scripts/07_ap_query/ap_tidb_static.sh├── env.sh # 变量定义(无密钥)
├── env.local.sh.example # 密钥模板
├── bin/ # 顶层脚本
│ └── prepare_repos.sh # 克隆外部仓库
├── config/trino/ # Trino catalog 模板
├── sql/ # DDL / 校验 SQL
├── scripts/ # 按 00-09 编号的测试步骤
│ ├── 00_data_generation/ # 数据生成
│ ├── 01_environment/ # 环境准备
│ ├── 02_import/ # 初始导入
│ ├── 03_backup/ # 备份恢复
│ ├── 04_cdc/ # CDC 接入
│ ├── 05_validate/ # 正确性校验
│ ├── 06_throughput/ # 吞吐新鲜度
│ ├── 07_ap_query/ # AP 查询性能
│ ├── 08_resource/ # 资源采集
│ └── 09_rollback/ # 回滚重复
├── flink_jobs/ # Flink SQL 提交脚本
├── docs/ # 参考文档
├── results/ # 实验结果(git-ignored)
└── logs/ # 运行日志(git-ignored)
scripts/01_environment/setup_<format>.sh— 环境准备sql/<dataset>/ddl_<format>.sql— 建表 DDLscripts/02_import/import_<format>_<dataset>_<scale>.sh— 静态导入scripts/03_backup/backup_<format>_s3.sh— 备份scripts/04_cdc/cdc_<format>_<dataset>_<scale>.sh— CDC 接入scripts/07_ap_query/ap_<format>_static.sh— AP 测试
env.sh 不包含任何密钥。所有密码、IP、Access Key 都在 env.local.sh 中配置,
该文件已被 .gitignore 排除。