国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

通俗易懂:什么是拉鏈表

這篇具有很好參考價(jià)值的文章主要介紹了通俗易懂:什么是拉鏈表。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

拉鏈表是數(shù)據(jù)倉(cāng)庫(kù)中一種重要的模型,相信很多數(shù)據(jù)工作者都接觸過(guò),面試也是經(jīng)??疾斓狞c(diǎn)。

但是很多人第一次接觸“拉鏈表”這個(gè)詞,難免會(huì)產(chǎn)生疑惑:拉鏈表是什么?

什么是拉鏈表

按照度娘的解釋?zhuān)骸袄湵硎且环N針對(duì)數(shù)據(jù)倉(cāng)庫(kù)設(shè)計(jì)中表存儲(chǔ)數(shù)據(jù)的方式而定義的數(shù)據(jù)模型,它有點(diǎn)類(lèi)似于快照,用于維護(hù)歷史狀態(tài)及最新?tīng)顟B(tài)數(shù)據(jù)?!?/p>

這么看還是有點(diǎn)難理解,既然如此,那我們先不管,先來(lái)看以下場(chǎng)景:

  • 假如有張表如表1-1所示,每天的數(shù)據(jù)量大概有50w
  • 表中有些字段會(huì)被 update,如表1-2,且每天更新的數(shù)據(jù)量很小,大約只有5k
  • 有些報(bào)表需要查看歷史某個(gè)日期的數(shù)據(jù)
  • 存儲(chǔ)空間有限,需要盡可能的節(jié)約存儲(chǔ)空間

問(wèn):你會(huì)怎么將其裝入數(shù)倉(cāng)中?

表1-1:

id name phone
1 Agnes 123
2 Max 456
3 Tony 789

表1-2:

id name phone
1 Agnes 123
2 Max 456
3 Tony 321

每天追加一份全量數(shù)據(jù)

這種方式比較簡(jiǎn)單粗暴,如表1-3,不僅操作方便,還可以反映歷史變化。但是弊端也很明顯:存在數(shù)據(jù)冗余、浪費(fèi)存儲(chǔ)空間。

每天50w,一個(gè)月就有1500w了,時(shí)間越長(zhǎng),數(shù)據(jù)量越多,然而實(shí)際變化的數(shù)據(jù)每天只有5k,剩下的數(shù)據(jù)幾乎都是重復(fù)存儲(chǔ)的,極大浪費(fèi)存儲(chǔ)空間。

表1-3

id name phone
1 Agnes 123
2 Max 456
3 Tony 789
1 Agnes 123
2 Max 456
3 Tony 321

直接覆蓋原來(lái)的數(shù)據(jù)

這種方式也很簡(jiǎn)單,直接全表 truncate 再 insert,雖然空間節(jié)省了,但缺點(diǎn)也很明顯,會(huì)把歷史數(shù)據(jù)覆蓋掉,沒(méi)辦法反映歷史數(shù)據(jù)的變化。

使用拉鏈表

在原表結(jié)構(gòu)的基礎(chǔ)上,加兩個(gè)字段:start_date 和 end_date,第一次抽取數(shù)據(jù)的時(shí)候,將 start_date 初始化為抽取日期,end_date 初始化為永久日期,如表1-4所示

表1-4:

id name phone start_date end_date
1 Agnes 123 20230328 99999999
2 Max 456 20230328 99999999
3 Tony 789 20230328 99999999

之后的每一次抽取,則需要對(duì)比當(dāng)日數(shù)據(jù)以及歷史數(shù)據(jù),將有變化的歷史數(shù)據(jù)的 end_date 改成當(dāng)日抽取日期;

將新抽取的有變化的數(shù)據(jù)按照初始化的方式設(shè)置 start_date 和 end_date。如表1-5所示

表1-5:

id name phone start_date end_date
1 Agnes 123 20230328 99999999
2 Max 456 20230328 99999999
3 Tony 789 20230328 20230329
3 Tony 321 20230329 99999999

這種數(shù)據(jù)模型就是拉鏈表,它既能反映歷史變化,又能節(jié)省空間,豈不美哉?

如何實(shí)現(xiàn)拉鏈表

既然理解了什么是拉鏈表,那么應(yīng)該如何實(shí)現(xiàn)呢?

方式一

(1)獲取當(dāng)日數(shù)據(jù);

(2)比較當(dāng)日數(shù)據(jù)及歷史數(shù)據(jù),找出新增和變化的數(shù)據(jù),存到臨時(shí)表,并將開(kāi)始日期置為當(dāng)前日期,結(jié)束日期置為最大日期;

(3)將歷史數(shù)據(jù)表中的變化數(shù)據(jù)的結(jié)束日期更新為當(dāng)前日期,即閉鏈;

(4)將臨時(shí)表的新增和變化數(shù)據(jù)插入歷史數(shù)據(jù)表中,即開(kāi)鏈。

方式二

(1)獲取當(dāng)日數(shù)據(jù);

(2)比較當(dāng)日數(shù)據(jù)和昨日數(shù)據(jù),找出新增數(shù)據(jù)和變化后數(shù)據(jù);

(3)比較昨日數(shù)據(jù)和當(dāng)日數(shù)據(jù),找出刪除數(shù)據(jù)和變化前數(shù)據(jù);

(4)刪除歷史數(shù)據(jù)表中的刪除數(shù)據(jù)和變化前數(shù)據(jù);

(5)將新增數(shù)據(jù)和變化后數(shù)據(jù)插入歷史數(shù)據(jù)表中,把開(kāi)始日期置為當(dāng)前日期,結(jié)束日期置為最大日期;

(6)將刪除數(shù)據(jù)和變化前數(shù)據(jù)插入歷史數(shù)據(jù)表中,把結(jié)束日期置為當(dāng)前日期。

方式一比較簡(jiǎn)潔;在數(shù)據(jù)量比較大的情況下,方式二效率比較高,因?yàn)橛脛h除插入的操作替代更新的操作,當(dāng)然,這是對(duì)于傳統(tǒng)數(shù)據(jù)庫(kù)而言,具體的方式應(yīng)根據(jù)實(shí)際數(shù)據(jù)量和數(shù)據(jù)庫(kù)來(lái)制定。

小結(jié)

本文用一個(gè)案例簡(jiǎn)單介紹了拉鏈表的含義以及實(shí)現(xiàn)拉鏈表的方式,如果有什么錯(cuò)誤,歡迎大家指正;如果對(duì)大家有幫助,希望大家能給個(gè)贊給予肯定支持,謝謝。

持續(xù)關(guān)注不迷路,轉(zhuǎn)載請(qǐng)注明出處:大數(shù)據(jù)的奇妙冒險(xiǎn)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-478558.html

到了這里,關(guān)于通俗易懂:什么是拉鏈表的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 三、數(shù)據(jù)倉(cāng)庫(kù)實(shí)踐-拉鏈表設(shè)計(jì)

    三、數(shù)據(jù)倉(cāng)庫(kù)實(shí)踐-拉鏈表設(shè)計(jì)

    ? ? ?拉鏈表,學(xué)名叫緩慢變化維(Slowly Changing Dimensions),簡(jiǎn)稱(chēng)漸變維(SCD),俗稱(chēng)拉鏈表,是為了記錄段的歷史變化而設(shè)計(jì)出來(lái)的一種數(shù)據(jù)存儲(chǔ)模型,常見(jiàn)于維度表設(shè)計(jì),在數(shù)據(jù)倉(cāng)庫(kù)相關(guān)的面試中,也經(jīng)常有被問(wèn)到。但是在工程實(shí)踐中,拉鏈表真是太麻煩了,而且是

    2024年02月05日
    瀏覽(36)
  • 什么是poe交換機(jī)?通俗易懂的介紹

    交換機(jī)端口支持輸出功率達(dá)15.4W,符合IEEE802.3af標(biāo)準(zhǔn),通過(guò)網(wǎng)線(xiàn)供電的方式為標(biāo)準(zhǔn)的POE終端設(shè)備供電,免去額外的電源布線(xiàn)。經(jīng)調(diào)研研華推出的符合IEEE802.3aT 標(biāo)準(zhǔn)的POE交換機(jī),端口輸出功率可以達(dá)到25-30W .通俗的說(shuō) ,POE交換機(jī)就是支持網(wǎng)線(xiàn)供電的交換機(jī),其不但可以實(shí)現(xiàn)普通交

    2024年02月06日
    瀏覽(17)
  • 數(shù)據(jù)倉(cāng)庫(kù)保存歷史數(shù)據(jù)方法之拉鏈表

    數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的、集成的、相對(duì)穩(wěn)定的、反應(yīng)歷史變化的數(shù)據(jù)集合,用于支持管理決策。 面向主題:傳統(tǒng)的數(shù)據(jù)庫(kù)是面向事務(wù)處理的,而數(shù)據(jù)倉(cāng)庫(kù)是面向某一領(lǐng)域而組織的數(shù)據(jù)集合,主題是指用戶(hù)關(guān)心的某一聯(lián)系緊密的集合。 集成:數(shù)據(jù)倉(cāng)庫(kù)中數(shù)據(jù)來(lái)源于各個(gè)離

    2024年03月13日
    瀏覽(22)
  • Nginx到底能干嘛?!Nginx是做什么用的?通俗易懂,前端必看!

    Nginx到底能干嘛?!Nginx是做什么用的?通俗易懂,前端必看!

    ????????Nginx是一個(gè) 輕量級(jí)/高性能的反向代理Web服務(wù)器,它是由C語(yǔ)言寫(xiě)的,所以速度非常快、性能非常優(yōu)秀。它的主要功能就是反向代理、負(fù)載均衡、配置SSL證書(shū)、防盜鏈、解決跨域問(wèn)題、緩存、限流、動(dòng)靜資源分離等等。 ? ? ? ? 上面介紹了Nginx是一臺(tái)Web服務(wù)器,實(shí)際

    2023年04月11日
    瀏覽(38)
  • 詳解數(shù)據(jù)倉(cāng)庫(kù)之拉鏈表(原理、設(shè)計(jì)以及在Hive中的實(shí)現(xiàn))

    詳解數(shù)據(jù)倉(cāng)庫(kù)之拉鏈表(原理、設(shè)計(jì)以及在Hive中的實(shí)現(xiàn))

    最近發(fā)現(xiàn)一本好書(shū),讀完感覺(jué)講的非常好,首先安利給大家,國(guó)內(nèi)第一本系統(tǒng)講解數(shù)據(jù)血緣的書(shū)!點(diǎn)贊!近幾天也會(huì)安排朋友圈點(diǎn)贊贈(zèng)書(shū)活動(dòng)(???_??)? 0x00 前言 本文將會(huì)談一談在數(shù)據(jù)倉(cāng)庫(kù)中拉鏈表相關(guān)的內(nèi)容,包括它的原理、設(shè)計(jì)、以及在我們大數(shù)據(jù)場(chǎng)景下的實(shí)現(xiàn)方式

    2024年02月05日
    瀏覽(31)
  • 漫談數(shù)據(jù)倉(cāng)庫(kù)之拉鏈表(原理、設(shè)計(jì)以及在Hive中的實(shí)現(xiàn)

    漫談數(shù)據(jù)倉(cāng)庫(kù)之拉鏈表(原理、設(shè)計(jì)以及在Hive中的實(shí)現(xiàn)

    本文將會(huì)談一談在數(shù)據(jù)倉(cāng)庫(kù)中拉鏈表相關(guān)的內(nèi)容,包括它的原理、設(shè)計(jì)、以及在我們大數(shù)據(jù)場(chǎng)景下的實(shí)現(xiàn)方式。 全文由下面幾個(gè)部分組成: 先分享一下拉鏈表的用途、什么是拉鏈表。 通過(guò)一些小的使用場(chǎng)景來(lái)對(duì)拉鏈表做近一步的闡釋?zhuān)约袄湵砗统S玫那衅淼膮^(qū)別。

    2024年04月12日
    瀏覽(25)
  • 數(shù)據(jù)結(jié)構(gòu):Mysql索引原理(通俗易懂)

    數(shù)據(jù)結(jié)構(gòu):Mysql索引原理(通俗易懂)

    在工作中如果經(jīng)常寫(xiě)業(yè)務(wù)代碼,說(shuō)白了就是CURD,比如做一個(gè)查詢(xún)功能,我們會(huì)將前端參數(shù)傳遞到后端后拼接SQL查詢(xún)數(shù)據(jù),那為了提高用戶(hù)體驗(yàn),查詢(xún)速度肯定是越快越好,這就要求我們能夠?qū)QL調(diào)優(yōu),讓查詢(xún)速度更快。 由于數(shù)據(jù)需要持久化,且數(shù)據(jù)量龐大,所以只能將數(shù)據(jù)

    2024年02月11日
    瀏覽(22)
  • TDengine時(shí)序數(shù)據(jù)庫(kù)通俗易懂教程

    TDengine時(shí)序數(shù)據(jù)庫(kù)通俗易懂教程

    1.1產(chǎn)品簡(jiǎn)介 TDengine 是一款開(kāi)源、高性能、云原生的時(shí)序數(shù)據(jù)庫(kù),且針對(duì)物聯(lián)網(wǎng)、車(chē)聯(lián)網(wǎng)、工業(yè)互聯(lián)網(wǎng)、金融、IT運(yùn)維等場(chǎng)景進(jìn)行了優(yōu)化。TDengine的代碼,包括集群功能,都在 GNU AGPL v3.0 下開(kāi)源。除核心的時(shí)序數(shù)據(jù)庫(kù)功能外,TDengine還提供緩存、數(shù)據(jù)訂閱、流式計(jì)算等其它功能以

    2024年02月07日
    瀏覽(20)
  • 通俗易懂地解釋OpenAI Sora視頻生成的特點(diǎn)有哪些?與Runway Gen2、Pika有什么區(qū)別?缺點(diǎn)是什么?

    通俗易懂地解釋OpenAI Sora視頻生成的特點(diǎn)有哪些?與Runway Gen2、Pika有什么區(qū)別?缺點(diǎn)是什么?

    OpenAI的Sora模型是最近兩天最火熱的模型。它生成的視頻無(wú)論是清晰度、連貫性和時(shí)間上都有非常好的結(jié)果。在Sora之前,業(yè)界已經(jīng)有了很多視頻生成工具和平臺(tái)。但為什么Sora可以引起如此大的關(guān)注?Sora生成的視頻與此前其它平臺(tái)生成的視頻到底有哪些區(qū)別?有很多童鞋似乎對(duì)

    2024年02月19日
    瀏覽(18)
  • 大數(shù)據(jù)之Hadoop3簡(jiǎn)單入門(mén)(一)(通俗易懂)

    大數(shù)據(jù)之Hadoop3簡(jiǎn)單入門(mén)(一)(通俗易懂)

    目錄 一. 大數(shù)據(jù)基礎(chǔ)概論 1.1 何為大數(shù)據(jù) 2.1 大數(shù)據(jù)特點(diǎn)(4V) 2.1.1 Volume(大量) 2.2.2?Velocity(高速) 2.2.3 Varity(多樣) 2.2.4 Value(低價(jià)值密度) 二. hadoop入門(mén)概述 2.1 什么是hadoop 2.1.1 概念 2.1.2 hadoop優(yōu)勢(shì) 2.1.3 hadoop不同版本區(qū)別 2.2 ?HDFS架構(gòu)概述 2.3? Yarn架構(gòu)概述 2.4?MapReduce架

    2024年02月02日
    瀏覽(53)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包