大數(shù)據(jù)概述
大數(shù)據(jù)的定義
大數(shù)據(jù),指無法在可承受的時間范圍內(nèi)用常規(guī)軟件進(jìn)行捕捉、管理和處理的數(shù)據(jù)集合,是需要新處理模式才能具有更強(qiáng)的決策力、洞察發(fā)現(xiàn)力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。
《第三次浪潮》-托夫勒>>大數(shù)據(jù)應(yīng)用-麥肯錫>>《大數(shù)據(jù)時代》-舍恩伯格>>計(jì)算助理-谷歌>>國內(nèi)規(guī)?;?阿里云
發(fā)展歷程及特點(diǎn)

主要特征:4V
- Volume 體積大
- Variety 類型多
- Value 有價值
- Velocity 變化快
換個角度
- 大:數(shù)據(jù)體量大
- 雜:數(shù)據(jù)類型雜
- 全:數(shù)據(jù)完備性
- 多:來源維度多
- 快:增長變化快
- 久:積累時間長
- 活:在線隨時用
- 簡:簡單易處理
- 稀:價值密度地
- 聯(lián):數(shù)據(jù)相關(guān)性
如何產(chǎn)生的?
為什么會有大數(shù)據(jù)?
- 移動互聯(lián)網(wǎng)帶來爆炸式的增長
- 數(shù)據(jù)作為資產(chǎn)其價值得到認(rèn)可
- 存儲和計(jì)算能力的飛速發(fā)展
大數(shù)據(jù)從哪來?
媒體數(shù)據(jù)、網(wǎng)絡(luò)日志、公共設(shè)施、單位組織、大型設(shè)備、工業(yè)領(lǐng)域、地理位置、基因圖譜
大數(shù)據(jù)的價值
解決四種問題
- 坐井觀天
- 一葉障目
- 盲人摸象
- 城門魚殃
提示兩種能力
- 一葉知秋
- 運(yùn)籌帷幄
大數(shù)據(jù)核心價值
- 洞察insight
- 預(yù)測predict
存儲、計(jì)算與分析
分布式存儲
分布式計(jì)算
數(shù)據(jù)分析
- 數(shù)據(jù)采集與處理
- 數(shù)據(jù)質(zhì)量與管理
- 機(jī)器學(xué)習(xí)
- 數(shù)據(jù)可視化

大數(shù)據(jù)流行技術(shù)
Hadoop生態(tài)圈

阿里云體系

數(shù)加平臺介紹
數(shù)加定位

計(jì)算引擎:離線計(jì)算 流式計(jì)算 在線計(jì)算
數(shù)加業(yè)務(wù)范圍


分析型數(shù)據(jù)庫
AnalyticDB產(chǎn)品介紹
OLAP:在線分析處理,以分析為主
OLTP:在線業(yè)務(wù)系統(tǒng),以業(yè)務(wù)支撐為主
OLAP(On-Line Analytical Processing)是數(shù)據(jù)倉庫的主要的應(yīng)用,專門設(shè)計(jì)用于支持復(fù)雜的分析操作
主要概念:
- 維度:觀察事物的角度(屬性),即從哪些方面來觀察
- 度量:也稱為事實(shí),即記錄了一次實(shí)際的測量、購買等發(fā)生的事實(shí),包含維度和測量值
MPP數(shù)據(jù)庫
MMP(Massive Parallel Processing,大規(guī)模并行處理):由多個耦合處理單元組成,每個單元擁有自己的CPU、內(nèi)存、存儲等,每個單元內(nèi)部都有操作系統(tǒng)和管理數(shù)據(jù)庫的實(shí)例副本,最大特點(diǎn)在于不共享資源
- 私有資源
- 分布式存儲
- 分布式計(jì)算
- 任務(wù)并行執(zhí)行
- Share-nothing
- 橫向擴(kuò)展
分析型數(shù)據(jù)庫AnalyticDB
產(chǎn)品特點(diǎn)
- 分檔存儲
- 自由查詢
- 智能優(yōu)化 (基于歷史的優(yōu)化)
- 方便接口
- 分層安全
- 彈性多租戶
基本概念
表組:是一系列可以發(fā)生關(guān)聯(lián)的表的集合,是一個邏輯的概念??煞譃槠胀ū斫M和維度表組

表組特點(diǎn):
- 表組是數(shù)據(jù)物理分配的最小單元
- 同表組內(nèi)的表才可以快速hash join
- 同一個表組內(nèi)的表共享一些配置
- 建議同表組中的表一級分區(qū)一致
MaxCompute
目標(biāo):
- 了解MaxCompute特點(diǎn)
- 掌握客戶端工具的使用
- 掌握MaxCompute SQL
- 了解權(quán)限管理與項(xiàng)目空間保護(hù)
產(chǎn)品介紹
大數(shù)據(jù)計(jì)算服務(wù)(MaxCompute,原ODPS)提供針對TB/PB級數(shù)據(jù)、實(shí)時性要求不高的分布式處理能力,應(yīng)用于數(shù)據(jù)分析、挖掘、商業(yè)智能等領(lǐng)域。
MaxCompute對象:

分區(qū)表指的是在創(chuàng)建表時指定分區(qū)鍵,即指定表內(nèi)的某幾個字段作為分區(qū)列。

在使用數(shù)據(jù)時如果指定了需要訪問的分區(qū)名稱,則只會讀取相應(yīng)的分區(qū),避免全表掃描,提高處理效率,降低費(fèi)用
其他概念:
任務(wù)(Task):MaxCompute基本計(jì)算單元,SQL即MR都是通過任務(wù)完成的
實(shí)例(Instance):任務(wù)的一個具體實(shí)例,表示實(shí)際運(yùn)行的task
沙箱(SandBox):按照安全策略限制程序行為的執(zhí)行環(huán)境
- 不允許直接訪問本地文件
- 不允許直接訪問分布式文件系統(tǒng)
- 不允許JNI調(diào)用機(jī)制
- 不允許起子進(jìn)程執(zhí)行Linux命令
- 不允許獲取本地IP地址
- Java反射限制
數(shù)據(jù)類型:

架構(gòu)介紹

連接使用
- 自帶命令行工具M(jìn)axCompute Console
- 可視化客戶端工具:Intelij Studio
- Eclipse
- 管理控制臺
數(shù)據(jù)上傳和下載
主要方式有:
- Tunnel 命令
- Tunnel SDK
- 管理控制臺
- 數(shù)據(jù)同步工具
這里主要介紹 Tunnel 命令
Tunnel 基本語法:tunnel <subcommand> [options] args
數(shù)據(jù)上傳:tunnel upload [options] <path> <[project.]table[/partition]>
數(shù)據(jù)下載:tunnel download [options] <[project.]table[/partition]> <path>
幾個重要參數(shù):

關(guān)于分隔符:
- 支持多個字符的列分隔符和行分隔符
- 支持控制字符等不可見字符做分隔符
- 列分隔符不能包含行分隔符
- 轉(zhuǎn)義字符分隔符,在命令行模式下只支持\r,\n和\t
sql組成:
DDL:數(shù)據(jù)庫模式定義語言,關(guān)鍵字:create
DML:數(shù)據(jù)操縱語言,關(guān)鍵字:Insert、delete、update
DCL:數(shù)據(jù)庫控制語言 ,關(guān)鍵字:grant、remove
DQL:數(shù)據(jù)庫查詢語言,關(guān)鍵字:select
DDL 介紹
基本語法:
建表:create table [if not exists] table_name
刪表:drop table [if exists] table_name;
修改表名:alter table table_name rename to new_table_name;
表的生命周期:
生命周期(LifeCycle):MaxCompute 表中的數(shù)據(jù),從最后一次更新的時間算起,在經(jīng)過指定的時間后沒有變動,則此表將 MaxCompute 自動回收(刪除)。此指定時間就是該MaxCompute 表的生命周期。
快捷建表 CTAS
兩種謂語動詞 like 和 as
CREATE TABLE < table_name> AS SELECT <column_list> FROM <table_name> WHERE...;
CREATE TABLE < table_name> LIKE <table_name>;
like 和 as 的區(qū)別:
- 數(shù)據(jù)
- as可以帶入數(shù)據(jù),可以依賴于多張表
- like只能復(fù)制單張表的表結(jié)構(gòu),不能帶入數(shù)據(jù)
- 屬性
- as不能帶入LIFECYCLE、分區(qū)鍵信息、注釋等
- LIKE不能帶入LIFECYCLE、可以帶入分區(qū)鍵信息、注釋等
分區(qū)操作:
添加分區(qū):alter table table_name add [if not exists] partition partition_spec
刪除分區(qū):alter table table_name drop [if exists] partition_spec
修改表屬性:
添加列:alter table table_name add colums (col_name1 type1, col_name2 type2 ...)
改列名:alter table table_name change column old_col_name rename to new_col_name;
表注釋:alter table table_name set comment 'tbl comment';
列注釋:alter table table_name change column col_name comment 'comment';
生命周期:alter table table_name set lifecycle days;
修改時間:alter table table_name touch [partition(partition_col='partition_col_value', ...
視圖操作:
創(chuàng)建視圖:CREATE [OR REPLACE] VIEW [IF NOT EXISTS] view_name
刪除視圖:DROP VIEW [IF NOT EXISTS] view_name;
重命名視圖:ALTER VIEW view_name RENAME TO new_view_name;
DML介紹
查詢 SELECT
select [all | distinct] select_expr, select_expr, ...
from table_reference
[where where_condition]
[group by col_list]
[order by order_condition]
[distribute by distribute_condition [sort by sort_condition] ]
[limit number]
更新數(shù)據(jù) INSERT INTO/OVERWEITE
輸出到普通表或靜態(tài)分區(qū)
insert overwrite | into table tablename [partition (partcol1=val1, partcol2=val2 ...)]
select_statement
from from_statement;
輸出到動態(tài)分區(qū)
insert overwrite table tablename partition (partcol1, partcol2 ...)
select_statement from from_statement;
注:
如果目有多級分區(qū),在運(yùn)行insert語句時允許指定部分分區(qū)為靜態(tài),但是靜態(tài)分區(qū)必須是高級分區(qū)
動態(tài)生成的分區(qū)值不可以為null
多路輸出 MULTI INSERT
from from_statement
insert overwrite | into table tablename1
[partition (partcol1=val1, partcol2=val2 ...)]
select_statement1
[insert overwrite | into table tablename2 [partition ...]
select_statement2]
多路輸出的限制:
單個SQL里最多可以寫出256路輸出
對于分區(qū)表,同一個目標(biāo)分區(qū)不可以出現(xiàn)多次
對于未分區(qū)表,該表不能作為目標(biāo)表多次出現(xiàn)
對于同一張分區(qū)表的不同分區(qū),不能同時有insert overwrite 和 insert into 操作
表關(guān)聯(lián) JOIN

MAPJOIN
使用情景:一個大表和一個或多個小表做join
基本原理:將用戶指定的小表全部加載到執(zhí)行join操作的程序的內(nèi)存中,從而加快join的執(zhí)行速度

分支表達(dá)式 CASE WHEN
兩種 CASE WHEN 語法
CASE <value>
WHEN <condition_1> then <result_1>
WHEN <condition_2> then <result_2>
...
else <result_n>
END
CASE
WHEN <condition_1> then <result_1>
WHEN <condition_2> then <result_2>
...
else <result_n>
END
內(nèi)置函數(shù)
- 值函數(shù):數(shù)學(xué)運(yùn)算函數(shù)、字符串處理函數(shù)、日期處理函數(shù)
- 窗口函數(shù):常見統(tǒng)計(jì)量類、排名類、偏移定位類、分組抽樣類
- 聚合函數(shù):常見統(tǒng)計(jì)量類、字符串類
- 其他函數(shù):類型轉(zhuǎn)換函數(shù)、分支判斷函數(shù)、其他
其它使用方式
用戶自定函數(shù)(User Defined Function , UDF)
MapReduce


Graph

選擇流程

大數(shù)據(jù)開發(fā)套件DataIDE
DataIDE 產(chǎn)品概述
大數(shù)據(jù)開發(fā)套件(DataIDE) 是阿里云數(shù)加重要的Paas平臺產(chǎn)品,基于MaxCompute作為核心的計(jì)算、存儲引擎,提供了海量數(shù)據(jù)的離線加工分析、數(shù)據(jù)挖掘的能力。提供全面托管的工作流服務(wù),一站式開發(fā)管理的界面,幫助企業(yè)專注于數(shù)據(jù)價值的挖掘和探索。
- 全面托管的調(diào)度
- 多種任務(wù)類型
- 可視化開發(fā)
- 監(jiān)控告警
數(shù)據(jù)開發(fā)流程


DataIDE應(yīng)用場景
- 將業(yè)務(wù)系統(tǒng)產(chǎn)生的數(shù)據(jù)輕松上云,構(gòu)建大型數(shù)據(jù)倉庫和BI應(yīng)用,利用MaxCompute強(qiáng)大的海量存儲與數(shù)據(jù)處理能力
- 基于大數(shù)據(jù)開發(fā)套件快速使用和分析數(shù)據(jù),將大數(shù)據(jù)加工結(jié)果導(dǎo)出后直接應(yīng)用于業(yè)務(wù)系統(tǒng),實(shí)現(xiàn)數(shù)據(jù)化運(yùn)營
- 針對作業(yè)調(diào)度與運(yùn)維的復(fù)雜性,大數(shù)據(jù)開發(fā)套件提供統(tǒng)一友好的調(diào)度系統(tǒng)和可視化調(diào)度運(yùn)維界面,解決運(yùn)維管理不便等問題
DataIDE基本概念
任務(wù)(Task):對數(shù)據(jù)執(zhí)行的操作,通常每個任務(wù)使用0或0個以上數(shù)據(jù)表(數(shù)據(jù)集)作為輸入,生成一個或多個數(shù)據(jù)表(數(shù)據(jù)集)作為輸出。DataIDE中任務(wù)主要分為三種:節(jié)點(diǎn)任務(wù)、工作流任務(wù)以及內(nèi)部節(jié)點(diǎn)。
實(shí)例(Instance):代表了某個任務(wù)在某時某刻執(zhí)行的一個快照,包含任務(wù)的運(yùn)行時間、運(yùn)行狀態(tài)運(yùn)行日志等信息。在調(diào)度系統(tǒng)中的任務(wù)經(jīng)過調(diào)度系統(tǒng)、手動觸發(fā)運(yùn)行后會生成一個實(shí)例。在DataIDE的調(diào)度系統(tǒng)自動調(diào)度的任務(wù),會提前生成對應(yīng)的實(shí)例。
提交(Submit):提交指開發(fā)的節(jié)點(diǎn)任務(wù)、工作流任務(wù)從開發(fā)IDE環(huán)境發(fā)布到調(diào)度系統(tǒng)的過程。完成提交以后,相應(yīng)的代碼、調(diào)度配置全部合并到調(diào)度系統(tǒng)中,調(diào)度系統(tǒng)按照相關(guān)配置進(jìn)行調(diào)度操作。未提交的節(jié)點(diǎn)任務(wù)、工作流任務(wù)不會進(jìn)入到調(diào)度系統(tǒng)。
DataIDE中的角色

多環(huán)境

分為開發(fā)、測試、生產(chǎn)環(huán)境
DataIDE操作演示
- 服務(wù)開通
- 控制臺介紹
- 項(xiàng)目管理
- 數(shù)據(jù)集成
- 數(shù)據(jù)開發(fā)
- 數(shù)據(jù)管理
- 運(yùn)維中心
配套實(shí)驗(yàn):DataIDE基本操作
- 創(chuàng)建項(xiàng)目
- 數(shù)據(jù)同步
- SQL任務(wù)
- 調(diào)度依賴
- 任務(wù)運(yùn)維
推薦引擎RecEng
推薦系統(tǒng)介紹
什么是推薦系統(tǒng)?
利用電子商務(wù)網(wǎng)站向客戶提供商品信息和建議,幫助用戶覺得購買什么產(chǎn)品,模擬銷售人員幫助客戶完成購買過程
什么是個性化推薦系統(tǒng)?
個性化推薦系統(tǒng)是根據(jù)用戶的興趣特點(diǎn)和購買行為,向用戶推薦感興趣的信息和商品。
個性化推薦系統(tǒng)是建立在海量數(shù)據(jù)挖掘基礎(chǔ)上的一種高級商務(wù)智能平臺,以幫助電子商務(wù)網(wǎng)站為其顧客購物提供完全個性化的決策支持和信息服務(wù)。



推薦引擎RecEng介紹
阿里云推薦引擎(Recommendation Engine,RecEng)是在阿里云公有云環(huán)境下建立的一套推薦服務(wù)框架,目標(biāo)是讓廣大中小企業(yè)能夠使用這套框架快速搭建滿足自身業(yè)務(wù)需求的推薦服務(wù)。
- 簡單便捷
- 使用門檻低
- 算法開放



推薦引擎RecEng使用



配套實(shí)驗(yàn)
- 開通云資源
- 數(shù)據(jù)上傳加工
- 推薦引擎配置
- 啟動任務(wù)
- 獲取推薦結(jié)果
Quick BI數(shù)據(jù)可視化(靜態(tài))
目標(biāo):
- 了解DataV的產(chǎn)品特點(diǎn)
- 了解可視化大屏的使用場景
- 使用DataV模板制作可視化大屏
DataV 產(chǎn)品介紹
DataV是阿里云提供的數(shù)據(jù)可視化在線工具。通過拖拽式的操作,使用數(shù)據(jù)連接、可視化組件庫、行業(yè)設(shè)計(jì)模板庫、多終端適配與發(fā)布運(yùn)維等功能,讓非專業(yè)人員也可以快速的將數(shù)據(jù)的價值通過視覺進(jìn)行傳達(dá)
- 多種場景模板
- 豐富開放的圖標(biāo)庫
- 支持多種數(shù)據(jù)源
- 零門檻圖形化界面
- 支持?jǐn)?shù)據(jù)交互分析
- 多種適配與發(fā)布方式
DataV 大屏介紹



大屏設(shè)計(jì)原則:

DataV數(shù)據(jù)可視化(動態(tài))
目標(biāo):
- 了解DataV的產(chǎn)品特點(diǎn)
- 了解可視化大屏的使用場景
- 使用DataV模板制作可視化大屏
DataV 產(chǎn)品介紹
DataV是阿里云提供的數(shù)據(jù)可視化在線工具。通過拖拽式的操作,使用數(shù)據(jù)連接、可視化組件庫、行業(yè)設(shè)計(jì)模板庫、多終端適配與發(fā)布運(yùn)維等功能,讓非專業(yè)人員也可以快速的將數(shù)據(jù)的價值通過視覺進(jìn)行傳達(dá)
- 多種場景模板
- 豐富開放的圖標(biāo)庫
- 支持多種數(shù)據(jù)源
- 零門檻圖形化界面
- 支持?jǐn)?shù)據(jù)交互分析
- 多種適配與發(fā)布方式
DataV 大屏介紹



大屏設(shè)計(jì)原則:

機(jī)器學(xué)習(xí)
目標(biāo):
- 了解機(jī)器學(xué)習(xí)及阿里云PAI
- 了解簡單的聚類算法和分類算法
- 了解機(jī)器學(xué)習(xí)的基本使用流程
- 使用PAI進(jìn)行聚類/分類分析
機(jī)器學(xué)習(xí)介紹

分類






阿里云機(jī)器學(xué)習(xí)PAI介紹




分類算法KNN介紹
分類算法通過對已知類別訓(xùn)練集的分析,從中發(fā)現(xiàn)分類規(guī)則,以此預(yù)測新數(shù)據(jù)的類別。分類算法的應(yīng)用十分廣泛,銀行風(fēng)險(xiǎn)評估、客戶類別分類、文本檢索和搜索引擎分類、安全領(lǐng)域中的入侵檢測以及軟件項(xiàng)目中的應(yīng)用等。
按原理分類:
- 基于統(tǒng)計(jì)的:如貝葉斯分類
- 基于規(guī)則的:如決策樹算法
- 基于神經(jīng)網(wǎng)絡(luò)的:神經(jīng)網(wǎng)絡(luò)算法
-
基于距離的:KNN(K最近鄰)
常用評估指標(biāo):
- 精確率:預(yù)測結(jié)果與實(shí)際結(jié)果的比例
- 召回率(查勤率):預(yù)測結(jié)果中某類結(jié)果的正確覆蓋率
- F1-Score:統(tǒng)計(jì)量,綜合評估分類模型,取值在0-1之間





KNN優(yōu)缺點(diǎn)
優(yōu)點(diǎn)
- 原理簡單,容易理解,容易實(shí)現(xiàn)
- 重新訓(xùn)練代價較低
- 時間、空間復(fù)雜度取決于訓(xùn)練集(一般不算太大)
缺點(diǎn)
- KNN屬于lazy-learning算法,得到結(jié)果的及時性差
- k值對結(jié)果影響大(試想k=1和k=N的極端情況)
- 不同類記錄相差較大時容易誤判
- 樣本點(diǎn)多時,計(jì)算量較大
- 相對于決策樹,結(jié)果可解釋性不強(qiáng)
聚類算法K-Means介紹
聚類:就是將相似的事物聚集在一起,而將不相似的事物劃分到不同的類別的過程。它是一種探索性的分析,不必事先給出一個分類的標(biāo)準(zhǔn),聚類分析能夠從樣本數(shù)據(jù)出發(fā),自動進(jìn)行分類。聚類分析所使用方法的不同,常常會得到不同的結(jié)論。
常見算法:層次聚類、劃分聚類、基于密度的聚類







K-Means優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- 原理簡單,容易理解,容易實(shí)現(xiàn)
- 聚類結(jié)果容易解釋
- 聚類結(jié)果相對較好
缺點(diǎn):
- 分類個數(shù)k需要事先指定,且指定的k值不同,聚類結(jié)果相差較大
- 初始的k個類簇中心對最終結(jié)果有影響,選擇不同,結(jié)果可能不同
- 能識別的類簇僅為球狀,非球狀的聚類效果很差
- 樣本點(diǎn)多時,計(jì)算量較大
- 對異常值敏感,對離散值需要特殊處理
機(jī)器學(xué)習(xí)常見流程介紹
數(shù)據(jù)挖掘方法論





