怎麼將ETL技術落地

来源:https://www.cnblogs.com/Javame/archive/2019/09/27/11599546.html
-Advertisement-
Play Games

ETL概述 ETL(Extraction-Transformation-Loading)是將業務系統的數據經過抽取、清洗轉換之後載入到數據倉庫的過程,目的是將企業中的分散、零亂、標準不統一的數據整合到一起,為企業的決策提供分析依據, ETL是BI(商業智能)項目重要的一個環節。 數據治理流程 數據挖 ...


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到看到網頁的過程


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • vsftpd上傳文件大小為0(主動模式) 主動模式與被動模式 ...
  • 1. compatible節點: qpnp vm bms.c使用來控制電池曲線的和BMS功能的,其compatible節點是"qcom,qpnp vm bms" 2. probe函數: qpnp_vm_bms_probe函數如下: 2.1 parse_bms_dt_properties()函數 在這 ...
  • #!/bin/bash while true do read -ep "創建多少用戶" sun for i in `seq 1 $sun` do ab=`cat /dev/urandom | sed 's/[^a-zA-Z0-9]//g'| strings -n 3 | head -n 1` id ... ...
  • 內設與外設: 埠復用和埠重映射都需要瞭解內設和外設,那麼什麼是內設?什麼是外設? 內設:單片機內部集成的功能一般包括:串口模塊、SPI模塊(Serial Peripheral Interface 串列外設介面)、I2C模塊(Philips公司開發的一種簡單、雙向二線制同步串列匯流排)、A/D模塊( ...
  • 1.for 迴圈體 ; 2.seq 命令:產生從某個數到另外一個數之間的所有整數 ; 3.ping -c 參數 指定ping包的個數 ; 4.$? 執行上一個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤) . ...
  • 9 月初,我對 `python 爬蟲` 燃起興趣,但爬取到的數據多通道實時同步讀寫用`文件`並不方便,於是開始用起`mysql`。這篇筆記,我將整理近一個月的實戰中最常用到的 `mysql` 語句,同時也將涉及到如何在`python3`中與 `mysql` 實現數據交換。 ...
  • NN與2NN工作機制 思考:NameNode中的元數據是存儲在哪裡的? 假設存儲在NameNode節點的硬碟中,因為經常需要隨機訪問和響應客戶請求,必然效率太低,所以是存儲在記憶體中的 但是,如果存儲在記憶體中,一旦斷電,元數據丟失,整個集群便無法工作,因此會在硬碟中產生備份元數據的Fsimage 但是 ...
  • HDFS 基於流數據模式訪問和處理超大文件的需求而開發的。 低延時的數據訪問 HDFS是為高吞吐數據傳輸設計的,因此可能犧牲延時HBase更適合低延時的數據訪問。 大量小文件 文件的元數據保存在NameNode的記憶體中, 整個文件系統的文件數量會受限於NameNode的記憶體大小。 多方讀寫,需要任意 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...