用于可视化数据的自适应树结构的制作方法

文档序号:6440661阅读:325来源:国知局
专利名称:用于可视化数据的自适应树结构的制作方法
技术领域
本发明涉及数据处理,尤其涉及数据的可视化。
背景技术
如今,许多应用存储、处理和/或可视化大量的数据。例如,应用开发环境可允许用户开发、测试和部署图形用户界面、网站、web服务和/或其他应用。对于开发者而言, 跟踪和/或可视化与这些应用的执行有关的事件可能是有益的,这么做可提供对事件的洞察,这些事件诸如上下文切换、应用对应用程序接口的调用、CPU利用率、采样和/或各种各样的其他事件。以此方式,开发者可例如通过事件的时间线来可视地分析应用执行的性能数据。不幸的是,应用在几分钟内的执行可导致上百万个事件。当前的事件可视化技术试图通过为各种视觉分辨率预先计算可视化数据来管理这样的大量的事件数据。

发明内容
提供本发明内容以便以简化形式介绍在以下具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键因素或必要特征,也不旨在用于限定所要求保护的主题的范围。本文尤其公开了用于基于事件数据集的数据密度来生成自适应树结构的一种或多种系统和/或技术以及用于确定所述自适应树结构内的事件的节点数据的一种或多种系统和/或技术。虽然本文所示的一个或多个示例可在与应用执行相关联的事件的上下文中描述自适应树结构的实现,但可以明白,自适应树结构不限于存储与这些事件有关的数据,还可用于存储任何类型的数据(例如,随着时间被记录的数据、与文本文档相关联的数据、与电子表格相关联的数据、与网络话务相关联的数据、与社交网络相关联的数据和/或任何其他类型的数据)。在一个示例中,与应用的执行有关的事件可作为多个原始事件被记录在事件数据集内。例如,上下文切换(例如,CPU使用在各应用之间的切换)、应用对应用程序接口的调用(例如,因为文件被锁定而导致应用被阻塞的调用)、CPU使用、采样(例如,收集样本事件来确定在特定时间应用是否正在执行)和/或可作为原始事件被记录在事件数据集内的多个其他事件。可生成自适应树结构来存储与事件数据集或其各部分的特定视觉分辨率相关联的预先计算的事件数据。可从自适应树结构中提取特定视觉分辨率处的事件数据以供可视化,诸如通过事件时间线。可以理解,自适应树结构可包括一个或多个节点层。可以理解,被分配到一节点的多个事件可受限于一阈值数,以使得节点可被分配不超过阈值数的事件(例如,1000个事件的阈值数)。可以理解,节点可与时间跨度相关联,该时间跨度对应于各事件在事件数据集内的时间跨度。以此方式,节点可覆盖事件数据集中被该节点的时间跨度覆盖的原始数据(例如,节点可与覆盖事件数据集内500个原始事件的0-30秒的时间跨度相关联)。然而,如果节点覆盖了事件数据集中大于阈值数的多个原始事件(例如,节点可覆盖事件数据集内在30-60秒之间发生的195500个原始事件,这大于阈值数1000),则该节点所覆盖的事件数据集内的原始事件可被聚集成概述事件。以此方式,节点可被分配不大于阈值数的多个概述事件(例如,195500个原始事件可被聚集成1000个概述事件。)可以理解,节点可以是概述节点或原始节点。原始节点可以是覆盖了事件数据集内小于或等于预定数量的多个原始事件的节点(例如,节点可与覆盖了事件数据集内的 500个原始事件的0-30秒的时间跨度相关联,这小于或等于阈值数1000)。以此方式,节点可被分配500个原始事件,并且可被指定为原始节点。可以理解,原始节点可以是自适应树结构中没有子节点的叶节点。概述节点可以是覆盖了事件数据集内大于预定数量的多个原始事件的节点(例如,节点可包括对应于事件数据集内195500个原始事件的30-60秒的时间跨度,这大于阈值数1000)。以此方式,节点可被分配从由该节点的时间跨度覆盖的原始事件中聚集的多个概述事件,其中概述事件的数量等于预定数量(例如,概述节点可被分配从195500个原始事件中聚集的1000个概述事件)。可以理解,概述节点可以是与预定数量个子节点相关联的非叶节点(例如,概述节点可与预定数量4个子节点相关联,以使得各个子节点对应于该概述节点的1/4时间跨度)。在生成自适应树结构期间,可指定一个或多个节点层。例如,第一层可被指定为具有根节点。根节点的时间跨度可对应于事件数据集的总时间跨度(例如,根节点可与覆盖在120秒内记录的200000个原始事件的时间跨度0-120秒相关联)。因为根节点可覆盖大于阈值数的多个原始事件,所以根节点可被分配从由根节点覆盖的原始事件中聚集的多个概述事件,其中概述事件的数量小于或等于阈值数量(例如,200000个原始数据可被聚集成分配给根节点的1000个概述事件)。根节点可被指定为概述节点。可以理解,根节点可与预定数量的子节点相关联,因为根节点是概述节点(例如,层1的根结点可与层2的4个子节点相关联)。可在自适应树结构中指定一个或多个附加层。对于自适应树的当前层可作出紧接着当前层的前一层是否包括一个或多个概述节点的确定(例如,如果前一层仅包括原始节点(叶节点),则自适应树结构可以是完整的)。如果前一层包括一个或多个概述节点, 则对于各个概述节点可为概述节点生成预定数量的子节点,其中子节点的各个时间跨度对应于概述节点的时间跨度的一小部分(例如,如果概述节点的时间跨度覆盖原始事件的 30-60秒且生成了 4个子节点,子节点的各个时间跨度可以是概述节点的30秒时间跨度的 1/4,以使得第一子节点可包括30-30. 75的时间跨度,第二子节点可包括37. 5-45的时间跨度,第三子节点可包括45-52. 5的时间跨度,而第四子节点可包括52. 5-60的时间跨度)。 对于各个子节点如果事件数据集内被子节点的时间跨度覆盖的多个原始事件小于或等于阈值数,则该子节点可被指定为原始节点并且可被分配原始事件,否则子节点可被指定为概述节点并且可被分配从事件数据集内被该子节点的时间跨度覆盖的原始事件中到处的多个概述事件。概述事件的数量可等于阈值数量。以此方式,可基于事件数据集的数据密度来生成自适应树结构(例如,可在密集的原始事件区域中指定较多的节点和/或层,而可在稀疏的原始事件区域中指定较少的节点和/或层)。自适应树结构可包括一个或多个节点层,诸如包括原始事件的原始节点(叶节点)和/或包括从原始事件中聚集的概述事件的概述节点(非叶节点)。自适应树结构中的各个层可对应于事件数据集或其各部分的视觉分辨率。例如,第一层可包括被分配从事件数据集的整个时间跨度中聚集的概述事件的根节点(概述节点)。较高的层,诸如第一层,可提供对事件数据集或其各部分的低分辨率视图,它可用于提供事件数据集的缩小可视化 (例如,第一层可提供对应于在120秒内的200000个原始事件的1000个概述事件)。较低的层,诸如六层自适应树结构中的第四层,可提供对事件数据集的特定部分的高分辨率视图, 它可用于提供事件数据集或其各部分的放大可视化(例如,第四层中的概述节点可提供对应于在1. 875秒时间跨度内的10000个原始事件的1000个概述事件)。可以理解,可用从自适应树结构内的节点数据中导出的事件数据来填充时间线。例如,可基于请求的时间跨度从自适应树结构内的一个或两个节点中确定节点数据(例如,用户可请求对在时间跨度 30-60秒内发生的事件的可视化)。对应于所请求的时间跨度30-60秒的一个或两个节点可被确定为包括该节点数据。以此方式,可用从节点数据导出的事件数据来填充时间线。用户能够可视化事件,放大、缩小、滚动时间线和/或与时间线执行其他交互。可通过用从自适应树结构中的节点数据中导出的相应事件数据来更新时间线以满足这样的用户输入。为实现上述和相关目的,以下描述和附图阐述了各个说明性方面和实现。这些方面和实现仅指示可使用一个或多个方面的各种方式中的一些。结合附图考虑以下详细描述,则本发明的其他方面、优点、以及新颖特征将变得显而易见。


图1是示出基于包括多个原始事件的事件数据集的数据密度来生成自适应树结构的示例性方法的流程图。图2是示出从自适应树结构中确定事件的节点数据的示例性方法的流程图。图3是示出用于基于事件数据集的密度来生成自适应树结构的示例性系统的组件框图,它可被用于用事件数据来填充时间线。图4是生成自适应树结构的示例的图示。图5是基于所请求的时间跨度确定自适应树结构内的节点数据的示例的图示。图6是基于所请求的时间跨度确定自适应树结构内的节点数据的示例的图示。图7是基于所请求的时间跨度确定自适应树结构内的节点数据的示例的图示。图8是基于所请求的时间跨度确定自适应树结构内的节点数据的示例的图示。图9是基于所请求的时间跨度确定自适应树结构内的节点数据的示例的图示。图10是示例性计算机可读介质的图示,其中可包括被配置成实现此处所阐述的原理中的一个或多个的处理器可执行指令。图11图解了其中可实现本文中所阐述的各种措施中的一个或多个的示例性计算环境。
具体实施例方式现在参考附图来描述所要求保护的主题,所有附图中使用相同的附图标记来指代相同的元素。在以下描述中,为解释起见,阐明了众多具体细节以提供对所要求保护的主题的全面理解。然而,很明显,所要求保护的主题可以在没有这些具体细节的情况下实施。在其它情况下,以框图形式示出了各种结构和设备以便于描述所要求保护的主题。如今,应用的执行可包括一组复杂的事件。例如,web应用在执行期间可在与数据库、web服务和/或各种客户机计算设备交互时执行数十万个代码行。跟踪、存储、分析和/或可视化这些事件可能是有益的,这可提供对应用的执行的洞察。例如,可在用户界面的交互式时间线内呈现被记录的事件数据。用户可滚动至事件的各时间范围、改变缩放比例和/或与交互式时间线执行其他交互来查看各事件。在一个示例中,可沿着时间线的时间轴来标绘各事件。时间线可向用户提供查看被记录的事件的整个时间跨度(例如,在粗略粒度上的事件的缩小视图)的能力、放大至特定时间跨度(例如,在较精细的粒度上的事件的放大视图)的能力和/或滚动至时间线内的各时间跨度的能力。不幸的是,时间线可与大的事件数据集(例如,在应用执行的几分钟内记录的数百万个事件)相关联,这可影响时间线的响应性、存储开销和/或其他资源利用率。当前的可视化技术可通过为各缩放水平预先计算时间线信息来管理大的事件数据集,这可允许对用户动作的平滑响应,诸如滚动和缩放。这样的预先计算的时间线信息可被存储在数据结构中,诸如包括一个或多个节点层的树结构(例如,第一层可包括表示在事件数据集的整个时间跨度内的事件的根节点,第二层可包括表示在整个时间跨度的各个1/4部分内的事件的4个节点,第三层可包括表示整个时间跨度的各个1/16部分内的事件的16个节点等)。然而,随着树结构变得越深,节点的数量指数级增长。树结构的深度可取决于事件数据集的总时间和/或事件可在时间线内呈现的最大缩放因子。指数级增长可呈现不可缩放的树结构,这可限制可视化较长的时间范围的能力和/或缩放的能力。另外,树结构可能不考虑数据密度随着时间的分布,并且可能为密集和稀疏区域使用等量的存储,这可能浪费存储。相应地,本文尤其提供了用于基于事件数据集的数据密度来生成自适应树结构的一种或多种系统和/或技术以及用于确定所述自适应树结构内的事件的节点数据的一种或多种系统和/或技术。自适应树结构可包括基于数据密度指定的层和/或节点(例如, 覆盖密集事件数据的节点可被拆分成子节点,而覆盖稀疏数据的节点可被指定为叶节点), 这与均勻的完整的树相反,其中各个层和/或节点是均勻的(例如,各个节点层可被均勻地拆分直到创建最后一个层层1具有1个节点,层2具有4个节点,层3具有16个节点,层 4具有64个节点等)。例如,自适应树结构可包括用于集中原始数据的区域的较多的层和 /或节点,而可包括用于稀疏原始数据的区域的较少的层和/或节点。以此方式,因为用于节点和/或层的存储空间可基于数据密度来分配(例如,仅在需要的地方而不在不需要的地方存在开销),所以可减少事件数据的开销存储。自适应树结构可包括与事件数据集内的事件的预先计算的分辨率相对应的一个或多个层。例如,较高的层,诸如层1或层2,可包括粗略粒度上的对事件数据的缩小分辨率,而较低的层,诸如层5或层6,可包括较精细粒度上的对事件数据的放大分辨率。因此, 特定层和/或节点可被用来确定在所需分辨率上的事件的节点数据。节点数据可被用来填充事件的可视化,诸如,事件的时间线。以此方式,用户可与时间线交互(例如,缩放、滚动等),以使得可基于从自适应树结构内的特定层和/或节点提取的节点数据来填充时间线内在相对应的分辨率上的事件的可视化。除了通过基于数据密度生成自适应树结构来减少存储开销之外,由于可例如不超过两个节点来满足对事件数据的请求,因此可增强时间线响应性。另外,节点可包括受限于一阈值数的多个事件,以使得可对作为节点数据被处理的最大数量的事件进行约束。以此方式,自适应树结构可包括事件数据的预先计算的分辨率, 该分辨率可被用来向用户提供事件数据的交互式时间线。
8
基于包括多个原始事件的事件数据集的数据密度来生成自适应树结构的一个实施例由图1中的示例性方法100示出。在102处,该方法开始。可以理解,事件数据集内的多个原始事件可对应于各种各样的数据(例如,随着时间被记录的数据、与应用的执行相关联的事件、在社交网络中发生的事件、文本数据、电子表格数据、逻辑数据等)。在104,可指定自适应树结构中的第一层。第一层可包括根节点。根节点的时间跨度可对应于事件数据集的总时间跨度(例如,120秒的200000个原始事件),并因此根节点可覆盖在事件数据集的总时间跨度内发生的原始事件(例如,根节点可覆盖200000个原始事件。)可以理解,被分配到一节点的多个事件可受限于一阈值数,以使得该节点可被分配不超过阈值数的事件。例如,限制被分配给节点的事件的数量可限制在填充时间线时被处理的事件的数量,这可增强时间线的响应性,诸如用户界面绘制次数(例如,被分配给一个或两个节点的事件可被用来满足对事件数据的请求以填充时间线)。阈值数量可表示可被分配给节点的事件(诸如概述事件和/或原始事件)的最大数量。可以理解,如果节点覆盖少于或等于阈值数量的事件数据集内的多个原始事件 (例如,节点的0-30秒的时间跨度覆盖事件数据集内的500个原始事件),则该节点可被指定为原始节点(没有子节点的叶节点)并且由该原始节点覆盖的原始事件可被分配到该原始节点。然而,如果节点覆盖大于阈值数量的事件数据集内的多个原始事件(例如,节点的 30-60秒的时间跨度覆盖事件数据集内的195500个原始事件,这大于1000的阈值数量), 则该节点可被指定为概述节点(具有预定数量的子节点的非叶节点)并且从原始事件中导出的多个概述事件可被分配到该概述节点,其中概述事件的数量可等于阈值数量。在导出概述事件的一个示例中,原始事件可被聚集成概述事件。具体地,具有与概述节点相关联的分辨率的合适时间跨度的原始事件被选为概述事件(例如,具有合适时间跨度的原始事件可以是具有最大足够时间跨度的原始事件以使得该原始事件在以当前缩放水平在时间线中被显示为例如矩形时可以容易地可见)。类似地,不包括与概述节点相关联的分辨率的合适时间跨度的原始事件可被聚集(例如组合)成在沿着时间线以当前缩放水平显示为矩形时可以可见的较大的概述事件。根节点可被分配从事件数据集的原始事件中导出的多个概述事件,因为根节点可覆盖事件数据集中大于阈值数量的原始事件(例如,根节点的120秒的时间跨度可覆盖 200000个原始事件,这大于1000的阈值数量)。概述事件的数量可等于阈值数量。以此方式,根节点可被指定为概述节点。在106,可在自适应树结构中指定一个或多个附加层。具体地,在108,对于自适应树结构的当前层,在110可作出关于紧接着当前层的前一层是否包括一个或多个概述节点(非叶节点)的确定。在112,如果前一层包括一个或多个概述节点,则对于各个概述节点在114可为概述节点生成预定数量的子节点,其中子节点的时间跨度可对应于概述节点的时间跨度的一小部分(例如,可为概述节点生成4个子节点,其中子节点包括等于概述节点的时间跨度的1/4的时间跨度)。可以理解,节点的时间跨度可对应于事件数据集内被该节点覆盖的原始事件的时间跨度。例如,概述节点可包括覆盖195500个事件的时间跨度30-60。可为概述节点生成预定数量(诸如4)的子节点,其中子节点的时间跨度对应于概述节点的30秒时间跨度的1/4 (例如,第一子节点可包括30-37. 5秒的时间跨度,以使得第一子节点覆盖事件数据集内在30-37. 5秒时间跨度内的原始事件;第二子节点可包括37. 5-45秒的时间跨度,以使得第二子节点覆盖数据内在37. 5-45秒时间跨度内的原始事件;以此类推)。在一个示例中,概述节点的子节点的各个时间跨度可包括相等的长度,其中子节点的各个时间跨度之和等于概述节点的时间跨度。在另一示例中,一个或多个子节点的各个时间跨度在不同子节点之间可以不同。类似地,虽然本文描述了为概述节点生成 4个子节点,其中子节点包括等于概述节点的时间跨度的1/4的时间跨度,但即时应用不旨在受限于此。即,可生成任何合适数量的子节点,其中子节点可包括任何合适的时间跨度。 此外,各个概述节点中的每个的子节点的数量可在不同概述节点之间不同和/或子节点的各个时间跨度也可不同。可以理解,可基于由节点覆盖的原始事件是否小于或等于阈值数量(例如,1000 个事件的阈值数量)来将为概述节点生成的各个子节点指定为概述节点或原始节点。在 116,如果事件数据集内被子节点的时间跨度覆盖的原始事件的数量小于或等于阈值数量 (例如,子节点的30-37. 5秒时间跨度覆盖447个原始事件,这小于1000个事件的阈值数量),则该子节点可被指定为原始节点且可被分配原始事件。然而,如果事件数据集内被子节点的时间跨度覆盖的原始事件的数量大于阈值数量(例如,子节点的37. 5-45秒时间跨度覆盖143006个原始事件,这大于1000个事件的阈值数量),则该子节点可被指定为概述节点且可被分配从小于或等于阈值数量的原始事件中导出的多个概述事件。在导出概述事件的一个示例中,由时间跨度覆盖的原始事件可被聚集为概述节点的概述事件。因此,包括短时间跨度的原始事件(例如,在时间线内显示时在视觉上可能太小的原始事件)可被聚集在一起,以使得概述事件可指示两个或更多个原始事件。另选地或另外地,小于或等于阈值数量的多个原始事件可被选为概述节点的事件(例如,可选择更能揭示或指示由所有原始数据覆盖的内容的那些原始事件)。以此方式,可基于事件数据集内的事件的数据密度来生成包括一个或多个节点层的自适应树结构。例如,稀疏数据区域可导致没有子节点的原始节点(例如,具有覆盖500 个原始事件的时间跨度的节点可被指定为被分配500个原始事件的原始节点),而密集数据区域可导致具有子节点的概述节点(例如,具有覆盖195500个原始事件的时间跨度的节点可导致被分配1000个概述事件的概述节点,以使得可为概述节点创建子节点)。可以理解,可从自适应树结构中确定各事件的节点数据。例如,可从自适应树结构中确定各事件的节点数据以满足用事件数据填充时间线的请求。具体地,可接收请求的时间跨度(例如,与查看动作、缩放动作、滚动动作和/或时间线内的其他动作相对应的时间
跨度)。可确定与所请求的时间跨度^^1T相对应的层(L),其中τ是事
件数据集的总时间跨度,而CPNL是每个概述节点的子节点的预定数量。例如,自适应树结构可包括在T= 120秒的总时间跨度内的事件,可为自适应树结构内的各个概述节点(非叶节点)创建了 4个子结点(CPNL = 4)。因此,30-35秒的请求的时间跨度可被用来确定层(L) = 3(例如,当层(L) = 3 时满足{120/4~L} < 5 <= {120/4~L_1},因为 1.875 < 5 <=7. 5)。可基于最初在层(L)对节点求值来确定与请求的时间跨度相对应的自适应树结构内的节点数据,这可涉及以下四个确定中的一个或多个。第一,如果请求的时间跨度完全落在层(L)的一节点内,则该节点被确定为包括节点数据(例如,请求的时间跨度30-35可完全落在具有时间跨度30-37. 5的层3的节点内)。第二,如果请求的时间跨度完全落在层(L)的两个相邻节点内,则这两个相邻节点可被确定为包括节点数据(例如,请求的时间跨度35-40可完全落在层3内具有时间跨度30-37. 5和37. 5-45的两个相邻时间内)。第三,如果请求的时间跨度的第一段完全落在层(L)的第一节点内而请求的时间跨度的第二段不落在层(L)的各个节点内(例如,请求的时间跨度58-63可包括可完全落在层3具有时间跨度52. 5-60的第一节点内的第一段58-60,但第二段60-63可能不落在层(L)的各个节点内),则第一节点可被确定为包括节点数据的第一部分,而不同层(例如,层(L)之前的一层)的第二节点可被确定为包括节点数据的第二部分,其中请求的时间跨度的第二段完全落在第二节点内。可以理解,第一节点可以是层(L)内的任意节点,而第二节点可以是另一层内的任意节点。第四,如果层(L)的节点中没有一个跨越请求的时间跨度的至少一部分,则层(L)可递减一层至前一层并使用递减的层迭代地确定节点数据。在一个示例中,可从不超过两个节点中导出节点数据。可以理解,虽然文本使用了诸如第一节点、第二节点、第一部分、第二部分、第一段和/或第二段之类的语言以及类似的语言,但这些语言不意味着是限制性的。例如,第一节点可以是层(L)内的任何节点。类似地,诸如第一和第二之类的语言在本文中仅被用作标识符且不必指示事物的次序(例如,一项在另一项之前(时间上))。可以理解,节点数据可被用来导出时间线的事件数据,它可被呈现给用户。如果节点数据对应于概述节点的概述事件,则概述事件可与节点数据一起存储(例如,概述事件在存储在概述节点内时先前可能已经从原始事件被聚集成合适的可视分辨率)。如果节点数据对应于原始节点的原始事件,则原始事件可被聚集成概述事件,它可被存储在节点数据中(例如,在时间线的当前分辨率下在视觉上可能很小的原始事件可为了时间线内的事件的视觉清晰度被聚集成较大的概述事件)。时间线可以是交互式的,以使得用户可查看、缩放、滚动时间线和/或在时间线内执行其他用户输入。在一个示例中,可接收对应于在时间线内的缩放动作的用户输入。用户输入可包括第二请求的时间跨度。第二请求的时间跨度可与对应于当前时间线视图的请求的时间跨度不同。可在自适应树结构中确定对应于第二请求的时间跨度的第二节点数据 (例如,一个或两个节点可被确定为包括第二节点数据)。以此方式,可用对应于第二节点数据的事件来更新时间线以呈现新的时间线视图。在另一示例中,可接收对应于在时间线内的滚动动作的用户输入。用户输入可包括第二请求的时间跨度。第二请求的时间跨度可与对应于当前时间线视图的请求的时间跨度不同。可在自适应树结构中确定对应于第二请求的时间跨度的第二节点数据(例如,一个或两个节点可被确定为包括第二节点数据)。以此方式,可用对应于第二节点数据的事件来更新时间线以呈现新的时间线视图。在118,该方法结束。从自适应树结构中确定事件的节点数据的一个实施例由图2的示例性方法200示出。在202处,该方法开始。在204,可接收请求的时间跨度。例如,用户可请求对时间线内对应于请求的时间跨度的事件的特定视图(例如,查看在0-20秒内发生的事件的请求)。
在206,可计算对应于gf <请求的时间跨度< CpTNLL_x的层(L),其中T是事件数
据集的总时间跨度(例如,2000000个事件的120秒),而CPNL是每个概述节点的子节点的预定数量(例如,可能为自适应树中的各个概述节点(非叶节点)创建了4个子节点。) 即,自适应树结构可包括在T= 120秒的总时间跨度内的事件,其中可为自适应树结构内的各个概述节点创建了 4个子结点(CPNL = 4)。在一个示例中,0-20秒的请求时间跨度可被用来确定层(L) =2(例如,当层(L) =2时满足{120/4~L} <20<= {120/4~L_1},因为 7. 5 < 20 <= 30)。在208,可在自适应树结构中确定对应于请求的时间跨度的节点数据。可以理解, 节点数据可包括从自适应树结构中的一个或两个节点中导出的事件,它可被用来使用这些事件来填充时间线。在一个示例中,确定节点数据可包括以下确定中的一个或多个。第一, 在210,如果请求的时间跨度完全落在层(L)的一节点内,则该节点被确定为包括节点数据 (例如,请求的时间跨度0-20秒可完全落在具有时间跨度0-30秒的层2的节点内)。第二, 在212,如果请求的时间跨度完全落在层(L)的两个相邻节点内,则这两个相邻节点可被确定为包括节点数据(例如,请求的时间跨度10-40秒可落在具有时间跨度0-30秒的层2的第一节点和具有时间跨度30-60秒的层2的第二节点内,其中请求的时间跨度完全落在时间跨度的组合内)。第三,在214,如果请求的时间跨度的第一段完全落在层(L)的第一节点内而请求的时间跨度的第二段不落在层(L)的各个节点内,则在216,第一节点可被确定为包括节点数据的第一部分,在218,不同层(例如,层(L)之前的一层)内的第二节点可被确定为包括节点数据的第二部分,其中请求的时间跨度的第二段完全落在第二节点内。以此方式,可从层(L)的第一节点和不同层的第二节点中导出节点数据。第四,在220,如果层(L)的节点中没有一个跨越请求的时间跨度的至少一部分, 则层(L)可递减一层至前一层,并可使用递减的层迭代地确定节点数据。以此方式,对应于请求的时间跨度的事件的节点数据可由自适应树结构内的一个或两个节点满足。确定适于时间线的当前视图的查看分辨率的事件的节点数据可以是有益的(例如,用于放大的视图的较精细粒度的事件、用于缩小的视图的较粗略粒度的事件等)。即,时间线可例如沿着时间轴将事件显示为矩形。然而,某些事件可能持续时间太短而无法容易地沿着时间线查看。因此,在以针对时间线的当前视图的分辨率进行查看时,某些事件可被聚集(组合)以创建容易可见的事件。具体地,如果节点数据对应于概述节点的概述事件, 则概述事件可被存储在事件的节点数据中(例如,概述事件在被分配到概述节点时先前可能已经从原始事件被聚集)。如果节点数据对应于原始节点的原始事件,则原始事件可被聚集(或可以不被聚集)成概述事件,它可被存储在节点数据中(例如,在时间线的当前缩放水平下在视觉上可能很小的原始事件可为了时间线内的事件的视觉清晰度被聚集成视觉上较大的概述事件)。可呈现用从节点数据中导出的事件数据填充的时间线。时间线可以是交互式时间线,它允许用户查看、滚动、缩放时间线和/或与时间线执行其他动作。可用从自适应树结构中的一个或两个节点中导出的事件来填充时间线。例如,可接收对应于在时间线内的缩放动作和/或滚动动作的用户输入。用户输入可包括可与对应于当前时间线视图的请求的时间跨度不同的第二请求的时间跨度。可在自适应树结构中确定对应于第二请求的时间跨度的第二节点数据。以此方式,可用响应的方式使用事件来填充时间线,因为仅一个或两个节点可被确定为包括节点数据,这可减少处理时间。在222,该方法结束。
图3示出被配置成用于基于事件数据集314的密度生成自适应树结构308的系统 300的示例,它可被用来使用事件数据320来填充时间线332。在一个示例中,事件数据集 314可包括在应用的执行期间被记录的原始事件(例如,120秒内的200000个原始事件)。 可生成具有一个或多个节点层的自适应树结构308,其中一层可表示一个分辨率的事件。例如,较高的层,诸如层1,可包括粗略粒度上的事件数据的缩小的分辨率,它可被用来显示时间线322内事件的缩小视图。较低的层,诸如层5,可包括较精细粒度上的事件数据的放大的分辨率,它可被用来显示时间线322内事件的放大视图。系统300可包括自适应树生成器组件302、节点提取器组件310和/或时间线呈现组件312。可以理解,自适应树生成器302可与阈值数量306相关联。在一个示例中,阈值数量306可指定可被分配到一节点的事件的最大数量(例如,阈值数量306可指定一节点可包括不超过1000个事件)。阈值数量306可被自适应树生成器302用来确定节点被指定为概述节点还是原始节点。例如,节点可与对应于事件数据集314内原始事件的时间跨度的时间跨度相关联。如果节点的时间跨度覆盖大于阈值数量306的原始事件(例如, 节点的时间跨度30-60秒可覆盖事件数据集314内的195500个原始事件),则该节点可被指定为概述节点,且从原始事件中导出的概述事件可被分配到该概述节点,其中概述事件的数量可等于阈值数量306(例如,195500个原始事件可被聚集成1000个概述事件)。然而,如果由节点的时间跨度覆盖的事件数据集314内的原始事件的数量少于或等于阈值数量306,则该节点可被指定为原始节点,且原始事件可被分配到原始节点。自适应树生成器302可与预定数量304相关联。在一个示例中,预定数量304可指定为概述节点创建的子节点的数量。在指定自适应树结构308的层时,自适应树生成器 302可使用预定数量304 (例如,如果前一层包括概述节点,则自适应树生成器302可为概述节点生成等于预定数量的多个子节点,诸如4个子节点)。在生成自适应树结构308的一个示例中,自适应树生成器302可被配置成指定自适应树结构308中的第一层(例如,指定层316)。第一层可包括被分配等于阈值数量306 的多个概述事件的根结点。具体地,根结点的时间跨度可对应于事件数据集314的总时间跨度(例如,120秒),它可覆盖事件数据集314中多于预定数量306的原始事件(例如, 200000个原始事件)。因此,根结点可被指定为概述节点。自适应树生成器302可被配置成指定自适应树结构308中的一个或多个附加层 (例如,指定层316)。具体地,对于自适应树结构308的当前层,可作出关于紧接着当前层的前一层是否包括一个或多个概述节点的确定。如果前一层包括一个或多个概述节点,则对于各个概述节点可为概述节点生成等于预定数量304的多个子节点。子节点的时间跨度可对应于概述节点的时间跨度的一小部分(例如,概述节点可跨越0-30秒,以使得可生成分别具有时间跨度0-7. 5,7. 5-15、15-22. 5和22. 5-30秒的4个子节点)。各个子节点可被指定被分配原始事件的原始节点或被分配概述事件的概述节点。具体地,对于各个子节点如果由子节点的时间跨度覆盖的事件数据集314内的原始事件的数量少于或等于阈值数量306,则该子节点可被指定为原始节点并可被分配原始事件,否则该子节点可被指定为概述节点并可被分配从由该子节点的时间跨度覆盖的事件数据集内的原始事件中导出的多个概述事件,其中概述事件的数量等于阈值数量306。以此方式,自适应树生成器302可生成包括一个或多个节点层的自适应树结构308,其中一层对应于可在时间线322内显示的一个分辨率的事件。节点提取器310可被配置成确定自适应树结构308内的事件的节点数据318。节点数据318可由时间线呈现组件312用来使用事件数据320来填充时间线322。具体地,节点提取器310可接收请求的时间跨度。例如,请求的时间跨度可对应于时间线322(例如, 用户可指定要在时间线322内查看的事件的所需时间跨度)。节点提取器310可计算对应
于^^ <请求的时间跨度^ cpTnll^的层(L),其中T是事件数据集314的总时间跨
度,而CPNL是每个概述节点的子节点的预定数量304。节点提取器310可确定对应于自适应树结构308中的请求的时间跨度的节点数据 318。在一个示例中,节点提取器310可被配置成通过执行以下四个确定中的一个或多个来确定节点数据318。第一,如果请求的时间跨度完全落在层(L)的一节点内,则节点提取器 310可将该节点确定为包括节点数据318。第二,如果请求的时间跨度完全落在层(L)的两个相邻节点内,则节点提取器310可将这两个节点确定为包括节点数据。第三,如果请求的时间跨度的第一段完全落在层(L)的第一节点内而请求的时间跨度的第二段不落在层(L) 的各个节点内,则第一节点可被确定为包括节点数据318的第一部分,而不同层(例如,层 (L)之前的一层)内的第二节点可被确定为包括节点数据的第二部分,其中请求的时间跨度的第二段完全落在该第二节点内。可以理解,第一节点可以是层(L)内的任意节点,而第二节点可以是另一层内的任意节点。第四,如果层(L)的节点中没有一个跨越请求的时间跨度的至少一部分,则层(L)可递减一层至前一层,并且节点提取器310可使用递减的层来确定节点数据318。以此方式,节点提取器310可基于请求的时间跨度来确定从自适应树结构308中的一个或两个节点中导出的节点数据318。节点数据318可由时间线呈现组件312用来使用对应于请求的时间跨度的事件来填充时间线322。节点提取器310可被配置成将节点数据318格式化为适于时间线322的当前视图的查看分辨率(例如,用于放大的视图的较精细粒度的事件、用于缩小的视图的较粗略粒度的事件等)。具体地,如果节点数据318对应于概述节点的概述事件,则概述事件可被用作节点数据318和/或事件数据320 (例如,概述事件在被分配到自适应树结构中的概述节点时先前可能已经从原始事件被聚集)。如果节点数据对应于原始节点的原始事件,则原始事件可被聚集(或可以不被聚集)成概述事件,它可被用作节点数据318和/或事件数据320(例如,在时间线322的当前缩放水平下在视觉上可能很小的原始事件可为了时间线322内的事件的视觉清晰度被聚集成视觉上较大的概述事件)。时间线呈现组件312可被配置成呈现由节点数据318表示的事件数据320的时间线322。时间线呈现组件312可被配置成用第二节点数据表示的第二事件数据来更新时间线322,该第二节点数据是由节点提取器310响应于对应于滚动动作、缩放动作的用户输入和/或时间线322内的其他用户输入来确定的。以此方式,用户可交互式地查看时间线322 内的事件。可以理解,时间线呈现组件312可被配置成用各种各样的格式来呈现从节点数据316中导出的事件数据320,这些格式诸如事件的文本呈现、事件的图形呈现、事件的基于web的呈现、事件的电子表格表示等。图4示出生成自适应树结构406的示例400。事件数据集402可包括在0_120秒之间被记录的200000个原始事件的任意分布。自适应树生成器404可被配置成生成自适应树结构406。预定数量=4可指定要为自适应树结构406内的概述节点(非叶节点)生成4个子节点。阈值数量=1000可指定一节点可包括不超过1000个事件。自适应树生成器404可生成包括一个或多个节点层的自适应树结构406,其中一层可对应于可被用来填充时间线的一个分辨率的事件数据。具体地,自适应树生成器404 可指定包括根结点408的层(1)。根结点408的时间跨度0-120秒可对应于事件数据集402 的总时间跨度0-120秒。因此,根结点408可覆盖事件数据集402的200000个原始事件。 然而,根结点408可被限于由阈值数量=1000所指定的1000个事件。因此,可向从200000 个原始事件中导出的1000个概述事件分配给附近的408,且根结点408可被指定为概述节点ο自适应树生成器404可指定自适应树结构406内的一个或多个附加层。例如,自适应树生成器404可指定层O)。在指定层( 期间,可作出关于层(1)(紧接着层O)的前一层)是否包括一个或多个概述节点的确定。因为根结点408是概述节点,可为该根结点408生成等于预定数量4的4个子节点。S卩,可在层O)中生成节点A 410、节点B 412、 节点C 414和节点D 416。子节点的时间跨度可等于根结点408的时间跨度的一小部分。 例如,节点A 410的时间跨度可以是0-30秒,节点B 412的时间跨度可以是30-60秒,节点 C 414的时间跨度可以是60-90秒,和/或节点D的时间跨度可以是90-120秒。因为事件数据集402内原始事件的分布可以是任意的,所以由层O)的各个节点的时间跨度所覆盖的原始事件的数量可以相同或不同。例如,节点A410的时间跨度0-30可覆盖事件数据集402内的500个原始事件。因为节点A410覆盖的500个原始事件少于或等于阈值数量=1000,所以节点A 410可被指定为原始节点(没有层(3)中的子节点的叶节点且500个原始事件可被分配给节点A 410)。节点B 412的时间跨度30-60可覆盖事件数据集402内的195500个原始事件。因为节点B 412覆盖的195500个原始事件大于阈值数量=1000,所以节点B 412可被指定为概述节点(具有层(3)中的子节点的非叶节点)且从195500个原始事件中导出的1000个概述事件可被分配给节点B412。节点C 414的时间跨度60-90可覆盖事件数据集402内的1000个原始事件。因为节点C 414覆盖的1000个原始事件少于或等于阈值数量=1000,所以节点C 414可被指定为原始节点(没有层(3) 中的子节点的叶节点且1000个原始事件可被分配给节点C 414)。节点D 416的时间跨度 90-120可覆盖事件数据集402内的3000个原始事件。因为节点D 416覆盖的3000个原始事件大于阈值数量=1000,所以节点D 416可被指定为概述节点(具有层(3)中的子节点的非叶节点)且从3000个原始事件中导出的1000个概述事件可被分配给节点D 416。可以理解,自适应树生成器404可指定自适应树结构406内的其他层,诸如层(3)、 层⑷和/或诸如层(N)之类的其他层。例如,自适应树生成器404可将层(3)内的节点E 418、节点F 420、节点G 422和/或节点H 4 指定为节点B 412(层O)的概述节点)的子节点。自适应树生成器可将层(3)内的节点I 426、节点J 428、节点K 430和/或节点 L 432指定为节点D 416(层(3)的概述节点)的子节点。以此方式,自适应树生成器404 可生成具有一个或多个节点层的自适应树结构,其中一层可对应于可被用来填充时间线的一分辨率的事件数据(例如,层(1)可包括可被用来提供事件的缩小视图的事件数据的粗略粒度的事件数据;层C3)可包括可被用来提供事件的放大视图的事件数据的精细粒度的事件数据;以此类推)。
图5示出基于请求的时间跨度502确定自适应树结构506内的节点数据534的示例500。可以理解,自适应树结构506可对应于图4的自适应树结构406。节点提取器504 可被配置成基于40-55秒的请求的时间跨度502来确定自适应树结构506内的节点数据 534。在一个示例中,节点数据534可被用作使用对应于40-55秒的请求的时间跨度502的事件来填充时间线的事件数据536。在一个示例中,节点提取器504可使用40-55秒的请求的时间跨度502来将自适应树结构506内的一个或两个节点确定为包括节点数据534。例如,节点提取器504可基
干^!^请求的时间跨度么^^^來瑜定层(L) 二2,其中T = 120秒(事件数
据集的总时间)而CPNL = 4(概述节点的子节点的预定数量)。S卩,当层(L) =2时满足 {120/4~L} < 15 <= {120/4~L-1},因为 7. 5 < 15 <= 30。在层 2 内,节点提取器 504 可确定40-55秒的请求的时间跨度502完全落在节点B的时间跨度30-60秒内。因此,节点提取器504可将节点B 512确定为包括节点数据534。因为节点B 512是包括概述事件的概述节点(例如,从事件数据集内由节点B的时间跨度30-60秒覆盖的195500个原始事件中导出的1000个概述事件),所以节点B 512的1000个概述事件可被存储在节点数据534 中。以此方式,在基于40-55秒的请求的时间跨度502来填充时间线时,节点数据534可被用作包括来自节点B 512的事件的事件数据534。图6示出基于请求的时间跨度602确定自适应树结构606内的节点数据634的示例600。可以理解,自适应树结构606可对应于图4的自适应树结构406。节点提取器604 可被配置成基于35-40秒的请求的时间跨度602来确定自适应树结构606内的节点数据 634。在一个示例中,节点数据634可被用作使用对应于35-40秒的请求的时间跨度602的事件来填充时间线的事件数据636。在一个示例中,节点提取器604可使用35-40秒的请求的时间跨度602来将自适应树结构606内的一个或两个节点确定为包括节点数据634。例如,节点提取器604可基于
-^T <请求的时间跨度< cpTNLL_x来确定层(L) = 3,其中T =120秒(事件数据集的
总时间)而CPNL = 4 (概述节点的子节点的预定数量)。即,当层(L) =3时满足{120/4~L} < 5 <= {120/4"L-1},因为 1. 875 < 5 < = 7. 5。在层 3 内,节点提取器 604 可确定;35_40 秒的请求的时间跨度602完全落在两个相邻节点(节点E 618和节点F 620)内。具体地, 35-40的请求的时间跨度602完全落在节点E 618的时间跨度30-37. 5以及节点F 620的时间跨度37. 5-45内。因此,节点提取器604可将节点E 618和节点F 620确定为包括节点数据634。因为节点E 618是包括原始事件的原始节点,所以原始事件可被聚集(或可以不被聚集)为可被存储在节点数据634中的概述事件。因为节点F 620是包括概述事件的概述节点(例如,从事件数据集内由节点E的时间跨度30-37. 5秒覆盖的原始事件中导出的1000个概述事件),所以节点F 620的1000个概述事件可被存储在节点数据634中。 以此方式,在基于35-40秒的请求的时间跨度602来填充时间线时,节点数据634可被用作包括(并非)从节点E 618的原始事件聚集的概述事件和来自节点F 620的概述事件的事件数据636。图7示出基于请求的时间跨度702确定自适应树结构706内的节点数据734的示例700。可以理解,自适应树结构706可对应于图4的自适应树结构406。节点提取器704可被配置成基于58-62秒的请求的时间跨度702来确定自适应树结构706内的节点数据 734。在一个示例中,节点数据734可被用作使用对应于58-62秒的请求的时间跨度702的事件来填充时间线的事件数据736。在一个示例中,节点提取器704可使用58-62秒的请求的时间跨度702来将自适应树结构706内的一个或两个节点确定为包括节点数据734。例如,节点提取器704可基于
权利要求
1.一种用于基于包括多个原始事件的事件数据集的数据密度来生成自适应树结构的方法(100),包括:指定(104)自适应树结构内的第一层,所述第一层包括被分配来自事件数据集的阈值数量的概述事件的根结点,所述根结点的时间跨度对应于所述事件数据集的总时间跨度, 所述根结点被指定为概述节点;以及指定(106)所述自适应树结构内的一个或多个附加层,所述指定包括 对于所述自适应树结构的当前层(108)确定(110)紧接着所述当前层的前一层是否包括一个或多个概述节点;以及如果前一层包括一个或多个概述节点,则对于各个概述节点(112) 为概述节点生成(114)预定数量的子节点,子节点的时间跨度对应于所述概述节点的时间跨度的一小部分;以及对于各个子节点(116)如果子节点的时间跨度覆盖的事件数据集内的原始事件的数量少于或等于所述阈值数量,则将所述子节点指定为原始节点并将所述原始事件分配给所述原始节点,否则将所述子节点指定为概述节点并分配从所述子节点的时间跨度覆盖的事件数据集内的原始事件中导出的多个概述事件,所述概述事件的数量等于所述阈值数量。
2.如权利要求1所述的方法,其特征在于,包括 接收请求的时间跨度;计算层(L),所述层(L)对应于·^^ <请求的时间跨度< 二广,其中T是事件数据集的总时间跨度而CPNL是每个概述节点的子节点的预定数量;以及确定所述自适应树结构内对应于所述请求的时间跨度的节点数据,确定节点数据包括如果所述请求的时间跨度完全落在层(L)的一节点内,则将所述节点确定为包括所述节点数据;如果所述请求的时间跨度完全落在层(L)的两个相邻节点内,则将所述两个相邻节点确定为包括所述节点数据;如果所述请求的时间跨度的第一段完全落在层(L)的第一节点内且所述请求的时间跨度的第二段不落在层(L)的各节点内,则将所述第一节点确定为包括所述节点数据的第一部分;以及将前一层内的第二节点确定为包括所述节点数据的第二部分,其中所述请求的时间跨度的第二段完全落在所述第二节点内;以及如果层(L)的节点中没有一个跨越所述请求的时间跨度的至少一部分,则将所述层 (L)递减一层至前一层并迭代确定节点数据。
3.如权利要求1所述的方法,其特征在于,分配多个概述事件包括 聚集原始事件作为概述节点的概述事件。
4.如权利要求1所述的方法,其特征在于,至少一个概述事件指示两个或更多个原始事件。
5.如权利要求2所述的方法,其特征在于,所述节点数据从不超过两个节点中导出。
6.如权利要求2所述的方法,其特征在于,包括 呈现包括由所述节点数据表示的事件数据的时间线。
7.如权利要求6所述的方法,其特征在于,包括接收对应于在时间线内的缩放动作的用户输入,所述用户输入包括与所述请求的时间跨度不同的第二请求的时间跨度;以及确定所述自适应树结构内对应于所述第二请求的时间跨度的第二节点数据。
8.如权利要求6所述的方法,其特征在于,包括接收对应于在时间线内的滚动动作的用户输入,所述用户输入包括与所述请求的时间跨度不同的第二请求的时间跨度;以及确定所述自适应树结构内对应于所述第二请求的时间跨度的第二节点数据。
9.如权利要求2所述的方法,其特征在于,包括 如果所述节点数据对应于原始节点,则将原始节点的原始事件聚集成概述事件;以及将所述概述事件存储在节点数据中。
10.如权利要求1所述的方法,其特征在于,概述节点的子节点的各个时间跨度包括相等长度,其中子节点的各个时间跨度的总和等于所述概述节点的时间跨度。
11.一种用于基于包括多个原始事件的事件数据集的密度来生成自适应树结构的系统 (300),包括自适应树生成器(302),被配置成指定自适应树结构(308)内的第一层,所述第一层包括被分配来自事件数据集的阈值数量的概述事件的根结点,所述根结点的时间跨度对应于所述事件数据集的总时间跨度, 所述根结点被指定为概述节点;以及指定所述自适应树结构(308)内的一个或多个附加层,所述指定包括 对于所述自适应树结构(308)的当前层确定紧接着所述当前层的前一层是否包括一个或多个概述节点;以及如果前一层包括一个或多个概述节点,则对于各个概述节点为概述节点生成预定数量的子节点,子节点的时间跨度对应于所述概述节点的时间跨度的一小部分;以及对于各个子节点如果子节点的时间跨度覆盖的事件数据集内的原始事件的数量少于或等于所述阈值数量,则将所述子节点指定为原始节点并将所述原始事件分配给所述原始节点,否则将所述子节点指定为概述节点并分配从所述子节点的时间跨度覆盖的事件数据集内的原始事件中导出的多个概述事件,所述概述事件的数量等于所述阈值数量。
12.如权利要求11所述的系统,其特征在于,包括 节点提取器,被配置为接收请求的时间跨度;计算层(L),所述层(L)对应于·^^ <请求的时间跨度<,其中T是事件数据集的总时间跨度而CPNL是每个概述节点的子节点的预定数量;以及确定所述自适应树结构内对应于所述请求的时间跨度的节点数据,确定节点数据包括如果所述请求的时间跨度完全落在层(L)的一节点内,则将所述节点确定为包括所述节点数据;如果所述请求的时间跨度完全落在层(L)的两个相邻节点内,则将所述两个相邻节点确定为包括所述节点数据;如果所述请求的时间跨度的第一段完全落在层(L)的第一节点内且所述请求的时间跨度的第二段不落在层(L)的各节点内,则将所述第一节点确定为包括所述节点数据的第一部分;以及将前一层内的第二节点确定为包括所述节点数据的第二部分,其中所述请求的时间跨度的第二段完全落在所述第二节点内;以及如果层(L)的节点中没有一个跨越所述请求的时间跨度的至少一部分,则将所述层 (L)递减一层至前一层并迭代确定节点数据。
13.如权利要求12所述的系统,其特征在于,包括 时间线呈现组件212,被配置成呈现由所述节点数据表示的事件数据的时间线。
14.如权利要求13所述的系统,其特征在于,所述时间线呈现组件被配置成用由第二节点数据表示的第二事件数据来更新时间线,所述第二节点数据由所述节点提取器响应于与时间线内的滚动动作和缩放动作中的至少一个相对应的用户输入来确定。
15.如权利要求12所述的系统,其特征在于,所述节点提取器被配置成 如果所述节点数据对应于原始节点,则将原始节点的原始事件聚集成概述事件;以及将所述概述事件存储在节点数据中。
全文摘要
本发明描述了用于可视化数据的自适应树结构。公开了用于基于事件的数据密度来生成用于存储事件数据的自适应树结构的一种或多种系统和/或技术。具体地,自适应树结构可包括一个或多个节点层,其中一层可对应于一事件分辨率。节点可对应于记录事件数据期间的特定时间跨度。节点可基于该节点覆盖的时间跨度内发生的事件的数量被指定为包括原始事件的原始节点或包括概述事件的概述节点。
文档编号G06F17/30GK102446220SQ201110408039
公开日2012年5月9日 申请日期2011年11月29日 优先权日2010年11月30日
发明者A·达迪欧莫夫, M·阿加瓦尔, 季新华 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1