亚洲直播在线一区_国产免费一区二区三区_在线观看h片_日韩三级在线免费观看_亚洲精品乱码日韩_自拍视频在线看_国产精品剧情在线亚洲_精品一区二区三区国产_丝袜美腿诱惑一区二区三区_欧美区一区二区三区_www.av99_亚洲国产日韩欧美在线

你好,游客 登錄 注冊 搜索
背景:
閱讀新聞

解析四種大數據文件格式

[日期:2019-11-18] 來源:51CTO.com  作者:陳峻編譯 [字體: ]

 

 

在本文中,我們將通過Apache Spark,來向您介紹上述四種大數據文件格式的各種屬性,及其優缺點比較。

 

【線上直播】11月21日晚8點貝殼技術總監侯圣文《數據安全之數據庫安全黃金法則》

【51CTO.com快譯】眾所周知,Apache Spark支持許多種不同的數據格式,其中包括:無處不在的CSV格式、對于Web友好的JSON格式、以及常被用于大數據分析的Apache Parquet和Apache Avro。

解析四種大數據文件格式

 

在本文中,我們將通過Apache Spark,來向您介紹上述四種大數據文件格式的各種屬性,及其優缺點比較。

1、CSV

CSV(Comma-Separated Values,逗號分隔值)文件,通常被用于在使用純文本的系統之間,交換表格類型的數據。CSV是一種基于行的文件格式。也就是說,此類文件中的每一行都對應到數據表中的具體某一行。通常,CSV文件里包含有一個標題行,該標題行提供了數據的列名。如果沒有標題行的話,該文件將被視為已部分完成了結構化工作。

單個CSV文件往往無法顯示層次化的結構、或數據關系。而具體的數據連接關系往往需要通常多個CSV文件進行組織。各種外鍵(Foreign key)一般被存儲在一個或多個文件的多個列中。不過這些文件之間的鏈接并非由其格式本身來表示。此外,由于并未完全標準化,因此在CSV格式文件中,您可以使用逗號以外的界定符,例如:制表符(tabs)或空格。

CSV文件的另一個特性是:只有處于未壓縮的原始文件狀態、或是運用諸如bzip2(https://en.wikipedia.org/wiki/Bzip2)或lzo(https://ru.wikipedia.org/wiki/LZO)之類的解壓縮工具時,CSV文件才能夠被拆分(注意:lzo需要進行索引之后,方可執行拆分)。

優點:

  • CSV易于人工閱讀,也易于手動編輯。
  • CSV提供了一種簡單明了的信息模式(schema)。
  • 幾乎所有現有的應用程序都能夠處理CSV文件。
  • CSV文件比較易于實現和解析。
  • 對于XML而言,您需要在每一行的每一列中分別添加開始與結束標簽;而CSV比較簡約,您只需一次性寫入列標題即可。

缺點:

  • 由于處置的是平面數據,因此需要事先對復雜的數據結構進行格式上的轉換。
  • 由于不支持列的類型,因此在文本列和數字列之間并無區別。
  • 并無表示二進制數據的標準方法。
  • 由于NULL和引號之間并無區別,因此導入CSV時可能會出現問題。
  • 對于特殊字符的支持性較差。
  • 缺乏通用的標準。

盡管存在著一定的局限性,但CSV文件仍然是數據共享領域的上乘之選。它經常被廣泛地用于各類業務應用、消費者行業、以及科學分析程序中。當前,大多數批處理和流數據處理模塊(如Spark和Hadoop),都能夠支持CSV文件的序列化與反序列化。它們在讀取時提供了添加schema的方法。

2、JSON格式

JSON數據(JavaScript object notation,對象表示法)是以部分結構化的格式,表示各種鍵值(key-value)對。與XML不同,JSON通常可以按照分層的格式存儲數據,即:子數據可以由父數據來顯示。而與XML相同的是,它們在格式上都具有自我描述性(self-describing),可以被用戶直接讀取。不過,JSON文檔通常要小得多。隨著基于REST的Web服務的大量出現,JSON文檔被頻繁地使用在網絡通信中。

由于許多類型的數據傳輸都已經用到了JSON格式,因此目前大多數的Web編程語言都能夠支持JSON,或者通過使用外部庫,來對JSON數據進行序列化和反序列化。正是有了這種支持,JSON能夠通過顯示數據結構,幫助用戶實現熱數據(hot data)的格式轉換、以及冷數據(cold data)存儲所涉及到的各種邏輯格式。

目前,許多批處理與流數據處理模塊,都能夠原生地支持JSON的序列化和反序列化。JSON文檔中包含的數據,不但最終能夠以性能更為優化的格式(如Parquet或Avro)予以存儲,而且JSON所提供的原始數據類型,對于按需進行數據重新處理的任務也是非常重要的。

JSON文件具有如下優點:

  • JSON支持分層式結構,簡化了文檔中有關數據的存儲,以及復雜關系的表示問題。
  • 大多數編程語言都能夠提供簡化的JSON序列化庫,并且能夠對JSON序列化/反序列化提供內置的支持。
  • JSON支持對象列表,能夠有助于避免將對象列表錯誤地轉換為關系型數據模型。
  • 諸如MongoDB、Couchbase和Azure Cosmos DB等NoSQL數據庫,都能夠支持JSON文件格式。
  • 目前大多數工具都內置了對于JSON的支持。

3、Parquet

Cloudera和Twitter于2013年開發出了Parquet。它可以被用作基于列的存儲格式,并針對多列數據集進行了適當地優化。由于其數據是按列進行存儲的,因此它可以對數據進行高度壓縮(其壓縮算法對于那些包含在列中的、信息熵值較低的數據,效果會更好),以及拆分操作。Parquet的開發者號稱:此類存儲格式非常適合于處理大數據的相關問題。

與CSV和JSON不同,Parquet是一種二進制文件,其中包含了各種針對其內容的元數據(metadata)。因此,在無需讀取與解析文件內容的情況下,Spark可以僅依靠元數據來確定文件中的列名稱、壓縮/編碼方式、數據類型、乃至一些基本的統計類信息。另外,由于Parquet文件的列相關元數據通常被存儲在文件的末尾,因此方便了用戶一次性快速地寫入信息。同時,Parquet針對WORM(Write Once Read Many,一次寫入多次讀取,請參見)的范例也進行了優化。雖然在寫入文件其速度較慢,但是用戶在讀取時,尤其是僅訪問某個列的子集時,速度卻快得驚人??梢?,對于那些需要大量進行讀取操作的工作負載而言,Parquet是一種不錯的選擇。而對于需要操作整行數據的用例而言,用戶則應當使用CSV或AVRO之類的格式。

Parquet在數據存儲方面的優點包括:

  • 由于是一種柱狀結構的形式,因此Parquet只會讀取所需的列信息,進而減少了對于磁盤I/O的消耗。這個概念被稱為投影下推(projection pushdown)。
  • 由于schema是隨著數據一起移動的,因此數據能夠自我描述(self-describing)。
  • 雖然主要是為HDFS而創建的,但是其數據完全可以被存儲在GlusterFs或NFS之類的其他文件系統中。
  • 作為一個文件,您可以輕松地對Parquet進行移動、備份、復制、以及使用。
  • 能夠對Spark提供開箱即用式的原生支持,能夠對于用戶存儲中的文件直接進行讀取與保存。
  • 當采用諸如snappy之類的壓縮格式時,Parquet可以達到75%的高壓縮比。
  • 在實際運用中,與同類其他文件格式相比,該格式讀取工作流的速度最快。
  • Parquet非常適合于那些需要對大量數據進行列匯總的數據倉庫類應用。
  • 可以通過Avro API和Avro Schema來讀取和寫入Parquet。
  • 通過提供謂詞下推(predicate pushdown),Parquet可以進一步降低磁盤I/O的成本。

謂詞下推/過濾下推

謂詞下推的基本思想是:將查詢的某些部分(如:謂詞)“推送”到數據的存儲位置。例如,當我們提供一些過濾條件時,數據存儲將會以過濾記錄的方式,再從磁盤中讀取數據。

謂詞下推的優點:由于不再需要將整個數據讀入內存并進行過濾,因此它并不需要大量的內存,也不會產生過多的磁盤I/O。顯然整體性能得到了顯著提升。

可見,此類方法可以通過較早地過濾掉無關數據的方式,來大幅減少查詢與處理的時間。根據處理框架的不同,謂詞下推可以通過執行不同的操作來優化查詢。例如:在通過網絡傳輸之前便過濾數據,在將數據加載到內存之前過濾數據,或是跳過讀取整個文件(文件塊)等操作。

目前,大多數RDBMS,包括Parquet和ORC等大數據存儲格式,都能夠遵循謂詞下推的相關概念。

投影下推

解析四種大數據文件格式

 

投影下推的基本思想是:在對存儲進行數據查詢與讀取時,并非讀取所有字段,而只是讀取那些必需的列。通常,Parquets和ORC之類的列格式都能夠通過遵循此概念,以產生更好的I/O性能。

4、Avro

由Hadoop工作組于2009年發布的Apache Avro,是一種基于行的、可高度拆分的數據格式。Avro能夠支持多種編程語言。通常,它也被描述為類似于Java序列化的數據序列化系統。為了最大程度地減小文件大小、并提高效率,它將schema存儲為JSON格式,而將數據存儲為二進制格式。

Avro通過管理各種添加、丟失、以及已更改的字段,來為schema的演化提供強大的支持。這使得舊的軟件可以讀取新的數據,而新的軟件也可以讀取那些舊的數據。而這對于那些經常發生變更的數據而言,是非常重要的。

Avro通過schema架構的管理能力,可以在不同的時段獨立地更新不同的組件,從而降低了不兼容性所帶來的風險。同時,開發人員既不必在應用程序中編寫if-else語句,來應對不同的架構版本,也不必通過查看舊的代碼,來理解那些舊的架構。而且,所有版本的schema都存儲在可讀的JSON標頭中,以方便開發人員理解所有可用的字段。

如前文所述,由于schema是以JSON格式存儲的,而數據是以二進制形式存儲的,因此Avro是持久性數據存儲和電傳(wire transfer)的簡約之選。另外,由于用戶能夠輕松地向Avro附加新的數據行,因此它通常是那些大量寫入工作負載的首選格式。

優點:

  • Avro是一種與語言無關的數據序列化。
  • Avro將schema存儲在文件的標題中,因此數據具有自描述性。
  • Avro格式的文件既可以被拆分、又可以被壓縮,因此非常適合于在Hadoop生態系統中進行數據的存儲。
  • 由于Avro文件將負責讀取的schema與負責寫入的schema區分開來,因此它可以獨立地添加新的字段。
  • 與序列文件(Sequence Files)相同,為了實現高度可拆分性,Avro文件也包含了用于分隔不同塊(block)的同步標記。
  • 可以使用諸如snappy之類的壓縮格式,來壓縮不同的目標塊。

總結

下表是上述四種文件格式的綜合比較。

解析四種大數據文件格式

 

上表中的*號為:當作為CSV被壓縮時,JSON具有可拆分性方面的類似問題。也就是說:當“wholeFile”選項被設置為true時(請參閱SPARK-18352),JSON是不可拆分的。

  • CSV有著最快的寫入速度;JSON方便了人工閱讀和理解;Parquet在讀取列的子集方面速度最快;而Avro在一次性讀取所有列方面速度最快。
  • JSON是Web通信方面的標準。通過定義良好的schema,各種API和網站可以持續使用JSON進行通信。
  • 針對大數據的需求,Parquet和Avro進行了可拆分性方面的優化,可支持各種壓縮,以及復雜數據結構。不過,它們的可讀性和寫入速度非常差。

原文標題:Big Data File Formats Explained,作者:luminousmen

推薦 打印 | 錄入:admin | 閱讀:
本文評論   
評論聲明
  • 尊重網上道德,遵守中華人民共和國的各項有關法律法規
  • 承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
  • 本站管理人員有權保留或刪除其管轄留言中的任意內容
  • 本站有權在網站內轉載或引用您的評論
  • 參與本評論即表明您已經閱讀并接受上述條款
-->
huan性巨大欧美| 黑鬼大战白妞高潮喷白浆| 日韩三区免费| 在线观看欧美黄色| 99re在线视频免费观看| 久久se这里有精品| 成人在线观看91| 国产一区网站| 色综合老司机第九色激情| 欧美18av| 亚洲黄色av女优在线观看 | 精品国产影院| 中文字幕亚洲二区| 日韩性xxx| 日韩经典中文字幕在线观看| h片在线观看下载| 精品捆绑美女sm三区| 国产精品实拍| 色94色欧美sute亚洲线路一久| 免费av片风间由美在线| 国产精品国产馆在线真实露脸 | 黄色a级片免费看| 中文字幕理伦片免费看| 国内精品伊人久久久久影院对白| 国产不卡一区二区在线播放| 欧美日韩卡一| 亚洲片av在线| 粉嫩一区二区| 欧美草草影院在线视频| 视频三区在线| 91麻豆精品国产91| 国产在线观看免费麻豆| 日韩午夜激情免费电影| 牛牛精品在线| 亚洲久久久久久久久久| 欧美色网在线| 久久久国产一区二区三区| 日韩精品第二页| 色噜噜久久综合伊人一本| 亚洲四虎影院| 欧美wwwxxxx| 成人直播在线观看| 国产精品人成电影在线观看| 91国语精品自产拍| 久久国产精品久久| 免费在线观看精品| 热久久最新网址| 99在线热播精品免费| 久久久av一区| 国产精品久久久久影视| 免费黄色日本网站| av电影在线观看一区| 日韩久久一级片| 日韩一区欧美小说| 桃乃木香奈av在线| 欧美在线免费观看亚洲| 日韩三级免费| 综合国产在线视频| 综合伊人久久| 成人网页在线免费观看| 99在线|亚洲一区二区| 亚洲精品中文字幕乱码三区不卡| 国产精品一区二区你懂的| 国产91对白刺激露脸在线观看| 国产清纯在线一区二区www| 日本女优天堂99伊人| 欧美日韩在线播放一区| 在线观看涩涩| 韩国v欧美v日本v亚洲| 一区二区在线| 欧美性受xxxx黑人猛交88| heyzo一本久久综合| 香蕉自在线视频| 亚洲黄色www| 小说区图片区色综合区| 久久精品国产一区二区三区不卡| 成人爽a毛片一区二区免费| 日本亚洲天堂| 亚洲成人网在线观看| 7777精品| 国精产品99永久一区一区| 成人午夜视频在线| 久草视频在线播放| 欧美不卡一区二区三区| 国产精品qvod| 久久综合给合久久狠狠色| 久久麻豆一区二区| 黄色av网站在线| 久久精品一本久久99精品| 久久久五月天| 国产主播自拍av| 在线免费观看不卡av| 国产高清亚洲| 久久99久久精品国产| 欧美国产一区二区在线观看 | 一区二区视频在线看| 97超碰资源站在线观看| 538国产精品视频一区二区| 美女网站视频久久| 在线免费中文字幕| 播播国产欧美激情| 国产欧美69| 嫩草影院网站在线| www.精品av.com| 亚洲专区欧美专区| 最近中文字幕mv第三季歌词| 中文字幕日韩欧美精品在线观看| 黄色成人在线网站| 爱爱永久免费视频| 一区二区三区黄色| 国产一区91| 日本黄在线观看| 91精品国产91久久| 成人av免费在线| 国产啊啊啊视频在线观看| 51国偷自产一区二区三区| 中文字幕av一区二区三区免费看| 午夜羞羞小视频在线观看| 国产精品主播视频| 国产精品美女视频| 国产精品字幕| 亚洲精品一区二| 欧美日韩亚州综合| 成人午夜国产| 又黄又免费的网站| 欧美精品一本久久男人的天堂| 丝袜亚洲另类丝袜在线| 九九在线视频| 国产精品在线看| 亚洲黄一区二区三区| 国产三级精品三级在线观看国产| 免费一级特黄特色毛片久久看| 精品国偷自产国产一区| 国产欧美日韩一级| 岛国在线视频| 91香蕉视频在线下载| 亚洲成人综合网站| 波多野结衣在线播放一区| av免费播放| 国产成一区二区| 亚洲欧洲综合另类在线 | 欧美午夜不卡在线观看免费| 国产一区二区三区四区二区| 国产三级视频| **欧美日韩vr在线| 亚洲色大成网站www久久九九| 91精品啪在线观看国产爱臀| 精品在线观看免费| 免费观看日韩毛片| 综合国产在线视频| 国产美女在线精品| 欧美日韩成人影院| 青青青在线观看视频| 夜夜嗨av色综合久久久综合网| 九九久久精品视频| 亚洲精品555| 看欧美ab黄色大片视频免费| 97国产精品视频| 亚洲妇熟xx妇色黄| 黄色国产精品| 欧美14一18处毛片| 污污污污污污www网站免费| 在线观看日韩专区| 国产亚洲一二三区| 国产欧美一区二区三区精品观看| 在线色视频观看| 国产精品亚洲一区| 亚洲第一av网| 久久影院午夜论| 成人影院天天5g天天爽无毒影院| 夜鲁很鲁在线视频| 欧美日本亚洲| 日韩在线观看免费高清完整版| 日本一区二区成人| 999精品一区| 色yeye免费人成网站在线观看| 波多野结衣与黑人| 欧美高清视频在线播放| 亚洲午夜精品一区二区三区他趣| 午夜日韩av| 韩国美女久久| 男人的天堂www| 国产高清自拍一区| 久久久精品性| 激情久久中文字幕| 国产精品久久麻豆| av在线综合网| 亚洲精品一二三**| 在线国产小视频| 你懂的视频在线一区二区| 日韩电视剧免费观看网站| 久久久久久久久一| 中文在线播放一区二区| 婷婷电影在线观看| 国产成人午夜精品| 久久久影院一区二区三区| 日韩中文字幕免费| 欧美日韩亚洲网| 国产精品一品二品| 日韩在线高清|