作者:变速风声链接:https://juejin.cn/post/7104090532015505416前言在开发中遇到一个业务诉求,需要在千万量级的底池数据中筛选出不超过10W的数据,并根据配置的权重规则进行排序、打散(如同一个类目下的商品数据不能连续出现3次)。下面对该业务诉求的实现,设计思路和方案优化进行介绍,对「千万量级数据中查询10W量级的数据」设计了如下方案多线程+CK翻页方案ESscrollscan深翻页方案ES+Hbase组合方案RediSearch+RedisJSON组合方案初版设计方案整体方案设计为:先根据配置的「筛选规则」,从底池表中筛选出「目标数据」在根据配置的「排序规
作者:变速风声链接:https://juejin.cn/post/7104090532015505416前言在开发中遇到一个业务诉求,需要在千万量级的底池数据中筛选出不超过10W的数据,并根据配置的权重规则进行排序、打散(如同一个类目下的商品数据不能连续出现3次)。下面对该业务诉求的实现,设计思路和方案优化进行介绍,对「千万量级数据中查询10W量级的数据」设计了如下方案多线程+CK翻页方案ESscrollscan深翻页方案ES+Hbase组合方案RediSearch+RedisJSON组合方案初版设计方案整体方案设计为:先根据配置的「筛选规则」,从底池表中筛选出「目标数据」在根据配置的「排序规
Posttime:2022-02-1714:11:52本篇文章借鉴于武汉二中吕凯风的2015集训队论文《集合幂级数的性质与应用及其快速算法》。一、声明我们令全集为有限集\(U=\{1,2,...,n\}\),其中\(n=|U|\),设所有未标明的\(S\)都是\(U\)的子集。若\(X\)是一个集合,令\(2^{X}\)表示\(X\)的幂集(所有子集构成的集合)。二、定义设\(F\)是一个域,则称函数\(f:2^{U}\toF\)是\(F\)上的一个集合幂级数。对于每个\(S\in2^U\),记\(f_S\)为\(S\)处的函数值,称\(f_S\)为集合幂级数\(S\)项的系数。集合幂级数之间
Posttime:2022-02-1714:11:52本篇文章借鉴于武汉二中吕凯风的2015集训队论文《集合幂级数的性质与应用及其快速算法》。一、声明我们令全集为有限集\(U=\{1,2,...,n\}\),其中\(n=|U|\),设所有未标明的\(S\)都是\(U\)的子集。若\(X\)是一个集合,令\(2^{X}\)表示\(X\)的幂集(所有子集构成的集合)。二、定义设\(F\)是一个域,则称函数\(f:2^{U}\toF\)是\(F\)上的一个集合幂级数。对于每个\(S\in2^U\),记\(f_S\)为\(S\)处的函数值,称\(f_S\)为集合幂级数\(S\)项的系数。集合幂级数之间
Python读取数据自动写入MySQL数据库,这个需求在工作中是非常普遍的,主要涉及到python操作数据库,读写更新等,数据库可能是mongodb、es,他们的处理思路都是相似的,只需要将操作数据库的语法更换即可。本篇文章会给大家系统的分享千万级数据如何写入到mysql,分为两个场景,三种方式。一、场景一:数据不需要频繁的写入mysql使用navicat工具的导入向导功能。支持多种文件格式,可以根据文件的字段自动建表,也可以在已有表中插入数据,非常快捷方便。场景二:数据是增量的,需要自动化并频繁写入mysql测试数据:csv格式,大约1200万行importpandasaspddata=pd
Python读取数据自动写入MySQL数据库,这个需求在工作中是非常普遍的,主要涉及到python操作数据库,读写更新等,数据库可能是mongodb、es,他们的处理思路都是相似的,只需要将操作数据库的语法更换即可。本篇文章会给大家系统的分享千万级数据如何写入到mysql,分为两个场景,三种方式。一、场景一:数据不需要频繁的写入mysql使用navicat工具的导入向导功能。支持多种文件格式,可以根据文件的字段自动建表,也可以在已有表中插入数据,非常快捷方便。场景二:数据是增量的,需要自动化并频繁写入mysql测试数据:csv格式,大约1200万行importpandasaspddata=pd
前言:最近有需求,做一个web端的Excel数据导入的功能,涉及到百万级数据体量的导入,1)excel实现可供选择的是poi和easyexcel实现(因为项目中已依赖poi的低版本依赖,引入easyexcel会提示依赖包冲突,最终选择poi实现,本人后续会记录具体功能实现代码),2)数据库处理及存入上因为涉及到大量数据,本人使多线程方法执行,在存入数据库过程,本人先使用的还是mybatis-plus实现,实现效果比较差:不到百万的数据,导入时间超过半小时,最后采用jdbc的批量导入来实现的该功能,线程连接池使用c3p0实现,具体项目demo后续提供。其中:多线程上未使用线程池,代码如下:引入i
前言:最近有需求,做一个web端的Excel数据导入的功能,涉及到百万级数据体量的导入,1)excel实现可供选择的是poi和easyexcel实现(因为项目中已依赖poi的低版本依赖,引入easyexcel会提示依赖包冲突,最终选择poi实现,本人后续会记录具体功能实现代码),2)数据库处理及存入上因为涉及到大量数据,本人使多线程方法执行,在存入数据库过程,本人先使用的还是mybatis-plus实现,实现效果比较差:不到百万的数据,导入时间超过半小时,最后采用jdbc的批量导入来实现的该功能,线程连接池使用c3p0实现,具体项目demo后续提供。其中:多线程上未使用线程池,代码如下:引入i