如何在不删除数据的情况下撤消ALTER TABLE ... ADD PARTITION

时间:2019-06-25 05:23:34

标签: apache-spark hive partition hive-partitions

让我们假设有两个配置单元表namespace App\Http\Controllers; use App\UploadedFile; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class FileController extends Controller { public function index() { $files = UploadedFile::orderBy('created_at','DESC')->paginate(30); return view('file.index', ['files' => $files]); } table_1。我使用:

table_2

现在,ALTER TABLE table_2 ADD PARTITION (col=val) LOCATION [table_1_location] 将在table_2所在分区的table_1中存储数据。

我想做的就是逆转此过程。我希望col = val不在table_2处有分区,我希望table_1保留其原始数据。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

先将您的桌子设为EXTERNAL:

ALTER TABLE table_2 SET TBLPROPERTIES('EXTERNAL'='TRUE');

然后删除分区,数据将保留,仅table_2分区元数据将被删除:

ALTER TABLE table_2 DROP PARTITION (col=val)

table_1分区数据将保持不变。