99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-10-22 閱讀量: 1279
文件格式存儲(chǔ)和處理數(shù)據(jù)有哪些?

  設(shè)計(jì)決策的關(guān)鍵之一是基于以下方面關(guān)注文件格式:

使用模式,例如訪問50列中的5列,而不是訪問大多數(shù)列。

可并行處理的可分裂性。

塊壓縮節(jié)省存儲(chǔ)空間vs讀/寫/傳輸性能

模式演化以添加字段,修改字段和重命名字段。

  CSV文件

  CSV文件通常用于在Hadoop和外部系統(tǒng)之間交換數(shù)據(jù)。CSV是可讀和可解析的。 CSV可以方便地用于從數(shù)據(jù)庫到Hadoop或到分析數(shù)據(jù)庫的批量加載。在Hadoop中使用CSV文件時(shí),不包括頁眉或頁腳行。文件的每一行都應(yīng)包含記錄。CSV文件對模式評估的支持是有限的,因?yàn)樾伦侄沃荒芨郊拥接涗浀慕Y(jié)尾,并且現(xiàn)有字段不能受到限制。CSV文件不支持塊壓縮,因此壓縮CSV文件會(huì)有明顯的讀取性能成本。

  JSON文件

  JSON記錄與JSON文件不同;每一行都是其JSON記錄。由于JSON將模式和數(shù)據(jù)一起存儲(chǔ)在每個(gè)記錄中,因此它能夠?qū)崿F(xiàn)完整的模式演進(jìn)和可拆分性。此外,JSON文件不支持塊級壓縮。

  序列文件

  序列文件以與CSV文件類似的結(jié)構(gòu)用二進(jìn)制格式存儲(chǔ)數(shù)據(jù)。像CSV一樣,序列文件不存儲(chǔ)元數(shù)據(jù),因此只有模式進(jìn)化才將新字段附加到記錄的末尾。與CSV文件不同,序列文件確實(shí)支持塊壓縮。序列文件也是可拆分的。序列文件可以用于解決“小文件問題”,方式是通過組合較小的通過存儲(chǔ)文件名作為鍵和文件內(nèi)容作為值的XML文件。由于讀取序列文件的復(fù)雜性,它們更適合用于在飛行中的(即中間的)數(shù)據(jù)存儲(chǔ)。

注意:序列文件是以Java為中心的,不能跨平臺使用。

  Avro文件

  適合于有模式的長期存儲(chǔ)。Avro文件存儲(chǔ)具有數(shù)據(jù)的元數(shù)據(jù),但也允許指定用于讀取文件的獨(dú)立模式。啟用完全的模式進(jìn)化支持,允許你通過定義新的獨(dú)立模式重命名、添加和刪除字段以及更改字段的數(shù)據(jù)類型。Avro文件以JSON格式定義模式,數(shù)據(jù)將采用二進(jìn)制JSON格式。Avro文件也是可拆分的,并支持塊壓縮。更適合需要行級訪問的使用模式。這意味著查詢該行中的所有列。不適用于行有50+列,但使用模式只需要訪問10個(gè)或更少的列。Parquet文件格式更適合這個(gè)列訪問使用模式。

  Columnar格式,例如RCFile,ORC

  RDBM以面向行的方式存儲(chǔ)記錄,因?yàn)檫@對于需要在獲取許多列的記錄的情況下是高效的。如果在向磁盤寫入記錄時(shí)已知所有列值,則面向行的寫也是有效的。但是這種方法不能有效地獲取行中的僅10%的列或者在寫入時(shí)所有列值都不知道的情況。這是Columnar文件更有意義的地方。所以Columnar格式在以下情況下工作良好

在不屬于查詢的列上跳過I / O和解壓縮

用于僅訪問列的一小部分的查詢。

用于數(shù)據(jù)倉庫型應(yīng)用程序,其中用戶想要在大量記錄上聚合某些列。

  RC和ORC格式是專門用Hive寫的而不是通用作為Parquet。

  Parquet文件

  Parquet文件是一個(gè)columnar文件,如RC和ORC。Parquet文件支持塊壓縮并針對查詢性能進(jìn)行了優(yōu)化,可以從50多個(gè)列記錄中選擇10個(gè)或更少的列。Parquet文件寫入性能比非columnar文件格式慢。Parquet通過允許在最后添加新列,還支持有限的模式演變。Parquet可以使用Avro API和Avro架構(gòu)進(jìn)行讀寫。

  所以,總而言之,相對于其他,你應(yīng)該會(huì)更喜歡序列,Avro和Parquet文件格式;序列文件用于原始和中間存儲(chǔ),Avro和Parquet文件用于處理。

0.0000
1
關(guān)注作者
收藏
評論(0)

發(fā)表評論

暫無數(shù)據(jù)
推薦帖子