14

私は使っている

drop table <table_name>

同じスキーマと名前でテーブルを再作成すると、古いデータが返されます。データを完全に削除するには、hdfs ファイル システムからテーブル ディレクトリを削除する必要がありますか?

4

6 に答える 6

2

pensz に同意しますが、わずかな変更ですが、テーブルをドロップする必要はありません。外部 hdfs ファイルを必要な新しいファイルに置き換えるだけで (置き換えられたファイルの構造は同じである必要があります)、前のテーブルの select * を実行すると、古いデータではなく新しいデータが含まれることに気付くでしょう。 1。

外部テーブルは基本的に、データのスキーマとファイルの場所のみを示します。多くのファイルを同じ場所に追加でき、テーブルにはこれらのファイルに関連するすべてのデータが自動的に含まれます。同様に、任意のデータを置き換えることができ、自動的にテーブルにこれが反映されます。

于 2012-11-25T17:54:23.077 に答える
1

より多くの hdfs スペースが必要な場合を除いて、hdfs のディレクトリを削除する必要はありません。

新しいデータを置き換えたい場合は、hdfs のファイルを置き換えるだけです。

テーブル名を他の用途に使用する場合は、テーブルを削除し、hdfs のディレクトリを削除します。

実際、これはデータを失うことなくテーブルのスキーマを変更できる (たとえば、フィールド名を変更したり、2 つのフィールドを 1 つのフィールドに連結したりする) ことができる非常に便利な機能だと思います。

于 2012-11-24T14:13:51.887 に答える