比較 Apache Hadoop 資料儲存格式 - techwell
Apache Hadoop將資料儲存在 Hadoop 分散式檔案系統 (HDFS) 中。資料可以採用多種受支援的檔案格式。
要比較它們,請詢問有關它們的屬性的一些問題:
- 查詢檔案格式有多容易?查詢時間不應產生太多延遲
- 序列化檔案格式有多容易?資料序列化不應產生太多延遲
- 檔案格式是否可拆分?資料在處理過程中被多次拆分
- 檔案格式是否支援壓縮?
文字檔案
檔案被分成幾行。行尾用回車 (\r) 或換行 (\n) 表示。鍵是檔案中的位置,值是文字行。如果儲存在 HDFS 中的資料需要以文字格式(例如電子郵件)易於訪問,請使用文字檔案。
文字檔案是可拆分的。它們可能相對龐大,因為它們不支援塊壓縮,因此查詢可能不如其他一些格式有效。對於壓縮,請使用支援拆分的檔案級壓縮編解碼器,例如 BZip2。
序列檔案
序列檔案將資料按行儲存為二進位制鍵/值對。二進位制格式使其小於文字檔案。序列檔案是可拆分的。
支援三種不同的序列檔案格式:
- 未壓縮
- 記錄壓縮——僅壓縮值
- 塊壓縮——鍵和值都被壓縮
與文字格式相比的一個優點是序列檔案格式支援塊壓縮,或單獨壓縮 HDFS 塊,塊是資料的最小單位。塊壓縮可以拆分 MapReduce 處理中使用的資料。
Avro 檔案
Avro 是一種緊湊、快速、基於行的二進位制資料格式。Avro 適合儲存複雜資料,因為它是一個基於模式的資料序列化系統。模式與資料一起編碼,因此 Avro 資料是自描述的。
序列檔案可用於儲存複雜資料,但它不是自描述的,資料的複雜性必須用資料標記,這使得序列檔案的序列化和反序列化比 Avro 慢,用於複雜資料結構。單獨的模式更容易編碼和解碼。
Avro 還支援塊壓縮以簡化資料拆分。
Parquet檔案
Parquet 是一種二進位制列式儲存格式。不是儲存相鄰的行,而是將相鄰的資料列儲存在一起,這在大多數查詢都針對資料子集的情況下特別有用。僅獲取所需的列資料,因此比必須掃描資料行以查詢子集更有效。這也是一個優勢,因為列資料是相似的資料,壓縮相似的資料效率更高,儲存空間更小。
Parquet 可能不適合 MapReduce 處理,因為它使用了完整的資料集。Parquet 適用於 Apache Hive 對資料子集的查詢。
何時使用哪種檔案格式
除了文字檔案之外,所有常用的 Hadoop 儲存格式都是二進位制的。使用文字檔案格式進行簡單儲存,例如 CSV 和電子郵件。對 MapReduce 處理的資料使用序列檔案。將 Avro 用於複雜的資料結構。對子集查詢的資料使用 Parquet,例如 Hive 中的資料倉儲。
相關文章
- Apache Hadoop Yarn與Kubernetes比較選擇 - codehunterApacheHadoopYarn
- 資料湖倉比較:Apache Hudi、Delta Lake、Apache IcebergApache
- redis-5.資料儲存格式Redis
- 多語言永續性與資料儲存比較綜述
- Apache Sqoop與Apache Flume比較ApacheOOP
- 原來大資料 Hadoop 是這樣儲存資料的大資料Hadoop
- 儲存結構的種類與比較
- 資料湖表格式比較(Iceberg、Hudi 和 Delta Lake)
- 探索多種資料格式:JSON、YAML、XML、CSV等資料格式詳解與比較JSONYAMLXML
- 基於Hadoop生態系統的一種高效能資料儲存格式CarbonData(效能篇)Hadoop
- 儲存解決方案DAS、NAS與SAN比較
- 大資料入門課程:Hadoop和spark的效能比較大資料HadoopSpark
- Bond——大資料時代的資料交換和儲存格式大資料
- 幾種非易失性儲存器的比較
- 資料儲存--檔案儲存
- 從 RAID 到 Hadoop Hdfs 『大資料儲存的進化史』AIHadoop大資料
- Hadoop環境中管理大資料儲存八大技巧Hadoop大資料
- 在Hadoop環境中,大資料儲存的技巧有哪些?Hadoop大資料
- electron-store會將資料儲存為什麼格式
- 三種大資料流處理框架選擇比較:Apache Kafka流、Apache Spark流和Apache Flink - quora大資料框架ApacheKafkaSpark
- 資料儲存(1):從資料儲存看人類文明-資料儲存器發展歷程
- 大資料檔案格式比較:AVRO vs. PARQUET vs. ORC大資料VR
- 大資料儲存系統對比:Ceph VS Gluster大資料
- 主流資料庫比較資料庫
- 圖資料庫比較資料庫
- Oracle基本資料型別儲存格式淺析——RAW型別Oracle資料型別
- Python匯入Excel表格資料並以字典dict格式儲存PythonExcel
- hadoop異構儲存+lucene索引Hadoop索引
- TiDB資料儲存TiDB
- 資料儲存:CoreData
- iOS 資料儲存iOS
- Mysql 行的儲存格式MySql
- Nebula Storage 2.0 儲存格式
- hive檔案儲存格式Hive
- 簡單比較 Apache Kafka 和 Apache Pulsar要點 - JaroslawApacheKafkaJARROS
- oracle使用儲存過程將表資料以excel格式匯出Oracle儲存過程Excel
- Kafka-之資料日誌儲存(格式變化與壓縮)Kafka
- Flutter持久化儲存之資料庫儲存Flutter持久化資料庫