Hive 在SQL中复制带有分区的表

Hive 在SQL中复制带有分区的表,hive,Hive,我工作的当前数据库在SQL脚本上运行,以生成数据作为要使用的输出,我经常使用的数据之一可能会被更新,因此我正在尝试创建备份副本或副本,不幸的是,我是SQL的新手。该系统称为Waterdrop,虽然没有广泛使用,但它运行在HiveSQL上 我对SQL的理解是,这应该是可行的: CREATE TABLE acc_backup LIKE acct; INSERT INTO acc_backup SELECT * FROM acct; 然而,我得到了一个错误 需要指定分区列,因为目标表已分区

我工作的当前数据库在SQL脚本上运行,以生成数据作为要使用的输出,我经常使用的数据之一可能会被更新,因此我正在尝试创建备份副本或副本,不幸的是,我是SQL的新手。该系统称为Waterdrop,虽然没有广泛使用,但它运行在HiveSQL上

我对SQL的理解是,这应该是可行的:

CREATE TABLE acc_backup LIKE acct;    
INSERT INTO acc_backup SELECT * FROM acct;
然而,我得到了一个错误

需要指定分区列,因为目标表已分区

我没有意识到这个表有分区,于是检查:

SHOW PARTITIONS acct;
在dat_dt列(不是字符串或十进制的日期)中有198个分区

dat_dt= 2017-09-25
dat_dt= 2017-09-30
dat_dt= 2017-10-05
dat_dt= 2017-10-08
... 198 rows
那么,如何将数据从acc复制到acc_备份?这个表非常大,所以运行这些代码需要很长时间,我应该试试吗

CREATE TABLE acc_backup AS SELECT * FROM acct;
或许:

DROP TABLE IF EXISTS acc_backup 
SELECT * INTO acc_backup FROM acct; 
或者我需要创建一个具有完全相同的198个分区的空表来复制数据,我将如何尝试?我的最终目标是保持这个原始图表和备份不变,因此只要数据相同,新表的结构/分区就不是我主要关心的问题


多谢各位!任何注释或建议都将不胜感激。再次抱歉,我之前标记了SQL Server,因为您可以告诉我,我对SQL数据库非常熟悉,谢谢大家纠正我的错误

创建表acc\u备份,如acct不是的有效语法。您确定已为您的数据库系统正确标记了您的问题吗?“CREATETABLE acc_backup AS SELECT*FROM acct;”此语句不会在sql server中创建表。你有正确的数据库系统吗?@MIchael。您的代码不会在SQL Server中运行。如果你想得到答案,你需要标记你真正使用的数据库。你使用的是哪种DBMS产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加。是的,您可以使用select*将数据直接传输到新表中。。。新表将在同一架构中创建。谢谢