外部テーブル-1 から外部テーブル-2 にデータを挿入する際、外部テーブル-2 のデータは に格納され/user/hive/warehouse/db-name/table-name/
ますが、外部テーブルとしてデータをウェアハウス ディレクトリに格納するべきではありませんよね?
データを外部テーブルに保存する場所を指定する必要がありますか?
5692 次
3 に答える
1
内部ファイルまたは外部ファイルが「/user/hive/warehouse」に移動されるか
hive.metastore.warehouse.dir
、hive-site.xml で指定されたものに移動されるかに関係なく、Hive で作成するすべてのテーブル
外部テーブルが作成されます - 誰かがテーブルを誤って削除した場合のデータ損失を防ぎます。2 つの外部テーブルを作成し、ファイル システムを参照してみてください。概念を簡単に理解できます。
于 2016-06-01T14:56:48.413 に答える
1
はい、外部テーブルを作成するときに場所を指定する必要があります。次の方法で簡単に実行できます。
テーブル table1 と table2 を作成します。
CREATE EXTERNAL TABLE table1(col1 INT, col2 BIGINT,col3 STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '<hdfs_location1>';
CREATE EXTERNAL TABLE table2(col21 INT, col22 BIGINT,col23 STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '<hdfs_location2>';
テーブル 1 のデータをテーブル 2 に挿入します。
INSERT OVERWRITE TABLE table2(col21,col22,col23) SELECT * FROM table1
テーブル 1 から table2 hdfs の場所にデータをコピーします。
CTAS (Create table AS Select) は外部テーブルではサポートされていないことに注意してください。
于 2016-06-02T07:05:13.447 に答える