《Alluxio:2024对云上分析SQL引擎进行I、O优化的成本效益白皮书(18页).pdf》由会员分享,可在线阅读,更多相关《Alluxio:2024对云上分析SQL引擎进行I、O优化的成本效益白皮书(18页).pdf(18页珍藏版)》请在三个皮匠报告上搜索。
1、*本白皮书版权归属于北京开元维度科技有限公司,未经授权,不得进行任何形式转载和分发。对云上分析SQL引擎进I/O优化的成本效益书The Cost Effect on I/O Optimization for Analytical SQL on Cloud本文探讨了将数据密集型分析应用从本地迁移到云原生环境这一普遍的行业趋势。我们发现,与云存储相关的独特成本模型要求对性能优化有更细致的了解。具体而言,根据从Uber Presto 生产环境中收集的数据,我们认为在云中简单地应用常见的 I/O 优化,比如table scan 和 filter(表扫描和过滤),以及 broadcast join(广播
2、连接)可能会产生意想不到的成本。这是因为传统的 I/O 优化主要侧重于改善本地环境中的吞吐量或延迟,而没有考虑到与存储API调用相关的财务成本。在云环境中,这些成本可能会非常高昂,仅在Uber实际的使用规模下,Presto工作负载每天就可能涉及数十亿次的API调用。本文将以案例研究的形式呈现 I/O 优化逻辑和思路,可作为读者进一步研究的起点,从而设计出专门针对云环境中数据密集型应用的高效 I/O 策略。摘要011 导言2 云成本模型3 I/O 优化对工业分析负载的影响 3.1 工业分析流量模式在云 I/O 成本方面的挑战3.2 Table scan 和 filter 优化带来的成本挑战3.3
3、 Broadcast Join 优化的成本挑战4 讨论4.1 提高存储资源效率4.2 创建带缓存的虚拟存储层4.3 具备成本意识,重新设计数据密集型应用5 结论参考文献35668911111212141502目录本文对数据密集型分析应用从本地迁移到云原生环境这一普遍的行业趋势进行了研究。通过分析 Uber 生产环境中的 Presto 查询记录,由于不同云厂商的成本模型显著不同,对这些分析应用的常见 I/O 优化可能会因为存储 API 调用而产生意想不到的成本(每年数千万美元)。此外还可能导致这些应用在迁移到云环境后产生高昂的额外成本且降低效率。要实现成功迁移上云和正常运行,系统研究人员和开发人
4、员必须了解云存储服务的细微差别,并为这些环境中的应用量身定制高效的I/O 策略。数据密集型分析应用主要是 Apache Spark、Apache Hive、Presto 22,20,17等分析计算引擎。一直以来,这些应用都是在本地环境中构建和运行的,依赖于HDFS(Hadoop分布式文件系统)等存储系统,通过最大限度地减少存储和计算之间的数据传输来确保数据本地性。此外,分布式计算引擎中的离散节点或进程通常单独进行文件级请求,例如读取文件或列出目录(list directory)。这里不进行节点协作的前提条件是 I/O 请求的成本主要体现在瞬时资源消耗(网络带宽、内存或处理能力)上,而非直接的财
5、务支出。十多年来,这些设计原则一直指导着计算引擎的发展,主导并推动着 I/O 优化,有效提高了 I/O 吞吐量并降低了延迟。然而,随着这些应用程序向云环境迁移,有关数据本地性和成本模型的假设都受到了考验。首先,云存储服务(如 AWS S3、Azure Blob Storage 和 GoogleCloud Storage(GCS))在各自的云生态系统中迅速崛起,成为主要的数据湖解决方案。因此,数据不再局限于本地网络上的服务,而是由云基础设施提供,节点数据本地性的概念不再适用。其次,这些云存储服务采用了与传统本地存储解决方案完全不同的定价结构。具体来说,它们对分散的 API 调用收费,而这些费用不
6、一定与传输的数据量成正比 2,14,9。如果没有认识到这一点可能会导致成本迅速增加。031 导言本文从成本角度研究以 I/O 为重点的云上数据密集型分析负载,包含以下内容:在第2节中,介绍了根据云存储的不同情况来调整认知和策略的重要性,以及其对应用设计和性能的影响。在第3节中,基于来自Uber的真实数据进行案例研究,介绍了广泛使用的 I/O优化技术(如 table scan 和 filter、broadcast join)在企业级云迁移中可能会带来的计划外成本。在第4节中,提供了有关云计算领域系统设计的全新视角,帮助相关方应对数据密集型应用的快速发展。04本节介绍了云厂商在存储资源方面采用的定