Hive数据备份时,通过DISTINCT创建新表剔除重复记录,将去重数据写入备份表,再使用hadoopfs命令存储至HDFS。二进制格式表需用对应工具处理,确保备份完整。
数据备份时,如何剔除重复记录?Hive 里有一个现成的工具——DISTINCT 关键字,操作起来并不复杂。下面这套流程,可以直接套用在日常备份场景中。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
先建一张新表,专门存放去重后的数据。这张表的列结构跟原表保持一致,只是在查询时加上 DISTINCT。举个例子,假设原表叫 original_table,字段有 id、name、age,那么新建一张 distinct_table 的语句就是:
CREATE TABLE distinct_table ASSELECT DISTINCT id, name, ageFROM original_table;
接下来,把去重后的数据从 distinct_table 导出到备份目的地。可以用 INSERT [OVERWRITE] INTO TABLE 语句,写进另一张备份表。例如:
INSERT OVERWRITE TABLE backup_tableSELECT * FROM distinct_table;
最后一步,用 Hive 的 fs 命令把备份文件存到 HDFS 或其他存储系统。比如,想放到 /user/hive/backup 目录下,可以这样:
hadoop fs -put /path/to/distinct_table /user/hive/backup/distinct_table;
完成以上三步,一份去重后的数据备份就搞定了。需要留意的是,这里演示的是文本格式的表;如果表是 ORC、Parquet 等二进制格式,导出和保存时得用对应的工具或命令来处理。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述