ハイブ - DMLデータ操作

1、データのインポート

テーブルにデータをロードする1.1(負荷)

1。文法

'/opt/module/datas/student.txt' INPATH [ローカル]ハイブ>負荷データテーブルの学生の中に[パーティション(partcol1 = val1と、...)] [上書き]。

  (1)負荷データ:ロードデータが表します

  (2)ローカル;そうでなければ、データは、HDFSテーブルからハイブ(移動)にロードされるハイブ(コピー)にローカルテーブルからロードされたデータを示します

  (3)INPATH:ロードデータパスを表します

  (4)への上書き:既存のデータを表すテーブルをカバーする、又はその追加

  (5)テーブルに:ローディングテーブルを表します

  (6)学生:特定のテーブルを示す図

  (7)パーティション:指定されたパーティションにアップロード表します

2。実用的な操作ケース

(0)テーブルを作成します

ハイブ>テーブルの学生(id文字列、名前の文字列)「\ tの」で終わる行形式区切られたフィールドを作成します。

(1)ハイブにローカルファイルをロードします

ハイブ>負荷データテーブルdefault.studentにローカルINPATH「/opt/module/datas/student.txt」;

(2)HDFSにハイブファイルをロードします

HDFSにファイルをアップロード

ハイブ> DFS -put /opt/module/datas/student.txt /ユーザー/ atguigu /ハイブ。

データHDFSをロード

ハイブ>負荷データテーブルdefault.studentにINPATH「/user/atguigu/hive/student.txt」;

(3)既存のデータ・オーバーレイ・テーブルにデータをロードします

HDFSにファイルをアップロード

ハイブ> DFS -put /opt/module/datas/student.txt /ユーザー/ atguigu /ハイブ。

テーブル内の既存のデータをカバーするデータのロード

テーブルdefault.studentに上書きする「/user/atguigu/hive/student.txt」ハイブ>負荷データINPATH。

テーブルクエリにデータを挿入することによって、1.2(挿入)

1。パーティションテーブルを作成します。

ハイブ>「\ tの」で終了(月の文字列)行形式区切られたフィールドで仕切られたテーブルの学生(ID int型、名前文字列)を作成します。

2。挿入された基本データ

ハイブ>は、テーブルの学生のパーティション(月= '201709')の値(1、 'wangwu')に挿入します。

3。基本モードの挿入(単一のテーブルに基づいてクエリ結果)

ハイブ>挿入上書きテーブルの学生パーティション(月=「201708」)

           IDを選択し、学生から名前ヶ月=「201709」;

4。マルチ挿入モード(複数のテーブルに従って照会結果)

学生からハイブ>

          上書き表の学生のパーティション(月=「201707」)を挿入します

          IDを選択し、名前月=「201709」

          上書き表の学生のパーティション(月=「201706」)を挿入します

          IDを選択し、名前どこヶ月= '201709';

テーブルを作成し、(選択すると)データをロードする1.3クエリステートメント

クエリ結果に基づいてテーブルを作成します(クエリの結果は、新しく作成された中でテーブルに追加されます)

create table if not exists student3 as select id, name from student;

表1.4の作成時に指定した場所を介してデータ経路をロード

1。テーブルを作成し、HDFS上の場所を指定

student5存在しない場合はハイブ>は、テーブルを作成します(

              ID int型、名前文字列

              )

              「\ tの」で終わる行形式区切られたフィールド

              位置「/ユーザ/ハイブ/倉庫/ student5」。

2。HDFSにデータをアップロードします

ハイブ> DFS -put /opt/module/datas/student.txt /ユーザ/ハイブ/倉庫/ student5。

3。クエリデータ

ハイブ> student5から選択*;

指定されたハイブへ1.5インポートテーブルデータ

注意:最初の使用の輸出エクスポート後にして、データをインポートします。

ハイブ>インポートテーブルのstudent2パーティション '/ユーザー/ハイブ/倉庫/エクスポート/生徒から(月= '201709');

2、データのエクスポート

2.1挿入エクスポート

1。地元の輸出へのクエリの結果

ハイブ>上書きローカルディレクトリを挿入し "は/ opt /モジュール/件のデータ/エクスポート/生徒

            学生から選択*;

 2。ローカルフォーマットの輸出へのクエリの結果

ハイブ>上書きローカルディレクトリを挿入し「は/ opt /モジュール/件のデータ/エクスポート/ STUDENT1」

         「\ t」のBY TERMINATED行形式区切られたフィールドは、学生から*を選択します。

3。クエリの結果は、HDFS(ローカルではない)にエクスポートされ

ハイブ>挿入上書きディレクトリ '/ユーザー/ atguigu / student2'

           「\ t」のBY TERMINATED行形式区切られたフィールド

           学生から選択*;

ローカルをエクスポートする2.2のHadoopコマンド

ハイブ> DFS -get /ユーザー/ハイブ/倉庫/学生/月= 201709 / 000000_0 /opt/module/datas/export/student3.txt。

2.3ハイブシェルは、エクスポートするコマンド

基本的な構文:(ハイブ-f / -e文またはスクリプトを実行>ファイル)

[ルート@マスターハイブ] $ビン/ハイブ-e 'をdefault.studentから選択します*;' > /opt/module/datas/export/student4.txt;

HDFSに2.4エクスポートのエクスポート

'/ユーザー/ハイブ/倉庫/エクスポート/生徒へ(defahiveult)>エクスポートテーブルのdefault.student。

テーブル内のデータをクリアする3、(切り捨て)

注意:切り捨ては、管理テーブルを削除することができ、あなたは、外部表のデータを削除することはできません。

ハイブ>テーブルの学生を切り捨てます。

 

 

 

 

 

 

おすすめ

転載: blog.csdn.net/qq_41544550/article/details/92144830