一つは:ハイブ何ですか
ハイブは、大規模データのためのデータウェアハウスであるSQLツールをMapReduceのに変換されます。
2:ハイブ表
テーブル、外観、ゾーニング、バレルテーブル、位置は、圧縮されたテーブルである属性は、それぞれの間には何の関係は、(テーブル外観内に存在することができない)が存在しません。つまり、テーブルのテーブルだけでなく、パーティションテーブルバケットテーブルを指定することもでき、ストレージ・パスも圧縮することができるの両方であることができます
テーブルで
実際には、テーブルには、ハイブディレクトリテーブルと関連付けられたデータにコピーされたデータは、テーブルを削除削除されます。
table_test存在しない場合は、テーブルを作成する
(
AA列
)
「\ 001」によって終了行形式区切られたフィールド
位置「/ハイブ/テーブル/ table_testを」;
ステートメント上に内部テーブルを構築することで、行は、001 \フィールド間の分割に応じて、最終的な位置データは、IN /ハイブ/テーブル/ table_testレコード格納されています。
データのロード:
table_testに挿入
table_aaからAAを選択します。
若しくは
INPATHデータロード「/ハイブ/日付/ table_test」内に上書き表table_test、(データを上書きする上書きし、除去することができます)
外部の
表では、比較的安全ではないです:それは失われた後の表は、データを削除するので。だから、別にデータとテーブルの外観は(再び低下の出現後、何もデータロードに2つのコピーを変更しません)があります。
table_test存在しない場合は、外部表を作成します
(
AA文字列
)
「\ 001」によって終了行形式区切られたフィールド
位置「/ハイブ/テーブル/ table_test」。
上記のステートメントは、建物の外観であり、行001 \フィールドとの間の分割に応じて、記録され、最終的な位置データは、IN /ハイブ/テーブル/ table_test格納されています。
データのロード:
INPATHデータロード 「/ハイブ/日付/ table_test」内に上書き 表table_test、(データを上書きする上書きし、除去することができます)
パーティションテーブル
実際には、パーティションテーブルは、別のフォルダに、フィールド内のデータを入れたデータのスキャンを減らすことです。(パーティションテーブルは、フォルダ名は、フィールドの名前であるサブフォルダです)
table_test存在しない場合は、テーブルを作成する
(
AA文字列
(日付列、時間列)によって仕切ら)
「\ 001」によって終了行形式区切られたフィールド
位置「/ハイブ/テーブル/ table_testを」;
ステートメント上の表を構築することであるが、それは、パーティションテーブル内である、行はレコードであり、\ 001、フィールド間の分割に応じて、最終的な位置データは、IN /ハイブ/テーブル/ table_test格納されています。
データのロード:
table_testパーティションに挿入(日付= 20190908、時間)
AA、table_aaから時間を選択します。
若しくは
INPATHデータロード 「/ハイブ/日付/ table_test」上書きINTO 表table_testパーティション(DATE = 20190908、12 =時間である)、(データを上書きする上書きし、それを除去することができます)
バケットリスト
バケットテーブルは、異なるファイルに入るデータのスキャンを減らすために、実際にフィールドのデータです。(ハッシュを取る日が、結果は4つの以上のファイルを取ると判断され、個人の理解ハハ)
table_test存在しない場合は、テーブルを作成する
(
AA列
4つのバケットに(日付)によってクラスタ化された)を
「\ 001」によって終了行形式区切られたフィールド
位置「/ハイブ/テーブル/ table_test」。
ステートメント上の表を構築することであるが、それはタブテーブル内にある、行は、001 \フィールド間の分割に応じて、最終的な位置データは、IN /ハイブ/テーブル/ table_testレコード格納されています。
データのロード:
table_testに挿入
AA、table_aaから日付を選択します。
若しくは
INPATHデータロード INTO上書き「/ハイブ/ DATE / table_test」 表のtable_test ;(この操作は、サブファイルの結果ではない、それは浴槽テーブルの役割を果たしていませんでした)
表の圧縮
これは、次のことが最良の選択である、伝送を減らすスペースを節約するために表圧縮の利点は言うまでもないです。
table_test存在しない場合は、テーブルを作成する
(
AA文字列
(日付列、時間列)によって区画)を
「\ 001」によって終了行形式区切りフィールド
オークとして格納
位置「/ハイブ/テーブル/ table_test」
tblproperties(「orc.compress」=」てきぱき');
//後のファイル保存形式として記憶することができ、今(TEXTFILE、SEQUENCEFILE、rcfileの、PARQUET)
//(= '' 'orc.compress')は圧縮(ZLIB、てきぱきと、NONE)オプションを続けることができた後は、サポートされています
データのロード:
table_testに挿入
AA、table_aaから日付を選択します。
若しくは
INPATHデータロード INTO上書き「/ハイブ/ DATE / table_test」 表のtable_test ;(この操作は、サブファイルの結果ではない、それは浴槽テーブルの役割を果たしていませんでした)
3:ハイブの高度な機能と特徴
1.json_tuple機能
例子:表側面図json_tuple(jsonstr、 'A'、 'B'、 'C')AA、BB、CCとしてTMP1からAAを選択します。
コスト:
jsonstr
{AA:1、BB:2、CC:3}
結果の値:
AAのBBのCC
1 2 3
抽出されたAA、BB、CCの値でjsonstr JSON型解像度、係るテーブルは、生成されたカラムは、CC、BB、AAと呼ばれています。データは、ブランクを埋めるのデフォルト値になることはありません。汚れたJSONデータを処理するために非常に適しています。
2.explode機能
例子:爆発選択(スプリット(REGEXP_REPLACE(REGEXP_REPLACE(jsonstr、 '\\ [\\ {'、 '')が、 '}]'、 '')、 '}、{\\'))テーブルからsale_infoとして。
コスト:
jsonstr
[{AA:1、BB:2、CC:3}、{AA:4、BB:5、CC:6}、{AA:7、BB:8、CC:9}]
結果の値:
jsonstr
AA:1、BB:2、CC:3
AA:4、BB:5、CC:6
AA:7、BB:8、CC:9
[{と}]}配列に{データに応じて交換し、次に展開jsonstrテーブル
3.hive一般的なオペレーティングテーブル
ALTER TABLE TABLE RENAME TO AA; 将表的名称改变
ALTER TABLE TABLE ADD COLUMNS (BB STRING COMMENT); //增加列
修改速度很快(原因是修改了元数据)
以后插入数据的时候会多需要一列的数据。
查询历史数据的BB列为NULL值。
真正看历史文件是没有BB列的。
ALTER TABLE TABLE REPLACE COLUMNS (BB STRING COMMENT); //删除列,基本理论和增加一致
ALTER TABLE TABLE DROP PARTITION (STAT_YEAR_MONTH='20190908');删除分区
TRUNCATE TABLE TABLE;清空表