0

外部テーブル-1 から外部テーブル-2 にデータを挿入する際、外部テーブル-2 のデータは に格納され/user/hive/warehouse/db-name/table-name/ますが、外部テーブルとしてデータをウェアハウス ディレクトリに格納するべきではありませんよね?
データを外部テーブルに保存する場所を指定する必要がありますか?

4

3 に答える 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 に答える