你好,该问题目前在Doris Master上已经修复,会随着1.2.2进行发布
Best Chen Zhang On 2023年1月28日 +0800 11:07, 王云飞 <yfw...@quant-chi.com>, wrote: > doris版本号: > <temp4cj.png> > > 建表语句: > create table if not exists `dw_patent_test` ( > id VARCHAR(100) NOT NULL COMMENT '专利ID,为主键', > title VARCHAR(1000) COMMENT '标题', > abstract STRING COMMENT '摘要', > address VARCHAR(1000) COMMENT '地址', > applicants STRING COMMENT '申请人', > inventors STRING COMMENT '发明人', > zip_code VARCHAR(20) COMMENT '邮政编码', > patent_type VARCHAR(50) COMMENT '专利类型', > apply_code VARCHAR(50) COMMENT '申请号', > apply_date DATE COMMENT '申请日期', > public_code VARCHAR(50) COMMENT '公开号', > public_date DATE COMMENT '公开日期', > ipc STRING COMMENT 'IPC分类号', > cpc STRING COMMENT 'CPC分类号', > agency VARCHAR(200) COMMENT '代理机构', > agents VARCHAR(300) COMMENT '代理人', > status VARCHAR(200) COMMENT '法律状态', > is_valid TINYINT COMMENT '是否有效', > province VARCHAR(50) COMMENT 'address所在省份', > city VARCHAR(50) COMMENT 'address所在城市', > area VARCHAR(50) COMMENT 'address所在区县', > create_time DATETIME COMMENT '创建时间', > update_time DATETIME COMMENT '更新时间' > ) > ENGINE=OLAP > unique KEY(`id`) > DISTRIBUTED BY HASH(`id`) BUCKETS 30 > PROPERTIES ( > "function_column.sequence_type" = 'Date', > "replication_allocation" = "tag.location.default: 1", > "in_memory" = "false" > ) > > > 导入数据,使用python脚本,使用DorisClient第三方库: > # -*- coding: utf-8 -*- > import hashlib > import logging > import os > import re > import sys > from collections import OrderedDict > > import pandas as pd > import requests > > from elasticsearch import Elasticsearch > from DorisClient import DorisSession > from tqdm import tqdm > > # doris配置信息 > DORIS_FE_SERVERS = ['192.168.1.38:8030'] > DORIS_MYSQL_PORT = 9030 > DORIS_USER = 'root' > DORIS_PASSWD = "123456" > DORIS_DATABASE = "lz_dw_knowledge_center" > DORIS_TABLE = "dw_patent_test" > > > def main(): > """ > 主函数入口 > """ > > ## 连接doris > doris_cfg = { > 'fe_servers': DORIS_FE_SERVERS, > 'database': DORIS_DATABASE, > 'user': DORIS_USER, > 'passwd': DORIS_PASSWD, > "mysql_port": DORIS_MYSQL_PORT > } > doris = DorisSession(**doris_cfg) > > data = [] > > doc_1 = { > "id": "instance_doc_patent-6245050e88217fde7b630feb9083438c", > "title": "一种改良型无纺布", > "abstract": > "本实用新型公开一种改良型无纺布,属于无纺布技术领域,包括上层无纺布、下层无纺布、胶粘层和透气层,其特征在于:所述透气层位于上层无纺布的上端,所述透气层和上层无纺布、上层无纺布和下层无纺布之间均通过胶粘层连接,所述上层无纺布的上端设有若干向下凹陷的图案一,所述图案一的下端设有粘连区,所述图案一的两侧设有未粘连区,所述粘连区和未粘连区之间设有空腔,所述未粘连区向外凸出,所述未粘连区的内部填充有强韧复合纤维,本实用的无纺布具有弹性强、透气性好等优点。", > "public_date": "2018-10-26", > "applicants": "浙江东阳市三星实业有限公司", > "zip_code": "", > "address": "浙江省金华市东阳市六石街道黄雾西路47号" > } > > doc_2 = { > "id": "instance_doc_patent-6245050e88217fde7b630feb9083438c", > "title": "一种改良型无纺布", > "abstract": > "本实用新型公开一种改良型无纺布,属于无纺布技术领域,包括上层无纺布、下层无纺布、胶粘层和透气层,其特征在于:所述透气层位于上层无纺布的上端,所述透气层和上层无纺布、上层无纺布和下层无纺布之间均通过胶粘层连接,所述上层无纺布的上端设有若干向下凹陷的图案一,所述图案一的下端设有粘连区,所述图案一的两侧设有未粘连区,所述粘连区和未粘连区之间设有空腔,所述未粘连区向外凸出,所述未粘连区的内部填充有强韧复合纤维,本实用的无纺布具有弹性强、透气性好等优点。", > "public_date": "2018-10-23", > "applicants": "浙江东阳市三星实业有限公司", > "zip_code": "32100", > "address": "浙江省金华市东阳市六石街道黄雾西路47号" > } > > > dir_sort = OrderedDict(sorted(doc_1.items(), key=lambda t: t[0])) > data.append(dir_sort) > > dir_sort = OrderedDict(sorted(doc_2.items(), key=lambda t: t[0])) > data.append(dir_sort) > > ## 数据插入 > if data: > success_flag = doris.streamload(table=DORIS_TABLE, json_array=data, > sequence_col="public_date") > if not success_flag: > msg = "数据插入失败,失败原因应插入条数{}, 实际插入条数0".format(str(len(data))) > print(msg) > > > if __name__ == '__main__': > main() > > > > > > ------------------------------------------------------------------ > > 发件人:chzhang1987 <chzhang1...@gmail.com> > > 发送时间:2023年1月28日(星期六) 10:48 > > 收件人:dev <dev@doris.apache.org>; 王云飞 <yfw...@quant-chi.com> > > 主 题:Re: doris uniq数据模型sequence序列替换失效 > > > > 您好,在同一批次内部 sequence_col 的替换逻辑应该也是生效的,方便提供一下出现问题的doris 版本号,导入的数据、schema > > 和导入语句吗?你可以建立一个 issue,将相关信息放在 issue 中,便于跟进,谢谢 > > > > Best > > Chen Zhang > > On 2023年1月28日 +0800 10:38, 王云飞 <yfw...@quant-chi.com>, wrote: > > 您好!我在使用doris的uniq模型时,设置了某一列为sequence_col,但是在使用stream_load的方式导入的时候,同一批次的数据(两条数据相同id,就是sequence列不同)替换顺序逻辑失效,仍然是后者覆盖前者,如果是分成两批次导入,替换顺序逻辑有效。请问应该如何避免? > > 如图所示,doc_1的public_date大,doc_2的小,但是导入之后,保留了doc_2,如果是分开导入就可以,同一批次导入就不行。 > > >