Hive-インポート/エクスポート(インポートおよびエクスポート)



Hive Import Export Import



1 公式住所

  • EXPORTおよびIMPORTコマンドは、Hive0.8.0の後に導入されました。

    1. EXPORTコマンドは、テーブルまたはパーティションのデータをメタデータとともに、指定された出力場所(HDFS上)にエクスポートします。次に、この出力場所を別のHadoopまたはHiveインスタンスに移動し、インポート操作にIMPORTコマンドを使用できます。
    2. パーティションテーブルをエクスポートする場合、元のデータは別のHDFSの場所にある可能性があります。また、パーティションサブセットのエクスポート/インポート機能もサポートしています。
    3. エクスポートされたメタデータはターゲットディレクトリに保存され、データファイルはサブディレクトリに保存されます。
    4. 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'