zhangbc97 / tushare-integration

TusharePro数据集成工具
MIT License
10 stars 5 forks source link

stock_basic 出现重复数据 #10

Open uiosun opened 3 weeks ago

uiosun commented 3 weeks ago

按照 https://github.com/zhangbc97/tushare-integration/issues/9 的脚本顺序,昨日执行的基础数据拉取

今天用的时候,发现 basic 表,有多条数据重复(所有字段的值相同)

譬如:000003.SZ 000003 PT金田A(退),在该表有两条

但 000001.SZ、000002.SZ、000004.SZ 都正常,简单截取一下按 ts_code 排序,希望有帮助:

000001.SZ
000002.SZ
000003.SZ
000003.SZ
000004.SZ
000005.SZ
000005.SZ
000006.SZ
000007.SZ
000008.SZ
000009.SZ
000010.SZ
000011.SZ
000012.SZ
000013.SZ
000013.SZ
000014.SZ
000015.SZ
000015.SZ
000016.SZ
000017.SZ
000018.SZ
000018.SZ
000019.SZ
000020.SZ
000021.SZ
000023.SZ
000023.SZ
000024.SZ
000024.SZ
000025.SZ
000026.SZ
000027.SZ
000028.SZ
000029.SZ
000030.SZ
000031.SZ
000032.SZ
000033.SZ
000033.SZ
000034.SZ
000035.SZ
000036.SZ
000037.SZ
000038.SZ
000038.SZ
000039.SZ
000040.SZ
000042.SZ
000045.SZ
000046.SZ
000046.SZ
000047.SZ
000047.SZ
000048.SZ
000049.SZ
000050.SZ
000055.SZ
000056.SZ
000058.SZ
000059.SZ
000060.SZ
000061.SZ
000062.SZ
000063.SZ
000065.SZ
000066.SZ
000068.SZ
000069.SZ
000070.SZ
000078.SZ
000088.SZ
000089.SZ
000090.SZ
000096.SZ
000099.SZ
000100.SZ
000150.SZ
000150.SZ
uiosun commented 3 weeks ago

我之前没用过 clickhouse

注意到表引擎是 ReplacingMergeTree,开发者一般是怎么使用这个数据呢?

执行 Final 有效:

SELECT *
FROM `default`.stock_basic
FINAL

或者每次跑完数据,将 basic 的数据去重一次?

zhangbc97 commented 3 weeks ago

ReplacingMergeTree对数据的合并是后台合并,会存在一定程度的延迟。 目前大概有三种解决方案,实际上都不是很优雅,在数据量大的时候会对性能有显著影响

后期可以考虑的优化方向:

uiosun commented 2 weeks ago

我是家用机装的 ClickHouse,每天开关机

不知道是不是合并被打断了,index daily 的部分数据在库里三天都没有自动合并

执行 OPTIMIZE TABLE index_daily FINAL; 有效

zhangbc97 commented 2 weeks ago

我是家用机装的 ClickHouse,每天开关机

不知道是不是合并被打断了,index daily 的部分数据在库里三天都没有自动合并

执行 OPTIMIZE TABLE index_daily FINAL; 有效

Clickhouse的合并机制确实可能会有些问题,我现在线上服务也会每天定时触发OPTIMIZE,参考脚本如下(需要修改一下,因为里面有自己封装的一些代码没放出来)

zhangbc97 commented 2 weeks ago

目前也在考虑支持Apache Doris(SelectDB)以及StarRocks,这两个库支持Unique的模型,在这个场景下会更友好一些

uiosun commented 2 weeks ago

哇哦,我研究研究哈哈,感觉很强!