hdfs在覆盖配置单元表时备份分区数据

cidc1ykv  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(352)

我有一个外部表,分为3列,存储在hdfs中:

/apps/var/db_name/table_name/date=1901/ref_src=src_a
/apps/var/db_name/table_name/date=1901/ref_src=src_b
/apps/var/db_name/table_name/date=1902/ref_src=src_a
/apps/var/db_name/table_name/date=1902/ref_src=src_b
/apps/var/db_name/table_name/date=1903/ref_src=src_a
/apps/var/db_name/table_name/date=1903/ref_src=src_b
/apps/var/db_name/table_name/date=1903/ref_src=src_c

表名称中的字段:

date|ref_src|col_a|col_b|

现在,根据一些要求,我必须创建新的列-col\u c和col\u d。因此,我计划了一些程序来将计算出的数据覆盖到同一个表中。但是,我有问题/问题触发,如果有任何问题的原因,当我的程序运行,使表数据损坏或删除,或我的程序有一些问题?
所以,我的主要问题是如何对hdfs数据(平均表数据)和分区细节进行表备份。如果我采取完整的目录作为备份将有助于或任何其他我需要注意的,我关心的主要是产品数据。

yv5phkfx

yv5phkfx1#

您可以复制文件夹作为备份。如果您的数据是以Parquet格式存储的(例如),您可以始终还原这些文件夹并在其上创建另一个外部表。这个外部表也可以用来为另一个原始表提供数据,以便为新字段分配默认值,比如

insert into table_with_new_cols select r.*, 'col_c value' col_c, 'col_d value' col_d from restored_external_table r

如果 table_with_new_cols 是空的

相关问题