数据平台团队 · 2025-04-20 · 内部研究
现有架构分析 & 核心瓶颈识别
架构原理 & 核心能力矩阵
Hive Catalog 零改动对接 & 部署架构
BI / Adhoc / Agent 场景全面升级
Kyuubi冷启动10-30s,多表Join性能差,无物化视图
需要启动Spark容器,排队等待,资源浪费
两套系统数据一致性难保证,额外同步链路
面向数据湖仓的 MPP 查询引擎
在开放存储格式(Parquet、Iceberg)之上,
提供接近本地盘速度的亚秒级交互式分析性能
直连现有HMS,无需元数据迁移,支持Time Travel(v3.4+)
同步+异步两种,查询改写对Tableau透明
C++实现的列式Vectorized Engine
减少网络传输,优化多表Join分布
KNN/近似搜索,支持RAG场景(v3.3+)
租户级CPU/内存隔离,保护生产查询
CREATE EXTERNAL CATALOG hive_catalog
PROPERTIES (
"type" = "hive",
"hive.metastore.type" = "hive",
"hive.metastore.uris" =
"thrift://<hms-host>:9083",
"aws.s3.use_instance_profile"="true"
);
| 维度 | 现状(Kyuubi Spark) | 接入后(StarRocks) |
|---|---|---|
| 仪表板加载 | 10-30s 冷启动 | < 1s 热查询 |
| 多表关联 | 性能差,易OOM | Bucket Shuffle Join |
| 重复聚合 | 每次全量计算 | 物化视图透明改写 |
| 并发上限 | Spark容器限制 | CN横向弹性扩展 |
CREATE MATERIALIZED VIEW mv_monthly_sales
AS SELECT region,
DATE_TRUNC('month', order_date) AS month,
SUM(amount) AS total_amount, COUNT(*) AS cnt
FROM dw_orders GROUP BY region, DATE_TRUNC('month', order_date);
-- Tableau 查原始表 → StarRocks 自动改写为查物化视图
SELECT region, month, total_amount FROM dw_orders
-- EXPLAIN 显示自动命中 mv_monthly_sales
CREATE RESOURCE GROUP adhoc_group
PROPERTIES ("cpu_core_limit"="16",
"mem_limit"="40%",
"concurrency_limit"="10");
-- Adhoc查询被限制,不影响生产BI
StarRocks 一套系统同时支持:
ALTER TABLE db ADD COLUMN embedding ARRAY<FLOAT>; SELECT id, cosine_distance(embedding, '<query_embedding>') AS score FROM db ORDER BY score ASC LIMIT 10;
部署FE+1CN,创建External Catalog,验证Parquet/Iceberg直读,对比性能
连接StarRocks Internal表,灰度验证,保留Kyuubi备用
创建向量列,Agent从CK切换,A/B测试召回效果,可选下线CK
物化视图覆盖高频报表,资源组隔离Adhoc,迁移Shared-Data弹性架构
不改写:Spark批处理(ETL)· Hive Metastore(元数据管理)· S3存储(Parquet/Iceberg文件)
核心结论
直接读现有S3 Parquet/Iceberg,零数据迁移
Kyuubi 30s+ → <1s,多表Join大幅提升
SQL+向量检索合一,消除CK依赖
StarRocks 以 External Catalog 零改动接入现有 Hive Metastore + S3 架构,替换 Kyuubi Spark SQL 作为 Tableau 主数据源,替代 CK 作为 Agent 统一查询入口,并通过物化视图为高频报表提供透明加速。
— 迁移风险:低(Phase 1 只读验证,不影响现有链路)