文章目錄
- ??什么是大數(shù)據(jù)分析平臺(tái)??
- ??基于Hadoop的大數(shù)據(jù)分析平臺(tái)??
- ??阿里云大數(shù)據(jù)平臺(tái)??
- ??典型阿里云大數(shù)據(jù)平臺(tái)架構(gòu)??
- ??MaxCompute??
- ??MaxCompute 的主要功能及作用??
- ??MaxCompute 的使用流程??
- ??MaxCompute常見(jiàn)使用方式??
- ??MaxCompute的客戶端??
- ??MaxCompute的客戶端應(yīng)用??
- ??數(shù)據(jù)上傳/下載綜述??
- ??Tunnel上傳/下載數(shù)據(jù)??
- ??MaxCompute SQL的關(guān)鍵字??
- ??MaxCompute SQL的類型轉(zhuǎn)換??
- ??MaxCompute SQL的運(yùn)算符??
- ??MaxCompute SQL的DDL語(yǔ)句??
- ??MaxCompute SQL的DML語(yǔ)句??
- ??MaxCompute SQL的函數(shù)??
- ??UDF 實(shí)現(xiàn)邏輯??
- ??UDF的開(kāi)發(fā)流程??
常用的大數(shù)據(jù)分析平臺(tái)
什么是大數(shù)據(jù)分析平臺(tái)
大數(shù)據(jù)分析平臺(tái)就是依據(jù)企業(yè)的數(shù)據(jù)需求,整合當(dāng)前主流的、成熟的各種具有不同側(cè)重點(diǎn)的大數(shù)據(jù)處理分析框架和工具,實(shí)現(xiàn)對(duì)海量數(shù)據(jù)的挖掘和分析,滿足企業(yè)的數(shù)據(jù)需求。通常意義上講,大數(shù)據(jù)分析平臺(tái)包括如下功能模塊:
- 數(shù)據(jù)源:數(shù)據(jù)源決定著數(shù)據(jù)采集,常見(jiàn)的數(shù)據(jù)源可分為結(jié)構(gòu)化、非結(jié)構(gòu)化、半結(jié)構(gòu)化數(shù)據(jù),依據(jù)采集方式又可分批數(shù)據(jù)采集、實(shí)時(shí)以及流式數(shù)據(jù)采集等;
- 數(shù)據(jù)采集:即將數(shù)據(jù)導(dǎo)入到大數(shù)據(jù)分析平臺(tái);
- 數(shù)據(jù)存儲(chǔ):采集后的數(shù)據(jù),經(jīng)過(guò)系統(tǒng)的清洗,轉(zhuǎn)換、分類等操作,將數(shù)據(jù)儲(chǔ)存在系統(tǒng)中,為了便于數(shù)據(jù)分析時(shí)的提取及應(yīng)用;
- 數(shù)據(jù)處理和分析:即對(duì)存儲(chǔ)在系統(tǒng)中的數(shù)據(jù)分析、處理,數(shù)據(jù)處理與分析的快慢,是檢驗(yàn)數(shù)據(jù)分析系統(tǒng)功能的重要指標(biāo),數(shù)據(jù)分析系統(tǒng)得出數(shù)據(jù)分析的最終結(jié)果,用于業(yè)務(wù)應(yīng)用。
- 數(shù)據(jù)展示:數(shù)據(jù)可視化,分析的結(jié)果以視覺(jué)的角度展現(xiàn)在用戶面前,達(dá)到最終的目的。
基于Hadoop的大數(shù)據(jù)分析平臺(tái)
大數(shù)據(jù)平臺(tái)是對(duì)海量結(jié)構(gòu)化、非結(jié)構(gòu)化、半機(jī)構(gòu)化數(shù)據(jù)進(jìn)行采集、存儲(chǔ)、計(jì)算、統(tǒng)計(jì)、分析處理的一系列技術(shù)平臺(tái)。
大數(shù)據(jù)平臺(tái)處理的數(shù)據(jù)量通常是TB級(jí),甚至是PB或EB級(jí)的數(shù)據(jù),其涉及的技術(shù)主要有分布式計(jì)算、高并發(fā)處理、高可用處理、集群管理、實(shí)時(shí)計(jì)算等。
- Hadoop作為一個(gè)開(kāi)發(fā)和運(yùn)行處理大規(guī)模數(shù)據(jù)的軟件平臺(tái),實(shí)現(xiàn)了在大量的廉價(jià)計(jì)算機(jī)組成的集群中對(duì)海量數(shù)據(jù)進(jìn)行分布式計(jì)算;
- Hadoop框架中最核心的設(shè)計(jì)是HDFS和MapReduce;
- HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),MapReduce是一套可以從海量的數(shù)據(jù)中提取數(shù)據(jù)最后返回結(jié)果集的編程模型;
- Hadoop家族還包含各種開(kāi)源組件,比如Yarn,Zookeeper,Hbase,Hive,Sqoop,Impala,Spark等;
阿里云大數(shù)據(jù)平臺(tái)
典型阿里云大數(shù)據(jù)平臺(tái)架構(gòu)
MaxCompute
大數(shù)據(jù)計(jì)算服務(wù)MaxCompute,由阿里云自主研發(fā),提供針對(duì)TB/PB級(jí)數(shù)據(jù)、實(shí)時(shí)性要求不高的分布式處理能力,應(yīng)用于數(shù)據(jù)分析、挖掘、商業(yè)智能等領(lǐng)域,阿里巴巴的數(shù)據(jù)業(yè)務(wù)都運(yùn)行在MaxCompute。
MaxCompute 的主要功能及作用
MaxCompute致力于批量結(jié)構(gòu)化數(shù)據(jù)的存儲(chǔ)和計(jì)算,提供海量數(shù)據(jù)倉(cāng)庫(kù)的解決方案及分析建模服務(wù)。通常和DataWorks一起構(gòu)建大數(shù)據(jù)分析平臺(tái)。
MaxCompute 的使用流程
MaxCompute所有的操作都是基于表,因此MaxCompute的使用從安裝配置環(huán)境后的建表開(kāi)始.
MaxCompute常見(jiàn)使用方式
使用方式 |
使用場(chǎng)景及優(yōu)勢(shì) |
API/SDK:以RESTful API或Java SDK、python SDK的方式提供離線數(shù)據(jù)處理服務(wù)。 |
定制開(kāi)發(fā),滿足個(gè)性化需求,與外部系統(tǒng)對(duì)接 |
CLT (Command Line Tool):運(yùn)行在Window/Linux下的客戶端工具,通過(guò)CLT可以提交命令完成Project管理、DDL、DML等操作。 |
本地上傳下載數(shù)據(jù)、項(xiàng)目空間管理;靈活、易用 |
DataWorks:提供了上層可視化ETL/BI工具,用戶可以基于DataWorks完成數(shù)據(jù)同步、任務(wù)調(diào)度、報(bào)表生成等常見(jiàn)操作。 |
團(tuán)隊(duì)分工協(xié)作數(shù)據(jù)開(kāi)發(fā)全流程,高效、安全 |
IDE插件:eclipse插件、IDEA插件、RStudio插件,擴(kuò)展IDE對(duì)MaxCompute的支持 |
使用第三方IDE對(duì)接MaxCompute,提升本地開(kāi)發(fā)、調(diào)試效率 |
MaxCompute的客戶端
MaxCompute客戶端是一個(gè)java程序,需要JRE環(huán)境才能運(yùn)行,請(qǐng)下載并安裝JRE 1.6+版本(JRE 1.7或以上版本,建議優(yōu)先使用JRE 1.7/1.8,其中JRE 1.9已經(jīng)支持,JRE 1.10暫時(shí)還不支持)。
使用步驟:
- 官網(wǎng)下載客戶端壓縮文件
- 解壓文件,可以看到4個(gè)文件夾:?
?bin/conf/lib/plugins/?
? - 修改?
?conf/odps_conf.ini?
?文件,其中只需要修改??project_name?
?, ??access_id?
?,??access_key?
?三項(xiàng)
MaxCompute的客戶端應(yīng)用
運(yùn)行bin目錄下的MaxCompute:
- Linux系統(tǒng)下運(yùn)行?
?./bin/odpscmd?
? - Windows下運(yùn)行?
?./bin/odpscmd.bat?
?
運(yùn)行后我們可以輸入sql語(yǔ)句進(jìn)行查詢,比如:
odps@my_project> desc my_table; -- 查看表結(jié)構(gòu) odps@my_project> list tables; -- 查看表名列表 odps@my_project> create table my_talbe(id bigint ); -- 創(chuàng)建表
數(shù)據(jù)上傳/下載綜述
MaxCompute系統(tǒng)上傳/下載數(shù)據(jù)包括兩種方式:
Tunnel上傳/下載數(shù)據(jù)
MaxCompute客戶端提供Tunnel命令實(shí)現(xiàn)數(shù)據(jù)的上傳/下載,其基本語(yǔ)法為:
tunnel <subcommand> [options] args #示例 #下載數(shù)據(jù) tunnel download -c GBK tmp_table d:tmp_table.csv #上傳數(shù)據(jù) tunnel upload -c GBK d:dim_map.csv dim_map
MaxCompute SQL
MaxCompute SQL 是個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,Query 解析后,計(jì)算和存儲(chǔ)交由底層的飛天實(shí)現(xiàn)。
MaxCompute SQL 支持常用的 SQL 語(yǔ)法,包括窗口函數(shù)
MaxCompute SQL 可以看做對(duì)標(biāo)準(zhǔn) SQL 的支持,但是不能簡(jiǎn)單等同于數(shù)據(jù)庫(kù)
MaxCompute SQL 不支持事務(wù)、主外鍵約束、索引等
MaxCompute SQL 適用于海量數(shù)據(jù)(TB/PB級(jí)別)的數(shù)據(jù)運(yùn)算
MaxCompute SQL 的每個(gè)作業(yè)的準(zhǔn)備,提交等階段要花費(fèi)較長(zhǎng)時(shí)間,實(shí)時(shí)性不高
MaxCompute SQL 長(zhǎng)度有限制,目前是不能超過(guò) 2 M
MaxCompute SQL的關(guān)鍵字
MaxCompute將SQL語(yǔ)句的關(guān)鍵字作為保留字。在對(duì)表、列或是分區(qū)命名時(shí)如若使用關(guān)鍵字,需給關(guān)鍵字加``符號(hào)進(jìn)行轉(zhuǎn)義,否則會(huì)報(bào)錯(cuò)。保留字不區(qū)分大小寫。
常見(jiàn)如下圖所示:
MaxCompute SQL的類型轉(zhuǎn)換
MaxCompute SQL的類型轉(zhuǎn)換分為顯示轉(zhuǎn)換和隱式轉(zhuǎn)換:
- 顯示轉(zhuǎn)換:是指用?
?cast?
?將一種數(shù)據(jù)類型的值轉(zhuǎn)換為另一種類型的值的行為 - 隱式轉(zhuǎn)換:是指依據(jù)上下文使用環(huán)境及類型轉(zhuǎn)換規(guī)則自動(dòng)進(jìn)行的類型轉(zhuǎn)換
下面是顯示轉(zhuǎn)換的數(shù)據(jù)類型轉(zhuǎn)換表,其中Y表示可以轉(zhuǎn)換,N表示不可以轉(zhuǎn)換:
下面是隱式轉(zhuǎn)換的數(shù)據(jù)類型轉(zhuǎn)換表,其中T表示可以轉(zhuǎn)換,F(xiàn)表示不可以轉(zhuǎn)換:
MaxCompute SQL的運(yùn)算符
關(guān)系運(yùn)算符:
>, <, >=, <=, =, <>, is null, is not null, like, rlike, in, between and
算術(shù)運(yùn)算符:
+, -, *, /, %
位運(yùn)算符:
&, |
邏輯運(yùn)算符:
and, or, not
MaxCompute SQL的DDL語(yǔ)句
- 創(chuàng)建表/視圖
- 添加分區(qū)
- 查看表/分區(qū)信息
- 刪除分區(qū)
- 修改表
- 修改生命周期
MaxCompute SQL的DML語(yǔ)句
- SELECT 操作
- INSERT操作
- TRUNCATE操作
- 函數(shù)
MaxCompute SQL的函數(shù)
MaxCompute中的函數(shù) = 內(nèi)置函數(shù) + 自定義函數(shù)
自定義函數(shù):
- UDF:用戶自定義標(biāo)量函數(shù)
- UDTF:用戶自定義表值函數(shù)
- UDAF:用戶自定義聚組函數(shù)
UDF 實(shí)現(xiàn)邏輯
- 實(shí)現(xiàn) UDF 需要繼承?
?com.aliyun.odps.udf.UDF?
? 類,并實(shí)現(xiàn) evaluate 方法 - evaluate 方法必須是非 ?
?static?
? 的 public 方法 - evaluate 方法的參數(shù)和返回值類型將作為 SQL 中 UDF 的函數(shù)簽名
- 用戶可以在 UDF 中實(shí)現(xiàn)多個(gè) evaluate 方法
- 調(diào)用 UDF 時(shí)框架會(huì)依據(jù) UDF 調(diào)用的參數(shù)類型匹配正確的 evaluate 方法
UDF的開(kāi)發(fā)流程
MapReduce
MapReduce(MR)的開(kāi)發(fā)應(yīng)用流程
- 安裝配置環(huán)境
- 開(kāi)發(fā) MR 程序
- 本地模式測(cè)試腳本
- 導(dǎo)出 Jar 包
- 上傳至 MaxCompute 項(xiàng)目空間
- 在 MaxCompute 中使用MR