主键模型&更新模型数据重复

【详述】连续insert select操作写入数据后, 出现数据重复
【业务影响】 同一笔订单出现2条重复数据, 计算出的金额翻倍。 同一个用户出现2条注册数据。
【StarRocks版本】3.1.3存算分离模式
【集群规模】3fe(1 follower+2observer)+3be(fe与be混部)
【机器信息】8C/32G/万兆
【联系方式】18620130547
【附件】
1、更新模型表出现数据重复:
(1)建表语句:
CREATE TABLE logs_web_web_game_reg_new (
user_id varchar(100) NOT NULL COMMENT “”,
old_id varchar(50) NOT NULL COMMENT “”,
recdate date NOT NULL COMMENT “”,
game_id varchar(50) NOT NULL COMMENT “”,
rectime datetime NOT NULL COMMENT “”,
user_name varchar(30) NOT NULL COMMENT “”,
jh_channel varchar(50) NOT NULL COMMENT “”,
yy_ad varchar(50) NOT NULL COMMENT “”,
os varchar(20) NOT NULL COMMENT “”,
ios_idfa varchar(255) NOT NULL COMMENT “”,
ios_idfv varchar(255) NOT NULL COMMENT “”,
and_imei varchar(255) NOT NULL COMMENT “”,
ip varchar(100) NOT NULL COMMENT “”,
os_version varchar(20) NOT NULL COMMENT “”,
sdk_version varchar(20) NOT NULL COMMENT “”,
device_id varchar(255) NOT NULL COMMENT “”,
device_name varchar(255) NOT NULL COMMENT “”,
ch_id int(11) NOT NULL COMMENT “”,
uptime datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT “”,
and_adid varchar(255) NOT NULL COMMENT “”,
and_id varchar(255) NOT NULL COMMENT “”,
oaid varchar(255) NULL COMMENT “”,
plat varchar(10) NOT NULL COMMENT “”,
ld_id int(11) NOT NULL COMMENT “”,
media_id varchar(20) NOT NULL COMMENT “”,
media_campaign varchar(100) NOT NULL COMMENT “”,
media_creative varchar(100) NOT NULL COMMENT “”,
info json NULL COMMENT “”,
bnadm_id varchar(30) NULL COMMENT “”,
bnldm_id varchar(30) NULL COMMENT “”,
game_version varchar(255) NULL COMMENT “”,
ext1 varchar(255) NULL COMMENT “”
) ENGINE=OLAP
UNIQUE KEY(user_id, old_id, recdate)
COMMENT “OLAP”
PARTITION BY date_trunc(‘day’, recdate)
DISTRIBUTED BY HASH(user_id) BUCKETS 9
PROPERTIES (
“replication_num” = “1”,
“colocate_with” = “user_id_group”,
“datacache.enable” = “true”,
“storage_volume” = “builtin_storage_volume”,
“enable_async_write_back” = “false”,
“enable_persistent_index” = “false”,
“compression” = “LZ4”
);
(2)出现的现象:
出现2条完全一模一样的数据,表数据大概3500万,出现约4万重复的数据


查询结果也出现诡异现象,不同的查询方式可能出现重复, 也可能不出现。

2、主键模型数据重复:
(1)建表语句:
CREATE TABLE logs_web_web_pay (
user_id varchar(100) NOT NULL DEFAULT “0” COMMENT “”,
order_sn varchar(100) NOT NULL COMMENT “”,
recdate date NOT NULL DEFAULT “1970-01-01” COMMENT “”,
rectime datetime NOT NULL COMMENT “”,
game_id varchar(50) NOT NULL DEFAULT “0” COMMENT “”,
id int(11) NOT NULL COMMENT “”,
create_time datetime NOT NULL COMMENT “”,
update_time datetime NOT NULL COMMENT “”,
game_role_id varchar(50) NOT NULL COMMENT “”,
game_role_name varchar(100) NOT NULL COMMENT “”,
money decimal128(20, 2) NOT NULL DEFAULT “0” COMMENT “”,
type smallint(6) NOT NULL DEFAULT “1” COMMENT “”,
status smallint(6) NOT NULL DEFAULT “1” COMMENT “”,
pay_status smallint(6) NOT NULL DEFAULT “0” COMMENT “”,
jh_channel varchar(255) NULL COMMENT “”,
server varchar(50) NULL COMMENT “”,
pay_type varchar(50) NOT NULL DEFAULT “” COMMENT “”,
cp_trade_sn varchar(100) NOT NULL DEFAULT “” COMMENT “”,
payment_trade_sn varchar(50) NULL COMMENT “”,
goods_id varchar(50) NOT NULL DEFAULT “” COMMENT “”,
goods_name varchar(50) NULL DEFAULT “” COMMENT “”,
exchange_rate int(11) NOT NULL DEFAULT “1” COMMENT “”,
game_url varchar(255) NULL DEFAULT “” COMMENT “”,
yy_ad varchar(50) NULL COMMENT “”,
os varchar(20) NOT NULL DEFAULT “” COMMENT “”,
ios_idfa varchar(255) NULL COMMENT “”,
ios_idfv varchar(255) NULL COMMENT “”,
and_imei varchar(255) NULL COMMENT “”,
ip varchar(100) NOT NULL DEFAULT “” COMMENT “”,
os_version varchar(20) NULL COMMENT “”,
sdk_version varchar(20) NULL COMMENT “”,
device_id varchar(255) NOT NULL DEFAULT “” COMMENT “”,
device_name varchar(255) NULL COMMENT “”,
uptime datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT “”,
and_adid varchar(255) NULL DEFAULT “” COMMENT “”,
and_id varchar(255) NULL DEFAULT “” COMMENT “”,
plat varchar(10) NOT NULL DEFAULT “web” COMMENT “”,
ld_id int(11) NULL COMMENT “”,
media_id varchar(20) NULL COMMENT “”,
media_campaign varchar(100) NULL COMMENT “”,
media_creative varchar(100) NULL COMMENT “”,
bnadm_id varchar(30) NULL COMMENT “”,
bnldm_id varchar(30) NULL COMMENT “”,
info json NULL COMMENT “”,
oaid varchar(255) NULL COMMENT “”,
coupon_code varchar(50) NULL COMMENT “”,
real_money decimal128(20, 2) NULL COMMENT “”,
is_refund smallint(6) NULL COMMENT “”,
refund_time int(11) NULL COMMENT “”,
refund_info varchar(255) NULL COMMENT “”,
ch_id int(11) NULL COMMENT “”,
old_id varchar(30) NULL COMMENT “”
) ENGINE=OLAP
PRIMARY KEY(user_id, order_sn, recdate)
COMMENT “OLAP”
PARTITION BY date_trunc(‘day’, recdate)
DISTRIBUTED BY HASH(user_id) BUCKETS 9
PROPERTIES (
“replication_num” = “1”,
“colocate_with” = “user_id_group”,
“datacache.enable” = “true”,
“storage_volume” = “builtin_storage_volume”,
“enable_async_write_back” = “false”,
“enable_persistent_index” = “false”,
“compression” = “LZ4”
);

(2)重复现象:


查询结果也出现诡异现象,count(distinct 主键)居然出现2个不同的结果。

可以对重复的数据查询下md5看下结果吗?比如select md5(user_id),md5(order_sn),md5(recdate) from xxx where xxx=xxx;

我们在3.1.3版本也遇到了相同的问题,是3.1.3存算一体,对重复的数据查询下md5结果都是一样的,主键也有日期字段。

1赞

确认了,是一样的

一样的

更新模型那个表也是一样吗?