Hive-インポート/エクスポート(インポートおよびエクスポート)
Hive Import Export Import
1 公式住所
EXPORTおよびIMPORTコマンドは、Hive0.8.0の後に導入されました。
- EXPORTコマンドは、テーブルまたはパーティションのデータをメタデータとともに、指定された出力場所(HDFS上)にエクスポートします。次に、この出力場所を別のHadoopまたはHiveインスタンスに移動し、インポート操作にIMPORTコマンドを使用できます。
- パーティションテーブルをエクスポートする場合、元のデータは別のHDFSの場所にある可能性があります。また、パーティションサブセットのエクスポート/インポート機能もサポートしています。
- エクスポートされたメタデータはターゲットディレクトリに保存され、データファイルはサブディレクトリに保存されます。
- EXPORTコマンドとIMPORTコマンドは、たとえば使用されるソースおよびターゲットのメタストアDBMSとは独立して機能し、DerbyデータベースとMySQLデータベースの間で使用できます。
2エクスポート
- 公式文法
EXPORT TABLE tablename [PARTITION (part_column='value'[, ...])] TO 'export_target_path' [ FOR replication('eventid') ]
- データをHDFSにエクスポートする
export table join_a to '/home/hadoop/data' Copying data from file:/tmp/hadoop/b96064b0-888a-4618-a110-fc9d09d7c00b/hive_2018-01-10_08-05-04_501_1397817648848080864-1/-local-10000/_metadata Copying file: file:/tmp/hadoop/b96064b0-888a-4618-a110-fc9d09d7c00b/hive_2018-01-10_08-05-04_501_1397817648848080864-1/-local-10000/_metadata Copying data from hdfs://192.168.137.200:9000/user/hive/warehouse/join_a Copying file: hdfs://192.168.137.200:9000/user/hive/warehouse/join_a/join_a.txt OK
- HDFSでデータを表示する
[root@xxxxx export]$ hdfs dfs -ls /home/hadoop/data Found 2 items -rwxr-xr-x 1 hadoop supergroup 1259 2018-01-10 08:05 /home/hadoop/data/_metadata drwxr-xr-x - hadoop supergroup 0 2018-01-10 08:05 /home/hadoop/data/data
3インポート
- 公式文法
IMPORT [[EXTERNAL] TABLE new_or_original_tablename [PARTITION (part_column='value'[, ...])]] FROM 'source_path' [LOCATION 'import_target_path']
- データのインポート
hive> import from '/home/hadoop/data' Copying data from hdfs://192.168.137.200:9000/home/hadoop/data/data Copying file: hdfs://192.168.137.200:9000/home/hadoop/data/data/join_a.txt Loading data to table hive1.join_a OK Time taken: 7.444 seconds
- お問い合わせ
hive> show tables OK join_a hive> select * from join_a OK 1 zhangsan 2 lisi 3 wangwu1
4その他の例
- インポート時にテーブルの名前を変更します:(テーブル名の名前を変更します)
export table department to 'hdfs_exports_location/department' import table imported_dept from 'hdfs_exports_location/department'
- パーティションのエクスポートとインポート:(エクスポートとパーティション)
export table employee partition (emp_country='in', emp_state='ka') to 'hdfs_exports_location/employee' import from 'hdfs_exports_location/employee'
- テーブルのエクスポートとパーティションのインポート:(インポートとパーティション)
export table employee to 'hdfs_exports_location/employee' import table employee partition (emp_country='us', emp_state='tn') from 'hdfs_exports_location/employee'
- インポート場所を指定します:(アドレスを指定します)
export table department to 'hdfs_exports_location/department' import table department from 'hdfs_exports_location/department' location 'import_target_location/department' Import as an external table: export table department to 'hdfs_exports_location/department' import external table department from 'hdfs_exports_location/department'