背景技术:
“四方模式”描述由卡网络、发卡银行(“发行方”)、持卡人或消费者、商家和收单方组成的信用卡商业模型中通常使用的数据网络和各种实体。几乎所有电子卡支付在四方模式的背面上构建,因为四方模式用于保持整个系统共同工作。客户从发行方接收支付卡账户。账户可以是链接到支付装置的信用、借记或预付费类型账户。账户可以通过包含因特网、实体卡或移动装置的多个不同方法操作。
典型交易分三个阶段进行:授权、清算和结算。在授权期间,持卡人或消费者使用链接到发行方账户的支付装置选择其希望购买的商品和服务。商家的收单银行从商家接收交易并联系卡网络(例如,diner’sclub、discover等),以检查卡安全特征并将交易发送到持卡人银行进行审批。发行方批准交易以及卡网络并且回复商家银行。商家银行向商家发送批准并且持卡人完成交易并收到收据。在清算期间,商家银行将包含购买信息的清算消息发送到卡网络,所述卡网络验证购买信息并将购买信息发送到持卡人银行。清算过程协调进行交易的商家银行和持卡人银行。在结算时,持卡人银行将支付发送到卡网络,并且卡网络将支付发送到商家银行。商家银行随后向商家付款,并且持卡人银行向持卡人开账单。
随着时间的推移,交易为每个账户持有人构建一个简档。电子支付系统通常每天都会创建、处理和存储数十亿个动作。例如,购买、账户信息更改、转账、余额查询以及每个帐户内的其它动作都会被处理并随后存储在高速缓存系统中,以便快速访问数据。当前的账户简档数据管理解决方案已通过批处理和每日缓存创建了这些简档。例如,电子支付网络系统采用常规无错误散列技术。鉴于数据量很大,缓存过程可能需要超过4-5个小时才能完成。随着时间的推移,当每个帐户的历史数据量增加时,这种缓存过程将会变得更加繁琐。
快速访问最新的简档数据对于识别欺诈以及限制欺诈可能造成的损坏量是至关重要的。过期数据可能会阻止有效的交易获得批准或无意中批准欺诈性交易。但是,不断增加的数据量和耗时的缓存过程可能会导致错误和欺诈的机会。
技术实现要素:
下文呈现对本公开的简化概述以便提供对本公开的一些方面的基本理解。此概述不是详尽的综述。并不预期识别本公开的关键或重要元件或界定本公开的范围。以下概述仅以简化形式提出一些概念,作为对以下提供的更详细描述的序言。
本公开为数据系统托管的大型数据集中批量数据摄取和优先化的技术问题提供了一种技术解决方案。当系统周期性地摄取简档数据和对简档数据的更新,可以对简档数据进行优先化,从而可以首先将对使用简档数据的整个系统或过程具有较大应用或影响的关键简档摄取到高速缓存系统中。当前的数据系统缓存简档数据并直接更新。因此,随着数据集的大小增加,缓存数据集所需的时间量也会增加。并非直接缓存简档数据文件,本文所述的系统和方法可以在系统托管的数据集上采用多个空间效率概率数据结构,以便对数据集的简档数据进行优先化,并在缓存其它简档数据之前缓存优先级高的频繁改变的简档数据。例如,可以将简档数据放入多个段中,每个段都具有不同的重要性或缓存优先级,以便在高速缓存系统中存储。然后,可以将每个段中的简档(或每个简档的表示,例如简档密钥)放到对应段的布隆过滤器中。当新数据到来时,数据和/或其密钥也将被放入新的对应段的布隆过滤器中。在新数据流入之后或同时,系统接着可以执行在时间n创建的第一布隆过滤器集以及时间n+1创建的第二布隆过滤器集的交叉,以获得每个段中的公共简档数据。交叉共有的简档数据表示那些具有低活动或变化的简档数据,因此具有低优先级。不共有的简档数据会由于两个原因而具有更高的更新优先级:第一,新简档集合中的所有非共享简档数据都是新的并反映活动,第二,两个集合中更旧集合中的非共享简档对于该段而言不再相关,使得所有其它简档数据都具有更高优先级。
在一些实施例中,一种数据系统的计算机实现的方法可以动态地优先化和摄取数据,以便不管数据系统托管的数据集的存储器大小如何,它都可以在恒定时间内处理和分析托管的数据集。所述方法可以在数据集上实施第一空间效率概率数据结构,其中所述数据集包括多个简档数据。然后,它可以接收对应于多个简档数据中的一些的更新数据,并在包括更新数据的数据集上实施第二空间效率概率数据结构。在一些实施例中,所述方法可以在更新数据流入时实现第二数据结构。所述方法还可以确定第二空间效率概率数据结构的一组非共享简档数据,并且相对于所述数据集的其它简档数据,优先化所述第二空间效率概率数据结构的所述一组非共享简档数据用于高速缓存。
在其它实施例中,一种用于在数据系统中进行批量数据摄取优先化的系统可以包括数据存储库、处理器以及托管摄取优先化模块的存储器。数据存储库可以存储对应于多个简档数据集的数据集,每个简档数据集可以对应于主账号并包括交易数据。摄取优先化模块可以包括由处理器执行以用于在数据存储库的一个或多个简档数据集上实施第一空间效率概率数据结构并接收对应于多个简档数据集中的一些的更新数据的指令。所述模块还可以包括用于更新数据集以包括更新数据并在包括更新数据的一个或多个简档数据集上实施第二空间效率概率数据结构的指令。在一些实施例中,所述系统可以在更新数据流入时实现第二数据结构。数据集的其它指令可以确定第二空间效率概率数据结构的一组非共享简档数据,并且相对于所述数据集的其它简档数据,优先化所述第二空间效率概率数据结构的所述一组非共享简档数据。
附图说明
通过参考结合附图考虑的详细描述可以更好地理解本发明。图中的部件未必按比例绘制,而是侧重于图示本发明的原理。在图中,相同附图标号贯穿不同视图标示对应的部分。
图1示出了示范性批量数据摄取优先化系统的图示;
图2示出了空间效率概率数据结构的图形表示;
图3是至少两个空间效率概率数据结构的数据交叉的图示;
图4a和4b示出了示例支付装置;
图5是用于动态批量数据摄取优先化的方法的流程图;以及
图6示出了可以被物理地配置成执行方法并且包含本文所描述的各种部件的示范性计算装置。
所属领域的普通技术人员将了解,为了简单和清晰起见而示出图中的元件,因此并未示出所有的连接和选项,以避免模糊本发明的各方面。例如,通常不描绘在商业上可行的实施例中有用或必要的常见但易于理解的元件,以便更少地阻碍对本公开的这些各种实施例的观察。应进一步了解,可以特定的发生次序描述或描绘某些动作和/或步骤,而所属领域的技术人员应理解,实际上不要求此类有关顺序的特异性。还应理解,本文中所用的术语和表达相对于其对应的相应查询和研究领域来进行定义,除非本文中另外阐述了特定含义。
具体实施方式
现在将参考附图来更全面地描述本发明,附图形成本发明的一部分,且通过图示的方式示出了可以实践本发明的具体示范性实施例。这些图示和示范性实施例的呈现应理解为,本公开是一个或多个发明原理的范例,且并非意在将任何一个发明限制于所示实施例。本发明可以许多不同形式体现,且不应被理解为限于本文中阐述的实施例;实际上,提供这些实施例以使本公开透彻和完整,且将使本发明的范围完全传达到所属领域的技术人员。此外,本发明可以实施为方法、系统、计算机可读介质、设备、组件或装置。因此,本发明可采取完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。因此,不应按限制性意义来看待以下详细描述。
图1概括地示出了批量数据摄取优先化系统100的一个实施例,用于从可缩放简档服务(例如支付网络系统108)识别、分割、压缩和缓存账户持有人数据存储库164的高优先级简档数据164a。系统100可以包括链接一个或多个系统以及计算机组件的计算机网络102。在一些实施例中,系统100包括数据更新系统104、支付网络系统108、分割系统110和支付装置发行方系统111。
网络102可以被不同地描述为通信链路、计算机网络、互联网连接等。系统100可以包括存储在有形存储器和专用硬件部件或模块上的各种软件或计算机可执行指令或部件,其采用软件和指令来通过监测用户与商家以及“四方模式”中的其它方之间的交易通信来识别多次交易的相关交易节点,如本文所描述的。
各种模块可以实施为含有计算机可读指令(即,软件)的计算机可读存储装置存储器,用于由专用或唯一计算装置内的系统100的一个或多个处理器执行。模块可以执行各种任务、方法、模块等,如本文所描述。系统100还可以包含硬件和软件应用程序两者,以及用于在各种专用和唯一硬件和软件组件之间传送数据的各种数据通信信道。
网络通常被认为包括硬件、数据以及其它实体的互连和互操作。计算机网络或数据网络是允许节点共享资源的数字电信网络。在计算机网络中,计算装置使用连接,即数据链接,在节点之间交换数据。例如,硬件网络可以包括图形拓扑中的客户端、服务器和中间节点。以类似的方式,数据网络可以包括图形拓扑中的数据节点,其中每个节点包括相关或链接的信息、软件方法以及其它数据。
应该注意的是,本申请通篇所使用的术语“服务器”通常指跨越通信网络处理和响应远程用户的请求的计算机、其它装置、程序或其组合。服务器将其信息提供给请求“客户端”。如本文使用的术语“客户端”通常指能够跨越通信或数据网络处理和发出请求以及获得和处理来自服务器的任何响应的计算机、程序、其它装置、用户和/或其组合。促进、处理信息和请求,和/或促进信息从源用户到目的地用户的传递的计算机、其它装置、相关数据的集合、程序或其组合通常被称为“节点”。网络通常被认为是促进从源点到目的地的信息传输。具体负责促进从信息源到目的地的信息传递的节点通常被称为“路由器”。网络有许多形式,例如局域网(lan)、pico网络、广域网(wan)、无线网络(wlan)等等。例如,因特网通常被认为是众多网络的互连,由此远程客户端和服务器可以访问并互相交互操作。
数据更新系统104可以包括诸如更新服务器129的计算装置,所述更新服务器包括处理器130和存储器132,所述存储器包括用于促进更新一个或多个简档数据164a的部件。在一些实施例中,简档数据164a均包括与标识符相关联的动作的累积记录。例如,每个简档数据164a可以是与支付装置400(图4a和图4b)(诸如信用卡或其它设备)的主账号(“pan”)相关联的交易的累积记录。交易可能包括购买、账户信息编辑或简档数据164a的更新、传输以及其它更改或添加。在一些实施例中,存储器132可包括更新通信模块134。更新通信模块134可以包括用于将更新数据134a发送到系统100的其它实体(即,108、110、111等)以指示已经与远离系统的计算装置发起交易的指令,所述指令包括支付装置数据以及本文所描述的其它数据。例如,可以在用户计算装置(pc、移动电话、平板电脑等)、销售点(“pos”)计算机(例如,商家结账设备)或其它计算机上发起交易。数据更新系统106还可以包括更新存储库142以及使处理器130在更新存储库142中存储支付和其它交易数据142a的指令。在一些实施例中,一般地数据更新系统104以及具体地更新通信模块134可以使处理器130执行指令以访问和修改一个或多个简档数据164a,向一个或多个简档数据164a添加交易,或执行其它动作以通过网络102更新一个或多个简档数据164a。在另外的实施例中,数据更新系统104可以将对应于标识符(例如,支付装置400(图4a和4b)的pan)的更新数据134a发送到支付网络系统108或系统100的其它实体,如从远程计算机系统接收的那样。
支付网络系统108可以包括支付网络服务器156,所述支付网络服务器包括处理器158和存储器160。存储器160可以包括支付网络模块162,所述支付网络模块包括用于使用系统100促进各方(例如,一个或多个用户、商家等)之间的支付的指令。模块162可以通信地连接到包括简档数据164的账户持有人数据存储库164。简档数据164a可以包括用于促进系统实体(即,104、110和111)之间的支付和其它资金转移的任何数据。例如,简档数据164a可以包括标识数据、累积账户交易历史数据、支付装置数据等。模块162还可以包括用于将支付消息166发送到系统100的其它实体和组件,以便完成用户和/或商家之间的交易的指令。
摄取优先化系统110可以包括一个或多个指令模块。在一些实施例中,摄取优先化模块112可以存储在存储器118中,并且通常包括使摄取优先化服务器116的处理器114通过网络102与多个其它计算机可执行步骤或子模块(例如,子模块112a、112b、112c)以及系统100的部件进行功能通信的指令。这些模块112a、112b、112c可以包括指令,所述指令在加载到服务器存储器118中并由一个或多个计算机处理器114段执行时,对数据进行分割、压缩、优先化并与系统100的一个或多个其它元件(例如,缓存系统111、支付网络系统108、数据更新系统104等)交流数据。例如,系统100可以对简档数据164a、更新数据134a和其它数据执行这些功能,并且进一步使缓存系统111有效率地缓存系统100的数据更新。
分割模块112a可以将数据集的每个简档数据164a和任何接收的更新数据134a分类为一个或多个类别或段(例如,段164b-e)。虽然图1示出了四个简档数据段164b、164c、164d、164e,但其它实施例可以包括更少或更多个简档数据段。例如,在用于管理链接到支付装置400(图4a和4b)的电子支付的系统中使用分割模块112a的情况下,可以通过诸如重要性段164b、风险评分段164c、消费者类型段164d、支付历史段164e等因素分割简档数据164a。分割模块112a用于将特定简档数据164a放置到风险评分段164c中的每个简档数据164a的风险评分可以是基于各种因素任何给定交易为欺诈性的可能性的度量。归因于风险评分的因素可以包括与简档数据164a的pan相关联的过往欺诈索赔次数、频率或其它统计度量、交易来源(例如,ip地址、位置、账户持有人等)、交易类型(例如,账户信息更改、购买、退款、余额转移等),以及可能影响和与简档数据164a相关联的每个pan相关联的风险确定的其它因素。消费者类型可以是特定简档数据164a的数据元素,该数据元素表示pan是否与个人或商家相关联。支付历史可以是与用于简档数据164a的pan相关联的交易的统计度量。例如,支付历史可以指示与关联的简档数据164a中记录的与针对该pan的典型交易相关联的频率、类型、金额、商家以及其它因素。
压实模块112b可以减少每个简档数据164a和/或段(例如,段164b-e)集合的数据大小,从而减少系统100的一个或多个计算机存储器(例如,存储库164、178、142等)中存储的每个简档数据164a单独和/或共同使用的计算机存储器量。在一些实施例中,压实模块112b可以包括存储在存储器118中并由处理器114执行的指令,以压缩账户持有人数据存储库164内的数据和/或其它数据。例如,压实模块112b可以包括压缩每个简档数据164a的指令。压实模块112b可以包括根据其对应段压缩简档数据164a的更多指令,如上文结合分割模块112a所述。在一些实施例中,压实模块112b可以首先压缩重要性段164b中的简档数据164a,然后压缩风险评分段164c,第三压缩消费者类型段164d,第四压缩支付历史段164e,或者按照某种其它次序。
压实模块112b可以包括实施空间效率概率数据结构的指令,如本文进一步描述的,其可以用来测试简档数据164a是否是集合的成员。例如,在数据存储库164包括很大数量的分割的简档数据164a的情况下,压实模块112b可以包括对简档数据164a实施第一和第二布隆过滤器的指令。
空布隆过滤器是m个位的位阵列,m个位全部设置为0,其中位数与数据元素的数量成比例。例如,位数m可与简档数据164a的数量成比例。压实模块112b还可以定义不同的散列函数k(例如112b1、112b2等),每个散列函数都将简档数据164a映射到位阵列的m个位置之一,从而产生均匀随机分布。通常,k是常数,并且小于m,与要添加的元素数量成比例;k的精确选择以及m的比例的常数由过滤器的预期误报率确定。参照图2,布隆过滤器200的示例表示示出了简档数据{164a1,164a3}的集合。虚线箭头表示每个集合元素映射到的位阵列202中的位置。元素164a2不在集合{164a1,164a3}中,因为它会散列到包含0的一个位阵列位置。对于布隆过滤器200,m=18且k=2。例如,要查询元素164a2,请将其馈送到k个散列函数的每个以获得k个位阵列位置。如果这些位置处的任何位是0,则该元素绝对不在集合中。如果元素164a2在集合中,则在插入时所有位都将被设置为1。如果所有位都是1,则元素在集合中,或者在插入其它元素时位已设置为1,导致假阳性。
压实模块112b可以包括当每个简档数据164a被摄取到简档数据高速缓存178中时实施第一布隆过滤器113的指令,并且简档密钥(例如,简档密钥164a1)可以被放入对应段(例如,重要性段164b)的第一布隆过滤器中。压实模块112b还可以包括在接收到更新数据134a之后或当更新数据134a在数据更新系统104中流入并被传递到摄取优先化系统110时实施第二布隆过滤器115的指令。与第一布隆过滤器113一样,对应于更新数据134a的简档密钥被放入对应于更新数据134a的段(即164b、164c、164d、164e等)的第二布隆过滤器115中。
虽然有假阳性的风险,但布隆过滤器相对于代表集合的其它数据结构具有强大的空间优势。例如,存储库164中的简档数据164a要求至少存储简档数据本身,对于长期商家、零售以及其它高度活跃的账户而言,可能需要大量的数据存储。布隆过滤器根本不存储数据项,而且必须为实际存储(例如,存储库164和/或高速缓存系统111)提供单独的解决方案。采用具有1%错误并且最优值为k的布隆过滤器,可以使用每个元素仅大约9.6位组织简档数据164a,不管简档数据164a的大小如何。通过采用进一步的组织技术,例如通过如本文进一步描述的优先化简档数据164a,可以降低1%的假阳性率。
布隆过滤器还具有不同寻常的属性,即添加项或检查某个项是否在集合中所需的时间是固定常数o(k),与集合中已存在的项数量完全无关。没有其它恒定空间集合数据结构具有此属性。同样地,在硬件实施中,布隆过滤器实施超越其它高速缓存技术,因为布隆过滤器的k次查找是独立的,可以并行化。
优先化模块112c可以使用压实模块112b的结果来减少高速缓存系统111执行的每日高速缓存的量,所述量是获得对每个简档数据164a中的每日交易可能表现出特定模式(诸如欺诈等)的基本准确理解所需的。例如,如上所述,在每个段(例如164b、164c、164d、164e等)中的简档数据164a上采用布隆过滤器可以允许假阳性,但不允许假阴性。并且,虽然简档数据164a的数量越大,任何特定简档数据164a是否在集合之内的假阳性概率就越大,但执行优先化模块112c的指令消除了高速缓存过程中布隆过滤器的假阳性方面导致的不利结果,以便快速识别简档数据164a之内交易的欺诈和其它模式。
优先化模块112c可以包括用于优先化简档数据164a以便在高速缓存系统111中存储的指令。在一些实施例中,模块112c可以包括执行第一布隆过滤器113和第二布隆过滤器115的交叉的指令。指令可以在更新数据143a流入系统100时或之后执行交叉。参考图3,交叉300可以识别简档数据164a的不同优先级以便传送到高速缓存系统111。例如,交叉300可以识别公共数据302,所述公共数据是在第一布隆过滤器113和第二布隆过滤器115两者中存在的针对每个简档数据段(例如164b、164c、164d、164e等)的简档数据164a。这种公共数据302是那些不具有很大变化的简档数据164a(即,只有很少或没有更新数据134a),因此对于传送到高速缓存系统111的优先级较低。类似地,交叉300还识别第一布隆过滤器113与第二布隆过滤器115之间的非共享简档数据164a。由交叉300识别为第一布隆过滤器非共享数据304的简档数据164a在段(即164b、164c、164d、164e等)中不再存在。这些第一布隆过滤器非共享数据304可以触发欺诈检测和其它下游应用程序的假阳性结果,因此对于传送到高速缓存系统111的优先级也可能较低。由交叉300识别为第二布隆过滤器非共享数据的简档数据164a都在段(即164b、164c、164d、164e等)之内并包括更新数据134a。因此,这些第二布隆过滤器非共享数据306对于传送到高速缓存系统111的优先级较高,因为简档数据164a在第二布隆过滤器115的一组非共享简档数据306的成员资格表示该系统已接收该简档的更新数据134。
通信模块112d可以从支付网络系统108和数据更新系统104中的一个或多个接收更新数据134a,并在摄取优先化之后将简档数据164a发送到高速缓存系统111,如上文结合摄取优先化系统110所述。例如,通信模块112d可以包括存储在存储器118中并在处理器114上执行以根据优先化计划112d1将简档数据164a发送到高速缓存系统111的指令。优先化计划112d1可以包括根据应当何时将其发送至高速缓存系统111进行高速缓存来对简档数据164a进行等级排序的数据。例如,第二布隆过滤器115的一组非共享简档数据306可以被等级排列为比公共数据302或第一布隆过滤器非共享数据304更早发送到高速缓存系统111。
高速缓存系统111还可以包括一个或多个指令模块。在一些实施例中,高速缓存模块176可以存储在存储器174中,并且通常包括使高速缓存服务器170的处理器172通过网络102与系统的多个其它系统和计算机可执行步骤或子模块(例如,摄取优先化系统10、子模块112a、112b、112c等)以及系统100的部件进行功能通信的指令。模块176可以包括指令,所述指令在加载到服务器存储器174中并且由一个或多个计算机处理器172执行时,在高速缓存存储库178之内存储简档数据164a,以供支付网络系统108或系统100的其它部件快速访问。
高速缓存模块176可以包括从摄取优先化系统接收一个或多个简档数据164a并将接收的简档数据164a存储在高速缓存存储库178内的指令。在一些实施例中,高速缓存模块178可以根据优先化计划112d1接收简档数据164a。例如,高速缓存系统111可以在接收不太频繁改变的简档数据164a(例如,出现在第一布隆过滤器113中的简档数据164a)之前,周期性地接收和缓存频繁改变的简档数据164a(例如,第二布隆过滤器115的一组非共享简档数据306或未出现在第一布隆过滤器113中的简档数据164a)。在接收时,高速缓存系统111可以将来自摄取优先化系统110的优先化的简档数据164a存储在高速缓存存储库之内。接收的简档数据164a可以被段(例如,164b、164c、164d、164e等)或另一文件结构高速缓存,如支付网络系统108高效率访问所要求的。在一些实施例中,第二布隆过滤器115的一组非共享简档数据306或未出现在第一布隆过滤器113中的简档数据164a可以被缓存在高速缓存存储库178的新文件中,而仅出现在第一布隆过滤器113中的简档数据164a可以被缓存在高速缓存存储库178的不同文件之内。高速缓存系统111可以根据设定的计划(即,每天一次或多次)周期性地接收和缓存简档数据164。在其它实施例中,高速缓存系统可以在摄取优先化系统110处理更新数据134时动态地接收和缓存简档数据164a。在缓存简档数据164a之后,第二布隆过滤器可以被重命名为第一布隆过滤器113,并且可以删除或记录先前的第一布隆过滤器。
简要参考图4a和4b,示范性支付装置400可以采用各种形状和形式。在一些实施例中,支付装置400是例如借记卡或信用卡的传统卡。在其它实施例中,支付装置400可以是钥匙链上的挂扣、nfc可穿戴装置或其它装置。在其它实施例中,支付装置400可以是电子钱包,其中选择来自先前存储在钱包中的多个账户中的一个账户并且将所述账户传送到系统100以执行交易并生成更新数据134a。只要支付装置400能够安全地与系统100及其部件通信,支付装置400的形式可以不是特别重要并且可以是设计选择。例如,许多传统支付装置可能必须由磁条读取器读取,并且因此,支付装置400的尺寸可能必须适配磁性读卡器。在其它实例中,支付装置400可以通过近场通信来通信,并且支付装置400的形式几乎可以是任何形式。当然,基于卡的用途、正在使用的读卡器的类型等,其它形式也是可能的。
在物理上,支付装置400可以是卡,并且卡可以具有多个层以包含构成支付装置400的各种元件。在一个实施例中,支付装置400可以具有基本平坦的前表面402和与前表面402相对的基本平坦的后表面404。在逻辑上,在一些实施例中,表面402、404可以具有一些凸字(embossment)406或其它形式的清晰书写,包含个人账号(pan)406a和卡验证号(cvn)406b。在一些实施例中,支付装置400可以包括对应于主账户持有人的数据,例如,账户持有人的简档数据164a。一般地可以对存储器454以及具体地对模块454a进行加密,使得与支付相关的所有数据对于不期望的第三方是安全的。通信接口456可以包括用于促进经由网络102向系统100的一个或多个部件发送作为支付有效载荷的支付数据、支付令牌或识别支付信息的其它数据的指令。
图5是用于系统100中的动态批量数据摄取优先化的方法500的流程图。方法500的每个步骤可以存储在存储器中并在可以被物理地配置成执行方法的不同方面的系统100的服务器或其它计算装置的处理器上执行。每个步骤可包括执行如关于系统100描述的任何指令。虽然以下框以有序集合的形式呈现,但是可以以任何特定顺序执行描述的各种步骤,以完成本文所述的批量数据摄取优先化方法。
在框502处,方法500可以分割简档数据164a。在一些实施例中,分割模块112a可以将每个简档数据164a分类为一个或多个类别或段(例如,段164b-e)。
在框504处,方法500可以减少每个简档数据164a和/或段(例如,段164b、164c、164d、164e)集合的数据大小,从而减少系统100的一个或多个计算机存储器(例如,存储库164、178、142等)中存储的每个简档数据164a单独和/或共同使用的计算机存储器量。如本文关于压实模块112b所述,框506可实施空间效率概率数据结构。在一些实施例中,结构可以是如上所述的第一布隆过滤器113。
在框506处,系统100可以接收对应于如本文所述的一个或多个数据简档164a的更新数据134a。在一些实施例中,更新数据134a可对应于在接收更新数据134a时存储在系统100内的简档数据164a。在其它实施例中,更新数据134a可对应于在接收更新数据134a时尚不存在的新简档数据164a。如果更新数据134a与现有简档数据164a不对应,那么该方法可以通过pan或针对简档数据164a的其它标识符创建对应于更新数据134a的新简档数据164a。更新通信模块134可以将更新数据134a传送到网络102并继续传送到系统100的其它实体。框502还可以执行指令以将更新数据134a、支付和其它交易数据142a存储在更新存储库142内。框506还可以将更新数据134a分割为一个或多个对应类别或段(例如,段164b-e)。
在框508处,方法500可以优先化简档数据164a,以便在高速缓存系统111内存储,并减少每个简档数据164a和/或包括在框506接收的更新数据134a的段的集合(例如,段164b、164c、164d、164e)的数据大小。在一些实施例中,所述结构可以是如上所述的第二布隆过滤器115,并且可以如本文所述在更新数据134a流入系统100中时被实现。方法500还可以在更新数据14a流入系统100时或之后执行第一布隆过滤器113和第二布隆过滤器115的交叉300。如上所述,交叉300可以将简档数据164a识别为都在段(即164b、164c、164d、164e等)中并包括更新数据134a的第二布隆过滤器非共享数据306。这些第二布隆过滤器非共享数据306对于传递到高速缓存系统111的优先级较高。
在框512处,方法500可以高速缓存来自框510的优先化的简档数据164a。在一些实施例中,方法500可以根据优先化计划112d1向高速缓存系统111发送简档数据164a。在一些实施例中,方法500可以根据应当何时由高速缓存系统111对其进行高速缓存来对简档数据164a进行等级排序。例如,第二布隆过滤器115的一组非共享简档数据306可以被等级排列为比公共数据302或第一布隆过滤器非共享数据304更早发送到高速缓存系统111。方法500可以在高速缓存存储库178内缓存经过等级排序的简档数据164a。方法500还可以根据动态计划或设定计划缓存第二布隆过滤器115的一组经过等级排序的非共享简档数据306。例如,方法500可以动态地确定何时缓存第二布隆过滤器115的一组非共享简档数据306。在框512处缓存的动态计划可以包括在第二布隆过滤器115的一组非共享简档数据306符合某些条件时发起缓存过程。例如,框512可以在第二布隆过滤器115的一组非共享简档数据306达到特定数量的简档数据164a集合或存储器大小或其它条件(例如,欺诈迹象、简档数据164a所指示的交易总金额等)时发起缓存过程。
在框514处,方法500可以将第二布隆过滤器115重新命名为第一布隆过滤器113,以便在用于系统100内的动态批量数据摄取优先化的方法500的下一次迭代中使用。在一些实施例中,方法500可以使对第二布隆过滤器115的存储器地址的援引与第一布隆过滤器113相关联。然后可以将先前的第二布隆过滤器115(现在为第一布隆过滤器113)与包括新的更新数据134的新布隆过滤器进行对比。
因此,本文所述的系统和方法为仅需要对与系统相关的一些数据进行快速准确访问的大型数据系统中的批量数据摄取和优先化的技术问题提供了技术解决方案。并非如目前一般地在大型数据系统中并且具体地在支付网络系统中采用的那样,在数据系统中高速缓存所有简档数据164a,对具有或接收更新数据134a的简档数据164a进行优先化以首先进行缓存,而稍后缓存其它优先级较低的数据。这种解决方案提供对重要数据的更快访问,从而可以比先前的系统更快并且因此更准确地识别欺诈、消费警告、安全问题以及其它模式。
图6是用于本文所述的系统100以及方法(例如,方法500)的实例计算环境900的高级框图。计算装置900可以包括服务器(例如,摄取优先化服务器116、数据更新服务器129、支付网络服务器156、高速缓存系统服务器170等)、移动计算装置(例如用户计算系统104)、蜂窝电话、平板计算机、启用wi-fi的装置或能够进行无线或有线通信的其它个人计算装置)、瘦客户端或其它已知类型的计算装置。
在逻辑上,各种服务器可以被设计和构建成具体地执行某些任务。例如,支付网络服务器156、摄取优先化服务器116和高速缓存系统服务器170可以在短时间段内接收大量数据,这意味着支付服务器可以含有特殊的高速输入输出电路以处理大量数据。类似地,摄取优先化服务器116可以具有增加的处理能力,所述处理能力特别适用于快速执行本文所述的指令、框、方法等。
本领域的普通技术人员将认识到,考虑到本公开以及本文中的教示,可以使用具有不同架构的其它类型的计算装置。与本文描述的实例系统和方法类似或相同的处理器系统可以用于实施和执行本文描述的实例系统和方法。尽管下文将实例系统100描述为包含多个外围设备、接口、芯片、存储器等,但这些元件中的一个或多个可以从用于实施和执行实例系统和方法的其它实例处理器系统中省略。而且,可以添加其它组件。
如图6中所示,计算装置901包含耦合到互连总线的处理器902。处理器902包含寄存器组或寄存器空间904,其在图6中描绘为完全在芯片上,但其可以替代地完全或部分地位于芯片外,并且经由专用电连接和/或经由互连总线直接耦合到处理器902。处理器902可以是任何合适的处理器、处理单元或微处理器。尽管图6中未示出,但是计算装置901可以是多处理器装置,因此可以包含与处理器902相同或类似并且以通信方式耦合到互连总线的一个或多个额外处理器。
图6的处理器902耦合到芯片组906,所述芯片组包含存储器控制器908和外围输入/输出(i/o)控制器910。众所周知,芯片组通常提供i/o和存储器管理功能,以及可由耦合到芯片组906的一个或多个处理器访问或使用的多个通用和/或专用寄存器、定时器等。存储器控制器908执行使处理器902(或者如果有多个处理器,则为多个处理器)能够访问系统存储器912和大容量存储器914的功能,所述存储器可以包含存储器内高速缓存器(例如,存储器912内的高速缓存器)或磁盘上高速缓存器(例如,大容量存储器914内的高速缓存器)中的任一者或两者。
系统存储器912可以包含任何所需类型的易失性和/或非易失性存储器,例如,静态随机存取存储器(sram)、动态随机存取存储器(dram)、闪存存储器、只读存储器(rom)等。大容量存储器914可以包含任何所需类型的大容量存储装置。例如,可以使用计算装置901来实施模块916(例如,本文描述的各个模块)。大容量存储器914可以包含硬盘驱动器、光盘驱动器、磁带存储装置、固态存储器(例如,闪存存储器、ram存储器等)、磁存储器(例如,硬盘驱动器)或适合于大容量存储的任何其它存储器。如本文所用,术语模块、块、功能、操作、过程、例程、步骤和方法是指为本文描述的计算装置901、系统和方法提供指定功能的有形计算机程序逻辑或有形计算机可执行指令。因此,模块、块、功能、操作、过程、例程、步骤和方法可以在硬件、固件和/或软件中实施。在一个实施例中,程序模块和例程存储在大容量存储器914中,加载到系统存储器912并且由处理器902执行,或可以从存储在有形计算机可读存储介质(例如,ram、硬盘、光/磁介质等)中的计算机程序产品提供。
外围i/o控制器910执行使处理器902能够经由外围i/o总线与外围输入/输出(i/o)装置924、网络接口926、本地网络收发器928通信(经由网络接口926)的功能。i/o装置924可以是任何所需类型的i/o装置,例如键盘、显示器(例如,液晶显示器(lcd)、阴极射线管(crt)显示器等)、导航装置(例如鼠标、轨迹球、电容触控板、操纵杆等)等等。i/o装置924可以与模块916等一起用于从收发器928接收数据,将数据发送到系统100的组件,以及执行与本文描述的方法相关的任何操作。本地网络收发器928可以包含对wi-fi网络、蓝牙、红外线、蜂窝或其它无线数据传输协议的支持。在其它实施例中,一个元件可以同时支持由计算装置901采用的各种无线协议中的每一个。例如,软件定义无线电可以能够经由可下载指令支持多个协议。在操作中,计算装置901可以能够在周期性的基础上定期地轮询可见无线网络发射器(蜂窝网络和本地网络两者)。此种轮询可以是可能的,即使在计算装置901支持正常无线流量时。网络接口926可以是例如使系统100能够与具有至少关于系统100描述的元件的另一计算机系统通信的以太网装置、异步传输模式(atm)装置、802.11无线接口装置、dsl调制解调器、电缆调制解调器、蜂窝调制解调器等。
尽管存储器控制器908和i/o控制器910在图6中描绘为芯片组906内的单独功能块,但是这些块执行的功能可以集成到单个集成电路内,或可以使用两个或更多个单独的集成电路实施。计算环境900也可以在远程计算装置930上实施模块916。远程计算装置930可以通过以太网链路932与计算装置901通信。在一些实施例中,模块916可以由计算装置901经由因特网936从云计算服务器934检索。当使用云计算服务器934时,检索的模块916可以与计算装置901以编程方式链接。模块916可以是各种软件平台的集合,包含人工智能软件和文档创建软件,或者也可以是在驻留于计算装置901或远程计算装置930中的
系统900可以包含但不限于lan、man、wan、移动网络、有线网络或无线网络、专用网络或虚拟专用网络的任何组合。此外,尽管在图6中仅示出一个远程计算装置930以使说明书简化和清晰,但是应理解,任何数目的客户端计算机均得到支持并且可以在系统900内通信。
另外,本文中将某些实施例描述为包含逻辑或许多组件、模块或机构。模块可以构成软件模块(例如,实施于机器可读介质上或者以传输信号实施的代码或指令,其中代码由处理器执行)或硬件模块。硬件模块是能够执行某些操作并可以某一方式配置或布置的有形单元。在实例实施例中,一个或多个计算机系统(例如,独立的客户端或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用程序或应用程序部分)配置为硬件模块,所述硬件模块操作以执行如本文描述的某些操作。
在各种实施例中,硬件模块可以用机械方式或用电子方式实施。例如,硬件模块可以包括专用电路或逻辑,其被永久性配置(例如,作为专用处理器,例如现场可编程门阵列(fpga))或专用集成电路(asic)成执行某些操作。硬件模块还可以包括由软件暂时性地配置以执行某些操作的可编程逻辑或电路(例如,如涵盖在通用处理器或其它可编程处理器内)。应了解,可以由成本和时间考虑因素驱动以机械方式、在专用且永久性配置的电路中或在暂时性配置的电路(例如,由软件配置)中实施硬件模块的决策。
因此,术语“硬件模块”应理解为涵盖有形实体,以物理方式构造、永久性配置(例如,硬接线)或暂时性配置(例如,编程)从而以某一方式操作或执行本文中所描述的某些操作的实体。如本文中所使用,“硬件实施的模块”指硬件模块。考虑到其中硬件模块进行暂时性配置(例如,编程)的实施例,无需在任一时刻处配置或实例化硬件模块中的每一个。例如,在硬件模块包括使用软件配置的通用处理器的情况下,通用处理器可以在不同时间配置为相应不同硬件模块。软件因此可以配置处理器,例如以在一个时刻构成特定硬件模块并且在不同时刻构成不同硬件模块。
硬件模块可以将信息提供到其它硬件模块以及从其它硬件模块接收信息。因此,可以将所描述的硬件模块视为以通信方式耦合。在多个此类硬件模块同时存在的情况下,通信可以通过连接硬件模块的信号发射(例如,经由合适电路和总线)实现。在多个硬件模块在不同时间进行配置或初始化的实施例中,这些硬件模块之间的通信可以通过例如在多个硬件模块可访问的存储器结构中存储和检索信息来实现。例如,一个硬件模块可以执行一个操作且将所述操作的输出存储在存储器装置中,所述硬件模块以通信方式耦合到所述存储器装置。接着,另一硬件模块可以随后访问存储器装置以检索和处理所存储输出。硬件模块还可以发起与输入或输出装置的通信,并可以对资源(例如,信息的集合)操作。
本文中描述的实例方法的各种操作可以至少部分地由一个或多个处理器执行,这些处理器进行暂时性配置(例如,由软件)或者永久性配置以执行相关操作。无论暂时性配置还是永久性配置,这些处理器可以构成操作用于执行一个或多个操作或功能的处理器实施的模块。在一些实例实施例中,本文提及的模块可以包括处理器实施的模块。
类似地,本文所描述的方法或例程可以至少部分是处理器实施的。例如,方法的至少一些操作可以由一个或多个处理器或处理器实施的硬件模块执行。某些操作的性能可以分布在一个或多个处理器当中,不仅驻留在单个机器内,而且还跨越多个机器部署。在一些实例实施例中,一个或多个处理器可以位于单个位置中(例如,位于家庭环境、办公室环境或服务器群内),而在其它实施例中,处理器可以跨越多个位置分布。
一个或多个处理器还可以操作用于支持“云计算”环境或作为“软件即服务”(saas)中的相关操作的性能。例如,至少一些操作可以由一组计算机(作为包含处理器的机器的实例)执行,这些操作可经由网络(例如,因特网)并经由一个或多个适当接口(例如,应用程序接口(api))访问。
某些操作的性能可以分布在一个或多个处理器当中,不仅驻留在单个机器内,而且还跨越多个机器部署。在一些实例实施例中,一个或多个处理器或处理器实施的模块可以位于单个地理位置中(例如,在家庭环境、办公室环境内或服务器群内)。在其它实例实施例中,一个或多个处理器或处理器实施的模块可以跨越多个地理位置分布。
根据存储为机器存储器(例如,计算机存储器)内的位或二进制数字信号的数据上的操作的算法或符号表示而呈现本说明书的一些部分。这些算法或符号表示是数据处理领域的一般技术人员用来向本领域其它技术人员传达其工作的实质内容的技术的实例。如本文中所使用,“算法”是产生所需结果的操作或类似处理的自一致性序列。在此上下文中,算法和操作涉及对物理量的物理操纵。通常但不一定,此类量可以呈电、磁或光学信号的形式,所述电、磁或光学信号能够由机器存储、访问、传送、组合、比较或以其它方式控制。主要出于常用的原因,有时使用例如“数据”、“内容”、“位”、“值”、“元素”、“符号”、“字符”、“项”、“数目”、“数字”等词语来提及此类信号是很方便的。然而,这些词语仅为方便的标记并将与适当物理量相关联。
除非另外特别指出,否则本文中使用例如“处理”、“计算”、“运算”、“确定”、“呈现”、“显示”等词进行的讨论可以指机器(例如,计算机)的动作或过程,所述机器控制或转换表示为一个或多个存储器(例如,易失性存储器、非易失性存储器或其组合)、寄存器或者接收、存储、传输或显示信息的其它机器组件内的物理(例如,电、磁或光)量的数据。
如本文所使用,对“一些实施例”或“实施例”或“教示”的任何参考表示结合实施例所描述的特定元件、特征、结构或特性包含在至少一个实施例中。在本说明书的不同位置中出现短语“在一些实施例中”或“教示”未必都指同一个实施例。
可以使用表达“耦合”和“连接”以及其衍生词来描述一些实施例。例如,可以使用术语“耦合”来描述一些实施例以指示两个或多于两个元件直接物理或电接触。然而,术语“耦合”还可以表示两个或多于两个元件并不彼此直接接触,但是仍然彼此协作或相互作用。实施例在此上下文中不受限制。
此外,仅出于说明的目的,图式描绘优选实施例。本领域技术人员将从下面的讨论中容易地认识到,在不脱离本文描述的原理的情况下,可以采用在本文中示出的结构和方法的替代实施例
在阅读本公开后,本领域技术人员将通过本文公开的原理理解本文中描述的系统和方法的额外替代结构设计和功能设计。因此,虽然已经示出和描述了特定实施例和应用,但是应所述理解,所公开的实施例不限于在本文中公开的精确构造和组件。在不脱离任何所附权利要求限定的精神和范围的情况下,可以对本文公开的系统和方法的布置、操作和细节做出各种修改、改变和变化,这对于本领域技术人员而言是显而易见的。