日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

以下文章來源于數倉寶貝庫 ,作者Saurabh

業務問題的范圍太廣、太深、太復雜,一種工具無法解決所有問題,在大數據和分析領域尤其如此。

熱數據需要在內存中存儲和處理,因此適合用緩存或內存數據庫(如redis或SAP Hana)。

AWS提供了ElastiCache服務,可生成托管的Redis或Memcached環境。

NoSQL數據庫是面向高速但小規模記錄(例如,用戶會話信息或物聯網數據)的理想選擇。

NoSQL數據庫對于內容管理也很有用,可以存儲數據目錄。

1、結構化數據存儲

結構化數據存儲已經存在了幾十年,是人們最熟悉的數據存儲技術。大多數事務型數據庫(如Oracle、MySQL、SQL Server和PostgreSQL)都是行式數據庫,因為要處理來自軟件應用程序的頻繁數據寫入。

企業經常將事務型數據庫同時用于報表,在這種情況下,需要頻繁讀取數據,但數據寫入頻率要低得多。

隨著數據讀取的需求越來越強,有更多的創新進入了結構化數據存儲的查詢領域,比如列式文件格式的創新,它有助于提高數據讀取性能,滿足分析需求。

基于行的格式將數據以行的形式存儲在文件中?;谛械膶懭敕绞绞菍祿懭氪疟P的最快方式,但它不一定能最快地讀取,因為你必須跳過很多不相關的數據。

基于列的格式將所有的列值一起存儲在文件中。這樣會帶來更好的壓縮效果,因為相同的數據類型現在被歸為一組。通常,它還能提供更好的讀取性能,因為你可以跳過不需要的列。

我們來看結構化數據存儲的常見選擇。

例如,你需要從訂單表中查詢某個月的銷售總數,但該表有50列。在基于行的架構中,查詢時會掃描整個表的50個列,但在列式架構中,查詢時只會掃描訂單銷售列,因而提高了數據查詢性能。

我們再來詳細介紹關系型數據庫,重點介紹事務數據和數據倉庫處理數據分析的需求。

(1)關系型數據庫

RDBMS比較適合在線事務處理(OLTP)應用。流行的關系型數據庫有Oracle、MSSQL、MariaDB、PostgreSQL等。其中一些傳統數據庫已經存在了幾十年。

許多應用,包括電子商務、銀行業務和酒店預訂,都是由關系型數據庫支持的。關系型數據庫非常擅長處理表之間需要復雜聯合查詢的事務數據。

從事務數據的需求來看,關系型數據庫應該堅持原子性、一致性、隔離性、持久性原則,具體如下:

  • 原子性:事務將從頭到尾完全執行,一旦出現錯誤,整個事務將會回滾。

 

  • 一致性:一旦事務完成,所有的數據都要提交到數據庫中。

 

  • 隔離性:要求多個事務能在隔離的情況下同時運行,互不干擾。

 

  • 持久性:在任何中斷(如網絡或電源故障)的情況下,事務應該能夠恢復到最后已知的狀態。

 

  • 通常情況下,關系型數據庫的數據會被轉存到數據倉庫中,用于報表和聚合。

(2)數據倉庫

數據倉庫更適合在線分析處理(OLAP)應用。數據倉庫提供了對海量結構化數據的快速聚合功能。

雖然這些技術(如Amazon Redshift、Netezza和Teradata)旨在快速執行復雜的聚合查詢,但它們并沒有針對大量并發寫入進行過優化。所以,數據需要分批加載,使得倉庫無法在熱數據上提供實時洞察。

現代數據倉庫使用列式存儲來提升查詢性能,例如Amazon Redshift、Snowflake和google Big Query。得益于列式存儲,這些數據倉庫提供了非??斓牟樵兯俣?,提高了I/O效率。

除此之外,Amazon Redshift等數據倉庫系統還通過在多個節點上并行查詢以及大規模并行處理(MPP)來提高查詢性能。

數據倉庫是中央存儲庫,可以存儲來自一個或多個數據庫的累積數據。它們存儲當前和歷史數據,用于創建業務數據的分析報告。

雖然,數據倉庫集中存儲來自多個系統的數據,但它們不能被視為數據湖。數據倉庫只能處理結構化的關系型數據,而數據湖則可以同時處理結構化的關系型數據和非結構化的數據,如JSON、日志和CSV數據。

Amazon Redshift等數據倉庫解決方案可以處理PB級的數據,并提供解耦的計算和存儲功能,以節省成本。

除了列式存儲外,Redshift還使用數據編碼、數據分布和區域映射來提高查詢性能。比較傳統的基于行的數據倉庫解決方案包括Netezza、Teradata和Greenplum。

2、NoSQL數據庫

NoSQL數據庫(如Dynamo DB、Cassandra和Mongo DB)可以解決在關系型數據庫中經常遇到的伸縮和性能挑戰。顧名思義,NoSQL表示非關系型數據庫。NoSQL數據庫儲存的數據沒有明確結構機制連接不同表中的數據(沒有連接、外鍵,也不具備范式)。

NoSQL運用了多種數據模型,包括列式、鍵值、搜索、文檔和圖模型。NoSQL數據庫提供可伸縮的性能、具有高可用性和韌性。

NoSQL通常沒有嚴格的數據庫模式,每條記錄都可以有任意數量的列(屬性),這意味著某一行可以有4列,而同一個表中的另一行可以有10列。分區鍵用于檢索包含相關屬性的值或文檔。

NoSQL數據庫是高度分布式的,可以復制。NoSQL數據庫非常耐用,高可用的同時不會出現性能問題。

SQL數據庫已經存在了幾十年,大多數人可能已經非常熟悉關系型數據庫。我們來看SQL數據庫和NoSQL數據庫之間的一些重大區別(見表1)。

讀懂數據存儲的六種技術,一篇就夠了

表1 SQL數據庫和NoSQL數據庫的區別

根據數據特點,市面上有各種類別的NoSQL數據存儲來解決特定的問題。我們來看NoSQL數據庫的類型。

3、NoSQL數據庫類型

NoSQL數據庫的主要類型如下:

  • 列式數據庫:Apache Cassandra和Apache HBase是流行的列式數據庫。列式數據存儲有助于在查詢數據時掃描某一列,而不是掃描整行。如果物品表有10列100萬行,而你想查詢庫存中某一物品的數量,那么列式數據庫只會將查詢應用于物品數量列,不需要掃描整個表。

 

  • 文檔數據庫:最流行的文檔數據庫有MongoDB、Couchbase、MarkLogic、Dynamo DB和Cassandra??梢允褂梦臋n數據庫來存儲JSON和XML格式的半結構化數據。

 

  • 圖數據庫:流行的圖數據庫包括Amazon Neptune、JanusGraph、TinkerPop、Neo4j、OrientDB、GraphDB和Spark上的GraphX。圖數據庫存儲頂點和頂點之間的鏈接(稱為邊)。圖可以建立在關系型和非關系型數據庫上。

 

  • 內存式鍵值存儲:最流行的內存式鍵值存儲是Redis和Memcached。它們將數據存儲在內存中,用于數據讀取頻率高的場景。應用程序的查詢首先會轉到內存數據庫,如果數據在緩存中可用,則不會沖擊主數據庫。內存數據庫很適合存儲用戶會話信息,這些數據會導致復雜的查詢和頻繁的請求數據,如用戶資料。

NoSQL有很多用例,但要建立數據搜索服務,需要對所有數據建立索引。

4、搜索數據存儲

Elasticsearch是大數據場景(如點擊流和日志分析)最受歡迎的搜索引擎之一。搜索引擎能很好地支持對具有任意數量的屬性(包括字符串令牌)的溫數據進行臨時查詢。Elasticsearch非常流行。一般的二進制或對象存儲適用于非結構化、不可索引和其他沒有專業工具能理解其格式的數據。

Amazon Elasticsearch Service管理Elasticsearch集群,并提供API訪問。它還提供了Kibana作為可視化工具,對Elasticsearch集群中的存儲的索引數據進行搜索。

AWS管理集群的容量、伸縮和補丁,省去了運維開銷。日志搜索和分析是常見的大數據應用場景,Elasticsearch可以幫助你分析來自網站、服務器、物聯網傳感器的日志數據。

Elasticsearch被大量的行業應用使用,如銀行、游戲、營銷、應用監控、廣告技術、欺詐檢測、推薦和物聯網等。

5、非結構化數據存儲

當你有非結構化數據存儲的需求時,Hadoop似乎是一個完美的選擇,因為它是可擴展、可伸縮的,而且非常靈活。它可以運行在消費級設備上,擁有龐大的工具生態,而且運行起來似乎很劃算。

Hadoop采用主節點和子節點模式,數據分布在多個子節點,由主節點協調作業,對數據進行查詢運算。Hadoop系統依托于大規模并行處理(MPP),這使得它可以快速地對各種類型的數據進行查詢,無論是結構化數據還是非結構化數據。

在創建Hadoop集群時,從服務器上創建的每個子節點都會附帶一個稱為本地Hadoop分布式文件系統(HDFS)的磁盤存儲塊。

你可以使用常見的處理框架(如Hive、Ping和Spark)對存儲數據進行查詢。但是,本地磁盤上的數據只在相關實例的生命期內持久化。

如果使用Hadoop的存儲層(即HDFS)來存儲數據,那么存儲與計算將耦合在一起。增加存儲空間意味著必須增加更多的機器,這也會提高計算能力。為了獲得最大的靈活性和最佳成本效益,需要將計算和存儲分開,并將兩者獨立伸縮。

總的來說,對象存儲更適合數據湖,以經濟高效的方式存儲各種數據?;谠朴嬎愕臄祿趯ο蟠鎯Φ闹С窒?,可以靈活地將計算和存儲解耦。

6、數據湖

數據湖是結構化和非結構化數據的集中存儲庫。數據湖正在成為在集中存儲中存儲和分析大量數據的一種流行方式。它按原樣存儲數據,使用開源文件格式來實現直接分析。

由于數據可以按當前格式原樣存儲,因此不需要將數據轉換為預定義的模式,從而提高了數據攝取的速度。如圖1所示,數據湖是企業中所有數據的單一真實來源。

讀懂數據存儲的六種技術,一篇就夠了

圖1 數據湖的對象存儲

數據湖的好處如下:

  • 從各種來源攝取數據:數據湖可以讓你在一個集中的位置存儲和分析來自各種來源(如關系型、非關系型數據庫以及流)的數據,以產生單一的真實來源。它解答了一些問題,例如,為什么數據分布在多個地方?單一真實來源在哪里?

 

  • 采集并高效存儲數據:數據湖可以攝取任何類型的數據,包括半結構化和非結構化數據,不需要任何模式。這就回答了如何從各種來源、各種格式的數據中快速攝取數據,并高效地進行大規模存儲的問題。

 

  • 隨著產生的數據量不斷擴展:數據湖允許你將存儲層和計算層分開,對每個組件分別伸縮。這就回答了如何隨著產生的數據量進行伸縮的問題。

 

  • 將分析方法應用于不同來源的數據:通過數據湖,你可以在讀取時確定數據模式,并對從不同資源收集的數據創建集中的數據目錄。這使你能夠隨時、快速地對數據進行分析。這回答了是否能將多種分析和處理框架應用于相同的數據的問題。

你需要為數據湖提供一個能無限伸縮的數據存儲解決方案。將處理和存儲解耦會帶來巨大的好處,包括能夠使用各種工具處理和分析相同的數據。

雖然這可能需要一個額外的步驟將數據加載到對應工具中,但使用Amazon S3作為中央數據存儲比傳統存儲方案有更多的好處。

數據湖還有其他好處。它能讓你的架構永不過時。假設12個月后,可能會有你想要使用的新技術。因為數據已經存在于數據湖,你可以以最小的開銷將這種新技術插入工作流程中。

通過在大數據處理流水線中構建模塊化系統,將AWS S3等通用對象存儲作為主干,當特定模塊不再適用或有更好的工具時,可以自如地替換。

分享到:
標簽:數據存儲
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定