Hive DML(データのインポートとエクスポート)



Hive Dml Data Import



DML

DML:データ操作言語

テーブルにデータをロードします

文法



LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)]

データをローカルにロードする

LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' INTO TABLE ruoze_dept

画像



上書きを使用してデータをロードする
データをロードするときに、overwiteキーワードが追加されていない場合は繰り返されます。
画像

したがって、一般的に作業では、データをロードするときに上書きして追加する必要があります

LOAD DATA LOCAL INPATH '/home/hadoop/data/dept.txt' OVERWRITE INTO TABLE ruoze_dept

画像



hdfsからデータを読み込んでいます
hdfsからデータをロードするローカルのその他の一貫性のあるものを削除する必要があります

LOAD DATA INPATH '/data/dept.txt' OVERWRITE INTO TABLE ruoze_dept

hdfsでファイルを表示する
画像

ハイブでデータを表示する
画像

ここで、hdfsからデータをロードする場合、2回目の実行時にエラーが発生することに注意してください。
画像

エラーログプロンプトファイルが存在しません。hdfsを表示してください
画像

案の定、ここで理解できます。ハイブの内部テーブルのメタデータ情報とデータはハイブ自体によって管理されているため、hdfsからデータを読み込んだ後、hdfsのディレクトリをハイブに移動します。データベースに対応するデータウェアハウス

画像

クエリステートメントに従ってデータを挿入します

INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] select_statement1 FROM from_statement INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 FROM from_statement INSERT OVERWRITE TABLE ruoze_dept_test select deptno ,dname ,loc from ruoze_dept

データを挿入できない順序は間違ってはならず、フィールドの数は同じでなければならないことに注意してください。
画像

ハイブからデータを書き込む

INSERT OVERWRITE [LOCAL] DIRECTORY directory1 [ROW FORMAT row_format] [STORED AS file_format] (Note: Only available starting with Hive 0.11.0) SELECT ... FROM ...

エクスポートステートメントを実行します

INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/data/hive_test' ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' SELECT empno,ename FROM ruoze_emp

結果を見る
画像