日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一篇文章搞懂数据仓库:常用ETL工具、方法

發(fā)布時(shí)間:2024/7/23 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一篇文章搞懂数据仓库:常用ETL工具、方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

一、什么是ETL?

二、ETL &?ELT

三、常用的ETL工具

3.1 sqoop

3.2 DataX

3.3?Kettle

3.4?canal

3.5 StreamSets

四、ETL加載策略

4.1 增量

4.2 全量

4.3 流式

小編有話


一、什么是ETL?

ETL,是英文Extract-Transform-Load的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程,是數(shù)據(jù)倉(cāng)庫(kù)的生命線。

? ? ? ?抽取(Extract主要是針對(duì)各個(gè)業(yè)務(wù)系統(tǒng)及不同服務(wù)器的分散數(shù)據(jù),充分理解數(shù)據(jù)定義后,規(guī)劃需要的數(shù)據(jù)源及數(shù)據(jù)定義,制定可操作的數(shù)據(jù)源,制定增量抽取和緩慢漸變的規(guī)則。

? ? ? ?轉(zhuǎn)換(transform主要是針對(duì)數(shù)據(jù)倉(cāng)庫(kù)建立的模型,通過一系列的轉(zhuǎn)換來實(shí)現(xiàn)將數(shù)據(jù)從業(yè)務(wù)模型到分析模型,通過ETL工具可視化拖拽操作可以直接使用標(biāo)準(zhǔn)的內(nèi)置代碼片段功能、自定義腳本、函數(shù)、存儲(chǔ)過程以及其他的擴(kuò)展方式,實(shí)現(xiàn)了各種復(fù)雜的轉(zhuǎn)換,并且支持自動(dòng)分析日志,清楚的監(jiān)控?cái)?shù)據(jù)轉(zhuǎn)換的狀態(tài)并優(yōu)化分析模型。

裝載(Load主要是將經(jīng)過轉(zhuǎn)換的數(shù)據(jù)裝載到數(shù)據(jù)倉(cāng)庫(kù)里面,可以通過直連數(shù)據(jù)庫(kù)的方式來進(jìn)行數(shù)據(jù)裝載,可以充分體現(xiàn)高效性。在應(yīng)用的時(shí)候可以隨時(shí)調(diào)整數(shù)據(jù)抽取工作的運(yùn)行方式,可以靈活的集成到其他管理系統(tǒng)中。

二、ETL &?ELT

伴隨著數(shù)據(jù)倉(cāng)庫(kù)的發(fā)展(傳送門:數(shù)據(jù)倉(cāng)庫(kù)的八個(gè)發(fā)展階段),數(shù)據(jù)量從小到大,數(shù)據(jù)實(shí)時(shí)性從T+1到準(zhǔn)實(shí)時(shí)、實(shí)時(shí),ETL也在不斷演進(jìn)。

在傳統(tǒng)數(shù)倉(cāng)中,數(shù)據(jù)量小,計(jì)算邏輯相對(duì)簡(jiǎn)單,我們可以直接用ETL工具實(shí)現(xiàn)數(shù)據(jù)轉(zhuǎn)換(T),轉(zhuǎn)換之后再加載到目標(biāo)庫(kù),即(Extract-Transform-Load)。但在大數(shù)據(jù)場(chǎng)景下,數(shù)據(jù)量越大越大,計(jì)算邏輯愈發(fā)復(fù)雜,數(shù)據(jù)清洗需放在運(yùn)算能力更強(qiáng)的分布式計(jì)算引擎中完成,ETL也就變成了ELT(Extract-Load-Transform)。

即:Extract-Transform-Load? >>? Extract-Load-Transform

通常我們所說的ETL,已經(jīng)泛指數(shù)據(jù)同步、數(shù)據(jù)清洗全過程,而不僅限于數(shù)據(jù)的抽取-轉(zhuǎn)換-加載。

三、常用的ETL工具

下面小編將介紹幾類ETL工具(sqoop,DataX,Kettle,canal,StreamSets)。

3.1 sqoop

  • 是Apache開源的一款在Hadoop和關(guān)系數(shù)據(jù)庫(kù)服務(wù)器之間傳輸數(shù)據(jù)的工具。
  • 可以將一個(gè)關(guān)系型數(shù)據(jù)庫(kù)(MySQL ,Oracle等)中的數(shù)據(jù)導(dǎo)入到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)出到關(guān)系型數(shù)據(jù)庫(kù)中。
  • sqoop命令的本質(zhì)是轉(zhuǎn)化為MapReduce程序。
  • sqoop分為導(dǎo)入(import)和導(dǎo)出(export),
  • 策略分為table和query
  • 模式分為增量和全量。

3.2 DataX

  • DataX 是阿里巴巴集團(tuán)內(nèi)被廣泛使用的離線數(shù)據(jù)同步工具/平臺(tái)
  • 實(shí)現(xiàn)包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各種異構(gòu)數(shù)據(jù)源之間高效的數(shù)據(jù)同步功能。

3.3?Kettle

  • 一款國(guó)外免費(fèi)開源的、可視化的、功能強(qiáng)大的ETL工具,純java編寫,可以在Windows、Linux、Unix上運(yùn)行,數(shù)據(jù)抽取高效穩(wěn)定。

3.4?canal

  • canal是阿里巴巴旗下的一款開源項(xiàng)目,純Java開發(fā)。基于數(shù)據(jù)庫(kù)增量日志解析,提供增量數(shù)據(jù)實(shí)時(shí)訂閱和消費(fèi),目前主要支持了MySQL,也支持mariaDB。

3.5 StreamSets

  • 是大數(shù)據(jù)實(shí)時(shí)采集ETL工具,可以實(shí)現(xiàn)不寫一行代碼完成數(shù)據(jù)的采集和流轉(zhuǎn)。通過拖拽式的可視化界面,實(shí)現(xiàn)數(shù)據(jù)管道(Pipelines)的設(shè)計(jì)和定時(shí)任務(wù)調(diào)度。
  • 創(chuàng)建一個(gè)Pipelines管道需要配置數(shù)據(jù)源(Origins)、操作(Processors)、目的地(Destinations)三部分。

四、ETL加載策略

4.1 增量

  • 有些表巨大,我們需要選擇增量策略,新增delta數(shù)據(jù)需要和存量數(shù)據(jù)merge合并。
  • 兩種方法:
    • merge(一)

  • merge(二)
    • 只有新增(full join。能拿更新表就拿更新表)

?

  • 新增+刪除
    • history-table Left join delet-table where delect-table.value is null == 表a
    • 表a full join update-table (能拿update就拿update)

4.2 全量

每天一個(gè)全量表,也可一個(gè)hive天分區(qū)一個(gè)全量。

4.3 流式

使用kafka,消費(fèi)mysql binlog日志到目標(biāo)庫(kù),源表和目標(biāo)庫(kù)是1:1的鏡像。

小編有話

無(wú)論是全量還是增量的方式,都會(huì)浪費(fèi)多余的存儲(chǔ)或通過計(jì)算去重,得到最新的全量數(shù)據(jù)。為解決這一問題,墻裂建議kafka的數(shù)據(jù)同步方案,源表變化一條,目標(biāo)表消費(fèi)一條,目標(biāo)表數(shù)據(jù)始終是一份最新全量數(shù)據(jù),且為實(shí)時(shí)同步的。?

ps.極端情況下可能會(huì)丟數(shù),需要寫幾個(gè)監(jiān)控監(jiān)本(詳見數(shù)據(jù)質(zhì)量篇)和補(bǔ)數(shù)腳本即可~

?

數(shù)倉(cāng)系列傳送門:https://blog.csdn.net/weixin_39032019/category_8871528.html

總結(jié)

以上是生活随笔為你收集整理的一篇文章搞懂数据仓库:常用ETL工具、方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。