CN112384908A - 提供低延迟搜索查询响应的数据存储系统 - Google Patents
提供低延迟搜索查询响应的数据存储系统 Download PDFInfo
- Publication number
- CN112384908A CN112384908A CN201980026846.3A CN201980026846A CN112384908A CN 112384908 A CN112384908 A CN 112384908A CN 201980026846 A CN201980026846 A CN 201980026846A CN 112384908 A CN112384908 A CN 112384908A
- Authority
- CN
- China
- Prior art keywords
- data
- risk
- risk item
- storage format
- digital data
- 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
- 230000004044 response Effects 0.000 title claims abstract description 22
- 238000013500 data storage Methods 0.000 title description 42
- 238000003860 storage Methods 0.000 claims abstract description 60
- 238000000034 method Methods 0.000 claims abstract description 54
- 230000002085 persistent effect Effects 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 15
- 230000006870 function Effects 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 239000000835 fiber Substances 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000002689 soil Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 241000282813 Aepyceros melampus Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000010923 batch production Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012905 input function Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000001404 mediated effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
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/23—Updating
- G06F16/2393—Updating materialised views
-
- 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/24535—Query rewriting; Transformation of sub-queries or views
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- 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
- G06F16/221—Column-oriented storage; Management thereof
-
- 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
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)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种用于向数据搜索系统提供对查询低延迟响应的方法,包括使用第一面向列的存储格式将第一数字数据存储在第一数字数据储存库中;使用第二面向列的存储格式将第二数字数据存储在第二数字数据储存库中,其中,所述第二面向列的存储格式不同于所述第一面向列的存储格式;基于暴露数据和风险项数据生成多个预计算视图;使用第二面向列的存储格式将多个预计算视图存储在第二数据储存库中;及,响应于接收到搜索查询,基于多个预计算视图中的一个或多个特定的预计算视图,确定响应于该查询的结果集,并将该结果集作为输出提供给另一计算机或显示设备。
Description
技术领域
本发明属于电子数字数据存储系统技术领域。本发明还属于被编程用于查询处理和数据存储的计算机系统技术领域,特别是用于向搜索查询提供低延迟响应的数据存储系统。
背景技术
本节中描述的方法是可以获得的方法,但不一定是先前已经设想到的或获得的方法。因此,除非另有说明,否则不应仅由于方法包括在本节中就将本节所述的任一方法视为现有技术。
“大数据”描述庞大而复杂的数据集的集合,以至于很难使用传统的数据库管理工具或传统的数据处理应用程序对其进行处理。如今,企业和数据中心应用程序都要求以最小延迟来处理越来越大的数据集。
数据处理应用程序部署的其中一个考虑因素是配置数据库系统以获得最佳查询性能。大数据集可包含跨数十亿行的数百个列,针对该数据集的查询可能包含对这数百个列中任何列的预测。例如,保险数据可包括数百个保险投资组合,每个保险投资组合包括众多保险合同,这些合同总共涵盖数十万房地产。每项房地产可包括数百个属性,例如,地址、区域信息、土壤类型、结构类型等。
一查询示例例如是请求检索距离海岸线五英里的具有木结构且位于沙质土壤上的所有房地产。通常的数据库系统可能无法扩展存储此数据量。此外,这样的请求将花费大量时间来计算和提供结果。键-值数据存储(如Cassandra或HBase)可能具有更好的查询处理时间,但无法处理对任意数据列都有预测的查询。
因此,人们期望一种能够接受对大数据集的任意列的查询并且可在没有明显延迟的情况下提供搜索结果的数据处理系统。
附图简要说明
附图中:
图1示出了根据一个实施例的本文所述技术可在其中实践的一示例计算机系统。
图2示出了根据一个实施例的管理永久性客户端连接的示例作业服务器。
图3示出了根据一实施例的对搜索查询提供响应的流程图。
图4示出了可在其上实现一实施例的计算机系统。
具体实施方式
在下文中,出于解释目的,阐述了许多细节方面的内容以便对本发明有个全面的理解。然而,很明显地,可以在没有这些细节的情况下实践本发明。在其它实例中,公知结构和装置以框图形式示出,以避免不必要地使本发明复杂难懂。
本发明的文本结合附图旨在,在与本发明所属领域的技术人员用来就要编程的功能、输入、变换、输出和其它编程方面进行彼此通信的细节程度相同的细节程度上,以散文体形式陈述对计算机进行编程以实现所要求保护的发明所必需的算法。也就是说,本发明所阐述的详细程度与本领域技术人员通常用来彼此通信以表达要编程的算法或者实现本文所要求保护的发明的程序的结构和功能的详细程度相同。
1.0总体概述
为对搜索查询提供低延迟响应的数据搜索系统提供了技术。低延迟响应可以是对搜索查询的实时或接近实时的响应。
在一实施例中,第一数字数据使用第一面向列的存储格式存储在第一数字数据储存库中。第二数字数据使用第二面向列的存储格式存储在第二数字数据储存库中,其中,所述第二面向列的存储格式不同于所述第一面向列的存储格式。基于暴露数据(exposuredata)和风险项数据生成多个预先计算的视图(或称为预计算视图)(pre-computedviews)。使用所述第二面向列的存储格式将多个预计算视图存储在第二数据储存库中。响应于接收到搜索查询,基于所述多个预计算视图中的一个或多个特定预计算视图确定响应于该查询的结果集。该结果集作为输出提供给另一台计算机或显示设备。
在一实施例中,用于提供低延迟查询响应的服务器系统包括Kudu数据储存库、Parquet数据储存库和由Spark集群管理器管理的多个Spark集群计算实例。
通过作为一个整体的本发明,其它实施例、方面和特征将变得明显。
2.0数据搜索系统
图1示出了一示例性计算机系统,根据一个实施例,可以在该系统中实践所描述的技术。
计算机系统100包括计算集群120、数据存储系统130和客户端计算设备140。计算集群120、数据存储系统130和计算设备140可以使用任何合适的数据通信机制相互连接,例如,一个或多个数据网络。所述一个或多个数据网络可包括一个或多个局域网(LANs)、一个或多个广域网(WANs)、一个或多个互联网络(如,公共因特网)或公司网络。
2.1计算集群
计算集群120包括多个集群计算实例125。该些集群计算实例125可通过任何合适的数据网络或通信机制(包括一个或多个LANs、一个或多个WANs、一个或多个互连网络和因特网)互连。
在一个实施例中,集群计算实例125为服务器计算机系统,其例如包括运行服务器操作系统(例如,基于MicrosoftWindows、Unix或Linux的操作系统)的商品或易于获得的硬件组件。集群计算实例125还可以由虚拟机系统或计算设备的其它基于软件的实现来实现。在一实施例中,集群计算实例125为云计算实例,例如,EC2实例、ComputeEngine实例或Azure实例。
在一实施例中,每个集群计算实例125托管或执行一个或多个用于管理、处理和/或分析大量数据的大数据处理框架。大数据处理框架的示例包括Spark、Hadoop、Hive、Presto和Impala。
在一实施例中,计算集群120包括集群管理器。在一实施例中,该集群管理器被编程或配置为管理多个集群计算实例125。额外地或替代地,所述集群管理器可被编程或配置为管理在多个集群计算实例125上运行的应用或服务。集群管理器可以调度要由多个计算实例125执行的任务。此外,集群管理器可以在多个集群计算实例125间分配资源。
所述集群管理器可以在一个或多个集群计算实例125上执行。额外地或替代地,集群管理器可以在与多个集群计算实例125分离的计算设备或计算实例上执行。所述集群管理器可以是,例如,Spark独立管理器、Mesos、Kubernetes、YARN或适于管理多个集群计算实例125的任意其它集群管理器。
2.2客户端计算设备
客户端计算设备140可以是任意计算设备,包括,但不限于:服务器、机架、工作站、个人计算机、通用计算机、笔记本电脑、因特网装置、无线设备、有线设备、多处理器系统、微型计算机等。
客户端计算设备140可以执行命令行界面、图形用户界面或REST端点以与计算集群120进行交互。所述界面和/或端点可以被配置或编程为向计算集群120提供搜索查询并接收由计算集群120生成的一组搜索结果。在一实施例中,该组搜索结果可以存储在提供给客户端计算设备140的数据文件中或者存储在可由客户端计算设备140访问的数据文件中。数据文件的示例包括JSON、逗号分离值、SQLdump和其它文件类型。额外地或替代地,该组搜索结果可以使用例如命令行界面或图形用户界面显示在客户端计算设备140上。
2.3作业服务器
在图1所示的实施例中,客户端计算设备通过作业服务器110与计算集群120通信。作业服务器110提供用于向计算集群120提交作业和/或在计算集群120上管理作业执行的界面。该界面可以是命令行界面、图形用户界面或RESTful界面。在一实施例中,作业服务器110可以管理多个计算集群的作业执行。额外地或替代地,多个作业服务器可以管理相同计算集群的作业执行,例如,计算集群120。作业服务器110可包括计算机或在相同物理硬件或虚拟计算实例上执行的软件进程,用于实现本系统的其它要素。
在一实施例中,作业服务器110在一个或多个集群计算实例125上执行。例如,作业服务器110可以在与集群管理器相同的集群计算实例上运行。替代地,作业服务器110可以在与计算集群120分开的计算设备或计算实例上执行。
在一实施例中,作业服务器110管理到计算集群120的客户端连接。客户端连接可用于向计算集群120提交作业,例如,搜索查询。例如,作业服务器110可以是管理一个或多个SparkContexts的SparkJobServer。在一实施例中,作业服务器110可以管理多种类型的集群计算实例的作业,例如,一个或多个Spark、Mesos、Kubernetes和/或YARN实例。
在一实施例中,作业服务器110被编程或配置为管理一个或多个持久性客户端连接。持久性客户端连接信息可存储在执行作业服务器110的一个或多个计算设备的存储器中。在提交给计算集群120的作业完成后,持久性客户端连接不断开。而是,持久性客户端连接继续运行,并且对计算集群120的后续调用可以重新使用一个或多个持久性客户端连接。这样就避免了每次客户端(例如,客户端计算设备140)连接至计算集群120时启动新的客户端连接的开销。
在一实施例中,所述一个或多个持久性客户端连接用于处理搜索查询。通常,Spark等大数据框架用于成批处理,而不是提供对搜索查询的实时响应。由于持久性客户端连接减少了提交搜索查询时创建客户端连接的开销,因此减少了将结果提供给搜索查询所需的时间。这使得可以执行低延迟搜索。
在一实施例中,每个持久性客户端连接与特定类型的作业和/或特定类型的数据访问相关联。另外,每个持久性客户端连接可以与来自多个集群计算实例125的用于处理特定类型的作业的一个或多个特定集群计算实例相关联。
作为示例,第一组的一个或多个持久性客户端连接可用于成批作业。一个或多个持久性客户端连接的另一组可用于使用例如ODBC或JDBC应用程序编程接口访问数据库管理系统。第三组的一个或多个持久性客户端连接可用于默认的常规用途。作业服务器110可基于接收到的作业来确定该作业应使用哪个持久性客户端连接。例如,成批处理作业可使用与第一持久性客户端连接相关联的第一组集群计算实例,而搜索查询可以使用与第二持久性客户端连接相关联的不同组的集群计算实例。这样就避免了搜索查询必须等待成批处理作业完成或必须与成批处理作业共享计算资源。
图2描绘了阐述作业服务器110管理多个持久性客户端连接的框图。
在一实施例中,作业服务器110与持久性客户端连接210、持久性客户端连接212和持久性客户端连接214相连。每个持久性客户端连接都连接至集群120中的相应的一组集群计算实例。在图2示出的示例中,持久性客户端连接210连接至第一组集群计算实例220,持久性客户端连接212连接至第二组集群计算实例222,持久性客户端连接214连接至第三组集群计算实例224。每个持久性客户端连接可用于特定类型的作业。通过每个持久性客户端连接提交的作业可以在相应的一组集群计算实例的集群计算实例上运行。
2.4数据存储系统
在一实施例中,数据存储系统130包括存储在任何合适的存储设备上的程序和数据,该存储设备例如是一个或多个硬盘驱动器、存储器或配置为存储大数据的任何其它电子数字数据记录设备。尽管数据存储系统130在图1中被示出为单个设备,但是,数据存储系统130可以跨位于一个或多个物理位置的多个设备。在一实施例中,数据存储系统130是包括多个数据节点的分布式文件系统或分布式数据存储。例如,数据存储系统130可以是Hadoop分布式文件系统(HDFS)、MapR文件系统(MapRFS)、HBase或其他合适的分布式数据存储。
数据存储系统130可以存储多个数据储存库。每个数据储存库可以存储不同类型的数据。另外,存储在每个数据储存库中的数据可以是不同的格式。
在图1所示的示例中,数据存储系统130包括第一数据储存库132和第二数据储存库134。作为示例,假设第一数据储存库132存储餐厅信息,第二数据储存库134存储多个用户餐厅评论。可以使用第一数据存储格式来存储餐厅信息,并且可以使用与第一数据存储格式不同的第二数据存储格式来存储用户餐厅评论。
在一实施例中,每个不同的数据存储格式是面向列的存储格式。面向列的数据存储格式的示例包括Parquet、Kudu和ObjectRelationalColumnar(ORC)。用于在每个数据储存库中存储数据的特定数据存储格式可能取决于存储在数据储存库中的数据类型的特征,例如,访问模式和更新模式。例如,如果经常添加或修改数据项,则期望一种允许项易于更新或添加的数据存储格式。
在一实施例中,第一数据储存库132以Kudu数据格式存储数据。Kudu是一种易于更新的关系列式存储格式,它允许轻松插入、更新和/或删除数据项。列中的每一行都可以单独更新。Kudu数据格式可用于存储需要频繁添加、删除和/或更新的数据。
在一实施例中,第二数据储存库134以Parquet数据格式存储数据。Parquet是一种将数据存储为多个数据文件的非关系列式存储格式,并且多个数据文件中的每个数据文件都与相应的模式文件(schemafile)关联存储,该模式文件定义存储在数据文件中的数据的模式。每个文件可以与特定的数据表关联。通过添加新的数据文件和模式文件可以添加其它表。
此外,以Parquet数据格式存储的表可以通过合并相关联的模式文件来合并。因此,可以通过合并与不同的表相关联的模式文件并查询组合模式来处理跨不同表的查询。但是,要修改以Parquet存储的数据的数据项,要更新整个文件。Parquet数据格式可用于存储不需要很多更新或主要需要批量更新的数据。额外地或替代地,可以使用Parquet数据格式来存储需要频繁进行模式更新的数据。
3.0预计算视图
在一实施例中,计算机系统100生成多个预先计算的视图或预计算视图,并将这些预计算视图存储在数据存储系统130中。预计算视图可以存储在现有的数据储存库中,例如,数据储存库132和数据储存库134,或者可以存储在单独的数据储存库中。预计算视图可以以与其存储在其中的数据储存库相同的数据存储格式来进行存储。例如,如果数据储存库134以Parquet数据格式存储数据并且预计算视图被存储在数据储存库134中,则预计算视图也将以Parquet数据格式进行存储。额外地或替代地,预计算视图所存储的数据存储格式基于从其产生了预计算视图的数据的数据存储格式。
在一实施例中,预计算视图是预结合一个或多个现有数据表的结果。例如,预计算视图可以结合来自多个数据储存库中的两个或更多个数据存储库的数据。预计算视图可以包括来自数据储存库132的第一组数据和来自数据储存库134的第二组数据。
此外,第一和第二数据组或集可以以不同的数据存储格式存储。例如,第一数据集可以以第一数据存储格式存储,第二数据集可以以与第一数据存储格式不同的第二数据存储格式存储。所产生的预计算视图可以以第一数据存储格式或第二数据存储格式进行存储。集群计算实例125可以执行能够结合以不同存储格式存储的数据的数据框架。
在一实施例中,来自于包括在预计算视图中的每个数据储存库的数据部分基于一个或多个搜索查询需求。例如,可生成预计算视图以解决预期由计算机系统100接收到的特定类型的查询。参照上面的有关系统存储餐厅和评论数据的示例,预计算视图可以将餐厅与其各自的评论数据结合。生成多个预计算视图可以基于例如示例查询、指示特定预计算视图的用户输入、配置文件或用于指示应将哪些数据包括在特定预计算视图中的其它方法。
在一实施例中,预计算视图可以提供包括聚合数据和/或汇总数据的聚合或概要视图。参考上面的示例,预计算概要视图可以平均每个餐厅的用户评分。该概要视图可用于例如处理指定平均评分为3/5或更高的餐厅的搜索查询。
在一实施例中,当数据首次被加载或存储到系统中时,生成一个或多个预计算视图。此外,当存储的数据发生改变时,可以生成预计算视图。预计算视图是不可改变的,并且可遵循命名约定被存储在数据存储系统130上。
在一实施例中,对应于预计算视图的视图元数据通过SparkDataFrames被持久化在持久性上下文中。如果一视图元数据不可用,则执行加载元数据的请求。元数据包括在数据存储系统130内用于相应的预计算视图的位置和节点信息、以及模式信息。此元数据允许视图在非分布式系统中充当传统数据库表,并允许具有低内存开销的低延迟访问。例如,数十万视图元数据可以轻松地容纳在内存中,覆盖大数据集,而这些大数据集原本容纳在内存中很不切实际或昂贵。
4.0进程概述
图3示出了使用计算机系统100提供搜索结果的示例步骤。
在步骤300,使用第一面向列的存储格式将第一数字数据存储在第一数字数据储存库132中。为了阐述清楚的示例,假定第一数字数据包括保险暴露数据(insuranceexposuredata)。暴露数据存储与保险合同、每个保险合同所针对的风险以及发生风险事件可能造成的损失有关的信息。风险数据可能需要频繁添加和修改,但由于保险合同的结构相对一致,因此可能不需要频繁的模式添加或修改。因此,可以使用Kudu将暴露数据存储在数字数据储存库132中。
在步骤302,使用第二面向列的存储格式将第二数字数据存储在第二数字数据储存库134中。假设第二数字数据包括风险项数据。暴露数据中描述的风险均包括多个风险项。风险项可以是例如房地产(property)、建筑物、汽车、摩托车和其它保险项目。风险项数据存储与风险项有关的信息。例如,对于房地产信息,风险项数据可以包括房地产位置信息、结构信息、土壤信息等。作为另一个示例,车辆信息可以包括车辆制造商和型号以及车辆规格信息。一旦存储,风险项信息就不会经常更改,但是不同类型的风险项需要不同的数据存储架构。例如,船将具有与汽车不同的架构。因此,可以使用Parquet将风险项数据存储在数字数据储存库134中。
在步骤304,基于第一数字数据和第二数字数据生成多个预计算视图。在一实施例中,预计算视图结合以不同存储格式存储的数字数据。在当前示例中,预计算视图可以将以Kudu存储的暴露数据与以Parquet存储的风险项数据进行结合。可以基于将对暴露数据和风险项数据执行的预期搜索来生成预计算视图。例如,保险投资组合可以包括覆盖多个风险的多个合同。每个风险可以包括多个风险项。因此,可以生成将多个合同与包括在多个合同中的多个风险项结合在一起的投资组合视图。作为另一个示例,预计算视图可以是概要视图,其基于与保险合同相关联的风险项目指示每个保险合同的总保险价值。
在步骤306,将多个预计算视图存储在数据存储系统130中。在一实施例中,使用第二面向列的存储格式将预计算视图存储在第二数据储存库134中。在当前示例中,使用Parquet将多个预计算视图存储在数据储存库134中。
在步骤308,将多个预计算视图的视图元数据加载到搜索系统中。在一实施例中,使用SparkDataFrames执行该加载。视图元数据包含多个预计算视图中的每个预计算视图的模式和节点位置信息。
在步骤310,搜索系统接收搜索查询。例如,作业服务器110可以从客户端计算设备140接收搜索查询。作业服务器可以选择一个或多个持久性客户端连接中的特定持久性客户端连接以处理该搜索查询。
在步骤312,响应于接收到搜索查询,基于多个预计算视图中的一个或多个特定的预计算视图来确定结果集。为了阐述清楚的示例,假定计算集群120包括多个Spark实例,并且作业服务器110是维护多个持久性SparkContexts的Spark作业服务器。作业服务器110可以从客户端计算设备140接收搜索查询。搜索查询可以例如是诸如SQL的数据库语言的形式。作业服务器110使用一个或多个SparkContext在多个Spark实例中的一个或多个Spark实例上执行查询。
使用执行引擎,预加载的视图元数据用于确定数据存储系统130上的文件和节点位置,以便选择相关列。取决于实现,执行引擎可以是例如Spark、Presto、Impala等。由于基础数据以列格式存储,因此只从数据存储系统中检索满足查询所需的数据列。这样可以减少查询延迟和网络流量、以及查询引擎本身的内存开销。诸如聚合、分组依据和用户定义的功能之类的复杂操作由查询引擎处理。可选地,由于数据是从原始的预计算视图生成的,因此此时可发生与其他数据源(如保险模型损失)的合并。执行引擎允许结合可以Kudu、Parquet、甚至Postgres存在的不同数据集。
可基于搜索查询的内容来确定一个或多个特定的预计算视图。例如,如果搜索查询指定“海岸线五英里以内的房地产的所有损失”,那么除了查询风险项数据和/或指示所涵盖房地产的位置的暴露数据之外,还可以查询存储预先计算的损失累积的预计算视图。
在步骤314,将结果集提供给另一台计算机或显示设备。例如,可以将结果集提供给客户端计算设备140,或者作为输出经由图形用户界面提供给显示设备。额外地或替代地,结果集可以存储在存储设备中,例如,数据存储系统130上。
在一实施例中,可以将存储第一数字数据和第二数字数据及生成多个预计算视图作为批处理来执行。另外,可以在系统离线并且不连接到任何客户端计算设备或网络时执行步骤。加载视图元数据、接收搜索查询、确定结果集以及提供搜索结果可以是同步调用。另外,在系统在线并且连接到客户端计算设备和/或网络时执行步骤。
使用这些技术,通常用于耗时的批处理作业的大数据框架和存储格式能够提供对搜索查询的实时响应。这允许使用本文描述的系统执行低延迟搜索。通过最大限度地利用诸如Spark之类的技术的重大查询计划优化,并将其与诸如Parquet和Kudu之类的列存储格式以原本需要两种复杂技术(如ElasticSearch和MongoDB或Cassandra)间的数据的镜像的方式相结合。对于太大而无法容纳于传统关系数据库的宽列集,此体系结构提供了一种快速且分布式的读取大数据集的方式,同时将磁盘和网络I/O的开销降至最低。大多数数据存储技术,包括NoSQL数据库,都要求在运行时之前确定数据的索引和其他二级结构。但是,在本文描述的方法和保险用例中,adhoc查询和数据浏览跨数百列是正常的。这使索引所有信息列变得昂贵且不切实际。与传统方法相比,具有复杂分布式查询引擎的列式存储技术的优势为风险探索和分析提供了很大的优势。
5.0实施实例-硬件概述
根据一个实施例,本文所述的技术由至少一个计算设备实现。可以使用至少一个服务器计算机和/或使用诸如分组数据网络之类的网络耦合的其它计算设备的组合来全部或部分地实施这些技术。计算设备可以硬连线以执行该些技术,或者可以包括数字电子设备,例如,至少一个专用集成电路(ASIC)或被持久地编程为执行该些技术的现场可编程门阵列(FPGA),或者可包括至少一个通用硬件处理器,该通用硬件处理器被编程为根据固件、存储器、其它存储或组合中的程序指令来执行该些技术。这样的计算设备还可将定制硬连线逻辑、ASIC或FPGA与定制编程相结合以实现所描述的技术。此类计算设备可以是服务器计算机、工作站、个人计算机、便携式计算机系统、手持设备、移动计算设备、可穿戴设备、身体安装或可植入设备、智能手机、智能设备、网络互连设备、自主或半自主设备(例如,机器人或无人驾驶的陆上车辆或飞行器)、结合硬线和/或程序逻辑以实现所描述技术的任何其他电子设备,数据中心中的一个或多个虚拟计算机或实例,和/或服务器计算机和/或个人计算机的网络。
图4是示出了一实施例可利用其实现的示例性计算机系统的框图。在图4的该示例中,计算机系统400和硬件、软件或硬件和软件的组合中的用于实现所公开技术的指令被示意性地表示为例如方框和圆圈,其细节程度与本发明所属领域中的普通技术人员用于关于计算机体系结构和计算机系统实现进行通信所通常使用的细节程度相同。
计算机系统400包括输入/输出(I/O)子系统402,其可以包括用于通过电子信号路径在计算机系统400的各组件之间传送信息和/或指令的总线和/或其它通信机制。I/O子系统402可包括I/O控制器、存储器控制器和至少一个I/O端口。电子信号路径在附图中示意性地表示为例如线、单向箭头或双向箭头。
至少一个硬件处理器404耦合至I/O子系统402,用于处理信息和指令。硬件处理器404可包括例如通用微处理器或微控制器和/或专用微处理器,诸如嵌入式系统或图形处理单元(GPU)或数字信号处理器或ARM处理器。处理器404可以包括集成算术逻辑单元(ALU),或者可以耦合至单独的ALU。
计算机系统400包括一个或多个存储器单元406,例如,主存储器,其耦合至I/O子系统402,以电子方式数字存储数据和要由处理器404执行的指令。存储器406可包括易失性存储器,例如,各种形式的随机存取存储器(RAM)或其他动态存储设备。存储器406还可以用于在执行要由处理器404执行的指令期间存储临时变量或其他中间信息。这样的指令当被存储在处理器404可访问的非暂时性计算机可读存储介质中时,使得计算机系统400变为被定制用于执行指令中指定的操作的专用机器。
计算机系统400还包括耦合至I/O子系统402用于存储用于处理器404的信息和指令的非易失性存储器,例如,只读存储器(ROM)408或其它静态存储设备。ROM408可包括各种形式的可编程ROM(PROM),例如,可擦PROM(EPROM)或电可擦PROM(EEPROM)。永久性存储410的单元可包括各种形式的非易失性RAM(NVRAM),例如,FLASH存储器,或者固态存储,磁盘或光盘,例如,CD-ROM或DVD-ROM,并且可耦合至I/O子系统402,用于存储信息和指令。存储410是可用于存储指令和数据的非暂时性计算机可读介质的示例,该些指令和数据在由处理器404执行时导致执行计算机实现的方法来执行本文所述的技术。
存储器406、ROM408或存储410中的指令可包括一组或多组指令,这些指令被组织为模块、方法、对象、功能、例程或调用。该些指令可被组织为一个或多个计算机程序、操作系统服务或包括移动应用程序的应用程序。这些指令可包括操作系统和/或系统软件;一个或多个支持多媒体、编程或其他功能的库;数据协议指令或堆栈,用于实现TCP/IP、HTTP或其它通信协议;文件格式处理指令,用于解析或呈现使用HTML、XML、JPEG、MPEG或PNG编码的文件;用于呈现或解释图形用户界面(GUI)、命令行界面或文本用户界面的命令的用户界面指令;应用软件,例如,办公套件、互联网访问应用程序、设计和制造应用程序、图形应用程序、音频应用程序、软件工程应用程序、教育应用程序、游戏或其它应用程序。这些指令可以实现web服务器、web应用服务器或web客户端。这些指令可以被组织为表示层、应用层和数据存储层,例如,使用结构化查询语言(SQL)或不使用SQL的关系数据库系统、对象存储、图形数据库、平面文件系统或其它数据存储。
计算机系统400可经由I/O子系统402耦合至至少一个输出设备412。在一个实施例中,输出设备412是数字计算机显示器。可以在各种实施例中使用的显示器的示例包括触摸屏显示器或发光二极管(LED)显示器或液晶显示器(LCD)或电子纸显示器。替代地或除了显示设备之外,计算机系统400可包括其它类型的输出设备412。其它输出设备412的示例包括打印机、票证打印机、绘图机、投影仪、声卡或显卡、扬声器、蜂鸣器或压电设备或其它音响设备、灯或LED或LCD指示器、触觉设备、致动器或伺服器。
至少一个输入设备414耦合至I/O子系统402,用于将信号、数据、命令选择或手势传达给处理器404。输入设备414的示例包括触摸屏、麦克风、静态式数字照相机和数字摄像机、字母数字和其它键、小键盘、键盘、图形输入板、图像扫描仪、操纵杆、时钟、开关、按钮、转盘(dials)、滑动件(slides)和/或各种类型的传感器,例如,力传感器、运动传感器、热传感器、加速度计、陀螺仪和惯性测量单元(IMU)传感器和/或各种类型的收发器,例如,无线(如蜂窝或Wi-Fi)、射频(RF)或红外(IR)收发器和全球定位系统(GPS)收发器。
另一类型的输入设备是控制设备416,其可以代替输入功能或除了输入功能之外还执行光标控制或其它自动控制功能,例如,在显示屏上的图形界面中进行导航。控制设备416可以是触摸板、鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传达给处理器404并用于控制显示器412上的光标移动。该输入设备可以具有至少两个在两个轴上的自由度,第一轴(例如,x)和第二轴(例如,y),允许设备指定平面中的位置。另一类型的输入设备是有线、无线或光学控制设备,例如,操纵杆、棒(wand)、控制台、方向盘、踏板、变速机构或其它类型的控制设备。输入设备414可以包括多个不同的输入设备的组合,例如,摄像机和深度传感器。
在另一实施例中,计算机系统400可包括物联网(IoT)设备,其中省略输出设备412、输入设备414和控制设备416中的一个或多个。或者,在这样的实施例中,输入设备414可包括一个或多个照相机、运动检测器、温度计、麦克风、地震检测器、其它传感器或检测器、测量设备或编码器,并且输出设备412可包括专用显示器,例如,单线LED或LCD显示器、一个或多个指示器、显示面板、仪表、阀、螺线管、执行器或伺服器。
当计算机系统400是移动计算设备时,输入设备414可包括耦合至GPS模块的全球定位系统(GPS)接收器,该GPS模块能够对多个GPS卫星进行三角测量、确定并生成地理定位或位置数据,例如,计算机系统400的地球物理位置的纬度-经度值。输出设备412可包括硬件、软件、固件和接口,其用于生成位置报告数据包、通知、脉冲或心跳信号、或其它指向主机424或服务器430的单独指定计算机系统400的位置或指定其位置与其它应用程序特定数据的重现数据传输。
计算机系统400可使用定制硬连线逻辑、至少一个ASIC或FPGA、固件和/或程序指令或逻辑来实现本文所述的技术,其中,所述程序指令或逻辑当加载和使用或与计算机系统一起执行时,会使计算机系统作为专用计算机操作或将计算机系统编程为作为专用计算机操作。根据一个实施例,本文的技术由计算机系统400响应于处理器404执行包含在主存储器406中的至少一个指令的至少一个序列来执行。这样的指令可以从另一存储介质(如存储410)读入主存储器406。执行包含在主存储器406中的指令序列可使处理器404执行本文所述的进程步骤。在替代实施例中,可以使用硬连线电路代替软件指令或与软件指令结合使用。
本文所用术语“存储介质”是指存储使机器以特定方式运行的数据和/或指令的任何非暂时性介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘,例如,存储410。易失性介质包括动态存储器,例如,存储器406。存储介质的常见形式包括例如硬盘、固态驱动器、闪存驱动器、磁性数据存储介质、任何光学或物理数据存储介质、存储芯片等。
存储介质不同于传输介质,但可以与传输介质结合使用。传输介质参与存储介质间的信息传输。例如,传输介质包括同轴电缆、铜线和光纤,其包括包含I/O子系统402的总线的线。传输介质还可以采用声波或光波的形式,例如,在无线电波和红外数据通信期间产生的声波或光波。
各种形式的介质可用于将至少一条指令的至少一个序列传送给处理器404以供执行。例如,指令最初可承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将这些指令加载到其动态存储器中,并使用调制解调器通过通信链路(例如,光纤或同轴电缆或电话线)发送这些指令。计算机系统400本地的调制解调器或路由器可以在通信链路上接收数据,并将数据转换为计算机系统400可以读取的格式。例如,诸如射频天线或红外探测器之类的接收器可以接收无线或光信号中携带的数据,并且适当的电路可以将这些数据提供给I/O子系统402,例如,将数据放置在总线上。I/O子系统402将数据传送到存储器406,处理器404从存储器406检索并执行指令。由存储器406接收的指令可任选地在处理器404执行之前或之后存储在存储器410上。
计算机系统400还包括耦合至总线402的通信接口418。通信接口418提供耦合至直接或间接连接至至少一个通信网络(如,网络422或因特网上的公共或私有云)的网络链路420的双向数据通信。例如,通信接口418可以是以太网联网接口、综合业务数字网(ISDN)卡、电缆调制解调器、卫星调制解调器或向相应类型的通信线路(如,以太网电缆或任何种类的金属电缆或光纤线或电话线)提供数据通信连接的调制解调器。网络422广义地表示局域网(LAN)、广域网(WAN)、校园网、互联网络或其任何组合。通信接口418可包括:LAN卡,以向兼容LAN提供数据通信连接;或者,蜂窝无线电话接口,其被连线以根据蜂窝无线电话无线联网标准来发送或接收蜂窝数据;或者卫星广播接口,其被连线以根据卫星无线网络标准发送或接收数字数据。在任何这样的实施方式中,通信接口418在信号路径上发送和接收电、电磁或光信号,其中,该些信号路径承载有表示各种类型的信息的数字数据流。
网络链路420通常使用例如卫星、蜂窝、Wi-Fi或蓝牙技术直接或通过至少一个网络向其它数据设备提供电、电磁或光数据通信。例如,网络链路420可通过网络422向主机计算机424提供连接。
此外,网络链路420可通过网络422提供连接或经由互联网服务提供商(ISP)426运营的互联网络设备和/或计算机向其它计算设备提供连接。ISP426通过表示为互联网428的全球分组数据通信网络提供数据通信服务。服务器计算机430可耦合至互联网428。服务器430广泛地表示任何计算机、数据中心、具有或不具有hypervisor的虚拟机或虚拟计算实例、或者执行容器化程序系统(如DOCKER或KUBERNETES)的计算机。服务器430可表示一种使用多于一台计算机或实例来实现并通过传输Web服务请求、具有HTTP有效载荷中的参数的统一资源定位符(URL)字符串、API调用、app服务调用或其它服务调用来访问和使用的电子数字服务。计算机系统400和服务器430可形成分布式计算系统的元件,该分布式计算系统包括协作执行任务或执行应用程序或服务的其它计算机、处理集群、服务器群或其它计算机组织。服务器430可包括被组织为模块、方法、对象、功能、例程或调用的一组或多组指令。这些指令可被组织为一个或多个计算机程序、操作系统服务或包括移动应用程序的应用程序。这些指令可包括操作系统和/或系统软件;一个或多个支持多媒体、编程或其它功能的库;用于实现TCP/IP、HTTP或其它通信协议的数据协议指令或堆栈;用于解析或呈现使用HTML、XML、JPEG、MPEG或PNG编码的文件的文件格式处理指令;用于呈现或解释图形用户界面(GUI)、命令行界面或文本用户界面的命令的用户界面指令;应用软件,如办公套件、互联网访问应用程序、设计和制造应用程序、图形应用程序、音频应用程序、软件工程应用程序、教育应用程序、游戏或其它应用程序。服务器430可包括Web应用服务器,其有表示层、应用层和数据存储层,例如,使用结构化查询语言(SQL)或不使用SQL的关系数据库系统、对象存储、图形数据库、平面文件系统或其它数据存储。
计算机系统400可通过一个或多个网络、网络链接420和通信接口418发送消息并接收数据和指令,包括程序代码。在因特网(Internet)示例中,服务器430可通过因特网428、ISP426、本地网络422和通信接口418为应用程序发送请求的代码。所接收的代码可以在其被接收时由处理器404执行,和/或存储在存储410或其它非易失性存储中,以供以后执行。
如本节所述的指令的执行可以实现正在被执行的由程序代码和其当前活动组成的计算机程序实例的形式的进程。取决于操作系统(OS),一进程可由多个并行执行指令的执行线程组成。在这种情况下,计算机程序是指令的被动集合,而过程可能是这些指令的实际执行。多个进程可与同一程序相关联;例如,打开同一程序的多个实例通常意味着正在执行多于一个的进程。可实现多任务处理以允许多个进程共享处理器404。虽然每个处理器404或处理器的核心一次执行一个任务,但是,计算机系统400可被编程为实现多任务处理以允许每个处理器在正在被执行的任务之间切换而不必等待每个任务完成。在一实施例中,可在任务执行输入/输出操作时、当一任务指示它可以被切换时或在硬件中断时,执行切换。可实现分时,以通过快速执行上下文切换来提供多个进程的并行执行的同时出现而允许对交互式用户应用程序的快速响应。在一实施例中,为了安全性和可靠性,操作系统可防止独立进程间的直接通信,从而提供严格介导且受控的进程间通信功能。
Claims (20)
1.一种用于向数据搜索系统提供对查询低延迟响应的计算机实现的方法,该方法包括:
使用第一面向列的存储格式将第一数字数据存储在第一数字数据储存库中;
使用第二面向列的存储格式将第二数字数据存储在第二数字数据储存库中,其中,所述第二面向列的存储格式不同于所述第一面向列的存储格式;
基于所述第一数字数据和所述第二数字数据生成多个预计算视图;
使用所述第二面向列的存储格式将所述多个预计算视图存储在所述第二数据储存库中;
响应于接收到搜索查询,基于所述多个预计算视图中的一个或多个特定的预计算视图确定响应于该查询的结果集,并将该结果集作为输出提供给另一计算机或显示设备;
其中,该方法使用一个或多个计算设备执行。
2.根据权利要求1所述的方法,其中,所述第一面向列的存储格式是Kudu数据格式。
3.根据权利要求1所述的方法,其中,所述第二面向列的存储格式是Parquet数据格式。
4.根据权利要求1所述的方法,其中,所述第一数据储存库和所述第二数据储存库被存储在分布式文件系统中。
5.根据权利要求1所述的方法,其中,所述一个或多个计算设备包括由作业服务器管理的一个或多个集群计算实例。
6.根据权利要求5所述的方法,其还包括在所述作业服务器的存储器中存储所述一个或多个集群计算实例的持久连接上下文数据。
7.根据权利要求1所述的方法,其中:
所述第一数字数据包括与多个风险暴露相关联的暴露数据,其中,每个风险暴露指定各自的风险项组;
所述第二数字数据包括与多个风险项相关联的风险项数据,其中,所述多个风险项至少包括所述指定的风险项组。
8.根据权利要求7所述的方法,其中,所述风险项数据包括多种风险项类型,所述方法还包括:
对于所述多个风险项类型中的每个风险项类型,存储与该风险项类型相关联的相应模式;
其中,添加附加风险项类型包括存储与所述附加风险项类型相关联的模式。
9.根据权利要求8所述的方法,其中,所述查询指定第一风险项类型和第二风险项类型,所述方法还包括:
将与所述第一风险项类型相关联的第一模式与与所述第二风险项类型相关联的第二模式结合,生成组合模式;
利用所述组合模式生成包括所述第一风险项类型和所述第二风险项类型的组合风险项视图;
根据所述组合风险项视图处理所述查询。
10.根据权利要求1所述的方法,其中,生成预计算视图包括将使用所述第一面向列的存储格式存储的第一数据组与使用所述第二面向列的存储格式存储的第二数据组结合。
11.一种服务器计算机系统,其被编程为提供低延迟搜索查询响应,该系统包括:
Kudu数据储存库;
Parquet数据储存库;
由Spark集群管理器管理的多个Spark集群计算实例,所述多个集群计算实例被配置为:
将暴露数据存储在所述Kudu数据储存库中;
将风险项数据存储在所述Parquet数据储存库中;
基于所述暴露数据和所述风险项数据生成多个预计算视图;
将所述多个预计算视图存储在Parquet数据储存库中;
响应于接收到查询,基于所述多个预计算视图中的一个或多个特定的预计算视图处理所述查询。
12.一种服务器计算机系统,其被编程为提供低延迟搜索查询响应,该系统包括:
利用第一面向列的存储格式的第一数字数据储存库;
利用第二面向列的存储格式的第二数字数据储存库,其中,所述第二面向列的存储格式不同于所述第一面向列的存储格式;
多个集群计算实例,所述多个集群计算实例被配置为:
使用所述第一面向列的存储格式将第一数字数据存储在所述第一数字数据储存库中;
使用所述第二面向列的存储格式将第二数字数据存储在所述第二数字数据储存库中;
基于所述第一数字数据和所述第二数字数据生成多个预计算视图;
使用所述第二面向列的存储格式将所述多个预计算视图存储在所述第二数据储存库中;
响应于接收到搜索查询,基于所述多个预计算视图中的一个或多个特定的预计算视图确定响应于该搜索查询的结果集,并将该结果集作为输出提供给另一计算机或显示设备。
13.根据权利要求12所述的服务器系统,其中,所述第一面向列的存储格式是Kudu数据格式。
14.根据权利要求12所述的服务器系统,其中,所述第二面向列的存储格式是Parquet数据格式。
15.根据权利要求12所述的服务器系统,其中,所述第一数据储存库和所述第二数据储存库被存储在分布式文件系统中。
16.根据权利要求12所述的服务器系统,其中,所述多个集群计算实例中的所有计算实例由作业服务器管理。
17.根据权利要求16所述的服务器系统,其中,所述作业服务器存储用于所述多个集群计算实例的持久连接上下文数据。
18.根据权利要求12所述的服务器系统,其中:
所述第一数字数据包括与多个风险暴露相关联的暴露数据,其中,每个风险暴露指定各自的风险项组;
所述第二数字数据包括与多个风险项相关联的风险项数据,其中,所述多个风险项至少包括所述指定的风险项组。
19.根据权利要求18所述的服务器系统,其中,所述风险项数据包括多个风险项类型,其中,所述多个集群计算实例还被配置为:
对于所述多个风险项类型中的每个风险项类型,存储与该风险项类型相关联的相应模式;
其中,添加附加风险项类型包括存储与所述附加风险项类型相关联的模式。
20.根据权利要求19所述的服务器系统,其中,所述查询指定第一风险项类型和第二风险项类型,其中,所述多个集群计算实例还被配置为:
将与所述第一风险项类型相关联的第一模式与与所述第二风险项类型相关联的第二模式结合,产生组合模式;
使用所述组合模式生成包括所述第一风险项类型和所述第二风险项类型的组合风险项视图;
根据所述组合风险项视图处理所述查询。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/957,779 US10719508B2 (en) | 2018-04-19 | 2018-04-19 | Data storage system for providing low latency search query responses |
US15/957,779 | 2018-04-19 | ||
PCT/US2019/028160 WO2019204629A1 (en) | 2018-04-19 | 2019-04-18 | Data storage system for providing low latency search query responses |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112384908A true CN112384908A (zh) | 2021-02-19 |
Family
ID=66239810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980026846.3A Pending CN112384908A (zh) | 2018-04-19 | 2019-04-18 | 提供低延迟搜索查询响应的数据存储系统 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10719508B2 (zh) |
EP (1) | EP3557435A1 (zh) |
JP (2) | JP7053885B2 (zh) |
CN (1) | CN112384908A (zh) |
WO (1) | WO2019204629A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143182A (zh) * | 2021-11-18 | 2022-03-04 | 新华三大数据技术有限公司 | 一种配置分布式搜索引擎集群的节点的方法和装置 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10719508B2 (en) | 2018-04-19 | 2020-07-21 | Risk Management Solutions, Inc. | Data storage system for providing low latency search query responses |
CN110781235A (zh) * | 2019-10-24 | 2020-02-11 | 珠海格力电器股份有限公司 | 基于大数据的采购数据处理方法、装置、终端及存储介质 |
CN111563091B (zh) * | 2020-05-09 | 2023-04-28 | 中国银行股份有限公司 | 非往返式的批量更新MongoDB的方法及系统 |
TWI755068B (zh) * | 2020-09-21 | 2022-02-11 | 宜鼎國際股份有限公司 | 具有系統作業能力的資料儲存裝置 |
CN112100510A (zh) * | 2020-11-18 | 2020-12-18 | 树根互联技术有限公司 | 基于车联网平台的海量数据查询方法和装置 |
CN112769964B (zh) * | 2021-04-12 | 2021-07-02 | 江苏红网技术股份有限公司 | 一种yarn支持混合运行时的方法 |
US11947555B1 (en) * | 2022-09-30 | 2024-04-02 | Amazon Technologies, Inc. | Intelligent query routing across shards of scalable database tables |
CN115577157B (zh) * | 2022-11-24 | 2023-02-28 | 河北热点科技股份有限公司 | 多数据源元数据终端查询快速比对方法及系统 |
CN116521142B (zh) * | 2023-06-29 | 2023-10-03 | 速度科技股份有限公司 | 基于Presto扩展的时空大数据SQL引擎的实现方法 |
Family Cites Families (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6199063B1 (en) * | 1998-03-27 | 2001-03-06 | Red Brick Systems, Inc. | System and method for rewriting relational database queries |
CA2326513C (en) * | 1998-03-27 | 2009-06-16 | Informix Software, Inc. | Processing precomputed views |
US6205451B1 (en) * | 1998-05-22 | 2001-03-20 | Oracle Corporation | Method and apparatus for incremental refresh of summary tables in a database system |
US6546381B1 (en) * | 1998-11-02 | 2003-04-08 | International Business Machines Corporation | Query optimization system and method |
US6449605B1 (en) * | 1998-12-28 | 2002-09-10 | Oracle Corporation | Using a materialized view to process a related query containing a one to many lossless join |
US6496819B1 (en) * | 1998-12-28 | 2002-12-17 | Oracle Corporation | Rewriting a query in terms of a summary based on functional dependencies and join backs, and based on join derivability |
US6484159B1 (en) * | 1999-05-20 | 2002-11-19 | At&T Corp. | Method and system for incremental database maintenance |
US6366905B1 (en) * | 1999-06-22 | 2002-04-02 | Microsoft Corporation | Aggregations design in database services |
US6374263B1 (en) * | 1999-07-19 | 2002-04-16 | International Business Machines Corp. | System for maintaining precomputed views |
US6581060B1 (en) * | 2000-06-21 | 2003-06-17 | International Business Machines Corporation | System and method for RDBMS to protect records in accordance with non-RDBMS access control rules |
US6735587B2 (en) * | 2000-07-28 | 2004-05-11 | International Business Machines Corporation | Maintaining pre-computed aggregate views incrementally in the presence of non-minimal changes |
US6850933B2 (en) * | 2001-11-15 | 2005-02-01 | Microsoft Corporation | System and method for optimizing queries using materialized views and fast view matching |
US7155434B1 (en) | 2002-04-04 | 2006-12-26 | Ncr Corp. | Locking mechanism employing a name lock for materialized views |
US7440963B1 (en) * | 2002-05-08 | 2008-10-21 | Oracle International Corporation | Rewriting a query to use a set of materialized views and database objects |
US7574652B2 (en) * | 2002-06-20 | 2009-08-11 | Canon Kabushiki Kaisha | Methods for interactively defining transforms and for generating queries by manipulating existing query data |
US7644361B2 (en) * | 2002-12-23 | 2010-01-05 | Canon Kabushiki Kaisha | Method of using recommendations to visually create new views of data across heterogeneous sources |
US20060047696A1 (en) * | 2004-08-24 | 2006-03-02 | Microsoft Corporation | Partially materialized views |
US7809763B2 (en) * | 2004-10-15 | 2010-10-05 | Oracle International Corporation | Method(s) for updating database object metadata |
KR100701104B1 (ko) * | 2004-12-22 | 2007-03-28 | 한국전자통신연구원 | 분산된 정보들의 통합 뷰 생성을 위한 데이터베이스스키마 생성 방법 및 정보 통합 시스템 |
US7406468B2 (en) * | 2005-06-14 | 2008-07-29 | Microsoft Corporation | View matching for materialized outer-join views |
JP4822889B2 (ja) * | 2006-03-20 | 2011-11-24 | 富士通株式会社 | データベース統合参照プログラム、データベース統合参照方法及びデータベース統合参照装置 |
US7836052B2 (en) * | 2006-03-28 | 2010-11-16 | Microsoft Corporation | Selection of attribute combination aggregations |
US10007686B2 (en) * | 2006-08-02 | 2018-06-26 | Entit Software Llc | Automatic vertical-database design |
US8086598B1 (en) * | 2006-08-02 | 2011-12-27 | Hewlett-Packard Development Company, L.P. | Query optimizer with schema conversion |
US9015146B2 (en) * | 2006-12-01 | 2015-04-21 | Teradata Us, Inc. | Managing access to data in a multi-temperature database |
US7853604B2 (en) * | 2007-07-12 | 2010-12-14 | Oracle International Corporation | Inline view query rewrite using a materialized view |
US8239368B2 (en) * | 2007-08-29 | 2012-08-07 | International Business Machines Corporation | Apparatus, system, and method for executing a distributed spatial data query |
US9626421B2 (en) * | 2007-09-21 | 2017-04-18 | Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh | ETL-less zero-redundancy system and method for reporting OLTP data |
US7958122B2 (en) * | 2008-03-05 | 2011-06-07 | Microsoft Corporation | Data domains in multidimensional databases |
US8239371B2 (en) * | 2008-08-21 | 2012-08-07 | Sap Ag | Fast search views over business objects |
US9176860B2 (en) * | 2009-02-12 | 2015-11-03 | Hewlett-Packard Development Company, L.P. | Database join optimized for flash storage |
US20100241644A1 (en) * | 2009-03-19 | 2010-09-23 | Microsoft Corporation | Graph queries of information in relational database |
US20100299367A1 (en) * | 2009-05-20 | 2010-11-25 | Microsoft Corporation | Keyword Searching On Database Views |
US8775921B2 (en) * | 2009-09-03 | 2014-07-08 | International Business Machines Corporation | Creating, updating, saving, and propagating customized views of table and grid information |
CN102053975A (zh) * | 2009-10-30 | 2011-05-11 | 国际商业机器公司 | 数据库系统和跨数据库查询优化方法 |
US20110173132A1 (en) * | 2010-01-11 | 2011-07-14 | International Business Machines Corporation | Method and System For Spawning Smaller Views From a Larger View |
US9443208B2 (en) * | 2010-03-05 | 2016-09-13 | Six Continents Hotels, Inc. | Bottom-up optimized search system and method |
US8799271B2 (en) * | 2011-01-25 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Range predicate canonization for translating a query |
WO2012109633A2 (en) * | 2011-02-11 | 2012-08-16 | Achilles Guard, Inc. D/B/A Critical Watch | Security countermeasure management platform |
US8799207B1 (en) * | 2011-10-08 | 2014-08-05 | Bay Dynamics | Unified data source management |
US20130124483A1 (en) * | 2011-11-10 | 2013-05-16 | Treasure Data, Inc. | System and method for operating a big-data platform |
WO2013141308A1 (ja) * | 2012-03-22 | 2013-09-26 | 日本電気株式会社 | 分散ストレージシステム、ストレージ制御方法およびプログラム |
US10387448B2 (en) * | 2012-05-15 | 2019-08-20 | Splunk Inc. | Replication of summary data in a clustered computing environment |
US8510261B1 (en) * | 2012-05-29 | 2013-08-13 | Sap Ag | System and method of generating in-memory models from data warehouse models |
EP2672397B1 (en) * | 2012-06-06 | 2018-08-22 | Tata Consultancy Services Limited | Generating reports based on materialized view |
US8935267B2 (en) * | 2012-06-19 | 2015-01-13 | Marklogic Corporation | Apparatus and method for executing different query language queries on tree structured data using pre-computed indices of selective document paths |
US9146955B2 (en) * | 2012-12-18 | 2015-09-29 | Sap Se | In-memory, columnar database multidimensional analytical view integration |
US9582541B2 (en) | 2013-02-01 | 2017-02-28 | Netapp, Inc. | Systems, methods, and computer program products to ingest, process, and output large data |
US10296462B2 (en) * | 2013-03-15 | 2019-05-21 | Oracle International Corporation | Method to accelerate queries using dynamically generated alternate data formats in flash cache |
US9251210B2 (en) * | 2013-04-19 | 2016-02-02 | Oracle International Corporation | Caching external data sources for SQL processing |
US9734230B2 (en) * | 2013-09-12 | 2017-08-15 | Sap Se | Cross system analytics for in memory data warehouse |
US9734221B2 (en) * | 2013-09-12 | 2017-08-15 | Sap Se | In memory database warehouse |
US9477731B2 (en) | 2013-10-01 | 2016-10-25 | Cloudera, Inc. | Background format optimization for enhanced SQL-like queries in Hadoop |
US9703825B2 (en) * | 2013-10-17 | 2017-07-11 | Sybase, Inc. | Maintenance of a pre-computed result set |
US9542445B2 (en) * | 2013-10-31 | 2017-01-10 | Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh | Using object awareness for a join pruning mechanism |
US20150310044A1 (en) * | 2014-02-03 | 2015-10-29 | Codefutures Corporation | Database device and processing of data in a database |
CN105378716B (zh) * | 2014-03-18 | 2019-03-26 | 华为技术有限公司 | 一种数据存储格式的转换方法及装置 |
US9547681B2 (en) * | 2014-05-30 | 2017-01-17 | International Business Machines Corporation | Combining row based and column based tables to form mixed-mode tables |
US9317711B2 (en) * | 2014-06-25 | 2016-04-19 | Sap Se | Privacy restrictions for columnar storage |
US11157473B2 (en) * | 2014-11-21 | 2021-10-26 | Red Hat, Inc. | Multisource semantic partitioning |
GB2533116A (en) * | 2014-12-10 | 2016-06-15 | Ibm | Query dispatching system and method |
US10372697B2 (en) * | 2014-12-19 | 2019-08-06 | International Business Machines Corporation | Responding to data requests related to constrained natural language vocabulary terms |
US10152558B2 (en) * | 2014-12-23 | 2018-12-11 | Intel Corporation | Graph operations |
US20160328429A1 (en) | 2015-03-17 | 2016-11-10 | Cloudera, Inc. | Mutations in a column store |
US10528540B2 (en) * | 2015-05-11 | 2020-01-07 | AtScale, Inc. | Dynamic aggregate generation and updating for high performance querying of large datasets |
US9934277B2 (en) * | 2015-05-19 | 2018-04-03 | International Business Machines Corporation | Data management system with stored procedures |
US10204135B2 (en) * | 2015-07-29 | 2019-02-12 | Oracle International Corporation | Materializing expressions within in-memory virtual column units to accelerate analytic queries |
US10372706B2 (en) * | 2015-07-29 | 2019-08-06 | Oracle International Corporation | Tracking and maintaining expression statistics across database queries |
US10303786B2 (en) * | 2015-08-05 | 2019-05-28 | International Business Machines Corporation | Retrieving and displaying data from a columnar database |
US10984043B2 (en) * | 2015-10-02 | 2021-04-20 | Oracle International Corporation | Method for faceted visualization of a SPARQL query result set |
US10191944B2 (en) * | 2015-10-23 | 2019-01-29 | Oracle International Corporation | Columnar data arrangement for semi-structured data |
US10394801B2 (en) * | 2015-11-05 | 2019-08-27 | Oracle International Corporation | Automated data analysis using combined queries |
US10713314B2 (en) * | 2016-01-29 | 2020-07-14 | Splunk Inc. | Facilitating data model acceleration in association with an external data system |
US9552412B1 (en) | 2016-04-07 | 2017-01-24 | Quid, Inc. | Boolean-query composer |
US11709833B2 (en) * | 2016-06-24 | 2023-07-25 | Dremio Corporation | Self-service data platform |
US10120898B1 (en) * | 2016-08-05 | 2018-11-06 | Arcadia Data Inc. | Apparatus and method for allowing complex aggregates in analytical views in a distributed database |
US10866972B2 (en) | 2016-08-15 | 2020-12-15 | Sumo Logic | Systems and methods for trie-based automated discovery of patterns in computer logs |
US10769123B2 (en) * | 2016-09-30 | 2020-09-08 | Microsoft Technology Licensing, Llc | Workload-driven recommendations for Columnstore and Rowstore indexes in relational databases |
GB2554883A (en) * | 2016-10-11 | 2018-04-18 | Petagene Ltd | System and method for storing and accessing data |
US10726011B2 (en) * | 2016-10-11 | 2020-07-28 | Sap Se | System to search heterogeneous data structures |
CN106713332B (zh) | 2016-12-30 | 2020-04-21 | 山石网科通信技术股份有限公司 | 网络数据的处理方法、装置和系统 |
CN106815353B (zh) | 2017-01-20 | 2020-02-21 | 星环信息科技(上海)有限公司 | 一种数据查询的方法及设备 |
CN107273504A (zh) | 2017-06-19 | 2017-10-20 | 浪潮软件集团有限公司 | 一种基于Kudu的数据查询方法和装置 |
US10437807B1 (en) * | 2017-07-06 | 2019-10-08 | Palantir Technologies Inc. | Selecting backing stores based on data request |
US10397317B2 (en) * | 2017-09-29 | 2019-08-27 | Oracle International Corporation | Boomerang join: a network efficient, late-materialized, distributed join technique |
US10719508B2 (en) | 2018-04-19 | 2020-07-21 | Risk Management Solutions, Inc. | Data storage system for providing low latency search query responses |
US11423020B2 (en) * | 2018-10-19 | 2022-08-23 | Oracle International Corporation | Efficient extraction of large data sets from a database |
US11334585B2 (en) * | 2019-12-19 | 2022-05-17 | Sap Se | Enterprise search using database views |
-
2018
- 2018-04-19 US US15/957,779 patent/US10719508B2/en active Active
-
2019
- 2019-04-18 EP EP19170079.8A patent/EP3557435A1/en not_active Ceased
- 2019-04-18 WO PCT/US2019/028160 patent/WO2019204629A1/en active Application Filing
- 2019-04-18 JP JP2020558052A patent/JP7053885B2/ja active Active
- 2019-04-18 CN CN201980026846.3A patent/CN112384908A/zh active Pending
-
2020
- 2020-07-20 US US16/933,529 patent/US11372856B2/en active Active
-
2022
- 2022-03-31 JP JP2022060037A patent/JP2022088603A/ja not_active Ceased
- 2022-06-06 US US17/833,805 patent/US20220300508A1/en not_active Abandoned
Non-Patent Citations (3)
Title |
---|
JEAN-MARC SPAGGIARI 等: "Getting Started with Kudu: Perform Fast Analytics on Fast Data", 《HTTPS://BOOKS.GOOGLE.NL/BOOKS?ID=OW1JDWAAQBAJ&PRINTSEC=FRONTCOVER&H1=NI&SOURCE=GBS_GE_SUMMARY_R&CAD=0#V=ONEPAGE&Q&F=FALSE》》, 28 July 2018 (2018-07-28), pages 1 - 5 * |
MANOS KARPATHIOTAKIS 等: "No data left behind: real-time insights from a complex data ecosystem", 《ACM SYMPOSIUM ON CLOUD COMPUTING》, 24 September 2017 (2017-09-24), pages 108 - 120, XP055608757, DOI: 10.1145/3127479.3131208 * |
MARCEL KORNACKER 等: "Introducing Apache Arrow: A Fast, Interoperable In-Memory Columnar Data Structure Standard", 《HTTPS://BLOG.CLOUDERA.COM/INTRODUCING-APACHE-ARROW-A-FAST-INTEROPERABLE-IN-MEMORY..》, 18 February 2016 (2016-02-18), pages 1 - 5 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114143182A (zh) * | 2021-11-18 | 2022-03-04 | 新华三大数据技术有限公司 | 一种配置分布式搜索引擎集群的节点的方法和装置 |
CN114143182B (zh) * | 2021-11-18 | 2024-02-23 | 新华三大数据技术有限公司 | 一种配置分布式搜索引擎集群的节点的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US11372856B2 (en) | 2022-06-28 |
WO2019204629A1 (en) | 2019-10-24 |
US10719508B2 (en) | 2020-07-21 |
EP3557435A1 (en) | 2019-10-23 |
JP7053885B2 (ja) | 2022-04-12 |
US20200349158A1 (en) | 2020-11-05 |
US20190325051A1 (en) | 2019-10-24 |
US20220300508A1 (en) | 2022-09-22 |
JP2021522570A (ja) | 2021-08-30 |
JP2022088603A (ja) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7053885B2 (ja) | 少ない待ち時間の検索問合せ応答を提供するためのデータ記憶システム | |
US11170002B2 (en) | Integrating Kafka data-in-motion with data-at-rest tables | |
US11526464B2 (en) | Scaling HDFS for hive | |
US10990595B2 (en) | Fast distributed graph query engine | |
US11392352B2 (en) | Guided web-application generation | |
US11934931B2 (en) | Decision tree training using a database system | |
US11762701B2 (en) | Computer system providing numeric calculations with less resource usage | |
US20240104694A1 (en) | Fluid and resolution-friendly view of large volumes of time series data | |
US11550949B2 (en) | Secure exchange of password presence data | |
US11106644B2 (en) | Property-based deletion of digital data | |
US20200184311A1 (en) | Execution of trained neural networks using a database system | |
US20240037114A1 (en) | Distributed data processing using embedded hermetic and deterministic language | |
US11921767B1 (en) | Efficient access marking approach for efficient retrieval of document access data |
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 |