CN108984574B - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- CN108984574B CN108984574B CN201710414760.0A CN201710414760A CN108984574B CN 108984574 B CN108984574 B CN 108984574B CN 201710414760 A CN201710414760 A CN 201710414760A CN 108984574 B CN108984574 B CN 108984574B
- Authority
- CN
- China
- Prior art keywords
- characteristic
- query
- value
- cache
- query request
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种数据处理方法及装置。本申请中,数据处理方法可以包括:针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;对原始数据集合中每个特征维度上Mi之外的特征值进行缓存;当接收到查询请求后,在缓存中进行查询;根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。本申请的技术方案,可以提高缓存效率,并降低缓存成本。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种数据处理方法及装置。
背景技术
随着机器学习、数据挖掘技术的普及,对于每一次用户请求,互联网平台级产品很可能采用了一个或多个机器学习模型,用于综合分析用户的成百上千维属性特征来对用户行为进行分析和预测,从而能够为用户提供更加个性化的服务,优化用户体验,提高平台整体运行效率。平台的用户规模乘以成百上千的特征维度,对这样体量的海量数据如何在毫秒级延迟的约束下完成模型预测计算,是平台架构面临的挑战。
相关技术中,为提高响应速度,在线服务系统都会配置缓存集群,将用户特征数据提前导入到缓存集群的内存中存储。相比于硬盘,使用内存缓存用户特征数据在访问速度上可以提高1-2个数量级,然而导致缓存数据的成本也更高,同时,也无法配置足够多的容量用于缓存数据,使用内存缓存数据时必须精打细算,迫不得已时需要丢弃一部分用户特征数据,降低模型预测的精度。
发明内容
为克服相关技术中存在的问题,本申请实施例提供一种数据处理方法及装置,以提高缓存效率,并降低缓存成本。
根据本申请实施例的第一方面,提供一种数据处理方法,包括:
针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;
对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
当接收到查询请求后,在缓存中进行查询;
根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
根据本申请实施例的第二方面,提供一种数据处理装置,包括:
选取模块,用于针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi;所述原始数据集合至少包括一个特征维度;
记录模块,用于记录每个i与Mi的映射关系;
缓存模块,用于对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
查询模块,用于在接收到查询请求后,在缓存中进行查询;
转换模块,用于根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi;
生成模块,用于根据所述转换模块的转换结果生成查询结果。
根据本申请实施例的第三方面,提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;
对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
当接收到查询请求后,在缓存中进行查询;
根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
根据本申请实施例的第四方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;
对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
当接收到查询请求后,在缓存中进行查询;
根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
本申请的实施例提供的技术方案可以包括以下有益效果:
通过针对原始数据集合的任意特征维度i,从特征维度i所有特征值中选取一个特征值Mi,并记录每个i与Mi的映射关系,在缓存数据时,对原始数据集合中每个特征维度上Mi之外的特征值进行缓存,这样,可以减少缓存数据量;当接收到查询请求后,在缓存中进行查询,如果在缓存中根据缓存的数据返回值非空,则根据返回值生成查询结果,但是,如果在缓存中取值为空的特征值,则根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果,这样,在不舍弃信息总量的前提下,可以压缩缓存的数据总量,提高缓存效率,降低缓存成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
图1是根据一示例性实施例示出的数据处理方法的流程图;
图2是根据又一示例性实施例示出的数据处理方法的流程图;
图3是根据又一示例性实施例示出的数据处理方法的流程图;
图4是根据又一示例性实施例示出的数据处理方法的流程图;
图5是根据又一示例性实施例示出的数据处理方法的流程图;
图6是根据一示例性实施例示出的数据处理装置的框图;
图7是根据又一示例性实施例示出的数据处理装置的框图;
图8是根据又一示例性实施例示出的数据处理装置的框图;
图9是根据又一示例性实施例示出的数据处理装置的框图;
图10是根据一示例性实施例示出的一种电子设备的框图。
具体实施例
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施例并不代表与本申请相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
下面结合附图,对本申请的一些实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
图1是根据一示例性实施例示出的数据处理方法的流程图。该方法可应用于电子设备(如:智能手机、平板电脑、个人计算机等)上。本方法可以应用于至少包括一个特征维度的数据集合的场景。如图1所示,所述数据处理方法包括如下步骤101~104:
在步骤101中,针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系。其中,原始数据集合至少包括一个特征维度。
原始数据集合是数据处理的数据源,可以包括至少一个特征维度。原始数据集合例如可以是互联网平台级产品的用户数据。其中互联网平台级产品可以是打车软件,也可以是供用户交易的网站。用户数据可以包括至少一个维属性特征,其中,每个维属性特征采用一个特征维度表示。每个特征维度上可包括至少一个特征值,特征值之间的关系可以是离散的,也可以是连续的。
在一个示例性场景中,原始数据集合为打车软件的用户数据集合,包括年龄、性别、30天内订单数等3个特征维度,具体如表1所示。表1中,用户ID为用户在打车软件注册的用户编号,用于指代用户;年龄数据采用数据区间表示,比如“70后”表示用户生于1970年~1979年之间,“80后”表示用户生于1980年~1989年之间,“90后”表示用户生于1990年~1999年之间。
在上述的示例性场景中,对于“年龄”这个特征维度,包括的特征值为70后、80后与90后,对于“性别”这个特征维度,包括的特征值为女与男,对于“30天内订单数”这个特征维度,包括的特征值为0与5。
在选取一个特征值Mi时,可以根据预设的规则选取特征值Mi,例如可以是根据统计的分布占比选取特征值Mi,但在实际实施时,不限于此种方法选取特征值Mi。在一实施例中,可以将特征维度i上任意一个分布占比的特征值作为特征值Mi。例如,对于用户的年龄这个特征维度,既可以选取80后这个特征值作为特征值Mi,也可以选取70后或者90后作为特征值Mi。为了达到缓存效率最高的效果,可以选择分布占比最大的特征值作为特征值Mi,但是理论上,选择任一个分布占比的特征值作为特征值Mi都可以提高缓存效率。
表1用户信息表1
用户ID | 年龄 | 性别 | 30天内订单数 |
Y001 | 80后 | 女 | 0 |
Y002 | 80后 | 女 | 0 |
Y003 | 80后 | 男 | 5 |
Y004 | 90后 | 女 | 0 |
Y005 | 70后 | 男 | 0 |
在记录每个i与Mi的映射关系时,可以为每个特征维度i建立一个映射关系。在一个示例性实施例中,映射关系可以是映射表。
例如,对于用户的年龄这个特征维度,如果选取的特征值Mi为70后,则为用户的年龄这个特征维度建立一个映射表,具体请参见表2;对于用户的性别这个特征维度,如果选取的特征值Mi为男,则为用户的性别这个特征维度建立一个映射表,具体请参见表3;对于用户的30天内订单数这个特征维度,如果选取的特征值Mi为0,则为用户的30天内订单数这个特征维度建立一个映射表,具体请参见表4。需要说明的是,表2、表3与表4中所示的数据也可以是存储在一个表中。
表2年龄映射表1
年龄 | 70后 |
表3性别映射表1
性别 | 男 |
表4 30天内订单数映射表
30天内订单数 | 0 |
在步骤102中,对原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
在上述的示例性场景中,如果对于用户的年龄这个特征维度,选取的特征值Mi为70后,对于用户的性别这个特征维度,选取的特征值Mi为男,对于用户的30天内订单数这个特征维度,选取的特征值Mi为0,则在本步骤中,缓存的数据如表5所示,其中,NULL表示存储的特征值为空。当然,在实际实施时,数据缓存不限于本申请示例的实施方式,本步骤中缓存的数据是根据步骤101中选取的特征值Mi确定的。
表5用户信息表2
在步骤103中,当接收到查询请求后,在缓存中进行查询。
查询请求可以是包括单一查询条件的查询请求,也可以是包括复合查询条件的查询请求。其中,单一查询条件可以仅包括一个查询条件,复合查询条件可以至少包括两个查询条件。例如,包括单一查询条件的查询请求可以是查询“用户ID=Y001”的用户的年龄、性别、30天内订单数等所有数据,或者是查询“年龄=80后”的所有用户ID的数据;包括复合查询条件的查询请求可以是查询“年龄=80后”且“年龄=90后”的所有用户ID的数据,或者是查询“年龄=80后”且“性别=女”的所有用户ID的数据。
当接收到查询请求后,会根据查询请求在缓存中进行查询,如果在缓存中根据缓存的数据返回值非空,则根据返回值生成查询结果。在一个示例性实施例中,如果查询请求包括的查询条件为“用户ID=Y001”的用户的年龄,则根据返回值生成查询结果为“80后”,如果查询请求包括的查询条件为“用户ID=Y002”的用户的性别,则根据返回值生成查询结果为“女”,如果查询请求包括的查询条件为“用户ID=Y003”的用户的性别,则根据返回值生成查询结果为“5”,如果查询请求包括的查询条件为“年龄=80后”且“性别=女”的所有用户ID,则根据返回值生成查询结果为“Y001与Y002”。如果在缓存中根据缓存的数据返回值为空,则执行步骤104。
在步骤104中,根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
当在缓存中根据缓存的数据返回值为空时,可以根据查询请求提取到查询条件对应的特征维度,并根据提取到的特征维度与预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
在一个示例性场景中,当查询请求包括的查询条件为“用户ID=Y003”的用户的性别时,在缓存中取值为空的特征值,则根据查询请求提取查询条件对应的特征维度,得到“特征维度i=性别”,然后根据“特征维度i=性别”与预先存储的性别映射表1,将缓存中取值为空的特征值转换为“男”,即转换结果为“男”,最后,将转换结果“男”生成查询结果,即““用户ID=Y003”的性别为男”。
在另一个示例性场景中,当查询请求包括的查询条件为“用户ID=Y001”的用户的年龄与30天内订单数时,在缓存中取值包括两个,一个为非空的特征值1,另一个为空的特征值2,根据非空的特征值1可以生成查询结果:“用户ID=Y001”的用户的年龄为80后,而对于返回值为空的特征值2处理方法如下:根据查询请求提取查询条件对应的特征维度,得到“特征维度i=30天内订单数”,然后根据“特征维度i=30天内订单数”与预先存储的30天内订单数映射表,将缓存中取值为空的特征值转换为“0”,即转换结果为“0”,最后,将转换结果“0”生成查询结果,即用户ID=Y001的用户的30天内订单数为0。
在上述的示例性场景中,假设用户规模有5个,缓存的数据比原始数据少了7个字段,根据而映射表中6个字段即可保证信息的全面性,即采用本申请中的数据处理方法可以比缓存原始数据少缓存1个字段。当用户规模巨大,比如2亿,且特征维度成百上千时,采用本申请中的数据处理方法可以比缓存原始数据少缓存很多字段,这样,可以在不舍弃信息总量的前提下,可以压缩缓存的数据总量,提高缓存效率,降低缓存成本,且在缓存容量一定的情况下,可以将节约的缓存空间用于缓存更多特征维度的数据,提高数据的完备性。
在一个示例性场景中,上述的数据处理方法可以应用于在线服务系统,该在线服务系统配置有缓存集群与访问服务器,用户特征数据缓存在缓存集群的内存中,这样,可以提高数据的访问速度,上述的映射关系可以保存在访问服务器本地,也可以保存在在线服务系统包括的其他储存装置中,只要访问服务器在缓存中取值为空时可以访问所述映射关系即可。当在线服务系统采用机器学习或者深度学习技术时,上述的数据处理方法可以更好地服务机器学习或者深度学习模型,发挥人工智能的优势。
需要说明的是,在上述的示例性实施例中,以每个特征维度的特征值为分离值为例进行举例说明,但是,在实际中,上述的特征值可以是连续值。而且,在上述的示例性实施例中,以对全部特征维度的数据实施本申请的数据处理方法为例进行举例说明,但是在实际应用时,可以对部分特征维度的数据实施采用本申请的数据处理方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
通过针对原始数据集合的任意特征维度i,从特征维度i所有特征值中选取一个特征值Mi,并记录每个i与Mi的映射关系,在缓存数据时,对原始数据集合中每个特征维度上Mi之外的特征值进行缓存,这样,可以减少缓存数据量;当接收到查询请求后,在缓存中进行查询,如果在缓存中根据缓存的数据返回值非空,则根据返回值生成查询结果,但是,如果在缓存中取值为空的特征值,则根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果,这样,在不舍弃信息总量的前提下,可以压缩缓存的数据总量,提高缓存效率,降低缓存成本,且在缓存容量一定的情况下,可以支持缓存更多特征维度的数据,提高数据的完备性。
图2是根据另一示例性实施例示出的数据处理方法的流程图。本实施例中以将特征维度i上分布占比最大的特征值确定为Mi为例进行示例性说明,本实施例中的数据处理方法,可以更大程度地提高缓存效率,节约缓存的存储空间,降低缓存成本。如图2所示,所述数据处理方法包括如下步骤201~204:
在步骤201中,针对原始数据集合的任意特征维度i,将特征维度i上分布占比最大的特征值确定为Mi,记录每个i与Mi的映射关系。
请继续参照以表1中所示的原始数据集合。在选取Mi时,基于特征维度i的统计结果,将特征维度i上分布占比最大的特征值确定为Mi。例如,对于用户的年龄这个特征维度,年龄为80后的用户分布占比最大,故将“80后”确定为“年龄”这个特征维度上的Mi,以此类推,将“女”确定为“性别”这个特征维度上的Mi,将“0”确定为“30天内订单数”这个特征维度上的Mi。这样,“年龄”这个特征维度上的Mi与年龄的映射关系可以如表6所示,“性别”这个特征维度上的Mi与性别的映射关系可以如表7所示,“30天内订单数”这个特征维度上的Mi与30天内订单数的映射关系可以如表4所示。
表6年龄映射表2
年龄 | 80后 |
表7性别映射表2
性别 | 女 |
在步骤202中,对原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
根据步骤201中确定的Mi,本步骤中缓存的数据如表8所示。
表8用户信息表3
用户ID | 年龄 | 性别 | 30天内订单数 |
Y001 | NULL | NULL | NULL |
Y002 | NULL | NULL | NULL |
Y003 | NULL | 男 | 5 |
Y004 | 90后 | NULL | NULL |
Y005 | 70后 | 男 | NULL |
在步骤203中,当接收到查询请求后,在缓存中进行查询。
在步骤204中,根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
步骤203~步骤204的描述可以参见上述图1所示实施例的描述,在此不再详述。
在本实施例中,假设用户规模有5个,缓存的数据比原始数据少了10个字段,根据而映射表中6个字段即可保证信息的全面性,即采用本申请中的数据处理方法可以比缓存原始数据少缓存4个字段。当用户规模巨大,比如2亿,且特征维度成百上千时,采用本申请中的数据处理方法可以比缓存原始数据少缓存最多的字段,这样,可以在不舍弃信息总量的前提下,可以最大程度地压缩缓存的数据总量,提高缓存效率,降低缓存成本,且在缓存容量一定的情况下,可以将节约的缓存空间用于缓存更多特征维度的数据,提高数据的完备性。
本实施例,通过将特征维度i上分布占比最大的特征值确定为Mi,可以在不舍弃信息总量的前提下,最大程度地压缩缓存的数据总量,提高缓存效率,降低缓存成本,且在缓存容量一定的情况下,可以将节约的缓存空间用于缓存更多特征维度的数据,提高数据的完备性。
需要注意的是,随着时间推移,原始数据集合需要根据实际情况更新,例如新用户注册、发生大规模数据更新、平台政策变化等等,因此,也需要对映射关系进行更新,以确保数据查询结果的准确性。对原始数据集合以及映射关系进行数据更新的触发条件,可以是手动触发、定时触发或者事件触发(例如发生了大规模数据更新、新用户注册等)。数据更新方法具体包括如下步骤205~208:
在步骤205中,更新原始数据集合。更新后的原始数据集合是本申请中的数据处理方法中的新的数据源。
在步骤206中,基于更新的原始数据集合,对特征维度i的所有特征值各自对应的分布占比进行更新。
在一个示例性场景中,原始数据集合发生了大规模数据更新,更新后的原始数据集合中的用户的“性别”分布占比可能由原来的“女”分布占比最大,改变为“男”分布占比最大。
在步骤207中,基于更新的特征维度i的所有特征值各自对应的分布占比,对特征值Mi进行更新。
在上述的示例性场景中,本步骤中,在“性别”这个特征维度上,特征值Mi由原来的“女”更新为“男”。
在步骤208中,基于更新的特征值Mi,对映射关系进行更新。
在上述的示例性场景中,在“性别”这个特征维度上,i与Mi的映射关系由表7更新为如表3所示的关系。
在步骤205~步骤208执行完毕后,可以再执行步骤202~步骤204,其中,步骤202是对更新后的原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
相对于前述实施例,本实施例通过将特征维度i上分布占比最大的特征值确定为Mi,可以在不舍弃信息总量的前提下,最大程度地压缩缓存的数据总量,进一步提高缓存效率,降低缓存成本。另外,当缓存数据与映射关系基于更新的原始数据集合进行更新,可以保证查询结果的准确性。
图3是根据另一示例性实施例示出的数据处理方法的流程图。本实施例中以查询请求包含以任意i和Mi构成的查询条件为例进行示例性说明,本实施例中的数据处理方法,当查询请求包含以任意i和Mi构成的查询条件时,也可以得到查询结果。如图3所示,所述数据处理方法包括如下步骤301~305:
在步骤301中,针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系。
在步骤302中,对原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
步骤301~步骤302的描述可以参见上述图1所示实施例的描述,在此不再详述。
在一个示例性实施例中,原始数据集合如表1所示,所有i与Mi的映射关系如表4、6、7所示,缓存数据如表8所示。
在步骤303中,接收到查询请求后,根据预先记录的映射关系,判断查询请求中是否包含以任意i和Mi构成的查询条件。如果是,则执行步骤304。
在一个示例性实施例中,查询请求包括“年龄=80后”的用户ID的查询条件。在接收到上述的查询请求后,根据映射关系表6判定查询请求包含以特征维度“性别”和特征值“80后”构成的查询条件,则执行步骤304。
在步骤304中,将查询条件中的Mi转换为空值,并基于转换后的查询请求在缓存中进行查询。
在上述的示例性实施例中,将查询请求包括的“年龄=80后”的用户ID的查询条件转换为“年龄=NULL”的用户ID的查询条件。这样,基于转换后的查询请求在缓存中查询时,就可以得到满足原查询条件的查询结果了。例如,在本示例性实施例中,查询结果为Y001、Y002与Y003。
在步骤305中,根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
步骤305的描述可以参见上述图1所示实施例的描述,在此不再详述。
在一个示例性实施例中,查询请求包括“年龄=80后”且“性别=男”的所有用户的数据(性别、年龄以及30天内订单数)的查询条件。在接收到查询请求后,根据表6判定查询请求包括“年龄=80后”的查询条件,将该查询条件转换为“年龄=NULL”,即转换后的查询请求包括的查询条件为:“年龄=NULL”且“性别=男”的所有用户的数据(性别、年龄以及30天内订单数)。基于转换后的查询请求在缓存中进行查询,可以得到如表9所示的数据:
表9查询结果1
用户ID | 年龄 | 性别 | 30天内订单数 |
Y003 | 80后 | 男 | 5 |
相对于前述实施例,本实施例中,当查询请求包含以任意i和Mi构成的查询条件时,对查询请求进行转换,并基于转换后的查询请求进行查询,以避免根据查询请求得不到查询结果的情况出现。
图4是根据另一示例性实施例示出的数据处理方法的流程图。本实施例中以接收到查询请求后,根据预先记录的映射关系,将缓存中取值为空的数值转换为对应的Mi,并基于接收到的查询请求在缓存中进行查询为例进行示例性说明,本实施例中的数据处理方法,可以避免根据查询请求查询失败的情况。如图4所示,所述数据处理方法包括如下步骤401~404:
在步骤401中,针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系。
在步骤402中,对原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
步骤401~步骤402的描述可以参见上述图1所示实施例的描述,在此不再详述。
在一个示例性实施例中,原始数据集合如表1所示,所有i与Mi的映射关系如表4、6、7所示,缓存数据如表8所示。
在步骤403中,接收到查询请求后,根据预先记录的映射关系,将缓存中取值为空的数值转换为对应的Mi,并基于接收到的查询请求在缓存中进行查询。
在本步骤中,是根据表4、表6与表7,将表8中的NULL转换为对应的特征值,例如,将年龄这个特征维度上的特征值“NULL”转换为“80后”,将性别这个特征维度上的特征值“NULL”转换为“女”,将30天内订单数这个特征维度上的特征值“NULL”转换为“0”,得到如表1所示的数据。
在步骤404中,根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
步骤404的描述可以参见上述图1所示实施例的描述,在此不再详述。
在一个示例性实施例中,查询请求包括“年龄=80后”且“性别=女”的30天内订单总数的查询条件。接收到上述查询请求后,根据表4、表6与表7所示的映射关系,将表8中年龄这个特征维度上的特征值“NULL”转换为“80后”,将性别这个特征维度上的特征值“NULL”转换为“女”,将30天内订单数这个特征维度上的特征值“NULL”转换为“0”,得到如表1所示的数据。根据表1,基于上述的查询请求,满足查询条件的数据如表10所示,即用户ID为Y001与Y002满足查询条件,对满足查询条件的用户ID对应的30天内订单数进行求和,即可得到查询结果。由于用户ID为Y001与Y002的30天内订单数均为0,继而得到查询结果为0。
相对于前述实施例,本实施例中,在接收到查询请求后,根据预先记录的映射关系,将缓存中取值为空的数值转换为对应的Mi,并基于接收到的查询请求在缓存中进行查询,可以避免根据查询请求查询失败的情况。
表10用户信息表5
用户ID | 年龄 | 性别 | 30天内订单数 |
Y001 | 80后 | 女 | 0 |
Y002 | 80后 | 女 | 0 |
图5是根据另一示例性实施例示出的数据处理方法的流程图。本实施例中以接收到查询请求后,根据预先记录的映射关系,将缓存中取值为空的数值转换为对应的Mi,并基于接收到的查询请求在缓存中进行查询为例进行示例性说明,本实施例中的数据处理方法,既可以减少数据转换量,又可以避免根据查询请求查询失败的情况。如图5所示,所述数据处理方法包括如下步骤501~505:
在步骤501中,针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系。
在步骤502中,对原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
步骤501~步骤502的描述可以参见上述图1所示实施例的描述,在此不再详述。
在一个示例性实施例中,原始数据集合如表1所示,所有i与Mi的映射关系如表4、6、7所示,缓存数据如表8所示。
在步骤503中,接收到查询请求后,根据预先记录的映射关系,判断查询请求中是否包含以任意i构成的查询条件。如果是,则执行步骤504。
在上述的示例性实施例中,判断查询请求中是否包含性别、年龄或者30天内订单数中的至少一个特征维度构成的查询条件,如果是,则执行步骤504。
在步骤504中,将缓存中与i对应的取值为空的数值转换为对应的Mi,并基于接收到的查询请求在缓存中进行查询。
在上述的示例性实施例中,如果查询请求包括“年龄”的查询条件,则将表8中年龄这个特征维度上的特征值“NULL”转换为“80后”。如果查询请求包括“性别”的查询条件,则将表8中性别这个特征维度上的特征值“NULL”转换为“女”。如果查询请求包括“30天内订单数”的查询条件,则将表8中30天内订单数这个特征维度上的特征值“NULL”转换为“0”。
在步骤505中,根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
在一个示例性实施例中,查询请求包括“年龄=80后”且“性别=女”的30天内订单总数的查询条件。接收到上述查询请求后,根据表6与表7所示的映射关系,将表8中年龄这个特征维度上的特征值“NULL”转换为“80后”,将性别这个特征维度上的特征值“NULL”转换为“女”,得到如下所示的表11。根据表11,基于上述的查询请求,满足查询条件的数据如表12所示,即用户ID为Y001与Y002满足查询条件,对满足查询条件的用户ID对应的30天内订单数进行求和,即可得到查询结果。根据表4,可以得到用户ID为Y001与Y002的30天内订单数均为0,继而得到查询结果为0。
相对于前述实施例,本实施例中,在接收到查询请求后,根据预先记录的映射关系,判断查询请求中是否包含以任意i构成的查询条件,如果是,则将缓存中与i对应的取值为空的数值转换为对应的Mi,并基于接收到的查询请求在缓存中进行查询,有针对性地对缓存的数据进行转换,既可以减少数据转换量,又可以避免根据查询请求查询失败的情况。
表11用户信息表6
用户ID | 年龄 | 性别 | 30天内订单数 |
Y001 | 80后 | 女 | NULL |
Y002 | 80后 | 女 | NULL |
Y003 | 80后 | 男 | 5 |
Y004 | 90后 | 女 | NULL |
Y005 | 70后 | 男 | NULL |
表12用户信息表7
用户ID | 年龄 | 性别 | 30天内订单数 |
Y001 | 80后 | 女 | NULL |
Y002 | 80后 | 女 | NULL |
图6是根据一示例性实施例示出的数据处理装置的框图,本实施例中,数据处理装置可以包括:
选取模块61,用于针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi;其中原始数据集合至少包括一个特征维度。
原始数据集合是数据处理的数据源,可以包括至少一个特征维度。原始数据集合例如可以是互联网平台级产品的用户数据。其中互联网平台级产品可以是打车软件,也可以是供用户交易的网站。用户数据可以包括至少一个维属性特征,其中,每个维属性特征采用一个特征维度表示。每个特征维度上可包括至少一个特征值,特征值之间的关系可以是离散的,也可以是连续的。
在一个示例性场景中,原始数据集合为打车软件的用户数据集合,包括年龄、性别、30天内订单数等3个特征维度,具体如表1所示。对于“年龄”这个特征维度,包括的特征值为70后、80后与90后,对于“性别”这个特征维度,包括的特征值为女与男,对于“30天内订单数”这个特征维度,包括的特征值为0与5。
在选取一个特征值Mi时,可以根据预设的规则选取特征值Mi,例如可以是根据统计的分布占比选取特征值Mi,但在实际实施时,不限于此种方法选取特征值Mi。在一实施例中,可以将特征维度i上任意一个分布占比的特征值作为特征值Mi。例如,对于用户的年龄这个特征维度,既可以选取80后这个特征值作为特征值Mi,也可以选取70后或者90后作为特征值Mi。为了达到缓存效率最高的效果,可以选择分布占比最大的特征值作为特征值Mi,但是理论上,选择任一个分布占比的特征值作为特征值Mi都可以提高缓存效率。
记录模块62,用于记录每个i与Mi的映射关系。
在记录每个i与Mi的映射关系时,可以为每个特征维度i建立一个映射关系。在一个示例性实施例中,映射关系可以是映射表。例如,对于用户的年龄这个特征维度,如果选取的特征值Mi为70后,则为用户的年龄这个特征维度建立一个映射表,具体请参见表2;对于用户的性别这个特征维度,如果选取的特征值Mi为男,则为用户的性别这个特征维度建立一个映射表,具体请参见表3;对于用户的30天内订单数这个特征维度,如果选取的特征值Mi为0,则为用户的30天内订单数这个特征维度建立一个映射表,具体请参见表4。需要说明的是,表2、表3与表4中所示的数据也可以是存储在一个表中。
缓存模块63,用于对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
在上述的示例性场景中,如果对于用户的年龄这个特征维度,选取的特征值Mi为70后,对于用户的性别这个特征维度,选取的特征值Mi为男,对于用户的30天内订单数这个特征维度,选取的特征值Mi为0,则缓存的数据如表5所示。当然,在实际实施时,数据缓存不限于本申请示例的实施方式,缓存模块63缓存的数据是根据选取模块61选取的特征值Mi确定的。
查询模块64,用于在接收到查询请求后,在缓存中进行查询。
查询请求可以是包括单一查询条件的查询请求,也可以是包括复合查询条件的查询请求。其中,单一查询条件可以仅包括一个查询条件,复合查询条件可以至少包括两个查询条件。例如,包括单一查询条件的查询请求可以是查询“用户ID=Y001”的用户的年龄、性别、30天内订单数等所有数据,或者是查询“年龄=80后”的所有用户ID的数据;包括复合查询条件的查询请求可以是查询“年龄=80后”且“年龄=90后”的所有用户ID的数据,或者是查询“年龄=80后”且“性别=女”的所有用户ID的数据。
当接收到查询请求后,会根据查询请求在缓存中进行查询,如果在缓存中根据缓存的数据返回值非空,则根据返回值生成查询结果。在一个示例性实施例中,如果查询请求包括的查询条件为“用户ID=Y001”的用户的年龄,则根据返回值生成查询结果为“80后”,如果查询请求包括的查询条件为“用户ID=Y002”的用户的性别,则根据返回值生成查询结果为“女”,如果查询请求包括的查询条件为“用户ID=Y003”的用户的性别,则根据返回值生成查询结果为“5”,如果查询请求包括的查询条件为“年龄=80后”且“性别=女”的所有用户ID,则根据返回值生成查询结果为“Y001与Y002”。如果在缓存中根据缓存的数据返回值为空,则触发转换模块65。
转换模块65,用于根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi。
当在缓存中根据缓存的数据返回值为空时,可以根据查询请求提取到查询条件对应的特征维度,并根据提取到的特征维度与预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi。
生成模块66,用于根据所述转换模块的转换结果生成查询结果。
在一个示例性场景中,当查询请求包括的查询条件为“用户ID=Y003”的用户的性别时,在缓存中取值为空的特征值,则根据查询请求提取查询条件对应的特征维度,得到“特征维度i=性别”,然后根据“特征维度i=性别”与预先存储的性别映射表1,将缓存中取值为空的特征值转换为“男”,即转换结果为“男”,最后,将转换结果“男”生成查询结果,即““用户ID=Y003”的性别为男”。
在另一个示例性场景中,当查询请求包括的查询条件为“用户ID=Y001”的用户的年龄与30天内订单数时,在缓存中取值包括两个,一个为非空的特征值1,另一个为空的特征值2,根据非空的特征值1可以生成查询结果:“用户ID=Y001”的用户的年龄为80后,而对于返回值为空的特征值2处理方法如下:根据查询请求提取查询条件对应的特征维度,得到“特征维度i=30天内订单数”,然后根据“特征维度i=30天内订单数”与预先存储的30天内订单数映射表,将缓存中取值为空的特征值转换为“0”,即转换结果为“0”,最后,将转换结果“0”生成查询结果,即用户ID=Y001的用户的30天内订单数为0。
在上述的示例性场景中,假设用户规模有5个,缓存的数据比原始数据少了7个字段,根据而映射表中6个字段即可保证信息的全面性,即采用本申请中的数据处理方法可以比缓存原始数据少缓存1个字段。当用户规模巨大,比如2亿,且特征维度成百上千时,采用本申请中的数据处理方法可以比缓存原始数据少缓存很多字段,这样,可以在不舍弃信息总量的前提下,可以压缩缓存的数据总量,提高缓存效率,降低缓存成本,且在缓存容量一定的情况下,可以将节约的缓存空间用于缓存更多特征维度的数据,提高数据的完备性。
在一个示例性场景中,上述的数据处理方法可以应用于在线服务系统,该在线服务系统配置有缓存集群与访问服务器,用户特征数据缓存在缓存集群的内存中,这样,可以提高数据的访问速度,上述的映射关系可以保存在访问服务器本地,也可以保存在在线服务系统包括的其他储存装置中,只要访问服务器在缓存中取值为空时可以访问所述映射关系即可。当在线服务系统采用机器学习或者深度学习技术时,上述的数据处理方法可以更好地服务机器学习或者深度学习模型,发挥人工智能的优势。
本申请的实施例提供的技术方案可以包括以下有益效果:
通过针对原始数据集合的任意特征维度i,从特征维度i所有特征值中选取一个特征值Mi,并记录每个i与Mi的映射关系,在缓存数据时,对原始数据集合中每个特征维度上Mi之外的特征值进行缓存,这样,可以减少缓存数据量;当接收到查询请求后,在缓存中进行查询,如果在缓存中根据缓存的数据返回值非空,则根据返回值生成查询结果,但是,如果在缓存中取值为空的特征值,则根据查询请求以及预先记录的映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果,这样,在不舍弃信息总量的前提下,可以压缩缓存的数据总量,提高缓存效率,降低缓存成本,且在缓存容量一定的情况下,可以支持缓存更多特征维度的数据,提高数据的完备性。
图7是根据一示例性实施例示出的数据处理装置的框图,本实施例中,数据处理装置包括:选取模块61、记录模块62、缓存模块63、查询模块64、转换模块65与生成模块66。其中,选取模块可以包括:确定子模块611,用于将特征维度i上分布占比最大的特征值确定为Mi。
请继续参照以表1中所示的原始数据集合。在选取Mi时,基于特征维度i的统计结果,将特征维度i上分布占比最大的特征值确定为Mi。例如,对于用户的年龄这个特征维度,年龄为80后的用户分布占比最大,故将“80后”确定为“年龄”这个特征维度上的Mi,以此类推,将“女”确定为“性别”这个特征维度上的Mi,将“0”确定为“30天内订单数”这个特征维度上的Mi。这样,“年龄”这个特征维度上的Mi与年龄的映射关系可以如表6所示,“性别”这个特征维度上的Mi与性别的映射关系可以如表7所示,“30天内订单数”这个特征维度上的Mi与30天内订单数的映射关系可以如表4所示。
在本实施例中,缓存模块63缓存的数据如表8所示。记录模块62、查询模块64、转换模块65、生成模块66与图6示出的数据处理装置相同,在此不再赘述。
在本实施例中,假设用户规模有5个,缓存的数据比原始数据少了10个字段,根据而映射表中6个字段即可保证信息的全面性,即采用本申请中的数据处理方法可以比缓存原始数据少缓存4个字段。当用户规模巨大,比如2亿,且特征维度成百上千时,采用本申请中的数据处理方法可以比缓存原始数据少缓存最多的字段,这样,可以在不舍弃信息总量的前提下,可以最大程度地压缩缓存的数据总量,提高缓存效率,降低缓存成本,且在缓存容量一定的情况下,可以将节约的缓存空间用于缓存更多特征维度的数据,提高数据的完备性。
本实施例,通过将特征维度i上分布占比最大的特征值确定为Mi,可以在不舍弃信息总量的前提下,最大程度地压缩缓存的数据总量,提高缓存效率,降低缓存成本,且在缓存容量一定的情况下,可以将节约的缓存空间用于缓存更多特征维度的数据,提高数据的完备性。
需要注意的是,随着时间推移,原始数据集合需要根据实际情况更新,例如新用户注册、发生大规模数据更新、平台政策变化等等,因此,也需要对映射关系进行更新,以确保数据查询结果的准确性。对原始数据集合以及映射关系进行数据更新的触发条件,可以是手动触发、定时触发或者事件触发(例如发生了大规模数据更新、新用户注册等)。
在一个实施例中,如图7所示,数据处理装置还可以包括:
第一更新模块71,用于更新所述原始数据集合。更新后的原始数据集合是本申请中的数据处理方法中的新的数据源。
第二更新模块72,用于基于更新的所述原始数据集合,对所述特征维度i的所有特征值各自对应的分布占比进行更新。
在一个示例性场景中,原始数据集合发生了大规模数据更新,更新后的原始数据集合中的用户的“性别”分布占比可能由原来的“女”分布占比最大,改变为“男”分布占比最大。
第三更新模块73,用于基于更新的所述特征维度i的所有特征值各自对应的分布占比,对所述特征值Mi进行更新。
在上述的示例性场景中,本步骤中,在“性别”这个特征维度上,特征值Mi由原来的“女”更新为“男”。
第四更新模块74,用于基于更新的所述特征值Mi,对所述映射关系进行更新。
在上述的示例性场景中,在“性别”这个特征维度上,i与Mi的映射关系由表7更新为如表3所示的关系。
在第一更新模块71、第二更新模块72、第三更新模块73、第四更新模块74执行完毕后,可以再触发缓存模块63,其中,缓存模块63是对更新后的原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
相对于前述实施例,本实施例通过将特征维度i上分布占比最大的特征值确定为Mi,可以在不舍弃信息总量的前提下,最大程度地压缩缓存的数据总量,进一步提高缓存效率,降低缓存成本。另外,当缓存数据与映射关系基于更新的原始数据集合进行更新,可以保证查询结果的准确性。
图8是根据一示例性实施例示出的数据处理装置的框图,本实施例中,数据处理装置包括:
选取模块61,用于针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi。
记录模块62,用于记录每个i与Mi的映射关系。
缓存模块63,用于对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
选取模块61、记录模块62与缓存模块63与图6所示的实施例的描述,在此不再详述。
在一个示例性实施例中,原始数据集合如表1所示,所有i与Mi的映射关系如表4、6、7所示,缓存数据如表8所示。
查询模块64,用于在接收到查询请求后,在缓存中进行查询。
其中,查询模块64包括:
判断子模块641,用于在接收到查询请求后,根据预先记录的映射关系,判断查询请求中是否包含以任意i和Mi构成的查询条件,如果是,则触发第一转换子模块。
在一个示例性实施例中,查询请求包括“年龄=80后”的用户ID的查询条件。在接收到上述的查询请求后,根据映射关系表6判定查询请求包含以“性别”和“80后”构成的查询条件,则触发第一转换子模块642。
第一转换子模块642,用于将所述查询条件中的Mi转换为空值。
第一查询子模块643,用于基于转换后的查询请求在缓存中进行查询。
在上述的示例性实施例中,将查询请求包括的“年龄=80后”的用户ID的查询条件转换为“年龄=NULL”的用户ID的查询条件。这样,基于转换后的查询请求在缓存中查询时,就可以得到满足原查询条件的查询结果了。例如,在本示例性实施例中,查询结果为Y001、Y002与Y003。
转换模块65,用于根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi。
生成模块66,用于根据所述转换模块的转换结果生成查询结果。
转换模块65、生成模块66的描述可以参见上述图6所示实施例的描述,在此不再详述。
在一个示例性实施例中,查询请求包括“年龄=80后”且“性别=男”的所有用户的数据(性别、年龄以及30天内订单数)的查询条件。在接收到查询请求后,根据表6判定查询请求包括“年龄=80后”的查询条件,将该查询条件转换为“年龄=NULL”,即转换后的查询请求包括的查询条件为:“年龄=NULL”且“性别=男”的所有用户的数据(性别、年龄以及30天内订单数)。基于转换后的查询请求在缓存中进行查询,可以得到如表9所示的数据。
相对于前述实施例,本实施例中,当查询请求包含以任意i和Mi构成的查询条件时,对查询请求进行转换,并基于转换后的查询请求进行查询,以避免根据查询请求得不到查询结果的情况出现。
图9是根据一示例性实施例示出的数据处理装置的框图,本实施例中,数据处理装置包括:
选取模块61,用于针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi。
记录模块62,用于记录每个i与Mi的映射关系。
缓存模块63,用于对原始数据集合中每个特征维度上Mi之外的特征值进行缓存。
选取模块61、记录模块62与缓存模块63与图6所示的实施例的描述,在此不再详述。
在一个示例性实施例中,原始数据集合如表1所示,所有i与Mi的映射关系如表4、6、7所示,缓存数据如表8所示。
查询模块64,用于在接收到查询请求后,在缓存中进行查询。
其中,查询模块64包括:
第二转换子模块644,用于在接收到查询请求后,根据预先记录的映射关系,将缓存中取值为空的数值转换为对应的Mi。
在本实施例中,是根据表4、表6与表7,将表8中的NULL转换为对应的特征值,例如,将年龄这个特征维度上的特征值“NULL”转换为“80后”,将性别这个特征维度上的特征值“NULL”转换为“女”,将30天内订单数这个特征维度上的特征值“NULL”转换为“0”,得到如表1所示的数据。
第二查询子模块645,用于基于接收到的查询请求在缓存中进行查询。
转换模块65,用于根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi。
生成模块66,用于根据所述转换模块的转换结果生成查询结果。
转换模块65、生成模块66的描述可以参见上述图6所示实施例的描述,在此不再详述。
在一个示例性实施例中,查询请求包括“年龄=80后”且“性别=女”的30天内订单总数的查询条件。接收到上述查询请求后,根据表4、表6与表7所示的映射关系,将表8中年龄这个特征维度上的特征值“NULL”转换为“80后”,将性别这个特征维度上的特征值“NULL”转换为“女”,将30天内订单数这个特征维度上的特征值“NULL”转换为“0”,得到如表1所示的数据。根据表1,基于上述的查询请求,满足查询条件的数据如表10所示,即用户ID为Y001与Y002满足查询条件,对满足查询条件的用户ID对应的30天内订单数进行求和,即可得到查询结果。由于用户ID为Y001与Y002的30天内订单数均为0,继而得到查询结果为0。
相对于前述实施例,本实施例中,在接收到查询请求后,根据预先记录的映射关系,将缓存中取值为空的数值转换为对应的Mi,并基于接收到的查询请求在缓存中进行查询,可以避免根据查询请求查询失败的情况。
在另一个实施例中,图9示出的数据处理装置中,第二转换子模块644,还可以用于判断查询请求中是否包含以任意i构成的查询条件,如果是,则将缓存中与i对应的取值为空的数值转换为对应的Mi。
在一个示例性实施例中,原始数据集合如表1所示,所有i与Mi的映射关系如表4、6、7所示,缓存数据如表8所示。第二转换子模块644判断查询请求中是否包含性别、年龄或者30天内订单数中的至少一个特征维度构成的查询条件,如果查询请求包括“年龄”的查询条件,则将表8中年龄这个特征维度上的特征值“NULL”转换为“80后”;如果查询请求包括“性别”的查询条件,则将表8中性别这个特征维度上的特征值“NULL”转换为“女”;如果查询请求包括“30天内订单数”的查询条件,则将表8中30天内订单数这个特征维度上的特征值“NULL”转换为“0”。
在一个示例性实施例中,查询请求包括“年龄=80后”且“性别=女”的30天内订单总数的查询条件。接收到上述查询请求后,根据表6与表7所示的映射关系,将表8中年龄这个特征维度上的特征值“NULL”转换为“80后”,将性别这个特征维度上的特征值“NULL”转换为“女”,得到表11所示的数据。根据表11,基于上述的查询请求,满足查询条件的数据如表12所示,即用户ID为Y001与Y002满足查询条件,对满足查询条件的用户ID对应的30天内订单数进行求和,即可得到查询结果。根据表4,可以得到用户ID为Y001与Y002的30天内订单数均为0,继而得到查询结果为0。
相对于前述实施例,本实施例中,在接收到查询请求后,根据预先记录的映射关系,判断查询请求中是否包含以任意i构成的查询条件,如果是,则将缓存中与i对应的取值为空的数值转换为对应的Mi,并基于接收到的查询请求在缓存中进行查询,有针对性地对缓存的数据进行转换,既可以减少数据转换量,又可以避免根据查询请求查询失败的情况。
在本申请中,所述装置实施例与方法实施例在不冲突的情况下,可以互为补充。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
对应于上述的数据处理方法,本申请还提出了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;
对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
当接收到查询请求后,在缓存中进行查询;
根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
对应于上述的数据处理方法,本申请还提出了图10所示的根据本发明的一示例性实施例的电子设备的示意结构图。请参考图10,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据处理装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
其中,处理器,用于:
针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;
对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
当接收到查询请求后,在缓存中进行查询;
根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;
对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
当接收到查询请求后,在缓存中进行查询;
根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述从特征维度i的所有特征值中,选取一个特征值Mi,包括:
将特征维度i上分布占比最大的特征值确定为Mi。
3.根据权利要求2所述的数据处理方法,其特征在于,所述方法还包括:
更新所述原始数据集合;
基于更新的所述原始数据集合,对所述特征维度i的所有特征值各自对应的分布占比进行更新;
基于更新的所述特征维度i的所有特征值各自对应的分布占比,对所述特征值Mi进行更新;
基于更新的所述特征值Mi,对所述映射关系进行更新。
4.根据权利要求1所述的数据处理方法,其特征在于,当接收到查询请求后,在缓存中进行查询,包括:
接收到查询请求后,根据预先记录的映射关系,判断查询请求中是否包含以任意i和Mi构成的查询条件,如果是,则将所述查询条件中的Mi转换为空值,并基于转换后的查询请求在缓存中进行查询。
5.根据权利要求1所述的数据处理方法,其特征在于,当接收到查询请求后,在缓存中进行查询,包括:
接收到查询请求后,根据预先记录的映射关系,将缓存中取值为空的数值转换为对应的Mi,并基于接收到的所述查询请求在缓存中进行查询。
6.根据权利要求5所述的数据处理方法,其特征在于,所述将缓存中取值为空的数值转换为对应的Mi,包括:
判断查询请求中是否包含以任意i构成的查询条件,如果是,则将缓存中与i对应的取值为空的数值转换为对应的Mi。
7.一种数据处理装置,其特征在于,包括:
选取模块,用于针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi;所述原始数据集合至少包括一个特征维度;
记录模块,用于记录每个i与Mi的映射关系;
缓存模块,用于对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
查询模块,用于在接收到查询请求后,在缓存中进行查询;
转换模块,用于根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi;
生成模块,用于根据所述转换模块的转换结果生成查询结果。
8.根据权利要求7所述的数据处理装置,其特征在于,所述选取模块包括:
确定子模块,用于将特征维度i上分布占比最大的特征值确定为Mi。
9.根据权利要求8所述的数据处理装置,其特征在于,所述装置还包括:
第一更新模块,用于更新所述原始数据集合;
第二更新模块,用于基于更新的所述原始数据集合,对所述特征维度i的所有特征值各自对应的分布占比进行更新;
第三更新模块,用于基于更新的所述特征维度i的所有特征值各自对应的分布占比,对所述特征值Mi进行更新;
第四更新模块,用于基于更新的所述特征值Mi,对所述映射关系进行更新。
10.根据权利要求7所述的数据处理装置,其特征在于,所述查询模块包括:
判断子模块,用于在接收到查询请求后,根据预先记录的映射关系,判断查询请求中是否包含以任意i和Mi构成的查询条件,如果是,则触发第一转换子模块;
所述第一转换子模块,用于将所述查询条件中的Mi转换为空值;
第一查询子模块,用于基于转换后的查询请求在缓存中进行查询。
11.根据权利要求7所述的数据处理装置,其特征在于,所述查询模块包括:
第二转换子模块,用于在接收到查询请求后,根据预先记录的映射关系,将缓存中取值为空的数值转换为对应的Mi;
第二查询子模块,用于基于接收到的所述查询请求在缓存中进行查询。
12.根据权利要求11所述的数据处理装置,其特征在于,所述第二转换子模块,用于判断查询请求中是否包含以任意i构成的查询条件,如果是,则将缓存中与i对应的取值为空的数值转换为对应的Mi。
13.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;
对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
当接收到查询请求后,在缓存中进行查询;
根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
14.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
针对原始数据集合的任意特征维度i,从特征维度i的所有特征值中,选取一个特征值Mi,记录每个i与Mi的映射关系;所述原始数据集合至少包括一个特征维度;
对所述原始数据集合中每个特征维度上Mi之外的特征值进行缓存;
当接收到查询请求后,在缓存中进行查询;
根据所述查询请求以及预先记录的所述映射关系,将缓存中取值为空的特征值转换为对应的Mi,并根据转换结果生成查询结果。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710414760.0A CN108984574B (zh) | 2017-06-05 | 2017-06-05 | 数据处理方法及装置 |
CN201880036919.2A CN110709829B (zh) | 2017-06-05 | 2018-05-31 | 一种数据处理的系统和方法 |
PCT/CN2018/089141 WO2018223881A1 (en) | 2017-06-05 | 2018-05-31 | Systems and methods for data processing |
TW107119277A TW201903613A (zh) | 2017-06-05 | 2018-06-05 | 用於資料處理的系統及方法 |
US16/703,965 US10877968B2 (en) | 2017-06-05 | 2019-12-05 | Systems and methods for data processing |
US17/084,798 US20210073229A1 (en) | 2017-06-05 | 2020-10-30 | Systems and methods for data processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710414760.0A CN108984574B (zh) | 2017-06-05 | 2017-06-05 | 数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108984574A CN108984574A (zh) | 2018-12-11 |
CN108984574B true CN108984574B (zh) | 2021-01-05 |
Family
ID=64501904
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710414760.0A Active CN108984574B (zh) | 2017-06-05 | 2017-06-05 | 数据处理方法及装置 |
CN201880036919.2A Active CN110709829B (zh) | 2017-06-05 | 2018-05-31 | 一种数据处理的系统和方法 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880036919.2A Active CN110709829B (zh) | 2017-06-05 | 2018-05-31 | 一种数据处理的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10877968B2 (zh) |
CN (2) | CN108984574B (zh) |
TW (1) | TW201903613A (zh) |
WO (1) | WO2018223881A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111753386B (zh) * | 2019-03-11 | 2024-03-26 | 北京嘀嘀无限科技发展有限公司 | 一种数据处理方法及装置 |
CN110222043B (zh) * | 2019-06-12 | 2021-08-24 | 青岛大学 | 云存储服务器的数据监控方法、装置及设备 |
CN110336866A (zh) * | 2019-06-26 | 2019-10-15 | 北京大米科技有限公司 | 一种数据存取方法、装置、存储介质及服务器 |
CN110851477B (zh) * | 2019-10-16 | 2022-09-09 | 浙江大搜车软件技术有限公司 | 流数据处理方法、装置、计算机设备和存储介质 |
CN111953801A (zh) * | 2020-08-31 | 2020-11-17 | 北京猎户星空科技有限公司 | 机器人的远程控制方法、装置、电子设备及存储介质 |
CN112579897B (zh) * | 2020-12-16 | 2023-07-28 | 北京百度网讯科技有限公司 | 信息搜索方法和装置 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6122628A (en) | 1997-10-31 | 2000-09-19 | International Business Machines Corporation | Multidimensional data clustering and dimension reduction for indexing and searching |
US6292880B1 (en) * | 1998-04-15 | 2001-09-18 | Inktomi Corporation | Alias-free content-indexed object cache |
US20090024598A1 (en) * | 2006-12-20 | 2009-01-22 | Ying Xie | System, method, and computer program product for information sorting and retrieval using a language-modeling kernel function |
US7644090B2 (en) | 2006-06-27 | 2010-01-05 | Nahava Inc. | Method and apparatus for fast similarity-based query, self-join, and join for massive, high-dimension datasets |
CN100485689C (zh) * | 2007-01-30 | 2009-05-06 | 浪潮通信信息系统有限公司 | 基于文件系统缓存的数据加速查询方法 |
US8615404B2 (en) | 2007-02-23 | 2013-12-24 | Microsoft Corporation | Self-describing data framework |
US20090172024A1 (en) | 2007-12-31 | 2009-07-02 | Industrial Technology Research Institute | Systems and methods for collecting and analyzing business intelligence data |
US9639543B2 (en) * | 2010-12-28 | 2017-05-02 | Microsoft Technology Licensing, Llc | Adaptive index for data deduplication |
US8849744B2 (en) * | 2011-03-30 | 2014-09-30 | International Business Machines Corporation | Inconsistency robustness in scalable OLAP cubes |
TWI436222B (zh) | 2011-12-28 | 2014-05-01 | Chunghwa Telecom Co Ltd | Real - time multi - dimensional analysis system and method on cloud |
CN102594807A (zh) * | 2012-02-02 | 2012-07-18 | 江苏南亿迪纳数字科技发展有限公司 | 信息空间中基于实体自身特征的网络基因识别方法 |
US9501550B2 (en) * | 2012-04-18 | 2016-11-22 | Renmin University Of China | OLAP query processing method oriented to database and HADOOP hybrid platform |
US8996504B2 (en) * | 2012-05-24 | 2015-03-31 | Sybase, Inc. | Plan caching using density-based clustering |
WO2013179441A1 (ja) * | 2012-05-31 | 2013-12-05 | 株式会社日立製作所 | 検索サーバ、検索方法及びプログラム |
CN103838766B (zh) * | 2012-11-26 | 2018-04-06 | 深圳市腾讯计算机系统有限公司 | 防空缓存方法和装置 |
US10296462B2 (en) * | 2013-03-15 | 2019-05-21 | Oracle International Corporation | Method to accelerate queries using dynamically generated alternate data formats in flash cache |
TWI649761B (zh) | 2013-03-15 | 2019-02-01 | 美商普羅托斯數位健康公司 | 用於基於多變量資料融合技術之狀態特徵化的系統 |
CN104063384A (zh) * | 2013-03-19 | 2014-09-24 | 上海软智信息科技有限公司 | 一种数据检索方法及装置 |
CN104424251B (zh) | 2013-08-28 | 2019-03-15 | 腾讯科技(深圳)有限公司 | 一种多维度拆分的计算方法以及系统 |
CN104462141B (zh) * | 2013-09-24 | 2018-05-22 | 中国移动通信集团重庆有限公司 | 一种数据存储与查询的方法、系统及存储引擎装置 |
US9547719B2 (en) * | 2014-06-04 | 2017-01-17 | Netscout Systems Texas, Llc | Bandwidth efficient processing and filtering across distributed databases |
EP3269126A4 (en) | 2015-03-12 | 2018-09-05 | Intel Corporation | Method and apparatus for compaction of data received over a network |
CN104915450B (zh) * | 2015-07-01 | 2017-11-28 | 武汉大学 | 一种基于HBase的大数据存储与检索方法及系统 |
US20170017683A1 (en) * | 2015-07-13 | 2017-01-19 | 28msec | Systems And Methods For Storing And Interacting With Data From Heterogeneous Data Sources |
US10102482B2 (en) * | 2015-08-07 | 2018-10-16 | Google Llc | Factorized models |
CN105631000B (zh) * | 2015-12-25 | 2019-03-29 | 江苏东大金智信息系统有限公司 | 基于移动终端位置特征信息的终端缓存的数据压缩方法 |
CN106293525B (zh) * | 2016-08-05 | 2019-06-28 | 上海交通大学 | 一种提高缓存使用效率的方法及系统 |
-
2017
- 2017-06-05 CN CN201710414760.0A patent/CN108984574B/zh active Active
-
2018
- 2018-05-31 CN CN201880036919.2A patent/CN110709829B/zh active Active
- 2018-05-31 WO PCT/CN2018/089141 patent/WO2018223881A1/en active Application Filing
- 2018-06-05 TW TW107119277A patent/TW201903613A/zh unknown
-
2019
- 2019-12-05 US US16/703,965 patent/US10877968B2/en active Active
-
2020
- 2020-10-30 US US17/084,798 patent/US20210073229A1/en not_active Abandoned
Non-Patent Citations (1)
Title |
---|
基于Bitmak&RLE的FPGA配置文件混合压缩算法的设计与实现;于瑞;《中国优秀硕士学位论文全文数据库 信息科技辑》;20160215(第2期);I135-395 * |
Also Published As
Publication number | Publication date |
---|---|
CN110709829B (zh) | 2022-10-25 |
US10877968B2 (en) | 2020-12-29 |
WO2018223881A1 (en) | 2018-12-13 |
CN110709829A (zh) | 2020-01-17 |
CN108984574A (zh) | 2018-12-11 |
US20210073229A1 (en) | 2021-03-11 |
US20200110749A1 (en) | 2020-04-09 |
TW201903613A (zh) | 2019-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108984574B (zh) | 数据处理方法及装置 | |
EP3158559B1 (en) | Session context modeling for conversational understanding systems | |
JP7017568B2 (ja) | デジタルコンテンツ配信におけるレイテンシを削減するためのデジタルコンテンツ配信加速化 | |
CN103329151B (zh) | 基于话题聚类的推荐 | |
CN108460082B (zh) | 一种推荐方法及装置,电子设备 | |
WO2015175936A1 (en) | Knowledge source personalization to improve language models | |
KR20180099812A (ko) | 딥러닝 모델을 사용한 엔티티의 식별 | |
CN110909182A (zh) | 多媒体资源搜索方法、装置、计算机设备及存储介质 | |
CN112085565A (zh) | 基于深度学习的信息推荐方法、装置、设备及存储介质 | |
CN109993627B (zh) | 推荐方法、推荐模型的训练方法、装置和存储介质 | |
WO2022143482A1 (zh) | 一种推荐方法、推荐网络及相关设备 | |
WO2016134580A1 (zh) | 一种数据查询方法及装置 | |
CN105531701A (zh) | 个性化趋势图像搜索建议 | |
WO2024041483A1 (zh) | 一种推荐方法及相关装置 | |
CN112070564A (zh) | 广告拉取方法、装置、系统与电子设备 | |
CN115879508A (zh) | 一种数据处理方法及相关装置 | |
WO2023029350A1 (zh) | 基于点击行为预测的信息推送方法及装置 | |
CN117648495B (zh) | 一种基于云原生向量数据的数据推送方法及系统 | |
CN112967100A (zh) | 相似人群扩展方法、装置、计算设备以及介质 | |
CN102760127A (zh) | 基于扩展文本信息来确定资源类型的方法、装置及设备 | |
JP7213890B2 (ja) | 高速化された大規模な類似度計算 | |
KR101592670B1 (ko) | 인덱스를 이용하는 데이터 검색 장치 및 이를 이용하는 방법 | |
CN113360769B (zh) | 信息查询方法、装置、电子设备以及存储介质 | |
CN113947456B (zh) | 线上商铺匹配方法及其装置、设备、介质、产品 | |
CN114330519A (zh) | 数据确定方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |