文章目录
- MaxCompute 的主要功能及作用
- MaxCompute 的使用流程
- MaxCompute常见使用方式
- MaxCompute的客户端
- MaxCompute的客户端应用
- 数据上传/下载综述
- Tunnel上传/下载数据
- MaxCompute SQL的关键字
- MaxCompute SQL的类型转换
- MaxCompute SQL的运算符
- MaxCompute SQL的DDL语句
- MaxCompute SQL的DML语句
- MaxCompute SQL的函数
- UDF 实现逻辑
- UDF的开发流程
常用的大数据分析平台
什么是大数据分析平台
大数据分析平台就是依据企业的数据需求,整合当前主流的、成熟的各种具有不同侧重点的大数据处理分析框架和工具,实现对海量数据的挖掘和分析,满足企业的数据需求。通常意义上讲,大数据分析平台包括如下功能模块:
- 数据源:数据源决定着数据采集,常见的数据源可分为结构化、非结构化、半结构化数据,依据采集方式又可分批数据采集、实时以及流式数据采集等;
- 数据采集:即将数据导入到大数据分析平台;
- 数据存储:采集后的数据,经过系统的清洗,转换、分类等操作,将数据储存在系统中,为了便于数据分析时的提取及应用;
- 数据处理和分析:即对存储在系统中的数据分析、处理,数据处理与分析的快慢,是检验数据分析系统功能的重要指标,数据分析系统得出数据分析的最终结果,用于业务应用。
- 数据展示:数据可视化,分析的结果以视觉的角度展现在用户面前,达到最终的目的。
基于Hadoop的大数据分析平台
大数据平台是对海量结构化、非结构化、半机构化数据进行采集、存储、计算、统计、分析处理的一系列技术平台。
大数据平台处理的数据量通常是TB级,甚至是PB或EB级的数据,其涉及的技术主要有分布式计算、高并发处理、高可用处理、集群管理、实时计算等。
- Hadoop作为一个开发和运行处理大规模数据的软件平台,实现了在大量的廉价计算机组成的集群中对海量数据进行分布式计算;
- Hadoop框架中最核心的设计是HDFS和MapReduce;
- HDFS是一个高度容错性的系统,MapReduce是一套可以从海量的数据中提取数据最后返回结果集的编程模型;
- Hadoop家族还包含各种开源组件,比如Yarn,Zookeeper,Hbase,Hive,Sqoop,Impala,Spark等;
阿里云大数据平台
典型阿里云大数据平台架构
MaxCompute
大数据计算服务MaxCompute,由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,应用于数据分析、挖掘、商业智能等领域,阿里巴巴的数据业务都运行在MaxCompute。
MaxCompute 的主要功能及作用
MaxCompute致力于批量结构化数据的存储和计算,提供海量数据仓库的解决方案及分析建模服务。通常和DataWorks一起构建大数据分析平台。
MaxCompute 的使用流程
MaxCompute所有的操作都是基于表,因此MaxCompute的使用从安装配置环境后的建表开始.
MaxCompute常见使用方式
使用方式 |
使用场景及优势 |
API/SDK:以RESTful API或Java SDK、python SDK的方式提供离线数据处理服务。 |
定制开发,满足个性化需求,与外部系统对接 |
CLT (Command Line Tool):运行在Window/Linux下的客户端工具,通过CLT可以提交命令完成Project管理、DDL、DML等操作。 |
本地上传下载数据、项目空间管理;灵活、易用 |
DataWorks:提供了上层可视化ETL/BI工具,用户可以基于DataWorks完成数据同步、任务调度、报表生成等常见操作。 |
团队分工协作数据开发全流程,高效、安全 |
IDE插件:eclipse插件、IDEA插件、RStudio插件,扩展IDE对MaxCompute的支持 |
使用第三方IDE对接MaxCompute,提升本地开发、调试效率 |
MaxCompute的客户端
MaxCompute客户端是一个java程序,需要JRE环境才能运行,请下载并安装JRE 1.6+版本(JRE 1.7或以上版本,建议优先使用JRE 1.7/1.8,其中JRE 1.9已经支持,JRE 1.10暂时还不支持)。
使用步骤:
- 官网下载客户端压缩文件
- 解压文件,可以看到4个文件夹:
bin/conf/lib/plugins/
- 修改
conf/odps_conf.ini
文件,其中只需要修改project_name
, access_id
,access_key
三项
MaxCompute的客户端应用
运行bin目录下的MaxCompute:
- Linux系统下运行
./bin/odpscmd
- Windows下运行
./bin/odpscmd.bat
运行后我们可以输入sql语句进行查询,比如:
odps@my_project> desc my_table; -- 查看表结构 odps@my_project> list tables; -- 查看表名列表 odps@my_project> create table my_talbe(id bigint ); -- 创建表
数据上传/下载综述
MaxCompute系统上传/下载数据包括两种方式:
Tunnel上传/下载数据
MaxCompute客户端提供Tunnel命令实现数据的上传/下载,其基本语法为:
tunnel <subcommand> [options] args #示例 #下载数据 tunnel download -c GBK tmp_table d:tmp_table.csv #上传数据 tunnel upload -c GBK d:dim_map.csv dim_map
MaxCompute SQL
MaxCompute SQL 是个数据仓库工具,Query 解析后,计算和存储交由底层的飞天实现。
MaxCompute SQL 支持常用的 SQL 语法,包括窗口函数
MaxCompute SQL 可以看做对标准 SQL 的支持,但是不能简单等同于数据库
MaxCompute SQL 不支持事务、主外键约束、索引等
MaxCompute SQL 适用于海量数据(TB/PB级别)的数据运算
MaxCompute SQL 的每个作业的准备,提交等阶段要花费较长时间,实时性不高
MaxCompute SQL 长度有限制,目前是不能超过 2 M
MaxCompute SQL的关键字
MaxCompute将SQL语句的关键字作为保留字。在对表、列或是分区命名时如若使用关键字,需给关键字加``符号进行转义,否则会报错。保留字不区分大小写。
常见如下图所示:
MaxCompute SQL的类型转换
MaxCompute SQL的类型转换分为显示转换和隐式转换:
- 显示转换:是指用
cast
将一种数据类型的值转换为另一种类型的值的行为 - 隐式转换:是指依据上下文使用环境及类型转换规则自动进行的类型转换
下面是显示转换的数据类型转换表,其中Y表示可以转换,N表示不可以转换:
下面是隐式转换的数据类型转换表,其中T表示可以转换,F表示不可以转换:
MaxCompute SQL的运算符
关系运算符:
>, <, >=, <=, =, <>, is null, is not null, like, rlike, in, between and
算术运算符:
+, -, *, /, %
位运算符:
&, |
逻辑运算符:
and, or, not
MaxCompute SQL的DDL语句
- 创建表/视图
- 添加分区
- 查看表/分区信息
- 删除分区
- 修改表
- 修改生命周期
MaxCompute SQL的DML语句
- SELECT 操作
- INSERT操作
- TRUNCATE操作
- 函数
MaxCompute SQL的函数
MaxCompute中的函数 = 内置函数 + 自定义函数
自定义函数:
- UDF:用户自定义标量函数
- UDTF:用户自定义表值函数
- UDAF:用户自定义聚组函数
UDF 实现逻辑
- 实现 UDF 需要继承
com.aliyun.odps.udf.UDF
类,并实现 evaluate 方法 - evaluate 方法必须是非
static
的 public 方法 - evaluate 方法的参数和返回值类型将作为 SQL 中 UDF 的函数签名
- 用户可以在 UDF 中实现多个 evaluate 方法
- 调用 UDF 时框架会依据 UDF 调用的参数类型匹配正确的 evaluate 方法
UDF的开发流程
MapReduce
MapReduce(MR)的开发应用流程
- 安装配置环境
- 开发 MR 程序
- 本地模式测试脚本
- 导出 Jar 包
- 上传至 MaxCompute 项目空间
- 在 MaxCompute 中使用MR