云平台的性能与功能通常是用户最核心的关注点——性能直接影响计算任务的执行效率,而功能则决定了数据处理链路的流畅性与灵活性。近期在使用云平台大数据计算服务时,重点测试了其数据处理、SQL查询及并发执行等性能表现,同时评估了任务调度、权限管理和数据导入导出等关键功能的实用性。
任务优化
MaxCompute常用参数
set odps.sql.allow.fullscan=true; 不指定分局查询
set odps.sql.groupby.skewindata=true; 解决agg数据倾斜问题
set odps.service.mode=off; 如果打开,超过十分钟时,会被kill,增加执行时长
set odps.sql.hive.compatible=true; 开启Hive SQL兼容模式,降低任务迁移成本
set odps.task.wlm.quota=os_datagouptest3; 指定计算资源Quota
自动MapJoin的阈值,用于决定是否将小表数据广播
set odps.optimizer.auto.mapjoin.threshold=4096000000;
set odps.optimizer.enable.online.conditional.mapjoin=true;
set odps.sql.split.dop={"xxx.table1":120, "xxx.table2": 10}; 读取并行度设置
set odps.optimizer.hbo.enable.new.signature=true; 历史执行信息进行查询优化的增强功能
压力测试
MaxCompute并发跑任务,默认FIFO(先进先出),可配置成FAIR,资源抢占和分配情况如下
FIFO 确保了公平的顺序,但可能导致头部阻塞,即早期任务(任务 1)垄断资源,延迟后续任务(任务 2 和 3),直到早期任务让步,从任务 2 和 3 的初始低值中显而易见。
查询加速 MaxQA引擎,默认FAIR(公平调度),不可改:MaxQA引擎概述链接
任务并发情况如下
FAIR调度支持抢占,如果一个任务超过其份额,系统可能暂停或回收其资源,重新分配给欠份额的任务,可见三个任务在各自的峰值(最高点)时期趋于均衡。
DataWorks数据开发
定时任务可以是单个节点、也可以是工作流,创建时选择任务类型
数据集成 官网链接
Serverless资源组 官网链接
Spark作业创建
任务运行信息
MaxCompute功能特性
开放存储(Storage API):数据不可直接访问,可通过Storage API访问(按量付费):官网链接
Quota资源管理:分层管理、资源隔离、弹性伸缩:官网链接
物化视图:根据历史作业和性能分析自动创建物化视图(AutoMV):官网链接
数据安全:支持按项目、表(列级别、行级别)、资源、函数或实例维度的访问控制:官网链接
近实时批流一体数仓:支持基于Flink等流计算的分钟级数据写入与秒级查询加速(MCQA2.0):官网链接
任务调优:内置作业诊断与优化建议,包括了SQL调优、数据倾斜调优等:官网链接
成本优化推荐:保障作业按时完成的前提下,生成更优的资源配置方案,降低成本:官网链接
账单明细:支持历史作业分析、资源分账,可以详细统计任务的执行时长、资源使用、所属人等:官网链接
评论