ETL概述
ETL(Extraction-Transformation-Loading)是將業務系統的資料經過抽取、清洗轉換之后加載到資料倉庫的程序,目的是將企業中的分散、零亂、標準不統一的資料整合到一起,為企業的決策提供分析依據, ETL是BI(商業智能)專案重要的一個環節,

資料治理流程
資料挖掘一般是指從大量的資料中通過演算法搜索隱藏于其中資訊的程序,它通常與計算機科學有關,并通過統計、在線分析處理、情報檢索、機器學習、專家系統(依靠過去的經驗法則)和模式識別等諸多方法來實作上述目標,它的分析方法包括:分類、估計、預測、相關性分組或關聯規則、聚類和復雜資料型別挖掘,

1)資料的采集
首先得有資料,資料的收集有兩個方式,第一個方式是拿,專業點的說法叫抓取或者爬取,例如搜索引擎就是這么做的,它把網上的所有的資訊都下載到它的資料中心,然后你一搜才能搜出來,
2)資料的傳輸
一般會通過佇列方式進行,因為資料量實在是太大了,資料必須經過處理才會有用,可是系統處理不過來,只好排好隊,慢慢的處理,
3)資料的存盤
現在資料就是金錢,掌握了資料就相當于掌握了錢,要不然網站怎么知道你想買什么呢?就是因為它有你歷史的交易的資料,這個資訊可不能給別人,十分寶貴,所以需要存盤下來,
4)資料的清洗和分析
上面存盤的資料是原始資料,原始資料多是雜亂無章的,有很多垃圾資料在里面,因而需要清洗和過濾,得到一些高質量的資料,對于高質量的資料,就可以進行分析,從而對資料進行分類,或者發現資料之間的相互關系,得到知識,
注:第三與第四個步驟,現存后清洗和先清洗再存,在真是的業務場景中可以適當互換,
5)資料的檢索和挖掘
檢索就是搜索,所謂外事問google,內事問百度,挖掘,僅僅搜索出來已經不能滿足人們的要求了,還需要從資訊中挖掘出相互的關系,
6)資料的加載與應用
怎么友好的展示與傳遞給用戶為資料挖掘作業做好倍訓,
資料治理工具類
1)資料采集工具
1、針對日志檔案類
工具 | 定義 |
Logstash | Logstash是一個開源資料收集引擎,具有實時管道功能,Logstash可以動態地將來自不同資料源的資料統一起來,并將資料標準化到所選擇的目的地, |
Filebeat | Filebeat 作為一個輕量級的日志傳輸工具可以將日志推送到中心 Logstash, |
Fluentd | Fluentd 創建的初衷主要是盡可能的使用 JSON 作為日志輸出,所以傳輸工具及其下游的傳輸線不需要猜測子字串里面各個欄位的型別,這樣,它為幾乎所有的語言都提供庫,即可以將它插入到自定義的程式中, |
Logagent | Logagent 是 Sematext 提供的傳輸工具,它用來將日志傳輸到 Logsene(一個基于SaaS 平臺的 Elasticsearch API), |
Rsylog | 絕大多數 Linux 發布版本默認的守護行程,rsyslog 讀取并寫入 /var/log/messages,它可以提取檔案、決議、緩沖(磁盤和記憶體)以及將它們傳輸到多個目的地,包括 Elasticsearch ,可以從此處找到如何處理 Apache 以及系統日志, |
Logtail | 阿里云日志服務的生產者,目前在阿里集團內部機器上運行,經過3年多時間的考驗,目前為阿里公有云用戶提供日志收集服務, |
關于詳解日志采集工具Logstash、Filebeat、Fluentd、Logagent、Rsylog和Logtail在優勢、劣勢
2、針對爬蟲類
頁面下載 --> 頁面決議 --> 資料存盤
(1)頁面下載器
對于下載器而言,python的庫requests能滿足大部分測驗+抓取需求,進階工程化scrapy,動態網頁優先找API介面,如果有簡單加密就破解,實在困難就使用splash渲染,
(2)頁面決議器
①BeautifulSoup(入門級):Python爬蟲入門BeautifulSoup模塊
②pyquery(類似jQuery):Python爬蟲:pyquery模塊決議網頁
③lxml:Python爬蟲:使用lxml決議網頁內容
④parsel:Extract text using CSS or XPath selectors
⑤scrapy的Selector (強烈推薦, 比較高級的封裝,基于parsel)
⑥選擇器(Selectors):python爬蟲:scrapy框架xpath和css選擇器語法
---------------------
總結:
決議器直接使用scrapy的Selector 就行,簡單、直接、高效,
(3)資料存盤
①txt文本:Python全堆疊之路:檔案file常用操作
②csv檔案:python讀取寫入csv檔案
③sqlite3 (python自帶):Python編程:使用資料庫sqlite3
④MySQL:SQL:pymysql模塊讀寫mysql資料
⑤MongoDB:Python編程:mongodb的基本增刪改查操作
---------------------
總結:
資料存盤沒有什么可深究的,按照業務需求來就行,一般快速測驗使用MongoDB,業務使用MySQL
(4)其他工具
①execjs :執行js
Python爬蟲:execjs在python中運行javascript代碼
②pyv8: 執行js
mac安裝pyv8模塊-JavaScript翻譯成python
③html5lib
Python爬蟲:scrapy利用html5lib決議不規范的html文本
2)資料清洗工具
1、DataWrangler
基于網路的服務是斯坦福大學的可視化組設計來清洗和重排資料的.文本編輯非常簡單,例如,當我選擇大標題為“Reported crime in Alabama”的樣本資料的某行的“Alabama”,然后選擇另一組資料的“Alaska”,它會建議提取每州的名字,把滑鼠停留在建議上,就可以看到用紅色突出顯示的行,
2、Google Refine
它可以匯入匯出多種格式的資料,如標簽或逗號分隔的文本檔案、Excel、XML和JSON檔案,Refine設有內置演算法,可以發現一些拼寫不一樣但實際上應分為一組的文本,匯入你的資料后,選擇編輯單元格->聚類,編輯,然后選擇要用的演算法,資料選項,提供快速簡單的資料分布概貌,這個功能可以揭示那些可能由于輸入錯誤導致的例外——例如,工資記錄不是80,000美元而竟然是800,000美元;或指出不一致的地方——例如薪酬資料記錄之間的差異,有的是計時工資,有的是每周支付,有的是年薪,除了資料管家功能,Google Refine還提供了一些有用的分析工具,例如排序和篩選,
3、Logstash
Logstash 是一款強大的資料處理工具,它可以實作資料傳輸,格式處理,格式化輸出,還有強大的插件功能,常用于日志處理,
3)資料存盤工具
資料存盤主要分為結構化資料的存盤和非結構化資料的存盤,
1、結構化資料
(1)定義
一般指存盤在資料庫中,具有一定邏輯結構和物理結構的資料,最為常見的是存盤在關系資料庫中的資料;非結構化資料:一般指結構化資料以外的資料,這些資料不存盤在資料庫中,而是以各種型別的文本形式存放,其中Web上的一些資料(內嵌于HTML或XML標記中)又具有一定的邏輯結構和物理結構,被稱為半結構資料,
(2)存盤系統
目前比較成熟的結構化存盤系統有Oracle、MySQL、Hadoop等,
2、非結構化資料
(1)定義
非結構化資料是資料結構不規則或不完整,沒有預定義的資料模型,不方便用資料庫二維邏輯表來表現的資料,包括所有格式的辦公檔案、文本、圖片、XML, HTML、各類報表、影像和音頻/視頻資訊等等,
(2)存盤方式
1)使用檔案系統存盤檔案,而在資料庫中存盤訪問路徑,這種方式的優點是實作簡單,不需要DBMS的高級功能,但是這種方式無法實作檔案的事務性訪問,不便于資料備份和恢復,不便于資料遷移等;
2)使用阿里云OSS的檔案存盤功能,
4)資料計算工具
資料計算分為實時計算、在線計算、離線計算,
1、資料實時計算
Apache Storm
2、資料在線計算
Elasticsearch
MySQL
3、資料離線計算
HaDoop Hive
5)資料分析工具
1、對資料矩陣科學計算:Python的numpy庫
2、對資料切片等常規處理:強大的pandas庫
3、對資料建模處理:sklearn庫
6)資料加載工具
1、資料的可視化處理:Python中的matplotlib和seaborn庫
2、常用的BI可視化工具:Tableu和帆軟
3、ECharts
——————————————
閱讀推薦
【大廠】基于rabbitMQ訊息中心技術方案
【干貨】一篇文章講透資料挖掘
深度探討知識圖譜建模
【資料中臺】資料中心建設規劃
【流媒體】ffmpeg+HLS實作直播與回放
技術不能凌駕于業務,但可以引導業務
說框架設計思路
老王說架構
FaaS技術架構
從URL到看到網頁的程序
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/50621.html
標籤:大數據
上一篇:我想要送你資料 @程式猿 測驗媛
下一篇:HDFS筆記
