MaxCompute 大数据计算

MaxCompute

给海量数据做统计的超级计算器,几十亿行数据也能用一句 SQL 跑完。

存储与数据出现时间 · 2009 年前后按计算量(SQL 扫描的数据与时长)与存储量计费,用得多花得多。大数据数据仓库离线计算SQL 分析
看官方文档

01 它是干嘛的

MaxCompute(原名 ODPS)是阿里云的大数据计算服务,面向海量结构化数据的存储与批量分析。它以 SQL 为主要入口,把几亿到几万亿行数据的清洗、统计、建仓交给一套分布式系统完成,用户不必自己维护庞大的集群。

02 为什么会有它

当数据变成「几十亿行」,普通数据库就撑不住了

一家电商每天产生的数据量极大:每一笔订单、每一次点击、每一条浏览记录都要留下来。这些数据单条很小,但日积月累就是几十亿、上百亿行。用传统数据库去统计「过去一个月各省份的销售趋势」,往往一条 SQL 跑到天亮都出不来,甚至直接把库拖垮,影响线上业务。

想自己处理这种量级的数据,得搭建一套叫「大数据平台」的复杂系统:几十上百台机器组成集群,装上一大堆开源组件,还要有专人负责调优、扩容、修故障。对小公司来说,这套系统的采购与人力成本,可能比它要分析的数据本身还贵。

MaxCompute 的思路是把这套大数据集群做成一项服务:数据存进它的表里,用类似 SQL 的方式描述「要算什么」,系统自动把任务拆给成千上万台机器并行计算,算完把结果给你。用户面对的是 SQL,背后是它替你维护的庞大机群。这套系统最初正是为解决阿里内部海量交易与日志分析而生的。

03 它怎么工作

MaxCompute 把 SQL 任务翻译成一张「执行计划」,按数据分区切成许多小任务分发到集群各机器并行处理,最后汇总结果,因此数据越大越能体现并行的优势。

数据仓库的分层:数据只往上流① 定时同步② 清洗③ 聚合④ 出表业务数据库订单 / 用户表日志与埋点用户行为流水第三方数据广告 / 渠道回传原始层 ODS原样搬进来,不改动明细层 DWD清洗、去重、统一口径汇总层 DWS按天/按用户聚合应用层 ADS直接给业务用看板报表给运营和老板看模型训练喂给算法为什么要分层?因为「原始数据不干净、口径不统一」。先如实存下来,再逐层加工成可信的指标。对外服务层加工环节
注意数据从原始层到明细层、再到汇总层、最后到应用层的逐层收敛:越往上数据越少、越聚合,这就是数仓分层的意义。

一条 SQL 是怎么被切成上千份并行跑完的

  1. 1
    ① 数据入库并分区

    数据以表的形式存入,通常按日期等字段分区,查询时只扫描相关分区,避免全表遍历。

  2. 2
    ② 提交 SQL 任务

    用户写一条 SQL,提交后系统先做语法与权限校验,再生成逻辑执行计划。

  3. 3
    ③ 拆分为并行任务

    计划被优化并切分成许多可并行执行的小任务,按数据所在位置就近调度到各机器。

  4. 4
    ④ 分阶段计算与汇总

    各机器先算局部结果,中间结果再汇总、再计算,直到得出最终结果,这就是分布式的核心。

  5. 5
    ⑤ 结果落表或返回

    结果可以写回一张新表供后续分析,也可直接返回给上层报表与可视化工具。

04 谁在用它

经营分析与数据仓库

把各业务系统的数据汇总进来,分层建模,支撑日报、周报与经营决策。

用户行为分析

分析数以亿计的点击与浏览日志,得出留存、转化、访问路径等结论。

日志清洗与归档

把杂乱的原始日志清洗成规整的表,长期保存供随时回溯。

推荐与风控的特征计算

批量算出用户画像与统计特征,供推荐和风控模型使用。

对账与财务统计

对全量交易做精确汇总,出具有据可查的对账与财务报表。

05 怎么用

会写 SQL 就能入门,主要门槛是理解分区、表设计与成本控制。

  1. 01开通 MaxCompute 项目空间,创建表并按业务需要设定分区字段。
  2. 02通过数据通道、DataWorks 或 SDK 把数据导入表中。
  3. 03用 SQL 做清洗、统计与建表,逐步沉淀出明细层与汇总层。
  4. 04把结果表接到报表工具或数据可视化平台对外呈现。
  5. 05关注每个任务扫描的数据量,用分区过滤与合理建表来控制成本。
一个典型的分区统计查询sql
-- 按省份统计某月每天的成交额(只扫描当月分区)
SELECT
  province,
  dt,
  SUM(amount)              AS gmv,
  COUNT(DISTINCT user_id)  AS buyers
FROM dwd_orders
WHERE dt >= '2024-05-01' AND dt < '2024-06-01'
GROUP BY province, dt;

避坑提示

  • !查询务必带上分区条件,扫全表是大数据平台最贵、最慢的操作。
  • !小文件过多会拖慢计算,定期做合并能显著提升后续任务速度。
  • !冷数据与热数据分开存放与定价,长期不用的历史数据不必占用高成本资源。

06 关键概念

数据仓库
把分散在各系统的数据汇总、整理、分层保存,专门用于分析查询,不承担线上交易。
分区表
按某个字段(通常是日期)把大表切成小块,查询时只读需要的块,又快又省。
ETL
抽取、转换、加载,指把数据从来源清洗整理后写入数仓的过程。
并行计算
把一个大任务拆成很多小任务同时跑在多台机器上,数据越大越划算。

07 容易混淆的对比

Hive / Hadoop 自建集群开源方案、掌控力强,但要自己运维大量机器与组件,成本与复杂度都很高。
Snowflake / BigQuery海外主流云数据仓库,理念相似(存算分离、按量计费),常被用来横向比较。
图软件图鉴

纯静态站点,无后端、无追踪。内容为中文原创撰写,用于帮助非技术读者理解主流软件产品。

关于本站

全部内容在构建时生成
产品名称与商标归各自公司所有

© 2026 软件图鉴Nuxt 4 · Vue 3 · Tailwind 4 · 纯静态