CN114144776A - 实时地理智能聚合引擎 - Google Patents
实时地理智能聚合引擎 Download PDFInfo
- Publication number
- CN114144776A CN114144776A CN201980098677.4A CN201980098677A CN114144776A CN 114144776 A CN114144776 A CN 114144776A CN 201980098677 A CN201980098677 A CN 201980098677A CN 114144776 A CN114144776 A CN 114144776A
- Authority
- CN
- China
- Prior art keywords
- resource provider
- geographic
- database
- data
- management computer
- 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.)
- Pending
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/29—Geographical information databases
-
- 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/22—Indexing; Data structures therefor; Storage structures
-
- 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/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开一种实时地理智能聚合引擎和相关方法。所述实时地理智能聚合引擎可以用于向请求者或请求者计算机提供对应于地理坐标点和边界元素的交互事件数据。在从请求者计算机接收到请求之后,所述实时地理智能聚合引擎可确定对应于地理区的一个或多个地理散列。所述一个或多个地理散列可以用于查询地理资源提供商数据库以确定在所述地理区内活动的资源提供商的列表。资源提供商的所述列表可以用于查询资源提供商交互数据库以确定对应于那些资源提供商的交互事件数据。随后可以将所述交互事件数据提供给所述请求者计算机。所述请求者计算机和/或与所述请求者计算机相关联的请求者可以基于所述交互事件数据执行后续行动。
Description
背景技术
交互的地理分布有时用于分析交互驱动的科学。通常,交互是涉及两个或更多个对象或实体的事件,例如掠夺者与猎物之间的掠夺,或两人之间的交易。对于局域化对象或实体,那些对象或实体的位置可以影响发生哪些交互、这些交互的特征及其结果。科学家、经济学家和组织有时根据地理位置开展比较研究,例如研究不同纬度的掠夺者-猎物行为或不同城市的消费支出。
数百年来持续的分析趋势是从直觉驱动分析到数据驱动分析的转变。最近,计算机和存储器技术的进步已使得能够有效地捕获、存储和自动分析数据。结果,例如科学家、商人、经济学家等实体现在能够存储和评估越来越大的数据集。
然而,在存储在数据库中的数据量与可从该数据库中检取数据的速率之间存在取舍。通常,存储在数据库中的数据越多,搜索数据库以便查找与分析相关的数据所需的时间就越长。这可能对基于地理的交互分析造成问题,因为经由每个条目搜索大型分布式数据库以便查找与特定地理区相关的交互数据可能是耗时的。对于实时应用(例如,具有可量化时间约束的应用),缓慢的数据检取会带来问题,并且对例如科学家、商人和决策者等实体的体验产生负面影响。
实施例单独地以及共同地解决了这些和其它问题。
发明内容
一个实施例涉及一种方法,其包括:由数据库管理计算机从与请求者相关联的请求者计算机接收对对应于地理区的交互事件数据的请求,所述请求包括位置标识符和边界元素;由所述数据库管理计算机基于所述位置标识符和所述边界元素确定对应于所述地理区的一个或多个地理散列;由所述数据库管理计算机使用所述一个或多个地理散列查询地理资源提供商数据库以确定一个或多个资源提供商标识符;由所述数据库管理计算机使用所述一个或多个资源提供商标识符查询资源提供商交互数据库以确定一个或多个交互事件;由所述数据库管理计算机从所述资源提供商交互数据库检取交互事件数据或其导出项;以及由所述数据库管理计算机将所述交互事件数据或其导出项提供给所述请求者计算机,其中所述请求者计算机和/或所述请求者基于所述交互事件数据或其导出项采取后续行动。
另一实施例涉及一种数据库管理计算机,其包括:处理器;以及耦合到所述处理器的非瞬态计算机可读介质,所述非瞬态计算机可读介质包括能由所述处理器执行以实施上述方法的代码。
术语
“服务器计算机”可以包括功能强大的计算机或计算机群集。例如,服务器计算机可以是大型主机、小型计算机集群或像单元一样工作的一组服务器。在一个示例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可以包括一个或多个计算设备,并且可使用多种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机的请求。
“存储器”可以是可以存储电子数据的任何合适的装置或多个装置。合适的存储器可以包括非瞬态计算机可读介质,其存储可由处理器执行以实施所要方法的指令。存储器的示例可以包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可使用任何合适的电气、光学和/或磁性操作模式来操作。
“处理器”可以包括任何合适的一个或多个数据计算装置。处理器可以包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序组件。所述CPU可以是微处理器,例如AMD的速龙(Athlon)、钻龙(Duron)和/或皓龙(Opteron);IBM和/或摩托罗拉(Motorola)的PowerPC;IBM和索尼(Sony)的Cell处理器;英特尔(Intel)的赛扬(Celeron)、安腾(Itanium)、奔腾(Pentium)、至强(Xeon)和/或XScale;和/或类似处理器。
“实体”可以包括具有独特和独立存在的事物。例如,实体可以包括人、组织(例如,合伙企业和企业)、计算机和计算机网络等等。实体可以某一方式与其环境通信或交互。另外,实体可以在其存在过程期间操作计算机或计算机网络,以及与计算机或计算机网络连接或交互。
“请求者”可以包括向其它实体提出请求的实体。“请求”可以包括请求某件事情的消息或其它通信。作为示例,请求存储在托管服务器上的数据、请求确认接收到另一消息,或请求可执行代码或其它指令。
“资源”可以包括可由实体使用或分布于实体之间的事物。资源的示例包括商品、服务、权利(例如,进入某一地方或获取某物的权利)等等。
“资源提供商”可以包括向其它实体提供资源的实体。资源提供商的示例包括商家、土地和政府。例如商家等资源提供商可以将商品或服务提供给客户端,作为与客户端的交易的部分。
“客户端”可以包括接收或使用另一实体的服务的实体。例如,客户端可能包括从另一个人,例如律师事务所的客户端接收服务的人。作为另一示例,客户端可以包括从另一计算机系统接收服务的计算机系统,例如从远程服务器计算机接收应用程序或数据的台式计算机。由客户端操作的计算机系统可称为“客户端计算机”。
“交互”可以包括互惠行动、效果或影响。例如,交互可以是两个或更多个参与方之间的交换或交易。发生的交互可以称为“交互事件”。
“数据类型”可以包括数据的限定符。数据类型可以限定数据或一组数据。例如,“高度测量”是一种数据类型,其限定例如“160cm”的“数据值”是某一对象或实体的高度的测量。数据类型的其它示例包括指示相关联的数据值对应于位置的“位置”和指示相关联的数据值是指时间点的“时间戳”。
“数据值”可以包括对应于数据的值。数据值可以是定量的(例如,身高、体重、年龄),并且可以对应于测量单位(cm、kg、岁)。替代地,数据值可以是定量的(例如,颜色、位置、合意性)。数据值的示例包括160cm、邮政编码94612、时间戳2018-12-12-2:14:00A.M.,等。
“数据集”可以包括数据值的集合。数据集还可以包括对应于数据值的数据类型或标记。数据集中的数据值可以共享一个或多个特性或与相同概念、来源或实体相关。例如,数据集可以包括对应于人的人口统计数据(例如,身高、体重、年龄、血型等)的数据值。作为另一示例,数据集可以包括对应于交互事件信息的数据值,例如交易信息(例如,交易的位置、交易发生时间、花费的金额等)。数据的“子集”可以包括包含在较大大小的数据集内的数据集。与交互事件相关的一个或多个数据集可以单独或共同地称为“交互事件数据”。
“分组数据集”可以包括数据集、集合或数据集群组,其中数据集群组中的每个数据集共享一个或多个共同元素。例如,对于地理上分散的交互事件(例如,与一个或多个地理位置相关联的交互事件),“分组数据集”可以包括基于其地理位置(例如邮政编码、地理坐标点或地理散列)分组的数据集。作为另一示例,可以基于共同资源提供商或共同资源提供商标识符来对数据集进行分组。
“聚合数据集”可以包括数据集、集合或数据集群组,其中每个数据集群组中的一个或多个值已聚合。聚合数据值包括已经以某种方式组合的数据值。例如,聚合数据值可以是数据值的总和。例如,对应于交易的数据集可以包括对应于交易金额的数据值(例如,花费在该特定交易上的资金金额)。这些交易金额可以在数据集之间聚合,例如以累计总和形式,其中每个连续数据集包括对应于总金额的聚合交易金额,直到且包括该数据集。
“有序数据集”可以包括其中基于一个或多个准则对一个或多个数据集(例如,在数据集列表内)进行了排序的数据集、集合或数据集群组。例如,如果特定数据集群组中的每个数据集包括时间戳数据值,则数据集群组中的数据集可以按升序或降序时间戳值排序。可以不受限制地聚合和排序集、集合或数据集群组。也就是说,数据集群组可能不聚合、不排序、聚合、排序或聚合且排序。
“地理散列”是指用于标识地球上特定位置或区的数据的交错元素。在地理散列中,交替位表示经度和纬度。例如,对于例如“101010”的示例性地理散列,经度值为“111”,而纬度值为“000”。在地理散列中,每个连续位依次标识更小且更精确的地理区。作为示例,两位地理散列限定覆盖地球的四分之一的区,而十位地理散列限定大致为美国的大小的一半的区。
“数据库”可以包括存储在计算机中的一个或多个数据集。替代地,数据库可以包括代码、指令、文件系统或用于保持一个或多个数据集的其它结构。术语数据库可以包括相关概念,例如“数据湖”、“数据仓库”、“数据存储库”等。
“字符串”可以包括一系列类似项目。例如,字符串可以包括字符、字或其它数据的线性序列。“Hello World”是包括字母数字字符的线性序列的字符串的示例。字符串可以用于表示数据集,并且数据集可以字符串形式存储在数据库中。
“位置标识符”、“位置ID”或“地理区标识符”可以包括可以用于标识位置或地理区的数据值。位置标识符的一个示例是例如“北美”、“德克萨斯州”或“奥斯汀”等字符串。位置标识符的其它示例包括邮政编码、地理坐标(例如,成对的纬度与经度值、GPS坐标等)、地理散列,等等。
“边界元素”可以是可以用于限定区域的值或值集。例如,边界元素可以是半径,其限定围绕位置的圆形,例如围绕位置的5千米半径。作为另一示例,边界元素可以包括多个值以限定区域(例如,宽度和长度)。例如,边界元素可以是限定围绕位置的矩形区域的(3千米,4千米)。
附图说明
图1示出根据一些实施例的地理智能聚合引擎的系统框图。
图2示出根据一些实施例的交互事件数据的示例。
图3示出根据一些实施例的示例性地理资源提供商数据库条目的图。
图4示出根据一些实施例的示例性资源提供商交互事件数据库条目的图。
图5示出根据一些实施例的地理智能交互数据聚合的示例性方法的序列图。
图6示出根据一些实施例的向请求者计算机提供交互事件数据的示例性方法的序列图。
图7示出根据一些实施例的对应于生成地理散列的示例性方法的三个流程图。
图8示出根据一些实施例的用于说明生成地理散列的示例性方法的地图和圆形地理区的图。
图9示出根据一些实施例的用于说明生成地理散列的示例性方法的地图、圆形地理区和多个内接地理区的图。
图10是示出根据一些实施例的资源提供商计算机的框图。
具体实施方式
实施例可以包括可以处理、管理和检取地理交互数据的实时地理智能聚合引擎,以及使实时地理智能聚合引擎能够执行这些功能的方法。在一些实施例中,所述实时地理智能聚合引擎可以包括数据库管理计算机、一个或多个数据库以及任选的数据服务计算机。
交互数据可以包括对应于实体之间的交互的数据。在一些实施例中,交互中的一个实体可以是资源提供商,即向交互中涉及的其它实体提供资源的实体。作为一个示例,资源提供商可以是在企业交易中向顾客销售商品或服务的商家。作为另一示例,资源提供商可以是作为收获交互的一部分向伐木工提供木材的森林。这些交互可以在地理上局域化,例如在特定地理位置或坐标处发生。
交互数据可以另外包括与交互有关的其它数据,例如发生交互的时间(例如,时间戳)、交互的类别或其它描述符(例如,木材收获、交易、体育比赛,等)、与交互中的一个或多个实体有关的描述符或其它数据(例如,对于交易交互:商家类别代码,例如指示商家经营杂货店的“杂货店”)、包括可以用于标识交互中涉及实体的资源提供商标识符的标识符(例如,例如“Alice”或“Bob’s Grocery Store”等名称,或例如支付账号(PAN)等数字标识符),以及交互值(例如“10.00美元”,购买所花费的金额)。
实时地理智能聚合引擎可以将地理坐标表示为地理散列。地理散列是用于表示特定位置或区的数据值。在地理散列中,对应于经度和纬度的位是交错的。即,第一位、第三位、第五位等对应于经度,而第二位、第四位、第六位等对应于纬度。地理散列的每个连续位对应于越来越小的地理区。因此,随着地理散列变长,地理散列变得更加精确。例如,一个经度位限定跨越180度经度的区,而两个经度位限定跨越90度经度的区,并且三个经度位限定跨越45度经度的区。等。换句话说,第一经度位指定地球的一半(例如,西半球或东半球),第二经度位指定地球的四分之一(例如,西半球或东半球的西部或东部部分),并且第三经度位指定八分之一。
例如,例如“1100”的示例性地理散列具有经度值“10”和纬度值“10”。经度值对应于东半球的西半部。纬度值对应于北半球的南半部。该示例性地理散列限定了大致包括中北非、地中海、中东、印度和南欧的区域。
原始交互数据可以经由一个或多个数据源提供给数据库管理计算机,所述数据源包括数据流和交互数据库。数据库管理计算机可以处理此交互数据,并将其存储在数据库或索引中。一个数据库可以包括地理资源提供商数据库。地理资源提供商数据库可以存储使资源提供商与地理散列相关的地理资源提供商数据库条目,例如通过使资源提供商ID(例如,“Bob’s Grocery Store”)与对应于资源提供商的位置的地理散列相关。另一数据库可以包括资源提供商交互数据库。资源提供商交互数据库可以存储资源提供商交互事件数据库条目,所述条目使资源提供商与涉及那些资源提供商的交互(例如,在“Bob’s GroceryStore”进行的个别销售或交易)相关。
同时,或稍后,数据库管理计算机可以从与请求者相关联的请求者计算机接收对交互数据的请求。这些请求可以是客户端,例如需要地理交互数据以便执行某种形式的分析的科学家或商人。替代地,请求者计算机可以是数据服务计算机,其处理或自动分析数据以便向客户端提供数据服务。作为一示例,数据服务计算机可以将地理交互数据提供给机器学习模型,以便生成可以递送到客户端的交互相关预测(例如,特定商家在某一未来时间段内的预期销售额)。
对交互事件数据的这些请求可以包括对应于地理区的位置标识符和边界元素。地理坐标点可以是例如成对的纬度和经度、地理散列、区(例如,邮政编码、城市、州等),等等。半径可以限定距位置标识符的最大距离。半径是边界元素的示例。换句话说,对交互数据的请求可以包括对在位置的某一距离内(例如在以与位置标识符相关联的地理坐标点为中心的圆形地理区内)发生的交互的请求。对交互事件数据的请求可以另外包括其它限定符、限制、类别等,例如资源提供商标识符、类别代码、时间戳,等等。
使用位置标识符和半径,数据库管理计算机可以确定对应于地理区的一个或多个地理散列。数据库管理计算机可以使用一个或多个地理散列查询地理资源提供商数据库,以便检取对应于地理区的资源提供商标识符。随后,数据库管理计算机可以使用资源提供商标识符(连同任何额外限定符,例如类别代码、时间戳等)查询资源提供商交互事件数据库,以检取交互事件数据。数据库管理计算机可以将此交互事件数据提供给请求者计算机。接着,请求者计算机和/或请求者可以基于交互事件数据或其导出项采取后续行动。例如,请求者计算机可以使用交互事件数据作为机器学习模型的输入,以便生成分类或预测。例如,请求者计算机可以使用对应于特定地理区内的杂货店的交互事件数据,以便预测该区内的杂货店的未来销售额。
将交互事件数据分离成地理资源提供商索引和资源提供商交互索引,结合地理散列的使用,使得能够快速、实时地查找与特定地理区、地理坐标和/或半径相关联的交互数据。诸实施例适合常规方法可能过慢的实时应用。
执行实验以将常规系统与示例性实施例的性能进行比较。常规系统包括ApacheSolr引擎和Apache Hadoop大数据存储库。Apache Solr是开源企业搜索平台。ApacheHadoop是开源软件实用程序的集合,其为大数据的分布式存储和处理提供框架。
产生对应于地址“12301Research Blvd,Austin,TX 78759”的坐标点,连同5英里的半径。将该坐标点和半径提供给常规系统,该常规系统随后使用Apache Solr引擎来搜索并生成在该坐标点五英里距离内的杂货店(例如,资源提供商)的列表。使用杂货店的列表来查询Apache Hadoop大数据存储库,以产生对应于2019年1月的交易数据(例如,交互事件数据)。
在实验期间,通过Apache Solr引擎标识了19家杂货店。常规系统完成ApacheSolr搜索并从Apache Hadoop大数据存储库产生交易数据大约花费了3小时。
将坐标点和半径同样提供给根据实施例的实时地理智能聚合引擎。此示范性系统使用存储在地理资源提供商数据库中的地理资源提供商索引,以便标识19家杂货店。随后,示例性系统使用对应于19家杂货店的资源提供商标识符来查询存储在资源提供商交互事件数据库中的资源提供商交互事件数据索引,以便产生交易数据。标识杂货店并产生交易数据花费了大约16毫秒,实现与传统系统相同的结果快了大约675,000倍。
图1示出根据一些实施例的实时地理智能聚合引擎100。实时地理智能聚合引擎100可以包括交互数据流102、交互数据库104、数据库管理计算机106、地理资源提供商数据库108、资源提供商交互数据库110、客户端计算机112、数据服务计算机114和客户端116。图1的计算机、系统、数据库和实体可以经由一个或多个通信网络彼此可操作地通信。
通信网络可采用任何合适的形式,可以是以下项中的任何一种和/或组合:直接互连、互联网、局域网(LAN)、城域网(MAN)、作为互联网节点的运行任务(OMNI)、安全定制连接、广域网(WAN)、无线网络(例如,采用协议例如但不限于无线应用协议(WAP)、I-模式等),等等。实体、提供商、用户、装置、计算机和网络之间的消息可使用安全通信协议进行传送,例如但不限于文件传输协议(FTP);超文本传输协议(HTTP);安全超文本传输协议(HTTPS);安全套接字层(SSL)、ISO(例如,ISO8583),等等。
根据实施例的一些方法由数据库管理计算机106执行。通常,这些方法可以分为两个类别。第一类别涉及从交互事件数据源(例如,交互数据流102、交互数据库104或另一交互事件数据源)接收交互事件数据,聚合和/或以其它方式处理交互事件数据,并将结果存储在地理资源提供商数据库108和资源提供商交互数据库110中。下文参考图5更详细地描述这些方法。
第二类方法涉及数据库管理计算机106从请求者计算机(例如,客户端计算机112或数据服务计算机114)接收对对应于地理区的交互数据的请求,使用地理资源提供商数据库108和资源提供商交互数据库110检取交互事件数据或其导出项,并将交互事件数据或其导出项提供给请求者计算机。请求者计算机和/或请求者(例如,客户端116)可以基于交互事件数据或其导出项来执行后续行动。下文参考图6更详细地描述这些方法。
作为后续行动的示例,数据服务计算机114可以使用交互事件数据或其导出项作为机器学习模型的输入,以便生成与交互事件数据有关的预测或分类。对于对应于污染事件的示例性交互事件数据,数据服务计算机114可以使用交互事件数据来预测未来时间段内的污染(例如,以碳输出的吨数计)。替代地,如果交互事件数据对应于企业数据(例如,所执行的交易),则数据服务计算机可以使用交互事件数据来预测企业在地理区中的未来销售额。
在更详细地描述实施例之前,按次序详细地描述交互事件、数据集、数据值和数据类型可能是有用的。
交互事件可以包括在两个或更多方或实体之间的活动。交互事件的一个示例是商家与顾客之间的交易。交互事件的另一个示例是污染者与周围大气之间的污染事件(例如,二氧化碳排放到大气中)。
对应于交互事件的数据集是描述或表征交互事件的数据集。数据类型可以是对应于数据值的标记、名称或标识符。例如,对于交易交互事件,示例性数据类型是“花费的金额”,并且对应数据值可以是货币量,例如10.00美元。数据类型的其它示例包括标识符,例如商家类别代码(例如,用于标识商家类别的数字,举例来说,例如“5411”的商家类别代码可以对应于杂货店),或用于标识在交易期间从中取款以向商家付款的支付账号(PAN)。数据类型的其它示例包括邮政编码和时间戳。如所指示,数据值可以对应于定量(例如,花费的金额)和定性(例如,邮政编码)数据类型。
图2示出根据一些实施例的一些示例性数据集204-208和对应的数据类型202。这些示例性数据集204-208对应于交互事件,具体来说,对应于交易。每个示例性数据集包括五个数据值,对应于五个数据类型202:位置标识符、类别代码、时间戳、交易编号和交易金额。示例性数据集204-208可以单独地或共同地称为“交互事件数据”。
如上文所限定,位置标识符可以包括可以用于标识位置的数据值。在图2中,位置标识符数据值是邮政编码。然而,应理解,交互事件数据可以包括除邮政编码之外的位置标识符,例如,如上文所限定的纬度和经度坐标或地理散列。
数据集204-208基于时间戳和交易编号排序。然而,数据集204-208既不分组也不聚合。如上所述,分组数据集包括基于一个或多个共同元素或数据值(例如位置标识符或类别代码)分组的数据集。如上所述,聚合数据集包括其中一个或多个数据值(例如交易金额)被聚合的数据集。
返回图1,交互数据流102可以包括连续或周期性的交互事件数据源。例如,如果地理智能聚合引擎100用于聚合污染数据,则交互数据流102可以包括位于工业区或采矿区附近的污染感测装置,例如物联网(IoT)二氧化碳和一氧化碳传感器的联网集合。这些污染感测装置可以将所收集的数据集连续地或周期性地(例如,每分钟、每小时、每天等)流式传输到数据库管理计算机106。
作为另一示例,如果地理智能聚合引擎100用于聚合企业数据,则交互数据流102可以包括支付处理网络,例如用于贷记、借记或储值卡交易的网络。每次交易发生时,交互数据流102都可以将对应于该交易的数据集(例如,图2的示例性数据集)传送到数据库管理计算机106。这些数据集可以根据任何适当标准(例如ISO 8583,一种用于支付交易数据的标准)来格式化。
在一些实施例中,由数据库管理计算机106接收的数据集最初可以由消息接发系统接收或处理。消息接发系统可以是数据库管理计算机106的一部分,或可以是外部计算机系统的一部分。消息接发系统可以包括用于从交互数据流102接收数据的软件模块。消息接发软件的一个示例是流处理软件平台Apache Kafka。消息接发系统可以将数据集转换成密钥值消息,所述密钥值消息可以由数据库管理计算机106解译和处理。
交互数据库104可以包括包含对应于过去发生的交互事件的数据集的数据库。存储在交互数据库104中的数据集可以是未分组的、未排序的和/或未聚合的。交互数据库104可以是大数据存储库,例如Apache Hadoop分布式存储系统。交互数据库104可以存储对应于在实施地理智能聚合引擎100之前发生的交互事件的数据集。
交互数据库104中可能储存大量数据集。因此,数据库管理计算机106可以分批接收或检取存储在交互数据库104中的数据集。每批可能包括若干数据集。每批可以是固定数目的数据集(例如,10,000)或任意数目的数据集。每批可以对应于特定时间段(例如,一分钟时间段、一小时时间段、一天时间段、一年时间段等),使得批次中的每个数据集对应于该特定时间段。
在一些实施例中,交互数据流102和交互数据库104可以单独地或共同地称为交互事件数据源。
如上所述,数据库管理计算机106是计算机系统,其可以执行与聚合或以其它方式准备交互事件数据相关联的方法。这可以包括从交互事件数据源(例如,交互数据流102和交互数据库104)接收交互事件数据,聚合并以其它方式准备交互事件数据,以及将结果存储在地理资源提供商数据库108和资源提供商交互数据库110中。另外,数据库管理计算机106可以执行与向请求者计算机(例如,客户端计算机112或数据服务计算机114)提供交互事件数据相关联的方法。下文参考图10更详细地描述数据库管理计算机106的特定组件和软件模块。
地理资源提供商数据库108可以是用于存储地理资源提供商数据库条目的任何适当数据结构或系统。这些地理资源提供商数据库条目可以限定资源提供商(例如,商家)和与那些资源提供商运营的区(例如,与实体商店相关联的物理地址)相关联的地理散列之间的关联。参考图3可以更好地理解地理资源提供商数据库条目。
图3示出对应于地理资源提供商数据库条目的示例性分组数据集306-310。每个示例性数据集包括对应于数据类型302的三个数据值(例如,地理散列、资源提供商标识符和类别代码)。尽管示出了三种数据类型,但地理资源提供商数据库条目可以包括对应于任何数目个数据类型的任何数目的数据值。
数据集304对应于单个地理资源提供商数据库条目,包括对应于地理散列(000…000)、资源提供商标识符(1)和类别代码(5000)的数据值。本发明的实施例可以支持任何长度的地理散列。然而,在优选实施例中,地理散列数据值可以包括52位整数。
资源提供商标识符可以包括用于标识特定资源提供商的数据值。图3的资源提供商标识符是数字标识符,然而,在本发明的一些实施例中,资源提供商标识符可以包括字符串(例如,“Bob’s Department Store”)或包括字符串和数字标识符两者的混合标识符。
类别代码可以包括用于大体指示对应于特定资源提供商的类别的数据值。对于商家资源提供商,类别代码可以包括业务类别,例如“杂货店”或“电影院”。数字类别代码可以对应于这些业务类别。
地理资源提供商数据库条目可以基于任何数目的适当数据值(例如地理散列,如图3的群组306-310所指示)进行分组。此外,可以基于一个或多个数据值(例如地理散列)按顺序排序地理资源提供商数据库条目群组。
在一些实施例中,多个地理资源提供商数据库条目可以具有相同的资源提供商标识符。在图3中,群组308和群组310中的地理资源提供商数据库条目具有资源提供商标识符13。当特定资源提供商在多个不同区中运营(例如在全国的不同区中运营的全国性连锁店)时,情况可能如此。
可以基于任何适当的数据类型或数据值从地理资源提供商数据库108查询或检取地理资源提供商数据库条目。例如,可以查询地理资源提供商数据库108以返回对应于地理散列、资源提供商标识符和类别代码或未在图3标出的任何其它数据类型的特定组合的所有地理资源提供商数据库条目。
返回图1,资源提供商交互数据库110可以是用于存储资源提供商交互事件数据库条目的任何适当数据结构或系统。这些资源提供商交互事件数据库条目可以限定资源提供商(例如,商家)和与那些资源提供商相关联的交互事件(例如,交易)之间的关联。参考图4可以更好地理解资源提供商交互事件数据库条目。
图4示出若干聚合的资源提供商交互事件数据库条目群组406-408、个别资源提供商交互事件数据库条目404和数据类型402。图4的资源提供商交互事件数据库条目对应于交易交互事件。因此,数据类型对应于交易,并且包括资源提供商标识符、时间戳(例如,对应于交易发生的时间)、交易编号和交易金额。然而,应理解,实施例可以利用任何数目的适当数据类型和数据值,包括例如与每个交易相关联的类别代码或支付账户信息(例如,支付账号(PAN))。
图4中的每一资源提供商交互事件数据库条目群组406-408可基于资源提供商标识符进行分组。另外,可以基于时间戳或交易编号对这些群组进行排序,使得在每个群组内,资源提供商交互事件数据库条目以升序或降序时间戳次序排列。此外,如图4中所示,可以基于一个或多个数据值(例如交易金额数据值)来聚合资源提供商交互事件数据库条目。在图4中,交易金额数据值是每个连续资源提供商交互事件数据库条目的累计总和。
聚合可以用于快速确定在给定时间段内花费的金额。例如,要计算2019年5月5日与2019年6月5日之间在资源提供商“10”处花费的总金额,可以从交易金额2254.88美元减去交易金额654.88美元,总花费为1600.00美元。如果交易金额数据值未聚合,则必须对群组406中的每个个别交易金额数据值进行求和。如交易编号所指示,总共有31笔交易对应于资源提供商“10”。将交易金额相加将需要30个加法运算,而不是当值被聚合时的单个减法运算。由于需要更少的运算,因此与传统的求和方法相比,聚合使得能够更快速地计算对应于诸时间段的数据值。
对应于资源提供商交互事件数据库条目的数据值可以单独或共同地称为“交互事件数据”。导出自交互事件数据的任何数据或其它信息可称为“其导出项”。导出项的示例包括对应于相同或不同交互事件的数据值的和、差(如上所述)、乘积、比率等。
返回图1,地理资源提供商数据库108与资源提供商交互数据库110可以实施为单独的数据库。替代地,地理资源提供商数据库108与资源提供商交互数据库110可以实施为单个数据库系统。存储在地理资源提供商数据库108和资源提供商交互数据库110中的数据(例如,地理资源提供商数据库条目和资源提供商交互事件数据库条目)可以称为索引,例如称为“地理资源提供商索引”和“资源提供商交互事件索引”。
客户端计算机112可以是与客户端116相关联的计算机系统。客户端116可以操作客户端计算机112,以便与数据库管理计算机106介接。客户端116可以使用客户端计算机112以便请求来自数据库管理计算机106的交互事件数据。客户端计算机112可以是请求者计算机。在一些实施例中,客户端计算机112可以是个人计算机或其它个人计算装置(例如,智能手机、台式计算机、智能手表、平板电脑等)在其它实施例中,客户端计算机112可以是与企业或组织(例如,政府)客户端116相关联的服务器计算机(例如,企业服务器计算机)。
数据服务计算机114可以是与提供给客户端的数据服务相关联的计算机系统以及例如客户端116和客户端计算机112等的客户端计算机。数据服务可以包括涉及数据的操纵、处理或显示的任何服务。例如,数据服务计算机114可以与数据可视化服务相关联,所述数据可视化服务涉及生成对应于客户端的数据的可视化(例如,图表、图形等)。作为另一示例,数据服务计算机114可以使用由数据库管理计算机106提供的交互事件数据作为机器学习模型的输入,以便生成预测或分类。例如,如果交互事件数据包括交易数据,则数据服务计算机114可以将交互事件数据用作机器学习模型的输入,以便预测特定资源提供商将来的业务前景,例如资源提供商是否将继续开展业务。数据服务计算机114可以将其数据服务递送或以其它方式提供给客户端计算机112。与客户端计算机112一样,数据服务计算机114可以是请求者计算机。
现将参考图5描述聚合或以其它方式准备交互事件数据的方法,图5示出了根据一些实施例的方法的序列图。
在步骤S510,数据库管理计算机504可以从交互数据源502(例如,来自图1的交互数据流102和交互数据库104)接收对应于交互事件的一个或多个数据集。一个或多个数据集中的每个数据集可以包括资源提供商标识符(例如,数字标识符或例如“Bob’sDepartment Store”的字符串)和地理区标识符(例如,地理散列、纬度和经度、邮政编码、例如“New York”的字符串,等)。地理区标识符也可以称为位置标识符。数据集也可以称为交互事件数据。数据集可以周期性地或连续地、单独地或分批地接收。数据集可以是未聚合且未排序的。
在步骤S512,数据库管理计算机504可以针对每个数据集基于地理区标识符确定地理散列。对于一些数据集,地理区标识符可以是地理散列,并且因此,所述确定可以包括检取对应于地理区标识符的数据值。对于其它数据集,地理区标识符可以包括成对的纬度和经度坐标值。确定地理散列可以包括基于成对的纬度和经度坐标值计算地理散列,例如,确定对应于纬度坐标值的26位整数,确定对应于经度坐标值的26位整数,接着将两个整数交错以产生52位地理散列。
对于其它数据集,地理区标识符可以包括指示地理区(例如,“New York City”或“New York State”)的邮政编码或字符串。数据库管理计算机504可以使用查找表或将地理区标识符与地理散列匹配的另一适当数据结构来确定地理散列。
在步骤S514,数据库管理计算机504可以生成一个或多个地理资源提供商数据库条目,每个地理资源提供商数据库条目包括资源提供商标识符和对应的地理散列。所述地理资源提供商数据库条目可以类似于图3中所示的地理资源提供商数据库条目。
数据库管理计算机504可以通过从在步骤S510处接收的一个或多个数据集收集数据来生成一个或多个地理资源提供商数据库条目。例如,数据库管理计算机504可以剖析一个或多个数据集,标识对应于资源提供商标识符的数据值,并将那些资源提供商标识符与在步骤S512中确定的对应类别代码和地理散列配对。
在步骤S516,数据库管理计算机504可以使用任何适当的数据库存储程序将一个或多个地理资源提供商数据库条目存储在地理资源提供商数据库506中。数据库管理计算机504可以按次序(例如,基于地理散列以升序或降序)和群组(例如,使得对应于相同或类似地理散列的地理资源提供商数据库条目彼此相关联地存储)存储地理资源提供商数据库条目。
在步骤S518,数据库管理计算机504可以生成一个或多个资源提供商交互事件数据库条目,每个资源提供商交互事件数据库条目包括资源提供商标识符和对应于交互事件的数据集。对应于交互事件的数据集可以包括例如时间戳等的数据值,并且在交易数据的情况下,可以包括例如交易编号和交易金额等的数据。
一个或多个资源提供商交互事件数据库条目可以类似于图4中所示的资源提供商交互事件数据库条目。地理资源提供商数据库条目可以基于一个或多个数据值分组(例如,对应于相同资源提供商标识符的地理资源提供商数据库条目可以彼此关联地分组)。此外,可以聚合一个或多个数据值。例如,如果资源提供商交互事件数据库条目包括对应于交易金额的数据值,那么交易金额数据值可以累计总和来聚合。
数据库管理计算机504可以使用在步骤S510处接收的数据集来生成一个或多个资源提供商交互事件数据库条目。例如,数据库管理计算机504可以剖析数据集,并确定与资源提供商标识符、时间戳、交易编号、交易金额等相关联的数据值。数据库管理计算机504可以收集此数据,并将其格式化为一个或多个资源提供商交互事件数据库条目。
在步骤S520,数据库管理计算机504可以使用任何适当的数据库存储程序将一个或多个资源提供商交互事件数据库条目存储在资源提供商交互数据库508中。数据库管理计算机504可以按次序(例如,以升序或降序时间戳次序)和群组(例如,使得对应于相同资源提供商标识符的资源提供商交互事件数据库条目彼此相关联地存储)存储资源提供商交互事件数据库条目。
参考图6可以更好地理解检取交互事件数据并将其提供给请求者计算机的方法,图6示出了根据一些实施例的方法的序列图。
在步骤S610,数据库管理计算机604(例如,来自图1的数据库管理计算机106)可以从请求者计算机602(例如,来自图1的客户端计算机112或数据服务计算机114)接收对对应于地理区的交互事件数据的请求。
请求可以包括位置标识符(例如,成对的纬度和经度值、GPS坐标、地理散列、邮政编码、标识位置的字符串(例如,“New York City”)等)以及半径。如上文术语部分所指示,位置标识符也可以称为“地理区标识符”。位置标识符和半径可以限定以与位置标识符相关联的坐标为中心的圆形地理区。对于对应于GPS坐标、成对的纬度或经度值、地理散列等的位置标识符,与位置标识符相关联的坐标可以是位置标识符本身。对于对应于邮政编码的位置标识符或标识位置的字符串,坐标可以是对应于位置标识符的任何适当坐标。例如,对于例如“New York City”的位置标识符,坐标可以是纽约市的地理中心,或与市政厅或另一著名地标相关联的坐标。
半径可以是搜索半径,指示请求者需要对应于在坐标点的一个半径(或限定区域的其它向外度量)距离内发生的交互事件(例如,交易)的交互事件数据。在一些实施例中,请求可以另外包括时间范围和资源提供商类别(例如,类别代码),指示请求是针对对应于时间范围和资源提供商类别的交互事件数据。例如,请求者可能需要在邮编编码94612(位置标识符)的中心的五英里半径内,在2019年6月1日与2019年7月1日之间(时间范围)对应于杂货店(资源提供商类别)的交易数据(交互事件数据)。
在步骤S612,数据库管理计算机604可以基于位置标识符和半径确定对应于地理区的一个或多个地理散列。这些地理散列可以用于标识对应于请求者的请求的资源提供商和交互数据。有许多方式可以确定这些一个或多个地理散列,一些示例在图7中呈现。
图7示出确定一个或多个地理散列的示例性方法的三个流程图。应理解,这些方法是非限制性示例。流程图700A示出了基于距离比较确定地理散列的方法,流程图700B示出了使用限界区确定地理散列的方法,并且流程图700C示出了使用内接地理区确定地理散列的方法。
参考流程图700A,在步骤702A,数据库管理计算机可以确定一个或多个候选坐标点。一个或多个候选坐标点可以对应于任何适当的地理坐标系,例如,成对的纬度和经度值、GPS坐标、地理散列等。所述一个或多个候选坐标点可以对应于可能位于与所述位置标识符相关联的坐标点的一个半径距离内的坐标点。有多种方式可以确定一个或多个候选坐标点。例如,可以基于位置标识符使用粗略距离估计来确定一个或多个候选坐标点。例如,如果位置标识符是例如94612的邮政编码(对应于加利福尼亚州奥克兰),则候选坐标点可以是对应于美国西海岸加利福尼亚州奥克兰市等的坐标点等。
作为另一示例,所述一个或多个候选坐标点可以是和与位置标识符相关联的地理散列共享一些共同特征的地理散列。例如,候选坐标点可以是具有与位置标识符相关联的与地理散列共同的某一数目个位的地理散列。对于与例如“1100110”的位置标识符相关联的地理散列,候选坐标点可以是和与位置标识符相关联的地理散列共享相同的四个最高有效位(MSB)的八个地理散列,例如“1100…”。共享位的数目可以与半径成比例,例如对于较大的半径,较之于较小半径,候选坐标点共享比较小数目的MSB。
在一些实施例中,所述一个或多个候选坐标点可以从存储在地理资源提供商数据库中的地理资源提供商数据库条目导出。
在步骤704A,对于一个或多个候选坐标点中的每个候选坐标点,数据库管理计算机可以确定候选坐标点和与位置标识符相关联的坐标点之间的距离,由此确定一个或多个距离。数据库管理计算机可以使用任何适当方法来确定候选坐标点与位置标识符之间的距离。例如,数据库管理计算机可以使用三角函数来计算每个候选坐标点和与位置标识符相关联的坐标点之间的大圆距离。
在步骤706A,对于在步骤704A中计算出的一个或多个距离中的每个距离,数据库管理计算机可以通过将距离与半径进行比较来确定该距离是否超过半径。该距离大于半径指示对应的候选坐标点不在地理区内。该距离小于半径指示对应的候选坐标在地理区内。
在步骤708A,对于不超过半径的一个或多个距离中的每一距离,数据库管理计算机可以确定对应于对应候选坐标点的地理散列,由此确定对应于地理区的一个或多个地理散列。数据库管理计算机可以使用任何适当方法确定这些地理散列。例如,如果候选坐标点包括纬度和经度值,则数据库管理计算机可以使这些纬度与经度值交错以产生对应的地理散列。
流程图700B示出了确定对应于地理区的一个或多个地理散列的另一示例性方法。在步骤702B,数据库管理计算机可以确定对应于由位置标识符和半径限定的圆形地理区的限界区,使得圆形地理区内接在限界区内。参考图8可以更好地理解此步骤。
图8示出城市800的若干街区的地图、与位置标识符802相关联的坐标点、半径804、由坐标点802和半径804限定的圆形地理区806,以及限界区808。如图8中所示,圆形地理区806内接在限界区808内。
回到图7,在步骤704B,数据库管理计算机可以确定对应于限界区的一个或多个地理散列,其中对应于地理区的一个或多个地理散列(例如,图6的步骤S612中引用的地理区)是对应于限界区的一个或多个地理散列。
换句话说,数据库管理计算机可以确定对应于使圆形地理区内接的正方形限界区的地理散列。由于地理散列是基于纬度和经度坐标系,因此地理散列通常涉及矩形土地区域(例如,在特定纬度范围和特定经度范围内限定的土地区域)。因此,正方形或矩形地理区通常可以比圆形地理区更快限定,并且使用更少的数据。
流程图700C示出了确定对应于地理区的一个或多个地理散列的另一示例性方法。在步骤702C,数据库管理计算机可以确定对应于由位置标识符和半径限定的圆形地理区的圆形限界区。
在步骤704C,数据库管理计算机可以确定一个或多个内接地理区,所述一个或多个内接地理区由圆形限界区内接。参考图9可以更好地理解步骤704C。
图9示出城市900的若干街区的地图以及圆形地理区902。图9另外示出了九个内接地理区904-920。内接地理区904-920可以是任何大小的矩形或正方形区,条件是内接地理区904-920共同由圆形地理区902内接。内接地理区904-920可以大体近似于圆形地理区902的区域和形状。数据库管理计算机可以使用近似得出圆形地理区902的区域的任何适当方法,以便确定内接地理区904-920,例如中点圆形算法或Bresenham圆形算法的修改版本。
回到图7,在步骤706C,数据库管理计算机可以确定对应于一个或多个内接地理区的一个或多个地理散列,其中对应于所述地理区的一个或多个地理散列是对应于所述一个或多个内接地理区的一个或多个地理散列。
换句话说,数据库管理计算机可以确定对应于由圆形地理区内接的内接地理区的地理散列。如上文所描述,地理散列大体上涉及矩形土地区域(例如,在特定纬度范围和特定经度范围内限定的土地区域)。因而,圆形地理区通常可以根据近似于这些圆形地理区的矩形土地区域来限定。与流程图700B的方法不同,流程图700C的方法允许以额外存储器需求和速度为代价将圆形地理区限定为任意精度。
应理解,图7的方法仅旨在作为非限制性示例。此外,图7的方法可以按任何适当方式组合。例如,方法700B可以用于确定候选坐标点(例如,对应于正方形限界区的坐标点),接着可以使用700A的方法测试所述候选坐标点的距离。
返回图6,在步骤S614,数据库管理计算机604可以使用一个或多个地理散列查询地理资源提供商数据库606以确定一个或多个资源提供商标识符。数据库管理计算机604可以请求对应于与在步骤S612期间确定的地理散列相关联的地理资源提供商数据库条目的资源提供商标识符。数据库管理计算机604可以使用任何适当的查询方法,例如,针对SQL数据库的SQL查询,或针对例如Redis等无SQL数据库的无SQL查询。
在步骤S616,数据库管理计算机604可以从地理资源提供商数据库606接收一个或多个资源提供商标识符。
在步骤S618,数据库管理计算机604可以使用一个或多个资源提供商标识符查询资源提供商交互数据库608以确定一个或多个交互事件。数据库管理计算机604可以请求对应于在步骤S616中获得的资源提供商标识符的资源提供商交互事件数据库条目。数据库管理计算机604可以使用任何适当的查询方法,例如,如上所述的SQL或无SQL查询。
在步骤S620,数据库管理计算机604可以从资源提供商交互数据库608检取交互事件数据或其导出项。此交互事件数据可以包括例如图4中所示的交互事件数据值的交互事件数据值(例如,用于交易数据、时间戳、交易编号、交易金额等)。其导出项可以包括从这些数据值导出的数据值,例如交互事件数据值的和或差。在一些实施例中,交互事件数据或其导出项可以包括对应于两个交互数据集的两个交互值之间的差,例如两个聚合的“花费金额”数据值之间的差。
在任选步骤S622,在一些实施例中,数据库管理计算机604可计算或以其它方式确定在步骤S620处检取到的交互事件数据的导出项,而不是从资源提供商交互数据库608检取导出项。数据库管理计算机604可以使用任何适当方法来计算或以其它方式确定交互事件数据的导出项。
在步骤S624,数据库管理计算机604可以将交互事件数据或其导出项提供给请求者计算机602。请求者计算机602和/或请求者可以基于交互事件数据或其导出项采取后续行动。如上所述,在一些实施例中,请求者计算机602可以是客户端计算机或数据服务计算机。如上文所指示,后续行动的示例包括例如使用交互事件数据或其导出项作为机器学习模型的输入,以便产生与交互事件数据相关联的分类或预测,例如预测在将来的某个时间与特定商家资源提供商相关联的销售额。
图10示出了根据一些实施例的资源提供商计算机1000的系统框图。资源提供商计算机1000包括处理器1002、通信接口1004和计算机可读介质1006。计算机可读介质1006可以包括或存储数个软件模块,包括通信模块1008、交互数据处理模块1010、请求剖析模块1012、地理处理模块1014和数据库存取模块1016。
处理器1002可以是如上文术语部分中描述的任何合适的处理设备或装置。通信接口1004可以包括使得资源提供商计算机1000能够通过例如因特网等网络与其它计算机或系统通信的网络接口。
通信模块1008可以包括可由处理器1002执行以用于在资源提供商计算机1000与其它实体之间建立通信的代码或软件,所述其它实体包括例如交互数据库、地理资源提供商数据库或资源提供商交互事件数据库等数据库,以及例如客户端计算机或数据服务计算机等请求者计算机。资源提供商计算机1000可以使用通信模块1008从例如交互数据流或交互数据库的数据源接收交互事件数据。资源提供商计算机1000可以另外使用通信模块1008将交互事件数据传送到请求者计算机。
交互数据处理模块1010可以包括可由处理器1002执行以用于处理和聚合交互数据的代码或软件。这可以包括用于实施图5的方法的代码或软件,如上文所描述。交互数据处理模块1010可以用于生成地理资源提供商数据库条目和资源提供商交互事件数据库条目,并将所述数据库条目分别存储在地理资源提供商数据库与资源提供商交互数据库中。
请求剖析模块1012可以包括可由处理器1002执行以用于剖析来自请求者计算机的请求的代码或软件。这可以涉及剖析请求以确定位置标识符、半径、时间范围、类别代码和可由资源提供商1000使用以服务于这些请求的其它信息。
地理处理模块1014可以包括可由处理器1002执行以确定地理区、地理散列和如上文参考图6-7所描述的其它地理信息的代码或软件。地理处理模块1014可以提供或支持数学函数的使用,例如计算大圆距离、基于位置标识符或坐标点生成地理散列以及近似得出圆形地理区,如上文所描述。
数据库存取模块1016可以包括可由处理器1002执行以用于存取数据库的代码或软件,所述数据库包括交互数据库、地理资源提供商数据库、资源提供商交互数据库等等。数据库存取模块1016可以包括使得处理器能够生成查询(包括SQL查询和无SQL查询),以便存取上述数据库的代码。
本文所提及的任何计算机系统都可以使用任何合适数目的子系统。在一些实施例中,计算机系统包括单个计算机设备,其中子系统可以是计算机设备的组件。在其它实施例中,计算机系统可以包括多个计算机设备,每个计算机设备都是具有内部组件的子系统。
计算机系统可以包括例如由外部接口或由内部接口连接在一起的多个组件或子系统。在一些实施例中,计算机系统、子系统或设备可以通过网络进行通信。在此类情况下,一个计算机可视为客户端,且另一计算机可视为服务器,其中每台计算机可以是同一计算机系统的一部分。客户端和服务器可以各自包括多个系统、子系统或组件。
应理解,本发明的任何实施例都可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式实现,其中通用可编程处理器是模块化的或集成的。如本文所用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实施本发明的实施例的其它方式和/或方法。
本申请中描述的任何软件组件或功能可实施为使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或例如Perl或Python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或发送,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、例如硬盘驱动器或软盘的磁性介质,或例如光盘(CD)或数字通用盘(DVD)的光学介质、快闪存储器等。计算机可读介质可以是此类存储或发送装置的任何组合。
此类程序还可以使用适应于经由包括互联网的符合多种协议的有线、光学和/或无线网络进行传送的载波信号来编码和传送。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)上或内,且可存在于系统或网络内的不同计算机产品上或内。计算机系统可以包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其它合适的显示器。
本文所述的任何方法可以完全地或部分地用包括可被配置成执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施例可涉及被配置成执行本文所述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管呈现为编号步骤,但本文中的方法的步骤可以同时或以不同顺序被执行。另外,这些步骤的部分可与来自其它方法的其它步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、电路或用于执行这些步骤的其它手段来执行。
在不偏离本发明的实施例的精神和范围的情况下,具体实施例的特定细节可以任何合适方式组合。然而,本发明的其它实施例可涉及与每个单独的方面相关的特定实施例,或者这些单独的方面的特定组合。上文对本发明的示例性实施例的描述已经出于说明和描述的目的呈现。不旨在是详尽的,或将本发明局限到描述的精确形式,根据上文的教导许多修改和变形是可能的。选择和描述这些实施例是为了最好地解释本发明的原理及其实际应用,由此使本领域的技术人员能够在各种实施例中最好地利用本发明,并且进行适合于预期的特定用途的各种修改。
以上描述是说明性的而不是限制性的。在本领域技术人员阅读了本公开之后,本发明的许多变体对于他们会变得显而易见。因此,本发明的范围不应该参考上面的描述来确定,而是应该参考待决的权利要求及其完整范围或等同物来确定。
在不偏离本发明的范围的情况下,任何实施例的一个或多个特征可以与任何其它实施例的一个或多个特征组合。
除非明确指示有相反的意思,否则叙述“一个/种”或“该/所述”旨在表示“一个/种或多个/种”。除非明确指示有相反的意思,“或”的使用旨在表示是“包括性的或”,而不是“排他性的或”。
本文中所提及的所有专利、专利申请、公开和描述是出于所有目的而以全文引用的方式并入。并非承认它们是现有技术。
Claims (20)
1.一种方法,其包括:
由数据库管理计算机从与请求者相关联的请求者计算机接收对对应于地理区的交互事件数据的请求,所述请求包括位置标识符和边界元素;
由所述数据库管理计算机基于所述位置标识符和所述边界元素确定对应于所述地理区的一个或多个地理散列;
由所述数据库管理计算机使用所述一个或多个地理散列查询地理资源提供商数据库以确定一个或多个资源提供商标识符;
由所述数据库管理计算机使用所述一个或多个资源提供商标识符查询资源提供商交互数据库以确定一个或多个交互事件;
由所述数据库管理计算机从所述资源提供商交互数据库检取交互事件数据或其导出项;以及
由所述数据库管理计算机将所述交互事件数据或其导出项提供给所述请求者计算机,其中所述请求者计算机和/或所述请求者基于所述交互事件数据或其导出项采取后续行动。
2.根据权利要求1所述的方法,其进一步包括:
由所述数据库管理计算机接收对应于交互事件的一个或多个数据集,其中所述一个或多个数据集中的每个数据集包括资源提供商标识符和地理区标识符;
由所述数据库管理计算机针对每个数据集基于所述地理区标识符确定地理散列;
由所述数据库管理计算机生成一个或多个地理资源提供商数据库条目,每个地理资源提供商数据库条目包括资源提供商标识符和对应的地理散列;
由所述数据库管理计算机将所述一个或多个地理资源提供商数据库条目存储在所述地理资源提供商数据库中;
由所述数据库管理计算机生成一个或多个资源提供商交互事件数据库条目,每个资源提供商交互事件数据库条目包括资源提供商标识符和对应于交互事件的数据集;以及
由所述数据库管理计算机将所述一个或多个资源提供商交互事件数据库条目存储在所述资源提供商交互数据库中。
3.根据权利要求1所述的方法,其中所述边界元素是半径。
4.根据权利要求3所述的方法,其中由所述数据库管理计算机基于所述位置标识符和所述半径确定对应于所述地理区的一个或多个地理散列包括:
由所述数据库管理计算机确定一个或多个候选坐标点;
对于所述一个或多个候选坐标点中的每个候选坐标点,由所述数据库管理计算机确定所述候选坐标点和与所述位置标识符相关联的坐标点之间的距离,由此确定一个或多个距离;
对于所述一个或多个距离中的每个距离,由所述数据库管理计算机确定所述距离是否超过所述半径;以及
对于不超过所述半径的所述一个或多个距离中的每个距离,由所述数据库管理计算机确定对应于对应候选坐标点的地理散列,由此确定对应于所述地理区的一个或多个地理散列。
5.根据权利要求3所述的方法,其中由所述数据库管理计算机基于所述位置标识符和所述半径确定对应于所述地理区的一个或多个地理散列包括:
由所述数据库管理计算机确定对应于由所述位置标识符和所述半径限定的圆形地理区的限界区,使得所述圆形地理区内接在所述限界区内;以及
由所述数据库管理计算机确定对应于所述限界区的一个或多个地理散列,其中对应于所述地理区的所述一个或多个地理散列是对应于所述限界区的所述一个或多个地理散列。
6.根据权利要求3所述的方法,其中由所述数据库管理计算机基于所述位置标识符和所述半径确定对应于所述地理区的一个或多个地理散列包括:
由所述数据库管理计算机确定对应于由所述位置标识符和所述半径限定的圆形地理区的圆形限界区;
由所述数据库管理计算机确定一个或多个内接地理区,所述一个或多个内接地理区由所述圆形限界区内接;以及
由所述数据库管理计算机确定对应于所述一个或多个内接地理区的一个或多个地理散列,其中对应于所述地理区的所述一个或多个地理散列是对应于所述一个或多个内接地理区的所述一个或多个地理散列。
7.根据权利要求1所述的方法,其中所述交互事件数据另外对应于时间范围和/或资源提供商类别,并且其中所述请求另外包括所述时间范围和/或所述资源提供商类别。
8.根据权利要求1所述的方法,其中所述交互事件数据聚合且有序。
9.根据权利要求1所述的方法,其中所述交互事件数据或其导出项包括对应于两个交互数据集的两个交互值之间的差。
10.根据权利要求1所述的方法,其中所述请求者计算机为数据服务计算机。
11.一种数据库管理计算机,其包括:
处理器;以及
耦合到所述处理器的非瞬态计算机可读介质,所述非瞬态计算机可读介质包括能由所述处理器执行以实施方法的代码,所述方法包括:
从与请求者相关联的请求者计算机接收对对应于地理区的交互事件数据的请求,所述请求包括位置标识符和边界元素;
基于所述位置标识符和所述边界元素确定对应于所述地理区的一个或多个地理散列;
使用所述一个或多个地理散列查询地理资源提供商数据库以确定一个或多个资源提供商标识符;
使用所述一个或多个资源提供商标识符查询资源提供商交互数据库以确定一个或多个交互事件;
从所述资源提供商交互数据库检取交互事件数据或其导出项;以及
由所述数据库管理计算机将所述交互事件数据或其导出项提供给所述请求者计算机,其中所述请求者计算机和/或所述请求者基于所述交互事件数据或其导出项采取后续行动。
12.根据权利要求11所述的数据库管理计算机,其中所述方法进一步包括:
接收对应于交互事件的一个或多个数据集,其中所述一个或多个数据集中的每个数据集包括资源提供商标识符和地理区标识符;
针对每个数据集基于所述地理区标识符确定地理散列;
生成一个或多个地理资源提供商数据库条目,每个地理资源提供商数据库条目包括资源提供商标识符和对应的地理散列;
将所述一个或多个地理资源提供商数据库条目存储在所述地理资源提供商数据库中;
生成一个或多个资源提供商交互事件数据库条目,每个资源提供商交互事件数据库条目包括资源提供商标识符和对应于交互事件的数据集;以及
将所述一个或多个资源提供商交互事件数据库条目存储在所述资源提供商交互数据库中。
13.根据权利要求11所述的数据库管理计算机,其中所述边界元素是半径。
14.根据权利要求13所述的数据库管理计算机,其中基于所述位置标识符和所述半径确定对应于所述地理区的一个或多个地理散列包括:
确定一个或多个候选坐标点;
对于所述一个或多个候选坐标点中的每个候选坐标点,确定所述候选坐标点和与所述位置标识符相关联的坐标点之间的距离,由此确定一个或多个距离;
对于所述一个或多个距离中的每个距离,确定所述距离是否超过所述半径;以及
对于不超过所述半径的所述一个或多个距离中的每个距离,确定对应于对应候选坐标点的地理散列,由此确定对应于所述地理区的一个或多个地理散列。
15.根据权利要求13所述的数据库管理计算机,其中基于所述位置标识符和所述半径确定对应于所述地理区的一个或多个地理散列包括:
确定对应于由所述位置标识符和所述半径限定的圆形地理区的限界区,使得所述圆形地理区内接在所述限界区内;以及
确定对应于所述限界区的一个或多个地理散列,其中对应于所述地理区的所述一个或多个地理散列是对应于所述限界区的所述一个或多个地理散列。
16.根据权利要求13所述的数据库管理计算机,其中基于所述位置标识符和所述半径确定对应于所述地理区的一个或多个地理散列包括:
确定对应于由所述位置标识符和所述半径限定的圆形地理区的圆形限界区;
确定一个或多个内接地理区,所述一个或多个内接地理区由所述圆形限界区内接;以及
确定对应于所述一个或多个内接地理区的一个或多个地理散列,其中对应于所述地理区的所述一个或多个地理散列是对应于所述一个或多个内接地理区的所述一个或多个地理散列。
17.根据权利要求11所述的数据库管理计算机,其中所述交互事件数据另外对应于时间范围和/或资源提供商类别,并且其中所述请求另外包括所述时间范围和/或所述资源提供商类别。
18.根据权利要求11所述的数据库管理计算机,其中所述交互事件数据聚合且有序。
19.根据权利要求11所述的数据库管理计算机,其中所述交互事件数据或其导出项包括对应于两个交互数据集的两个交互值之间的差。
20.根据权利要求11所述的数据库管理计算机,其中所述请求者计算机是客户端计算机。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/044986 WO2021025671A1 (en) | 2019-08-02 | 2019-08-02 | Real-time geo-intelligent aggregation engine |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114144776A true CN114144776A (zh) | 2022-03-04 |
Family
ID=74502745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980098677.4A Pending CN114144776A (zh) | 2019-08-02 | 2019-08-02 | 实时地理智能聚合引擎 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220300537A1 (zh) |
EP (1) | EP4007959A4 (zh) |
CN (1) | CN114144776A (zh) |
WO (1) | WO2021025671A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT202000023833A1 (it) * | 2020-10-09 | 2022-04-09 | Vodafone Automotive S P A | Location-based publication over a cellular network |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965868B1 (en) * | 1999-08-03 | 2005-11-15 | Michael David Bednarek | System and method for promoting commerce, including sales agent assisted commerce, in a networked economy |
US7693752B2 (en) * | 2004-05-26 | 2010-04-06 | Hothand, Inc. | Mobile commerce framework |
US8965901B2 (en) * | 2011-03-01 | 2015-02-24 | Mongodb, Inc. | System and method for determining exact location results using hash encoding of multi-dimensioned data |
US8983953B2 (en) * | 2011-10-18 | 2015-03-17 | Nokia Corporation | Methods and apparatuses for facilitating interaction with a geohash-indexed data set |
EP2974434A4 (en) * | 2013-03-15 | 2016-11-02 | Factual Inc | APPARATUS, SYSTEMS AND METHODS FOR ANALYZING MOVEMENTS OF TARGET ENTITIES |
US9719790B2 (en) * | 2013-03-15 | 2017-08-01 | International Business Machines Corporation | Mapping uncertain geometries to graticules |
US8938686B1 (en) * | 2013-10-03 | 2015-01-20 | Palantir Technologies Inc. | Systems and methods for analyzing performance of an entity |
US9727622B2 (en) * | 2013-12-16 | 2017-08-08 | Palantir Technologies, Inc. | Methods and systems for analyzing entity performance |
US9426620B2 (en) * | 2014-03-14 | 2016-08-23 | Twitter, Inc. | Dynamic geohash-based geofencing |
US10747818B2 (en) * | 2018-07-23 | 2020-08-18 | Bank Of America Corporation | Data trend analysis based on real-time data aggregation |
-
2019
- 2019-08-02 WO PCT/US2019/044986 patent/WO2021025671A1/en unknown
- 2019-08-02 EP EP19940702.4A patent/EP4007959A4/en active Pending
- 2019-08-02 CN CN201980098677.4A patent/CN114144776A/zh active Pending
- 2019-08-02 US US17/632,342 patent/US20220300537A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021025671A1 (en) | 2021-02-11 |
EP4007959A1 (en) | 2022-06-08 |
US20220300537A1 (en) | 2022-09-22 |
EP4007959A4 (en) | 2022-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhao et al. | A trajectory clustering approach based on decision graph and data field for detecting hotspots | |
US20200026721A1 (en) | Method and system for generating a geocode trie and facilitating reverse geocode lookups | |
CN109492772B (zh) | 生成信息的方法和装置 | |
Padmanabhan et al. | FluMapper: A cyberGIS application for interactive analysis of massive location‐based social media | |
US20190073406A1 (en) | Processing of computer log messages for visualization and retrieval | |
CN103679462A (zh) | 一种评论数据处理方法和装置、一种搜索方法和系统 | |
CN108932625B (zh) | 用户行为数据的分析方法、装置、介质和电子设备 | |
Ma et al. | Modeling and analysis of daily driving patterns of taxis in reshuffled ride-hailing service market | |
US11934431B2 (en) | Computer-based systems configured for efficient entity resolution for database merging and reconciliation | |
Visuwasam et al. | A distributed intelligent mobile application for analyzing travel big data analytics | |
KR102116519B1 (ko) | 실제 지역들의 위치 기반 순위 | |
CN114416900A (zh) | 一种轨迹停留点分析的方法和装置 | |
Feizizadeh et al. | Urban restaurants and online food delivery during the COVID-19 pandemic: A spatial and socio-demographic analysis | |
CN110751354B (zh) | 一种异常用户的检测方法和装置 | |
Zou et al. | An innovative GPS trajectory data based model for geographic recommendation service | |
Yao et al. | Analysis of key commuting routes based on spatiotemporal trip chain | |
CN114144776A (zh) | 实时地理智能聚合引擎 | |
CN115204881A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
Constante-Nicolalde et al. | A proposed architecture for iot big data analysis in smart supply chain fields | |
Bhutani et al. | WSEMQT: a novel approach for quality‐based evaluation of web data sources for a data warehouse | |
Lydia et al. | Data integration and data privacy through “pay-as-you-go” approach | |
Regal et al. | UrbanPy: A Library to Download, Process and Visualize High Resolution Urban Data to Support Transportation and Urban Planning Decisions | |
Giurgola et al. | Mapping urban socioeconomic inequalities in developing countries through Facebook advertising data | |
Mishra et al. | Leveraging big data for spark deep learning to predict rating | |
Becha et al. | Applications of big data in tourism: a survey |
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 |