Alluxio Edge 在 Presto&Trino 中的应用
如果无法正常显示,请先停止浏览器的去广告插件。
1. Alluxio Edge
在 Trino/PrestoDB 中的应用
车赛光 @ Alluxio Inc.
2023-10-28
2. 主要内容
● Alluxio Edge 产生的背景
● 用户的痛点
● Alluxio Edge 如何解决用户痛点
○ 什么是 Alluxio Edge
○ Alluxio Edge 是如何工作的
○ 成功案例
● 最佳实践场景
● 使用流程
3. 现代数据技术栈的演变
10年前
当今
紧密耦合的
MapReduce & HDFS 本地部署的
HDFS YARN
计算和存储的
分离/解耦 云计算+数据湖 容器化+K8s
更加弹性、更具扩展性、更易管理
丧失数据本地性
4. 失去数据本地性带来的挑战
数据访问性能
缓慢且不稳定 云存储费用迅速增长 数据拷贝的高成本
- 查询时间更长
- 业务洞察更慢
- 集群成本增加 - API调用成本增长
- 数据出口费用增长 - 数据拷贝任务
- 多存储系统
- 错误排查
5. Alluxio: 满足不同需求的数据平台
Alluxio Edge
●
●
●
作为应用程序进程 (Presto, Trino)中的库运行
利用本地磁盘 SSD 或内存缓存数据
当热数据的大小适合本地磁盘时,效果最佳
Alluxio Edge
Alluxio Edge
Alluxio System
Caching, Namespace, Data management
Alluxio System
●
●
●
可跨应用程序共享的独立分布式系统
缓存容量可水平扩展
具备数据编排系统的其他特性
Alluxio Edge
6. Trino / PrestoDB 的大规模分析场景
ALLUXIO的解决方案
提升 & 增益
实时响应和分析,同时在S3存储上节省成本
公有云 / 本地部署
Alluxio Edge Dashboard
集群概览
成本节省
资源状态
1.5
-10x
10-50x
Trino Node
Alluxio Edge
50-
90%
>10%
端到端查询性能提升
I/O加速
云存储API调用节省
存储系统负载分流
6
7. Alluxio Edge 的主要功能
数据缓存 连接器支持 数据格式 缓存策略
本地 SSD
内存 Iceberg
Hudi
Delta Lake
Hive Parquet
ORC
CSV 默认LRU和FIFO策略
可定制化的策略
TTL
数据配额
7
8. Alluxio Edge 是如何工作的
8
9. Alluxio Edge 相关的技术挑战
数据一致性 Page Versioning
数据本地性 软亲和 & 一致性哈希
缓存利用率 缓存过滤策略
9
10. TPC-DS Benchmark 测试
●
●
所有查询时间大于2秒的73个查询中,
70个查询有明显的加速效果
TPC-DS查询的时间平均提高63%
●
S3 API的请求数和数据传输量有肉眼可见的减少
10
11. Alluxio Edge 在 Uber 环境中的使用效果
3个集群, 1500个节点生产环境的使用效果
○ 90分位数查询延迟从228秒减少至50秒
○ 对GCS的读取请求次数减少了超过80%
50% 10%
端到端读性能的提升 数据读的减少
Source: https://www.uber.com/blog/speed-up-presto-with-alluxio-local-cache/
11
12. Alluxio Edge 在新加坡某电商环境中的使用效果
对Alluxio Edge的Beta(非生产环境)测试
↓ 40% 10x
Query Latency (Second) IO throughput (MB)
12
13. Alluxio Edge Dashboard
用户流程
● 本地部署
● 快速启动
● 多用户支持
指标内容
● 集群摘要
● 成本节约
● 资源状态
功能价值
● ROI显示
● 集群监控
● 调优建议
13
14. 最佳实践场景
用户
用户
• 性能提升 或 成本控制
• 本地存储可以容纳80%热数据
大数据分析场景
工作负载
痛点
查询时间较长
工作负载/数据集的体量正在增加
查询成本较高
云费用增加 - API调用、出口、EC2
需求一 需求二
提高Trino的I/O性能(减少延迟) 降低云存储出口成本、API调用成本、EC2成本
需求
判断条件
• 平台或者基础设施团队
• 探索优化 Trino 或 PrestoDB
团队
工作负载 • 大数据分析
计算引擎 • Trino / PrestoDB
数据格式 • PrestoDB / Trino 支持的格式
连接器
•
•
•
•
Iceberg
Hudi
Delta Lake
Hive
存储系统 • 本地SSD
• 内存
部署方式 • 裸机
• K8s
15. 使用流程
第一步
●
●
●
●
从网站(www.alluxio.com.cn)下载Alluxio Edge的tarball
将其放入计算引擎的相关路径中
运行查询并比较查询性能的变化
启动本地 dashboard 查看成本节省指标
第二步
●
使用本地仪表板进行持续的观测和优化
16. FAQ
Q: 小规模的集群、数据量的场景下,是不是推荐使用Alluxio Edge呢?
Q: 如果Trino或者PrestoDB的本地资源有限怎么办?
Q: 缓存空间的大小如何影响缓存的性能和成本节约的增益?
17. 感谢聆听
车赛光 @ Alluxio Inc.
2023-10-28