“插入”正在覆盖数据

时间:2018-07-25 11:00:30

标签: hadoop hive ddl dml

互联网无济于事,我对这个学科的了解有限。

我有一个具有以下架构的表:

CREATE EXTERNAL TABLE `db.temp_entries`(
  `id` bigint, 
  `random_id` string)
ROW FORMAT SERDE 
  'org.apache.hadoop.hive.ql.io.orc.OrcSerde' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat'
LOCATION
  'hdfs://xxxx/xxxxx/xxx/temp_entries'
TBLPROPERTIES (
  'COLUMN_STATS_ACCURATE'='{\"BASIC_STATS\":\"true\"}', 
  'numFiles'='1', 
  'numRows'='1', 
  'orc.compress'='ZLIB', 
  'rawDataSize'='115', 
  'totalSize'='381', 
  'transient_lastDdlTime'='1532514067')

以下是使用的插入查询:

查询1

insert into `db.temp_entries`
            values (1, 'P1804010001249002159939')

查询2

insert into `db.temp_entries`
            values (2, 'P1804010001495232931398'),
            (3, 'P1804010002374640308088'),
            (4, 'P1804010009196709498065')

我正在通过python脚本生成此文件,并通过python insert包-> pyhive

进行from pyhive import hive

尽管不使用insert overwrite,但Query#1覆盖了Query#2的数据。我的方法有什么问题吗?

1 个答案:

答案 0 :(得分:1)

删除表名周围的反引号

查询1

insert into db.temp_entries
            values (1, 'P1804010001249002159939')

查询2

insert into db.temp_entries
            values (2, 'P1804010001495232931398'),
            (3, 'P1804010002374640308088'),
            (4, 'P1804010009196709498065')