--Hive大規模なデータファイルの保存形式

、ハイブファイルの保存形式

主記憶形式の数のハイブサポート:TEXTFILE、SEQUENCEFILE、ORC、PARQUET。

 

 

 

左の図は、第1のラインメモリ、第二の記憶列の右の論理表です。

メモリ機能の行は: のみ休止位相値であり、値を見つけるために必要な条件が満たされた場合、ストレージ列が各列及び行メモリの集約各フィールドの値を見つけるために必要とされるデータの行全体を照会しますOの場所は、のように、この速度線ストアが速く照会します。

列ストレージ機能: 収集されたデータは、各フィールドに格納されるため、クエリが大幅に読み取られたデータの量を減らすことができ、時間に一部のフィールドだけをとり、各フィールドのデータ型が柱状ストレージで同じである必要がありますすることができます圧縮アルゴリズムの優れたデザイン。

ORC PARQUETとストレージ列に基づいて、TEXTFILE SEQUENCEFILEおよび記憶フォーマットを記憶列に基づいています。

1、行ストレージフォーマットテキストファイル

デフォルトのフォーマット、データが圧縮されていない、大きなディスクオーバーヘッドは、大規模なデータは、オーバーヘッドを解析します。組み合わせることが可能でgzipは、Bzip2では使用されるが、gzipは、ハイブがデータをセグメント化することはできません。この実施形態では、並列に動作することができないデータを使用します。

2、列フォーマット記憶オーク

オーク(最適化された行柱状)はハイブ0.11版が導入された新しいストレージ・フォーマットです。

オークは、これは、実際のストライプRowGroupの概念に対応し、一本の以上のストライプ、各stripe250MBサイズで各ドキュメントを見ることができますが、4MB-> 250メガバイトのサイズは、この配列は、スループットを向上させることができますお読みください。各ストライプ三つの部分、すなわち、インデックスデータ、行データ、ストライプフッターがあります。

 

 

 1)インデックスデータ:軽量インデックス、デフォルトではインデックスを行うには、すべての1W OKです。ここでは、インデックスを行うには行データのオフセット行のフィールドだけを記録する必要があります。

    2)行データ:特定のデータが格納され、ラインの最初の部分を取り、これらの線は、カラム、次いで格納されています。各列は、それが格納されたストリームに分割され、符号化されます。

    3)ストライプフッタ:各ストリームは、タイプ、長さ、およびその他の情報が格納されます。

各ファイルは、ストライプあたりの行の数が格納され、ファイルフッタを有し、各列等のデータ種別情報、各ファイルの尾部は、圧縮されたファイルタイプとFileFooterの全体が記録されたPostScriptれます長さ情報。ファイルを読み込むとき、それはファイルの末尾にシークするファイルフッタの長さを解決するために、内側から、ポストスクリプトを読み取り、FileFooterを読み取り、各リード各情報ストライプ、ストライプに内側から解析された、すなわち、後方から読み出します。

--------------------------------------------

図3に示すように、列が格納フォーマット寄木細工

寄木細工は、からの分析サービスのための柱状の保存形式でツイッター Clouderaの開発協力、 2015 インディアン 5 から月のApache などの大学院でのインキュベーター Apacheのトップレベルプロジェクト。

寄木細工のファイルをバイナリに格納され、ファイルのデータおよびメタデータを含む直接読み取り可能なファイルではない、そう寄せ木フォーマットから解析されます。

一般に、データ処理の各マッパータスクの最小単位は、マッパータスク処理からなる各行グループを置くことができるブロックであるため、データは、ブロックサイズ設定線群の大きさに応じてなり、典型的には、メモリ寄木張り、タスク実行並列性を向上させます。以下に示すように寄木細工のファイルフォーマット。

 

 

図は、ファイルが行複数のグループに格納することができる、寄せ木ファイルの内容を示し、最初のファイルは、ファイル寄せ木、フッタ長はファイルのメタデータを記録するかどうかを検証するために使用されるファイルマジックコードでありますサイズは、オフセットメタデータと文書の長さの値により算出することができる、メタデータファイルは、各行グループスキーマメタデータ情報と格納されたデータファイルの情報を含みます。ページデータ、辞書やインデックスページ:ファイルの各行グループのメタデータに加えて、メタデータは寄木張りで、各ページのページを始めて保存され、ページの3つのタイプがあります。列グループの現在の行のデータ値を格納するためのページ、符号化された値の列を格納する辞書ページの辞書は、各列ブロック辞書ページの最大値を含む、索引ページは、行の現在の列の現在のグループのインデックスを格納するために使用されます寄木細工は、インデックスページをサポートしていません。

ファイルの概要を格納し、圧縮比:

ORC>寄木>テキストファイル

クエリの速度ストレージファイルの概要:類似したクエリの速度。

オークや寄木細工:、ハイブテーブル選択データ・ストレージ・フォーマット船実際のプロジェクトで。圧縮は、一般的にてきぱきと、LZOを選択してください。

 

おすすめ

転載: www.cnblogs.com/jeff190812/p/11619604.html