基于隐含的数据特性的动态性能调优的制作方法
未命名
08-17
阅读:106
评论:0
1.本公开涉及数据分析。更具体地,本公开涉及用于基于数据特性改进系统性能的技术。
背景技术:
2.物联网(iot)设备产生包括三个不同类别的数据(标识符数据、用例数据和运行时数据)的数据集。由iot设备产生的数据
3.标识符数据可以包括产生数据的设备的人类可读的特性和/或人类可理解的特性。特别地,标识符数据可以包括诸如设备名称、序列号、购买的数据和类似的特性之类的方面。标识符数据可以包括提供数据的设备的许多不同的标识符。通常,标识符数据包括保持不变或极少变化的数据。标识符数据将在系统中具有最低的基数(例如,最少的不同字段或字段组合)。用例数据通常是指使用提供数据的设备的各种方式的数据。例如,对于恒温器,用例数据可以包括“加热”或“冷却”。与标识符数据类似,用例数据通常被表示为一个或多个字符串。运行时数据可以包括设备在现场使用时所测量的信息。作为示例,对于恒温器,运行时数据可以包括温度测量和指示记录温度的时间的时间戳。运行时数据通常是最大的数据类别,往往大了数量级。
4.本部分中所述的方法是可以采取的方法,但不一定是先前已经设想或采取的方法。因此,除非另有说明,否则不应该假定本部分中所述的任何方法仅因其被包含在本部分中而被视为现有技术。
附图说明
5.在附图的图中,通过举例的方式而不是通过限制的方式来说明实施例。应该注意的是,本公开中对“一”或“一个”实施例的提及不一定指同一实施例,并且它们意味着至少一个。在附图中:
6.图1图示了根据一个或多个实施例的系统;
7.图2图示了根据一个或多个实施例的用于基于数据特性改进系统性能的示例操作集;
8.图3a和图3b图示了用于基于数据特性改进系统性能的示例系统;并且
9.图4示出了图示根据一个或多个实施例的计算机系统的框图。
具体实施方式
10.在下文的描述中,为了解释的目的,阐述了许多具体细节,以提供全面的理解。可以在没有这些具体细节的情况下实践一个或多个实施例。一个实施例中描述的特征可以与不同实施例中描述的特征组合。在一些示例中,参照框图形式来描述众所周知的结构和设备,以避免不必要地模糊本发明。
11.1.总体概述
12.2.架构概述
13.3.基于数据特性改进系统性能
14.4.示例实施例
15.5.其他;扩展
16.6.硬件概述
17.1.总体概述
18.一个或多个实施例包括用于基于数据特性的性能调优(tuning)的系统。大数据系统的用户可以使用不支持传统的基于成本的查询调优的异构存储机制,因为它们是由不提供常用特征(如索引、行计数(row count)、数据基数统计和类似工具)的存储系统所支持的,或者因为存储系统的异构本质阻碍跨存储优化。然而,对于基于时间序列的数据,数据的固有方面、存储模式以及基于查询本身的数据的隐含方面可以被用于推断假定的模式并帮助优化查询的执行。关于数据源如何关联的用户定义元数据提供了对每个系统中存储什么种类的数据的洞察,并且元数据可以被用于推断关于存储的数据的缺失统计信息。类似地,一旦已知关于特定数据源的一些信息,就可以假定其他数据源的特性。
19.在实施例中,系统可以通过将数据分组来确定如何存储和访问数据。例如,在处理来自一个或多个物联网(iot)设备的数据时,系统可以将数据分组到它认为具有物联网数据的特性的三个数据族之一中。系统可以使用关于哪些数据已经被分组到每个族中的信息来假定应该在其他族中找到哪些数据,并相应地调整存储和检索过程。
20.例如,用于物联网数据的三个数据族可以是标识符数据、用例数据和运行时数据。系统可以使用这些数据族,因为它们允许高效的、可定义的分类,并且因为这些分类将进而允许对用例的估计。
21.可以基于数据的特性将数据集内的数据字段分组。特别地,数据字段可以基于存储在该字段中的数据的一个或多个特性(诸如基数(例如,数据字段中的条目的数量)和/或更新频率(例如,更新字段中的数据的频率))来进行归类。
22.在本说明书中描述和/或在权利要求书中陈述的一个或多个实施例可能没有被包括在本总体概述部分中。
23.2.架构概述
24.图1图示了根据一个或多个实施例的系统100。如图1中所示,系统100包括性能调优引擎102、用户接口114、一个或多个外部数据源118、数据储存库120以及其各种组件。在一个或多个实施例中,系统100可以包括比图1中所示的组件更多或更少的组件。图1中所示的组件可以是彼此本地的或彼此远离的。可以用软件和/或硬件来实现图1中所示的组件。每个组件可以分布在多个应用和/或机器上。多个组件可以组合成一个应用和/或机器。关于一个组件描述的操作可以替代地由另一个组件来执行。
25.在一个或多个实施例中,用户接口114指被配置为促进用户和接口创建引擎102之间的通信的硬件和/或软件。用户接口114可以由访问接口(例如仪表板接口)的用户使用,用于工作和/或个人活动。用户接口114可以与用于呈现视觉媒体的一个或多个设备(诸如显示器116,包括监视器、电视、投影仪和/或类似设备)相关联。用户接口114呈现用户接口元素并经由用户接口元素接收输入。接口的示例包括图形用户接口(gui)、命令行接口(cli)、触觉接口和语音命令接口。用户接口元素的示例包括复选框、单选按钮、下拉列表、
列表框、按钮、切换器、文本域、日期和时间选择器、命令行、滑块、页面和表格。
26.在实施例中,以不同的语言来指定用户接口114的不同组件。以动态编程语言(诸如javascript)来指定用户接口元素的行为。以标记语言(诸如超文本标记语言(html)或xml用户接口语言(xul))来指定用户接口元素的内容。以样式表语言(诸如层叠样式表(css))来指定用户接口元素的布局。替代地,以一种或多种其他语言(诸如java、c或c++)来指定用户接口114。
27.在一个或多个实施例中,性能调优引擎102指被配置为执行本文描述的用于基于隐含的数据特性的动态性能调优的操作的硬件和/或软件。下文参照图2描述了用于基于隐含的数据特性的动态性能调优的操作的示例。
28.在实施例中,性能调优引擎102包括数据归类组件104。数据归类组件104可以指被配置为执行本文描述的用于识别来自用户的输入的操作(包括像可以通过引用并入的此类操作)的硬件和/或软件。
29.在实施例中,性能调优引擎102包括类别分析组件106。类别分析组件106可以指被配置为执行查询建议的生成和/或识别的硬件和/或软件。
30.在实施例中,性能调优引擎102包括存储配置管理器106。存储配置管理器106可以指被配置为执行一个所选择的查询的选择的硬件和/或软件。
31.在实施例中,性能调优引擎102的一个或多个组件使用机器学习引擎110。机器学习包括人工智能的领域中的各种技术,上述各种技术处理用于解决具有可变输入的问题的计算机实现的、独立于用户的过程。
32.在一些实施例中,机器学习引擎110训练机器学习模型112来执行一个或多个操作。特别地,机器学习引擎110可以训练机器学习模型112来接收数据集的一个或多个记录作为输入、将一个或多个记录划分为一个或多个数据字段。一个或多个机器学习引擎110可以使机器学习模型112确定与每个数据字段相关联的一个或多个特性,并基于一个或多个特性为数据字段选择存储配置。
33.训练机器学习模型112使用训练数据来生成函数,该函数在给定对于机器学习模型112的一个或多个输入后计算对应的输出。在至少一些实施例中,机器学习模型112可以包括两步过程,使得数据被输入到输出模型的算法,并且日期被馈送入模型以产生输出。该输出可以对应于基于先前的机器学习的预测。在实施例中,该输出包括分配给所提供的输入的标记、分类和/或归类。机器学习模型112对应于用于执行期望的操作(例如,对输入进行标记、分类和/或归类)的学习的模型。性能调优引擎102可以使用用于不同目的的多个机器学习引擎110和/或多个机器学习模型112。
34.在实施例中,机器学习引擎110可以使用监督学习、半监督学习、无监督学习、强化学习和/或另一种训练方法或其组合。在监督学习中,标记的训练数据包括输入/输出对,其中用期望的输出(也被称为监督信号)(例如标记、分类和/或归类)来标记每个输入。在半监督学习中,一些输入与监督信号相关联,而其他输入没有与监督信号相关联。在无监督学习中,训练数据不包括监督信号。强化学习使用反馈系统,其中机器学习引擎110在尝试解决特定问题(例如,根据一个或多个预定的性能准则,在特定场景中优化性能)的过程中接收正和/或负的强化。在实施例中,机器学习引擎110最初使用监督学习来训练机器学习模型112,然后使用无监督学习来持续更新机器学习模型112。
35.在实施例中,机器学习引擎110可以使用许多不同的技术来对输入进行标记、分类和/或归类。机器学习引擎110可以将输入转换为描述输入的一个或多个性质(“特征”)的特征向量。机器学习引擎110可以基于特征向量对输入进行标记、分类和/或归类。替代地或附加地,机器学习引擎110可以使用聚类(也被称为聚类分析)来识别输入中的共性。机器学习引擎110可以基于这些共性对输入进行分组(即聚类)。机器学习引擎110可以使用层次聚类、k均值聚类和/或另一种聚类方法或其组合。在实施例中,机器学习引擎110包括人工神经网络。人工神经网络包括多个节点(也被称为人工神经元)和节点之间的边。边可以与对应的权重相关联,该权重表示节点之间的连接的强度,机器学习引擎110随着机器学习进行对其进行调整。替代地或附加地,机器学习引擎110可以包括支持向量机。支持向量机将输入表示为向量。机器学习引擎110可以基于所述向量对输入进行标记、分类和/或归类。替代地或附加地,机器学习引擎110可以使用朴素贝叶斯分类器来对输入进行标记、分类和/或归类。替代地或附加地,给定特定的输入,机器学习模型可以应用决策树来预测给定输入的输出。替代地或附加地,机器学习引擎110可以在在一组固定的互斥选项中对输入进行标记、分类和/或归类是不可能或不切实际的情况下应用模糊逻辑(fuzzy logic)。前述机器学习模型112和技术只是为了示例性的目的来讨论,并且不应该被解释为限制一个或多个实施例。
36.在实施例中,由于机器学习引擎110将不同的输入应用于机器学习模型112,对应的输出并不总是准确的。作为示例,机器学习引擎110可以使用监督学习来训练机器学习模型112。在训练机器学习模型112之后,如果后续输入与标记的训练数据中包含的输入相同,并且输出与训练数据中的监督信号相同,那么输出一定是准确的。如果输入与标记的训练数据中包含的输入不同,那么机器学习引擎110可能生成不准确的或不确定准确性的对应输出。除了为给定的输入产生特定的输出外,机器学习引擎110还可以被配置为产生表示对输出的准确性的置信度(或缺乏置信度)的指示符。置信度指示符可以包括数值评分、布尔值和/或与对输出的准确性的置信度(或缺乏置信度)对应的任何其他种类的指示符。
37.在实施例中,机器学习模型可以被用于异常检测。存在三大类的异常检测技术。无监督异常检测技术在数据集中的大多数实例是正常的假设下,通过寻找似乎与数据集的其余部分最不符合的实例来检测未标记测试数据集中的异常。监督异常检测技术可以提供已经被标记为“正常”的第一数据集和已经被标记为“异常”的第二数据集作为训练输入,并使用第一数据集和第二数据集来训练分类器以确定未标记的输入应该被标记为“正常”还是“异常”。半监督异常检测技术从给定的正常训练数据集中构建表示正常行为的模型,然后测试要由该模型生成的测试实例的似然性。
38.在实施例中,性能调优引擎102被配置为从一个或多个外部数据源118接收数据。外部数据源118指独立于性能调优引擎102运行的硬件和/或软件。例如,外部数据源118的硬件和/或软件可以处于与控制查询建议引擎的实体不同的实体(例如不同的公司或其他种类的组织)的控制之下。外部数据源118可以供应与一个或多个物联网(iot)设备相关联的数据。
39.在实施例中,性能调优引擎102被配置为通过使用用户已经为特定外部数据源118提供的用户凭证、经由该外部数据源118的应用编程接口(api)“拉取”数据,从外部数据源118检索数据。替代地或附加地,外部数据源118可以被配置为使用访问密钥、密码和/或用
户已经向外部数据源118供应的其他种类的凭证经由api向性能调优引擎102“推送”数据。性能调优引擎102可以被配置为以许多不同的方式从外部数据源118接收数据。
40.在一个或多个实施例中,数据储存库120是用于存储数据的任何类型的存储单元和/或设备(例如文件系统、数据库、表的集合或任何其他存储机制)。此外,数据储存库120可以包括多个不同的存储单元和/或设备。多个不同的存储单元和/或设备可以是也可以不是相同类型或位于相同的物理位置。此外,可以在与性能调优引擎102和/或外部数据源118相同的计算系统上实现或执行数据储存库120。替代地或附加地,可以在与性能调优引擎102和/或外部数据源118分离的计算系统上实现或执行数据储存库120。数据储存库120可以经由直接连接或经由网络通信地耦接到性能调优引擎102和/或外部数据源118。在一些实施例中,数据储存库120包括一个或多个数据高速缓存,允许系统100将数据存储在持久但不永久的位置。替代地或附加地,系统100可以使用数据储存库120中包含的一个或多个数据高速缓存的至少一部分来存储与数据集有关的汇总统计。
41.数据储存库可以充当许多类型的数据的储存库。例如,存储在数据储存库中的数据可以表示从一个或多个iot设备接收的数据。可以基于各种准则对数据进行归类。可以选择归类以允许高效的、可定义的数据的分类,并提供对用例的估计。在没有算法分类的情况下,需要具有业务空间和计算技术中的专业知识的用户手动声明以优化磁盘上数据的分区、用于高效检索的索引的创建和高速缓存策略。作为特定的示例,数据可以被归类为标识符数据122、用例数据124或运行时数据126之一,如图1中所示。标识符数据122可以包括识别提供数据的特定设备的数据。用例数据124可以包括与提供数据的设备的特定功能相关联的数据。运行时数据126可以包括与提供数据的设备所执行的活动相关联的数据。
42.标识符数据122可以是人类可读的特性和/或人类可理解的数据特性。标识符数据122可以包括诸如设备名称、序列号、购买的数据和类似的特性之类的方面。标识符数据122可以包括提供数据的设备的许多不同的标识符。通常,标识符数据122包括保持不变或极少变化的数据。系统可以假定标识符数据122将在系统中具有最低的基数(例如,最少的不同条目)。系统可以假定标识符数据122通常是对于许多形式的报告和预测分析的分组的根级别。例如,基于行驶里程预测汽车的故障几率的机器学习算法可以首先按汽车品牌和型号对数据进行分组,然后在该品牌和/或型号内寻找趋势。从存储/检索视角,系统可以假定大多数交互将使用诸如“等于”之类的运算符而不是范围运算符。因为标识符数据122是根级别数据,所以它具有比用例数据124或运行时数据126更少的记录。通过标识符数据122中的任何值对数据集进行分区在读取时可能不能提供什么益处,但在分析数据集时将具有很高的价值。对标识符数据122进行高速缓存通常非常高效,因为它很少被编辑。标识符数据122倾向于包括字符串值。记录是广泛的,但集合并不大;因此,通常可以通过将标识符数据散列到查找表来节约存储器空间。当跨族来联接(join)数据时,标识符数据122通常是联接的右手侧(right hand side)。
43.用例数据124通常是指使用提供数据的设备的各种方式的数据。例如,对于恒温器,用例数据124可以包括“加热”或“冷却”。与标识符数据122类似,用例数据124通常被表示为一个或多个字符串。然而,用例数据通常不那么易于进行散列,因为用例记录的每个部分都可能是重要的特征。附加地,对数据集的分析可以集中于在用例数据124内向下钻取。因此,经常以各种方法并在分析中的各个点处访问用例数据124。通过对按每个字段依次分
区的用例数据124进行高速缓存,可以改进整体系统性能。虽然此高速缓存过程相比单一分区对更多的数据进行高速缓存,但高速缓存很可能是有价值的。此外,因为用例数据124具有相对较低的行计数,对用例数据进行高速缓存的存储器成本不会过高。因为系统决定应该对用例数据124进行高速缓存,因此盘上用例数据的存储不需要特别高的读取效率。相反,存储可以是空间高效的,积极地压缩用例数据124。
44.运行时数据126可以包括关于标识符数据的特定实例在现场使用时的信息。例如,对于恒温器,运行时数据可以包括温度测量和指示记录温度的时间的时间戳。系统可以确定运行时数据126是最大的数据族,通常大了数量级。系统可以确定运行时数据126中的至少一个字段是时间戳,并需要声明时间戳或在数据中寻找一个时间戳。不论建立时运行时数据126的大小如何,系统都可以确定运行时数据126最终将增长到对于任何形式的存储器中(in-memory)数据读取都过大。在如具有关系数据库和大容量数据存储两者的环境之类的异构数据环境中,运行时数据126可以是系统将确定应该被存储在大容量数据存储装置中的数据。因为运行时数据126通常被预测为很大并包括来自同一物理对象(例如,当前正在运行的设备)的不同报告(往往是许多报告),系统可以确定通常通过时间范围扫描(例如,上周、上个月或去年内的所有记录)或通过与来自用例数据124和/或标识符数据122的分区键结合的时间范围扫描(例如,按加热模式下的恒温器分组的去年的所有记录)来访问运行时数据126。系统可以通过基于记录时间戳确定较旧的数据可以以基于用户已经定义的分析操作所声明的频率的移动速率被移动到效率较低的存储装置,来在算法上优化存储(例如,运行对来自过去一周的数据的分析的用户将不会像其分析由长期趋势定义的用户那样对读取5年的数据的缓慢性表现敏感)。
45.在实施例中,系统100是在一个或多个数字设备上实现的。术语“数字设备”通常指包括处理器的任何硬件设备。数字设备可以指执行应用或虚拟机的物理设备。数字设备的示例包括计算机、平板计算机、膝上型计算机、台式计算机、上网本、服务器、web服务器、网络策略服务器、代理服务器、通用机、专用功能硬件设备、硬件路由器、硬件交换机、硬件防火墙、硬件防火墙、硬件网络地址转换器(nat)、硬件负载均衡器、大型主机、电视、内容接收器、机顶盒、打印机、移动手持电话、智能电话、个人数字助理(“pda”)、无线接收器和/或发送器、基站、通信管理设备、路由器、交换机、控制器、接入点和/或客户端设备。
46.3.基于数据特性改进系统性能
47.图2图示了根据一个或多个实施例的用于基于数据特性改进系统性能的示例操作集。可以一起修改、重新排列或省略图2中所示的一个或多个操作。因此,图2中所示的操作的特定序列不应该被解释为限制一个或多个实施例的范围。
48.在实施例中,系统(例如系统100的一个或多个组件)接收数据集(操作202)。在一些实施例中,可以接收数据集作为单个单元。在其他实施例中,可以随着时间的推移(例如,间歇性地或周期性地)接收数据集。在一些方面,可以从一个或多个外部设备接收数据。特别地,可以从连接的设备(诸如物联网设备)接收数据。物联网(iot)是相互关联的计算设备、机械和数字机器的系统,该相互关联的计算设备、机械和数字机器设置有唯一标识符和在不需要人与人或人与计算机的交互的情况下通过网络传输数据的能力。例如,iot设备可以包括建筑或家庭自动化设备、医疗和/或保健设备、运输设备(例如,车辆间和/或车辆内通信、交通控制、物流、车辆安全和/或控制)、农业监测设备等。许多种类的设备可以利用
iot架构。
49.接收的数据可以包括一个或多个数据字段(也被称为数据集)。作为示例,接收的数据可以包括时间戳、识别向系统传输数据的设备的一个或多个标识符、指示设备的使用模式的一个或多个数据项以及设备所执行的一个或多个测量。在一些方面,在系统处接收的每个数据项可以包括每个数据字段中的条目。在其他方面,在系统处接收的数据项可以仅包括自接收到先前数据项后已经改变的那些字段。
50.系统可以确定数据集中的数据字段的归类方法(操作204)。该归类方法可以被用于数据集中的一个或多个数据字段。在一些实施例中,相同的归类方法被用于对数据集中的每个数据字段进行归类。在其他实施例中,不同的归类方法可以被用于对不同的数据字段进行归类。
51.作为示例,数据字段可以基于接收或更新该字段中的数据的频率被分配到类别。例如,可以基于接收或更新数据的绝对频率(例如,与每秒钟、每分钟或每小时接收或更新的特定数据字段对应的项目的数量)来对数据进行归类。作为另一个示例,可以基于相对频率(例如,与数据集的其他字段相比,与接收或更新的特定数据字段对应的项目的数量)来将数据分配到类别。
52.作为另一个示例,数据字段可以基于该字段中数据中的记录的数量被分配到类别。例如,可以基于记录的绝对数量(例如,与小于100、小于1000等的特定数据字段对应的记录的数量)来对数据进行归类。作为另一个示例,可以基于记录的相对数量(例如,与数据集的其他字段相比,与特定数据字段对应的记录的数量)来将数据分配到类别。
53.可以基于确定的归类方法对接收的数据的每个字段进行归类(操作206)。数据字段可被分配到的类别可以包括标识符数据、用例数据或运行时数据。标识符数据可以包括识别提供数据的特定设备的数据。用例数据可以包括与提供数据的设备的特定功能或操作模式相关联的数据。运行时数据可以包括与提供数据的设备所执行的活动和/或测量相关联的数据。
54.在一些实施例中,对数据进行归类可以包括选择第一阈值数和第二阈值数。第二阈值数可以大于第一阈值数。在一些实施例中,可以基于数据集中包含的数据来选择阈值数。在其他实施例中,阈值数可以是预先确定的。在实施例中,第二阈值比第一阈值的数量级大。第一阈值和第二阈值可以被用于对数据字段进行归类。
55.作为示例,不超过第一阈值的数据字段可以被归类为标识符数据。标识符数据可以是人类级别的数据特性。标识符数据可以包括诸如设备名称、序列号、购买的数据和类似的特性之类的方面。标识符数据可以包括提供数据的设备的许多不同的标识符。通常,标识符数据包括保持不变或极少变化的数据。因此,标识符数据可能在系统中具有相对较高的基数(例如,相对较大的不同条目的数量),但可能以最低频率被更新。
56.作为另一个示例,超过第一阈值但不超过第二阈值的数据字段可以被归类为用例数据。用例数据通常是指使用提供数据的设备的各种方式的数据。例如,对于恒温器,用例数据可以包括“加热”或“冷却”。通常,用例数据变化得相对不频繁,但比标识符数据更频繁。因此,用例数据具有相对较低的基数。然而,用例数据的基数比标识符数据的基数大。类似地,用例数据以相对较低的频率被更新,但比标识符数据更新得更频繁。
57.作为第三个示例,超过第一阈值和第二阈值两者的数据字段可以被归类为运行时
数据。运行时数据可以包括关于标识符数据的特定实例在现场使用时的信息。例如,对于恒温器,运行时数据可以包括温度测量和指示记录温度的时间的时间戳。系统可以确定运行时数据是最大的数据族,通常大了若干数量级。系统可以确定运行时数据中的至少一个字段是时间戳,并且需要声明时间戳或在数据中寻找一个时间戳。不论建立时运行时数据的大小如何,系统都可以确定运行时数据最终将增长到对于任何形式的存储器中数据读取都过大。
58.系统可以基于所确定的归类来确定用于存储数据字段的存储配置(操作208)。配置存储可以包括选择数据字段要被存储到的存储介质。在实施例中,配置数据还包括指定所选择的存储介质内的数据的特定布局。配置存储可以包括选择用于存储数据字段条目的特定数据结构。附加地,存储配置可以指定数据库的特定分区以改进数据库性能。
59.在实施例中,系统可以依赖于机器学习算法来跟踪关于数据集的分析的用户输入。例如,系统可以跟踪由用户引起的数据访问操作(例如联接操作、表扫描操作、读取操作等)。系统可以依赖于机器学习用于确定数据访问操作中的模式,并且部分地基于该模式来选择存储配置。例如,当绝大多数的数据访问操作是针对过去一周内接收的数据时,系统可以确定可以以空间效率更高并且读取效率更低的方式来存储超过一周以前的数据。
60.例如,可以部分地基于数据字段的大小来选择存储配置。还可以基于通常访问数据字段的方式来选择存储配置。例如,访问数据的频率和执行的访问的类型可以影响所选择的配置。系统可以将特定的访问类型和频率与特定的数据类别相关联,允许系统基于数据字段的归类为数据字段选择特定的存储配置。在一些实施例中,配置存储可以包括从多个存储配置中选择存储配置。可以基于一个或多个存储设备的典型用法来预先确定多个存储配置。
61.作为特定的示例,标识符数据通常是对于许多形式的报告和预测分析的分组的根级别。从存储/检索视角,与标识符数据的大多数交互可以使用诸如“等于”之类的运算符而不是范围运算符。标识符数据具有比用例数据或运行时数据更少的记录。因此,通过标识符数据中的任何值对数据集进行分区在读取时不能提供什么益处,但在分析数据集时将具有很高的价值。对标识符数据进行高速缓存通常非常高效,因为它很少被编辑。标识符数据倾向于包括字符串值。记录是广泛的,但集合并不大;因此,通常可以通过将标识符数据散列到查找表来节约存储器空间。当跨族来联接数据时,标识符数据通常是联接的右手侧。
62.作为另一个示例,用例数据通常被表示为一个或多个字符串。然而,用例数据通常不那么易于进行散列,因为用例记录的每个部分都可能是重要的特征。附加地,对数据集的分析可以集中于在用例数据内向下钻取。因此,经常以各种方法并在分析中的各个点处访问用例数据。通过对按每个字段依次分区的用例数据进行高速缓存,可以改进整体系统性能。虽然此高速缓存过程相比单一分区对更多的数据进行高速缓存,但高速缓存很可能是有价值的。此外,因为用例数据具有相对较低的行计数,对用例数据进行高速缓存的存储器成本不会过高。因为系统决定应该对用例数据进行高速缓存,因此盘上用例数据的存储不需要特别高的读取效率。相反,存储可以是空间高效的,积极地压缩用例数据。
63.作为另一个示例,运行时数据可以被存储在大容量数据存储装置中。因为运行时数据通常包括包含来自同一物理对象(例如,当前正在运行的设备)的不同报告(往往是许多报告)的大型数据集,系统可以确定通常通过时间范围扫描(例如,上周、上个月或去年内
的所有记录)或通过与来自用例数据或标识符数据的分区键结合的时间范围扫描(例如,按加热模式下的恒温器分组的去年的所有记录、基于序列号分组的去年的所有记录)来访问运行时数据。系统可以通过基于记录时间戳确定较旧的数据可以以基于用户已经定义的分析操作所声明的频率的移动速率被移动到读取效率较低的存储装置,来在算法上优化存储(例如,运行对来自过去一周的数据的分析的用户将不会像其分析由长期趋势定义的用户那样对读取5年的数据的缓慢性表现敏感)。
64.在一些实施例中,在存储配置的选择之后,系统存储数据(操作210)。存储数据可以包括将数据存储到所选择的存储设备。存储数据可以包括根据所选择的存储配置来创建数据结构。在一些实施例中,数据存储可以包括选择新的数据配置。例如,响应于用户访问模式变化、数据流入模式变化中的一个或多个,或者随着关于这些模式的所发现的知识增长,选择新的存储配置(并基于新选择的存储配置来存储数据)不仅是可能的,而且是很有可能的。
65.4.示例实施例
66.为了清晰性的目的,下面描述详细的示例。下文描述的组件和/或操作应该被理解为可能不适用于某些实施例的一个特定示例。因此,下文描述的组件和/或操作不应该被解释为限制任何权利要求的范围。
67.图3a示出了连接的恒温器设备302,该恒温器设备302向系统304传输数据以供收集,如箭头306所表示。特别地,设备302可以传输标识符数据306a、用例数据306b和运行时数据306c。如图3a中所示,箭头的粗细对应于对每个数据类别的更新的相对数量。
68.如图3b中所示,数据集包括数据字段“设备标识符”、数据字段“设备模式”、数据字段“温度”和时间戳。如“时间戳”和“温度”数据字段中所示,设备302每秒向系统304传输一次温度测量。对于每个测量,设备还传输标识符(例如,“设备标识符”数据字段)。附加地,设备传输其操作模式的指示符(例如,“设备模式”数据字段)。在图3b中所示的示例中,设备“device_01”在时间12:00:00时从“冷却”模式转换为“加热”模式。模式的改变可以指示改变模式的用户交互、调度的模式改变或模式转换的其他原因。
69.系统将每个数据字段归类为标识符数据、用例数据或运行时数据中的一个。系统将第一阈值设定为1并将第二阈值设定为5。“设备标识符”字段包括1个更新,这没有超过第一阈值或第二阈值。因此,“设备标识符”数据字段被归类为标识符数据。“设备模式”字段包括2个更新,这超过了第一阈值,但没有超过第二阈值。因此,“设备模式”数据字段被归类为用例数据。“温度”和“时间戳”字段各自包括11个更新,这超过了第一阈值和第二阈值两者。因此,“温度”和“时间戳”数据字段各自被归类为运行时数据。
70.在归类之后,系统可以为每个类别的数据确定存储配置。对于标识符数据(例如“设备标识符”数据字段),系统可以选择空间效率高的存储配置,诸如严重压缩的存储配置。系统可以进一步推荐对标识符数据进行高速缓存,以便快速检索。对于用例数据(例如“设备模式”数据字段),系统可以选择空间效率高的存储配置,诸如严重压缩的存储配置。对于运行时数据(例如“温度”和“时间戳”数据字段),系统可以认识到这些数据字段很可能会快速增长,并确定允许大容量的数据被高效地存储的存储配置。此外,系统可以以导致读取数据时效率提高的方式将数据存储结构化。例如,可以按时间顺序存储数据,因为对数据的分析很可能将导致检索跨越特定时间范围的数据。可以根据所选择的存储配置来存储来
自每个字段的数据。
71.5.其他;扩展
72.实施例针对具有一个或多个设备的系统,该一个或多个设备包括硬件处理器并被配置为执行本文中所描述和/或以下任何权利要求中所陈述的任何操作。
73.在实施例中,非暂态计算机可读存储介质包括指令,该指令在由一个或多个硬件处理器执行时,使得执行本文中所描述和/或任何权利要求中所陈述的任何操作。
74.可以根据一个或多个实施例来使用本文中描述的特征和功能的任何组合。在前述说明书中,已经参照可能因实施方案的不同而不同的许多具体细节描述了实施例。因此,应当在说明性而非限制性的意义上看待说明书和附图。本发明的范围的唯一且排他的指示以及申请人意在要作为本发明范围的是以由本技术产生的一组权利要求的具体形式的所产生权利要求的字面和等同范围,包括任何后续的修正。
75.6.硬件概述
76.根据一个实施例,由一个或多个专用计算设备来实现本文中所述的技术。专用计算设备可以是硬接线的以执行该技术,或者可以包括被持久编程为执行该技术的数字电子设备(诸如一个或多个专用集成电路(asic)、现场可编程门阵列(fpga)或网络处理单元(npu)),或者可以包括被编程为根据固件、存储器、其他存储装置或组合中的程序指令来执行该技术的一个或多个通用硬件处理器。此类专用计算设备还可以将定制的硬接线逻辑、asic、fpga或npu与定制的编程相结合以实现该技术。专用计算设备可以是台式计算机系统、便携式计算机系统、手持设备、联网设备或结合硬接线和/或程序逻辑以实现该技术的任何其他设备。
77.例如,图4是图示了可以在其上实现本发明的实施例的计算机系统400的框图。计算机系统400包括用于传送信息的总线402或其他通信机制,以及与总线402耦接的用于处理信息的硬件处理器404。例如,硬件处理器404可以是通用微处理器。
78.计算机系统400还包括耦接到总线402用于存储要由处理器404执行的信息和指令的主存储器406,诸如随机存取存储器(ram)或其他动态存储设备。主存储器406还可以被用于在执行要由处理器404执行的指令期间存储临时变量或其他中间信息。此类指令在存储在处理器404可访问的非暂态存储介质中时使计算机系统400成为被定制为执行指令中指定的操作的专用机器。
79.计算机系统400还包括耦接到总线402用于存储处理器404的静态信息和指令的只读存储器(rom)408或其他静态存储设备。提供存储设备410(诸如磁盘或光盘)并耦接到总线402,以用于存储信息和指令。
80.计算机系统400可以经由总线402耦接到显示器412(诸如阴极射线管(crt)),以用于向计算机用户显示信息。输入设备414(包括字母数字和其他键)耦接到总线402,以用于向处理器404传送信息和命令选择。另一种类型的用户输入设备是用于向处理器404传送方向信息和命令选择并控制显示器412上的光标移动的光标控件416,诸如鼠标、轨迹球或光标方向键。这种输入设备通常具有两个轴(第一轴(例如x轴)和第二轴(例如y轴))上的两个自由度,这允许设备指定平面中的位置。
81.计算机系统400可以使用定制的硬接线逻辑、一个或多个asic或fpga、固件和/或程序逻辑来实现本文中描述的技术,该定制的硬接线逻辑、一个或多个asic或fpga、固件
和/或程序逻辑与计算机系统相结合,使得计算机系统400成为专用机器,或将计算机系统400编程为专用机器。根据一个实施例,计算机系统400响应于处理器404执行主存储器406中包含的一个或多个指令的一个或多个序列而执行本文中的技术。此类指令可以从另一个存储介质(诸如存储设备410)被读取到主存储器406中。执行主存储器406中包含的指令的序列使得处理器404执行本文中描述的过程步骤。在替代性实施例中,可以使用硬接线电路来代替软件指令或与软件指令相结合。
82.本文中所使用的术语“存储介质”是指存储使机器以特定方式运行的数据和/或指令的任何非暂态介质。此类存储介质可以包括非易失性介质和/或易失性介质。例如,非易失性介质包括光盘或磁盘,诸如存储设备410。易失性介质包括动态存储器,诸如主存储器406。例如,存储介质的常见形式包括软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、cd-rom、任何其他光学数据存储介质、具有孔图案的任何物理介质、ram、prom和eprom、flash-eprom、nvram、任何其他存储器芯片或盒、内容可寻址存储器(cam)以及三态内容可寻址存储器(tcam)。
83.存储介质与传输介质不同,但可以与传输介质结合使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴线缆、铜线和光纤,包括构成总线402的导线。传输介质还可以采取声波或光波的形式,诸如在无线电波和红外数据通信期间产生的那些波。
84.各种形式的介质可以参与将一个或多个指令的一个或多个序列携带到处理器404以供执行。例如,最初可以在远程计算机的磁盘或固态驱动器上携带指令。远程计算机可以将指令加载到其动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统400本地的调制解调器可以接收电话线上的数据,并使用红外发射器来将数据转换成红外信号。红外检测器可以接收红外信号中携带的数据,并且适当的电路可以将数据放置在总线402上。总线402将数据携带到主存储器406,处理器404从该主存储器406检索并执行指令。由主存储器406接收的指令可以在由处理器404执行之前或之后可选地存储在存储设备410上。
85.计算机系统400还包括耦接到总线402的通信接口418。通信接口418提供与连接到本地网络422的网络链路420耦接的双向数据通信。例如,通信接口418可以是综合业务数字网(isdn)卡、线缆调制解调器、卫星调制解调器或提供与对应类型的电话线的数据通信连接的调制解调器。作为另一个示例,通信接口418可以是局域网(lan)卡,以提供与兼容的lan的数据通信连接。也可以实现无线链路。在任何此类实现方案中,通信接口418发送和接收携带表示各种类型的信息的数字数据流的电信号、电磁信号或光学信号。
86.网络链路420通常通过一个或多个网络向其他数据设备提供数据通信。例如,网络链路420可以通过本地网络422提供与主机计算机424或与因特网服务提供商(isp)426所运行的数据设备的连接。isp426进而通过现在通常被称为“因特网”428的世界范围内的分组数据通信网络来提供数据通信服务。本地网络422和因特网428两者都使用携带数字数据流的电信号、电磁信号或光学信号。将数字数据携带到计算机系统400并从计算机系统400携带数字数据的通过各种网络的信号以及网络链路420上并通过通信接口418的信号是传输介质的示例形式。
87.计算机系统400可以通过网络、网络链路420和通信接口418来发送消息和接收数据(包括程序代码)。在因特网示例中,服务器430可以通过因特网428、isp 426、本地网络
422和通信接口418来传输应用程序的请求的代码。
88.所接收的代码可以在其被接收时由处理器404执行,和/或存储在存储设备410或其他非易失性存储装置中以供以后执行。
89.在前述说明书中,已经参照可能因实施方案的不同而不同的许多具体细节描述了本发明的实施例。因此,应当在说明性而非限制性的意义上看待说明书和附图。本发明的范围的唯一且排他的指示以及申请人意在要作为本发明范围的是以由本技术产生的一组权利要求的具体形式的所产生权利要求的字面和等同范围,包括任何后续的修正。
技术特征:
1.一种或多种包括指令的非暂态计算机可读介质,所述指令在由一个或多个硬件处理器执行时,使得执行包括以下的操作:以第一频率接收对第一数据集的更新;基于所述第一频率从多个存储配置中选择用于存储所述第一数据集的第一存储配置;根据所述第一存储配置来存储所述第一数据集;以第二频率接收对第二数据集的更新;基于所述第二频率从所述多个存储配置中选择用于存储所述第二数据集的第二存储配置,其中所述第二存储配置与所述第一存储配置不同;以及根据所述第二存储配置来存储所述第二数据集。2.根据权利要求1所述的介质,其中基于所述第一频率选择用于存储所述第一数据集的第一存储配置包括:基于所述第一频率为所述第一数据集选择多个类别中的第一类别;以及选择与所述第一类别对应的、用于存储所述第一数据集的第一存储配置。3.根据权利要求1所述的介质,其中所述操作还包括:基于所述第一频率,将所述第一数据集归类为标识符数据;其中选择第一存储配置基于所述第一数据集被归类为标识符数据;基于所述第二频率,将所述第二数据集归类为用例数据;其中选择第二存储配置基于所述第二数据集被归类为用例数据;基于接收对第三数据集的更新的第三频率,将所述第三数据集归类为运行时数据;基于所述第三数据集被归类为运行时数据,选择用于存储所述第三数据集的第三存储配置。4.根据权利要求1所述的介质,其中所述指令在由所述一个或多个处理器执行时,还使得执行以下操作:确定所述第一数据集和所述第二数据集之间的关系;基于所述关系,使用所述第一数据集和所述第二数据集来预先计算联接操作。5.根据权利要求1所述的介质,其中所述指令在由所述一个或多个处理器执行时,还使得执行以下操作:接收与所述第一数据集对应的附加数据;至少部分地基于所述附加数据,选择新的存储配置;以及根据所述新的存储配置来存储所述第一数据集。6.根据权利要求1所述的介质,其中所述指令在由所述一个或多个处理器执行时,还使得执行以下操作:至少部分地基于所述第一存储配置,创建与所述第一数据集相关联的索引。7.一种方法,所述方法包括:以第一频率接收对第一数据集的更新;基于所述第一频率从多个存储配置中选择用于存储所述第一数据集的第一存储配置;根据所述第一存储配置来存储所述第一数据集;以第二频率接收对第二数据集的更新;基于所述第二频率从所述多个存储配置中选择用于存储所述第二数据集的第二存储
配置,其中所述第二存储配置与所述第一存储配置不同;以及根据所述第二存储配置来存储所述第二数据集,其中所述方法由包括硬件处理器的至少一个设备来执行。8.根据权利要求7所述的方法,其中基于所述第一频率选择用于存储所述第一数据集的第一存储配置包括:基于所述第一频率为所述第一数据集选择多个类别中的第一类别;以及选择与所述第一类别对应的、用于存储所述第一数据集的第一存储配置。9.根据权利要求7所述的方法,还包括:基于所述第一频率,将所述第一数据集归类为标识符数据;其中选择第一存储配置基于所述第一数据集被归类为标识符数据;基于所述第二频率,将所述第二数据集归类为用例数据;其中选择第二存储配置基于所述第二数据集被归类为用例数据;基于接收对第三数据集的更新的第三频率,将所述第三数据集归类为运行时数据;基于所述第三数据集被归类为运行时数据,选择用于存储所述第三数据集的第三存储配置。10.根据权利要求7所述的方法,还包括:确定所述第一数据集和所述第二数据集之间的关系;基于所述关系,使用所述第一数据集和所述第二数据集来预先计算联接操作。11.根据权利要求7所述的方法,还包括:接收与所述第一数据集对应的附加数据;至少部分地基于所述附加数据,选择新的存储配置;以及根据所述新的存储配置来存储所述第一数据集。12.一种系统,所述系统包括:包括硬件处理器的至少一个设备;所述系统被配置为执行包括以下的操作:以第一频率接收对第一数据集的更新;基于所述第一频率从多个存储配置中选择用于存储所述第一数据集的第一存储配置;根据所述第一存储配置来存储所述第一数据集;以第二频率接收对第二数据集的更新;基于所述第二频率从所述多个存储配置中选择用于存储所述第二数据集的第二存储配置,其中所述第二存储配置与所述第一存储配置不同;以及根据所述第二存储配置来存储所述第二数据集,其中所述方法由包括硬件处理器的至少一个设备来执行。13.根据权利要求11所述的系统,其中基于所述第一频率选择用于存储所述第一数据集的第一存储配置包括:基于所述第一频率为所述第一数据集选择多个类别中的第一类别;以及选择与所述第一类别对应的、用于存储所述第一数据集的第一存储配置。14.根据权利要求11所述的系统,还包括:基于所述第一频率,将所述第一数据集归类为标识符数据;
其中选择第一存储配置基于所述第一数据集被归类为标识符数据;基于所述第二频率,将所述第二数据集归类为用例数据;其中选择第二存储配置基于所述第二数据集被归类为用例数据;基于接收对第三数据集的更新的第三频率,将所述第三数据集归类为运行时数据;基于所述第三数据集被归类为运行时数据,选择用于存储所述第三数据集的第三存储配置。15.根据权利要求11所述的系统,还包括:确定所述第一数据集和所述第二数据集之间的关系;基于所述关系,使用所述第一数据集和所述第二数据集来预先计算联接操作。
技术总结
公开了用于基于数据特性改进系统性能的技术。系统可以以第一频率接收对第一数据集的更新。系统基于第一频率从多个存储配置中选择用于存储第一数据集的第一存储配置,并根据第一存储配置来存储第一数据集。系统还可以以第二频率接收对第二数据集的更新。系统基于第二频率从多个存储配置中选择用于存储第二数据集的第二存储配置,并根据第二存储配置来存储第二数据集。第二存储配置与第一存储配置不同。同。同。
技术研发人员:J
受保护的技术使用者:甲骨文国际公司
技术研发日:2020.09.04
技术公布日:2023/8/16
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
