登录
注册
个人信息
我的订单
我的报告豆
我的优惠券
我的笔记
我的阅读
我的收藏
我的下载
我的上传
我的订阅
在线客服
退出登录
回到首页
AI
搜索
发现报告
发现数据
发现专题
专题报告
专题百科
研选报告
定制报告
VIP
权益
发现大使
发现一下
行业研究
公司研究
宏观策略
财报
招股书
会议纪要
seedance2.0
低空经济
DeepSeek
AIGC
大模型
当前位置:首页
/
行业研究
/
报告详情
张耀东- Kyuubi 在小米大数据平台的应用实践
信息技术
2022-05-19
DataFunSummit2022:大数据计算架构峰会
LIHUYUN
KYUUBI在小米大数据平台的应用实践总结
KYUUBI在小米的落地过程
背景介绍
:小米面临多个数据平台分散、缺乏统一入口和互通、存在数据孤岛、账号权限体系复杂等问题,导致用户体验差、开发管理效率低、资源浪费和问题排查困难。
问题和解决方案
:通过构建一站式大数据开发平台,解决用户易用性、SQL流量治理、数据访问安全性等问题,实现统一数据服务入口,融合元数据、权限管理和易用原则。
小米SQL服务历史情况
:早期使用SQLProxyOnHadoop,虽类似Kyuubi架构但存在代码耦合高、升级困难、扩展性差等问题,后升级为完全兼容HiveThrift协议的SQLProxy。
为什么选择Kyuubi
:基于业务需求(一站式数据平台、统一权限和资源)和架构升级(高可用、可持续演进),选择Kyuubi实现完全兼容STS和HS2、高可用和资源隔离、清晰简洁架构。
基于Kyuubi构建统一SQL入口
:架构升级成本低,两周完成迁移,具备多引擎代理能力(Spark/Trino/Hive/Doris),支持数据平台workspace体系实现权限验证和资源隔离,架构可扩展、可维护。
统一SQL服务现状
:Kyuubi入口日均流量50W,占SQL流量80%,主要支持Spark3.1(36W)、Trino(12W)、Hive(2.5W),服务稳定性99.9%。
打造易用和高可用的Kyuubi服务
整体架构和流程
:以KyuubiServer为基础构建SQL统一入口,KyuubiEngine为执行引擎层,独立Engine Manager管理计算引擎,集成Ranger支持统一权限验证,扩展适配Trino/Hive/Doris引擎服务。
用户使用交互
:融合数据平台Workspace资源管理,实现计算资源隔离和存储资源安全,支持多种客户端提交SQL,统一Token验证方式,自动路由到对应引擎。
统一认证和表坐标
:采用统一Token认证方式替代Kerberos,提升易用性;采用Catalog.Schema.Table三级表名规范,避免跨源表冲突。
KyuubiEngine公共资源池
:预先启动KyuubiEngine Pool,加快用户查询速度,提升查询效率。
升级Spark2.X到KyuubiEngine
:TPC-DS标准测试集下查询性能比SQLProxy提升75%(P50延时),业务场景下提升37%(P50延时)。
KyuubiServer容器化和高可用
:Docker化利用K8s弹性伸缩,KyuubiServer和KyuubiEngine解耦,独立ThriftRPC和HTTP服务,采用LVS负载均衡,集成CI/CD实现灰度发布。
EngineManager
:管理引擎生命周期、配置、服务发现和负载均衡,提供可视化指标监控。
用户Engine配置
:基于Workspace计算资源管理,实现隔离和高效利用。
Engine高可用
:通过Workspace级别隔离、繁忙和探活信息标记、EnginePool机制、自动重启和告警机制,提升整体可用性。
基于Kyuubi的改造
Trino和Doris的代理
:基于Kyuubi-1.10开发,使用Trino-JDBC实现Trino代理,采用增量拉取模式避免OOM;Doris通过MySQLJDBC协议,限制超时时间降低OOM风险。
V1版本SQLHTTPAPI
:简化HiveThrift RPC API为HTTP调用,但存在Session状态导致无法水平扩展和升级的问题。
V2版本SQLHTTPAPI
:将Session状态推移到KyuubiEngine,KyuubiServer无状态化,解决水平扩展和升级问题;Select类型结果转储HDFS,解决OOM问题。
SQL表列解析
:支持SparkSQL和Trino表列关系提取和SQL类型提取,在KyuubiServer层面解决表列权限校验,记录表血缘日志。
KYUUBI新特性的应用
小文件合并
:SQL、JDBC或Engine提交时自动合并小文件,降低用户心智负担。
增量获取和结果集大小限制
:解决查询结果集太大导致OOM问题,推荐采用HTTP API异步结果获取方式。
Z-Ordering的应用
:极大减小画像场景查询数据扫描量,提升查询效率和资源利用率(3倍提升)。
PlanOnly模式
:SQL仅输出解析后的LogicalPlan/SparkPlan,可用于开放非SQL查询服务,如校验服务、血缘关系提取服务等。
ScalaCode模式
:类似SparkShell的交互方式,使用JDBC方式调用,提升生产效率,支持动态加载用户自定义包。
未来规划
基于业务场景、SQL规则和执行代价实现多引擎下的自动路由能力。
HTTPAPI替代ThriftAPI提交的ETL作业,异步化取代长连接方式。
KYUUBI已成为小米内部大数据服务入口的重要基础架构服务,未来将成为大数据场景下的SQLGateway标杆。
你可能感兴趣
5-2 基于大数据及机器人对话技术在综合理财平台下的应用实践 - 卢易 陆金所大数据平台负责人
商贸零售
DataFunSummit2022:数据科学在线峰会
2022-06-13
阿里云大数据计算平台基于 AIOps 的根因定位实践-张颖莹
商贸零售
ArchSummit上海2023|全球架构师峰会
2023-06-06
张云尧 - 火山引擎云原生大数据在金融行业的实践
商贸零售
DataFunSummit2022:智能金融在线峰会
2022-11-24
8-4 BI 平台在小米的实践
商贸零售
DataFunSummit2022:多维分析架构峰会
2022-07-18
张海瑞 -基于 Flink 的实时计算平台在新能源充电行业实践
商贸零售
DataFunSummit2022:大数据计算架构峰会
2022-05-19