一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据缓存、动态代码生成和数据可视化技术的制作方法

2022-06-01 16:33:15 来源:中国专利 TAG:
数据缓存、动态代码生成和数据可视化技术1.对相关申请的交叉引用2.本技术要求2019年4月23日提交的题为“datacaching,dynamiccodegeneration,anddatavisualizationtechnology”第62/837,642号美国临时申请的权益,该美国临时申请通过引用并入。
技术领域
:3.描述了用于相对大的数据集的数据缓存、动态代码生成和/或数据可视化的技术。
背景技术
::4.数据可视化是以图像或图形格式展示数据,并且涉及数据的可视化表示的创建和研究。数据可视化使最终用户能够看到在视觉上展示的数据分析,因此用户可以掌握有难度的概念或识别新的模式。技术实现要素:5.在一些方面,本公开的主题涵盖一种用于数据可视化的方法,包括:定义包括用于数据可视化的一个或多个钻取路径(drillpath)的模板(template);执行动态代码生成(dynamiccodegeneration)以针对该一个或多个钻取路径构建至少一个存储过程,动态代码生成包括生成用于计算在所定义的模板中所包括的该一个或多个钻取路径的数据度量字段(datametricfield)的动态代码;基于用户输入、所定义的模板和该至少一个存储过程,导入使用所生成的动态代码计算数据度量字段所需的源数据;在缓存(cache)中且基于所生成的动态代码来缓存所导入的源数据和使用所生成的动态代码而计算的数据度量字段;以及基于缓存数据生成至少一个数据结构作为用于一个或多个用户设备的数据可视化输出,该至少一个数据结构启用在所定义的模板中所包括的一个或多个钻取路径的数据可视化。6.数据可视化的实现方案可以包括以下特征中的一个或多个。例如,在一些实现方案中,该方法还包括:通过用户接口应用程序编程接口(api)获得源数据访问;以及使用用户接口api将源数据直接摄取到工作空间中以供查看,其中用户接口api涉及用于数据处理的库(library)并且启用到一个或多个用户设备的数据可视化输出。在一些实现方案中,源数据的导入包括:将源数据存储到数据库;将存储的源数据修改为由其他用户或应用程序用于数据处理的形式;以及为存储的源数据的数据安全来注册(register)和监控一个或多个用户设备。7.在一些实现方案中,一个或多个钻取路径是指穿过源数据的数据通路(datapathway),源数据被分成组、构成每个组的行和显示在每个行内的字段,并且该至少一个数据结构指定标签、格式以及源数据是出现在一个或多个钻取路径的任何级别还是仅出现在该一个或多个钻取路径的最深向下钻取级别(amostdrilleddownlevel)。在一些实现方案中,该方法还包括:在数据库中定义参考数据(referencedata);以及通过用户接口api向数据库发送指令,其中基于通过用户接口api向数据库发送的指令,从源数据中选择一个数据度量字段用于具体的数据处理目标。在一些实现方案中,数据缓存包括:将导入的源数据缩减(narrowdown)到存储在缓存中的缓存数据,导入的源数据具有比存储在缓存中的缓存数据更大的大小;选择模板来定义数据过滤和数据格式重排信息;通过使用该一个或多个钻取路径定义不同的数据层次结构(datahierarchy),其中该一个或多个钻取路径中的每一个定义一数据层次结构;接收源数据信息以确定源数据布局(layout)和所生成的用于缓存的动态代码;以及基于至少一个存储过程并通过使用数据管理功能来构建缓存。在一些实现方案中,数据层次结构是数据树的格式并且包括与该一个或多个钻取路径对应的源数据组节点。在一些实现方案中,一个或多个缓存被存储在缓存中,缓存以度量字段的形式存储数据,并且该缓存是远程数据库。8.在一些实现方案中,动态代码生成包括:识别用于数据可视化的源数据;基于所识别的源数据和至少一个存储过程来计算数据度量字段;确定数据分组策略;以及基于所计算的数据度量字段和所确定的数据分组策略创建动态代码来构建缓存数据。在一些实现方案中,源数据信息包括数据源、度量字段、层次结构的钻取路径和groupby语句。在一些实现方案中,基于缩减的源数据,从汇总计算、平均值计算、中值计算、最小值计算或最大值计算中的至少一个计算度量字段。9.在一些实现方案中,该方法还包括:分别为该一个或多个钻取路径处理多个缓存;在一个或多个用户设备之间共享数据可视化输出;以及通过图形数据工具展示从汇总级别向下钻取的多个级别的可视化数据。在一些实现方案中,该方法还包括:将多个数据可视化输出组合成利用可视化导航的一个自定义可视化视图;以及通过使用底层缓存数据集来呈现示出了跨预选数据集的趋势(trend)的控制板(dashboard)。在一些实现方案中,该方法还包括:基于模板调整(templateadjustment),重建模板以用于在数据可视化输出中预览;以及模板重建验证,包括:初始化模板的重建模型;接收模板的启用结构(enabledstructure)的列表;接收多个字段的列表,这些字段包括源和度量字段、重建模型的结构字段、对重建模型的直接引用(directreference)字段和对重建模型的父引用(parentreference)字段;以及将重建模型序列化为json对象以为模板计算新的散列(hash)。10.在一些实现方案中,基于从模板调整生成的散列值与随时间存储的散列值的比较来确定模板重建。在一些实现方案中,基于从模板调整生成的散列值与存储在模板中的散列值相匹配,提供数据可视化输出以显示预览而不重建模板或生成缓存,以及基于从模板调整生成的散列值不同于存储在模板中的散列值,通过重新生成至少一个存储过程和缓存来在预览之前重建模板。在一些实现方案中,模板调整包括:数据源的更改,包括更改用在别处的字段的名称,当字段用在别处时更改数据类型,更改模板中使用的所计算的列值的表达式(expression),以及更改模板中使用的所计算的列值的汇总值;以及更改数据可视化输出中源数据的外观,包括颜色、大小、排序、网格(grid)、记分卡(scorecard)或控制板。在一些实现方案中,该方法还包括:通过验证api来验证用户输入以避免设计模板、生成动态代码和构建缓存中涉及的问题;以及通过用户接口工具使用至少一个数据结构来执行源数据和所计算的度量字段的可视化。11.在附图和以下描述中阐述了一种或多种实现的细节。从描述、附图和权利要求中,其他方面、特征和优点将是清楚的。附图说明12.图1是示出了示例数据可视化系统的框图。13.图2是示出了示例数据可视化系统中的示例数据缓存操作的框图。14.图3是示出了数据可视化操作的示例处理的流程图。15.图4是示出了数据缓存的示例处理的流程图。16.图5是示出了动态代码生成的示例处理的流程图。17.图6是示出了模板重建验证的示例处理的流程图。18.图7是示出了增强模板验证的示例处理的流程图。19.图8示出了用于动态定义数据可视化的高级设计器模块的示例。20.图9示出了允许用户查看比汇总级别更深的多个级别中的数据的图形数据工具的示例。21.图10示出了动态创建的可自定义的标注(callout)特征的示例。22.图11示出了查看和导出节点数据的示例。23.图12示出了一个或多个底层专有缓存数据集的示例,以呈现一个或多个趋势的控制板图示。24.图13示出了用于数据可视化的书签的示例。25.图14a和14b示出了用于数据可视化的通用(general)选项卡的示例。26.图15示出了存储在远程数据库中并用于修改数据源字段属性的软件代码的示例。27.图16示出了存储在远程数据库中并用于动态生成度量字段的软件代码的示例。28.图17a和17b示出了用于数据可视化的钻取路径选项卡的示例。29.图18a和18b示出了用于数据可视化的颜色选项卡的示例。30.图19a和19b示出了用于数据可视化的大小选项卡的示例。31.图20a和20b示出了用于数据可视化的排序选项卡的示例。32.图21a和21b示出了用于数据可视化的网格选项卡的示例。33.图22a和22b示出了用于数据可视化的记分卡选项卡的示例。34.图23a、23b和23c示出了用于数据可视化的详细查看选项卡的示例。具体实施方式35.数据可视化允许用户沿着数据库系统中的不同维度查看关于存储在数据库中的数据的信息。为显示信息而创建的数据可视化可以采用各种形式。一种典型的形式是表(table)布局的形式,每行表示数据库中的记录,并且每列表示来自记录的字段。表通常列出数据库记录的子集以及数据库记录中可用字段的子集。36.现有的数据可视化系统提供通常限于列表或类似表的结构的视图,其具有可能的排序、分类或概述特征。其他数据可视化系统使用非列表类型结构,但限于基于从数据库收集的中间数据(而不是实际的数据库记录本身)的视图。对于这些系统,用户可能发现很难动态地定义要被在视觉上显示的信息。37.在一些实现方案中,本公开涉及数据可视化系统中缓存的管理以允许用户创建或修改用于数据处理的模板。该数据可视化系统还允许用户设置标签和规则,这些标签和规则动态地驱动用于构建底层缓存和呈现数据可视化的代码的创建。通过这些技术,该数据可视化系统可以在数据的存储和处理方面提供改进的性能,从而允许比传统解决方案更快地展现和更改数据可视化。38.图1示出了示例数据可视化系统100。在图1中,数据可视化系统100包括元数据(metadata)数据库104、一个或多个模板106、动态代码生成模块112和缓存114。这些部件表示数据可视化系统100中的后端服务。在图1中,数据可视化系统还包括一个或多个最终用户设备102、用户接口api118和数据可视化输出120。这些部件表示数据可视化系统100中的前端服务。39.最终用户设备102是允许用户在数据库上运行命令以用于数据分析和可视化的终端。终端可以是个人电脑、智能手机、云集群设备或本地服务器。最终用户设备102可以通过包括数据库中各种操作功能的库的图形用户接口(gui)远程连接到数据库。用户命令和来自数据库的输出可以通过内容分发网络发送,内容分发网络通过相对于最终用户设备102在空间上分发数据库访问和服务来提供高可用性和高性能。网络可以包括局域网(lan)、广域网(wan)、互联网或其他网络拓扑。网络可以是有线或无线网络中的任何一种或组合,并且可以包括以太网、蜂窝电话、蓝牙和wi-fi技术中的任何一种或多种。可以通过使用以太网电缆、单个或多个路由器或交换机或光数据链路来实现通过网络的通信。通过网络的通信可以通过各种协议(包括802.11协议族、蓝牙、蓝牙le、z-wave、zigbee、gsm、3g、4g、5g、lte或其他自定义或标准通信协议)中的任何一种或组合来实现。40.用户接口应用程序编程接口(api)118是用于最终用户设备102与数据库(例如,元数据数据库104)通信的一组子例程定义和工具。api118是定义的接口,用户设备通过该接口获得数据库系统访问权并将元数据直接摄取到工作区中以用于查看。api118涉及用于数据处理的库,并描述或规定了到最终用户的预期的数据可视化输出。41.元数据数据库104携带原始数据的描述和上下文。元数据数据库104帮助最终用户设备102组织、搜索和分析数据。典型的元数据可能携带包括标题和描述、标签和类别、日志历史和访问权限信息等元素。一些元数据可能包括描述数字材料的类型、版本、关系和其他特性的结构信息,例如,如何将复合对象放在一起。一些元数据可包括有助于管理数据资源的管理信息,诸如数据是何时以及如何创建的。一些元数据可包括描述收集、处理或产生数据的过程的统计信息。42.元数据数据库104可包括用于数据定义、更新、检索和管理的数据库管理系统。例如,数据库管理系统可以插入、修改和删除数据库中的数据。例如,数据库管理系统可以以用于由其他用户或应用程序进一步处理的形式来提供数据。为了数据安全,数据库管理系统还可以注册和监控最终用户设备102。在此示例中,元数据可以被指定为源字段,因为元数据包括源数据。43.如图1所示,可视化系统100包括一个或多个模板106。模板106包括由最终用户设备102定义或在系统中预先确定的元数据过滤和数据格式重排信息。每个模板106包括一个或多个钻取路径108,并且每个钻取路径108包括层次结构110。钻取路径108是指通过元数据的数据通路。例如,在数据可视化中,系统可以将元数据分成组、构成组的行以及显示在数据的行内的字段。对于此信息,最终用户设备102能够指定标签、格式和/或该部分将出现在钻取路径中的任何级别还是仅出现在最深向下钻取级别。层次结构110可以是树格式并且包括对应于钻取路径108的元数据组节点。在数据可视化系统中可以有多于一个的模板106,并且最终用户设备102可以基于现有的模板创建新的模板。在一些实现方案中,只有具有管理员访问权(adminaccess)的用户才可能够访问模板106并基于数据可视化要求而创建新模板。44.动态代码生成模块112动态地生成以存储过程的形式的代码,并且存储过程被用于构建缓存。例如,动态代码生成模块112可以使用钻取路径108和元数据从应用程序(例如,.net应用程序)生成源代码(例如,sql、pl/pgsql、c等)例程。动态代码生成模块112获取元数据并过滤掉生成用于构建缓存的存储过程所需的数据。通过动态代码生成,动态代码生成模块112使用在模板106中定义的钻取路径108和度量字段的组合来自动地生成用于导入数据和构建能够相对快速地访问相关数据的缓存所需的代码。以此方式,最终用户可能仅必须在模板106中定义钻取路径108以产生有用的数据缓存,而不必产生构建缓存所需的具体源代码。45.缓存数据库114包括一个或多个缓存,其可以以度量字段116的形式存储数据。数据库114中的缓存通过过滤掉不必要的数据或通过在一个或多个模板106中定义的数据处理操作而重新组织数据格式,从而补充元数据数据库104中的主数据。最终用户可以通过用于创建数据的唯一特性的模板来处理度量字段。缓存数据库114可以是远程数据库,例如cosmos数据库或postgresql数据库。46.缓存可以提高数据处理的灵活性。例如,为了可视化而期望被频繁请求和处理的数据可以被缓存并保存在缓存中以用于相对快速的检索。当具有相似请求的大量并发的用户大约同时查看相同的数据或元数据时,可视化缓存可以提供显著的性能提高。缓存可以为用户设备提供更容易的访问和更快的可视化展现,而不是必须从数据库中检索数据或元数据并且必须一遍又一遍地重新处理数据。47.数据可视化输出120是通过将缓存数据放置在可视化上下文中基于缓存数据而生成的。缓存数据内的任何模式、趋势和相关性都可以用数据可视化来展现。许多图可以被用于数据可视化,例如条形图、直方图、散点图、网络图像和流图。48.在一些实现方案中,最终用户设备102可以定义元数据中的参考数据并且通过用户接口api118向元数据数据库104发送指令。用户可以从源字段数据中选择出度量字段以用于具体的数据处理目标。例如,用户可以选择元数据的一部分用于平均值、中值、最大值和最小值计算。元数据可以包括各种类别,并且类别中的一些类别生成元数据的信息。例如,最终用户可以基于数据资源、数据输入时间或数据类型提取度量字段数据。在此示例中,度量字段数据从缓存访问以提供对缓存在度量字段数据中的度量的相对快速的可视化。49.在一些实现方案中,用户可以通过识别数据的钻取路径和对应的层次结构来构建模板以提取感兴趣的数据作为度量字段。用户可建立定义元数据数据库104中的相关源字段数据的一个或多个模板106。可通过动态代码生成和数据缓存处理来将源字段数据转换为度量字段。一个或多个度量字段可以被存储在缓存数据库114中,作为对原始源数据执行的计算的结果。数据可视化输出120可以从度量字段生成并被发送回用户接口api118。50.在一些实现方案中,元数据由用户在创建模板时定义。数据可视化后端服务进程可以读取和处理模板信息。后端服务动态地确定如何生成软件代码来构建存储过程以将度量字段存储在缓存数据库中。模板106可以被用于基于用于定义模板106的用户指令来生成一个或多个度量字段116。度量字段116可能不同时被全部检索,但它们被存储在高速缓存数据库114中以供潜在的使用。例如,可以访问度量字段116的第一子集以用于最终用户请求的第一可视化,并且可以访问度量字段116的第二不同子集以用于最终用户请求的第二可视化。度量字段116的第一子集可以与度量字段116的第二子集完全不同,或者第一子集和第二子集中所包括的字段可以存在一些重叠。51.在一些实现方案中,用户可以登录系统并选择一个或多个已被定义的具体模板。这些模板与用户对元数据可视化的请求相关联。所选择的模板导致使用缓存中的度量字段,而不是追溯到元数据并再次重复数据检索和分析过程。然后度量字段被用于基于用户的请求生成数据可视化输出,并通过用户接口反馈给最终用户设备。52.在一些实现方案中,用户可以通过用户接口api118向缓存数据库发送指令,并检索所缓存的数据。当被最终用户请求时,系统可以跟踪所缓存的数据的处理。例如,缓存数据处理可以由系统后端服务作为系统功能的一部分进行跟踪,并被用于提高缓存性能。53.在一些实现方案中,数据可视化系统可效力于从不同位置访问系统的多个最终用户设备。这些多个最终用户设备可能查看元数据的相同部分并共享缓存中度量字段的相同实例。在此方面,数据可视化系统不为每个单独的登录创建唯一的缓存;具有相同数据处理请求的多个用户将全部访问相同的缓存并共享相同的度量字段。系统不即时(onthefly)构建新的缓存,并因此可以更有效地控制内存消耗。系统使用由动态代码生成模块112生成的动态代码从元数据数据库104内的数据来构建度量字段116。当最终用户数据上载到系统时,系统识别什么模板与导入的数据相关联。系统然后使用动态生成的代码模块(例如,存储过程)在缓存114中自动构建度量字段。最终用户设备能够从缓存中的存储的度量字段查看数据,并将数据可视化。54.在一些实现方案中,具有管理员访问权的用户可以工作于模板的新版本。用户可以对现有模板做出更改,例如修改钻取路径、添加新的度量字段和/或更改度量字段。用户可以发布模板的新版本和模板的较旧版本,使得先前生成的缓存实例在系统中仍然有效。缓存中的现有度量字段在系统内仍是可查看的,并引用回到模板的对应版本。例如,用户可以将新数据导入系统,并基于现有模板版本1.0修改新模板版本1.1。新数据导入是基于模板的最新版本1.1的。度量字段缓存构建也是基于模板的最新版本1.1的,并且用户接口数据可视化不同于较早的版本。55.图2示出了示例数据可视化系统中的示例数据缓存操作。数据缓存操作包括数据可视化系统的各种部件之间的过程,包括元数据源字段204、模板匹配过程206、一个或多个度量字段208和最终用户设备202的使用。56.最终用户设备可以将大量元数据204导入系统。元数据可以是具有数百万行和数百列的表的格式。对于数据可视化,系统以及用户接口前端服务可能只需要处理元数据的子集。如步骤a中所示,此数据缓存示例中的第一操作是缩减大量元数据。57.在一些实现方案中,数据可视化系统的管理员具有在组织/用户级别限制用户对缓存的访问的能力。第一操作(步骤a)包括处理元数据并确定如何从不同层次结构或数据分组的角度来可视化元数据。所选择的元数据被存储在数据可视化系统的模板中。58.系统执行动态代码生成处理,以生成用于创建缓存实例并将缓存实例存储在缓存中的存储过程,如步骤b中所示。例如,可以有存储在缓存中以及被生成以匹配所选模板的多个度量字段。度量字段可以被存储在包括元数据数据库的相同远程服务器上的数据库中。对于动态代码生成,系统首先在元数据中执行源字段识别。系统可以识别必要的源字段并识别度量字段的引用。其次,系统以定义的次序计算度量字段,这是因为一个度量字段可能引用另一个度量字段。动态代码(例如,存储过程)根据模板中定义的钻取路径来计算被添加到缓存中的度量字段。59.系统还确定缓存中的分组。为了在度量字段中构建组,程序代码对每个层次结构级别中的数千个值进行分组和处理。系统还确定分组被如何构建并生成针对那些层次结构级别中的每一个级别的代码。动态代码生成是系统后端服务,其可以由例如.net应用程序执行,该应用程序获取元数据并应用元数据来构建用于构建缓存的存储过程。60.如图2中所示,作为数据缓存操作的结果,一个或多个缓存208被存储在缓存数据库中。图2展现了组层次结构210、值212、钻取路径214和度量字段建立准则216的示例。61.用户可以确定对应于唯一组层次结构结构210的元数据的钻取路径214。钻取路径节点被匹配到层次结构树上的组节点。项目(subject)根级别是钻取路径的最高级别,并且系统将所有节点向上钻取(rollup)到最高级别的项目。例如,在项目节点之下,用户可以选择产品线1(productline1)、产品线2(productline2)、制造主(manufacturemaster)、合同状态(contractstatus)、合同描述(contractdescription)、产品线(productline)、制造(manufacture)、部门(division)、项描述(itemdescription)和每一个的成本(costtoeach),作为钻取路径节点。层次结构和钻取路径定义了感兴趣的元数据并将数据分组以创建缓存。系统处理每个级别并为每个级别指配特异值(distintvalue)。这些特异值将利用唯一id匹配到具有具体类别中的每个节点列。62.值212使用户能够访问数据。例如,根级别项目具有键“0”。沿层次结构进一步向下,产品线1的第一特异值可以具有id“0.1”,并且下级产品线2的后续特异值可以具有id“0.1.1”。在此示例中,用户可以指示层次结构的第一产品线1的值,并沿着层次结构树向下依此类推。每一级“0”表示根级别项目,“1”表示第一级钻取路径的第一特异值。随着级别的深入,“项描述”级别可被指配唯一的id“0.1.1.1.1.1.1.1.1.1”,并且最底层的“每一个的成本”可被指配唯一的id“0.1.1.1.1.1.1.1.1.1.1000”。这些id值彼此不同以表示缓存中的保存在缓存数据库中的数据的唯一级别。度量字段被构建以区分各种分组。层次结构的每个级别都获得值,并且系统能够基于这些值来构建id值。此外,系统能够基于该层次结构提供有组织的缓存。63.度量字段是基于缩减的元数据计算的,并被放入缓存数据库中。存在各种类型的度量,例如,从汇总计算、平均值计算、中值计算、最小值和/或最大值计算以及其他类型的计算创建的度量。系统可以按部分向上钻取组的每个级别,然后按照它们的键而存储在缓存中的唯一行中。id值按字段与每个组相关联。64.用户可以确定如何导航数据可视化输出(例如,数据地图(datamap))。用户还可能有兴趣看到如何基于来自原始元数据的不同字段来向上钻取数据。可以存在由用户定义的多个钻取路径214,并且每个钻取路径可以运行相同的处理,但是在不同的层次结构上。对于缓存中的每一行,原始源行的id值也被存储,因此系统更容易返回到用于在缓存数据库中生成缓存条目的原始源行。65.组层次结构可以在系统中预先确定。预先确定的层次结构是基于产品设计和系统设置创建的。用户具有通过选择不同的钻取路径来在不同的层次结构之间进行切换的能力。用户可以从根级别起导航数据可视化输出(例如,数据地图)以向下钻取路径。例如,如图2中所示,用户可以直接检查层次结构中根级别之下的产品线2。用户可以容易地切换到另一个类似的钻取路径。例如,新一层的产品线3可以被添加在产品线2下。在该情况下,系统按该层分组,并且数据展开到该层上的每个级别。66.如在度量字段建立216中所揭示的,在缓存中仅存储在用户接口中进行呈现所需的值。对于缓存的每一行,源行的id值被存储以便允许对与缓存条目相关联的所有详细值的轻松访问。67.如步骤c中所示,最终用户可以通过用户接口api发送请求以从缓存数据库中检索缓存数据。例如,用户可以向缓存数据库传递id值“0.1.1.1.1”并且系统将基于该id值将用户快速引导到缓存的条目。用户可以请求id值,并且对于层次结构中的仅一行或某个子级别,系统可以检索一个或多个记录。用户还可以基于层次结构的起始位置向下钻取层次结构的多个级别。68.如步骤d中所示,所计算的度量字段被存储在缓存数据库中并且被检索以用于到用户端的数据可视化。例如,缓存可以被存储在远程数据库服务器中。用户可以利用缓存数据库特征来构建层次结构树,这允许数据库表的快速导航以定位被用户引用的数据。例如,用户可以请求检索从在根级别开始的层次结构的前四个级别。所以每个数据可视化输出(例如,地图)表示层次结构的第一级。用户可以遍历到层次结构的较低级别(例如,级别2和级别3)以获得更详细的可视化数据输出。通过与用户接口api交互以基于缓存数据库中的具体层次结构进行操作,用户可以沿层次结构向下检索数据并快速获得可视化。69.图3示出了数据可视化操作的示例处理。处理300被描述为由系统100执行。处理300还可以由系统200或包括执行指令的处理器的一个或多个计算机或电子设备来执行。70.系统100定义包括一个或多个钻取路径的模板(302)。例如,系统100可以从最终用户接收用户输入,该用户输入定义要包括在模板中的一个或多个钻取路径。在此示例中,系统100可以把模板定义为包括贯穿本公开所讨论的要包括在一个或多个模板的任何信息(例如,钻取路径、规则、参数等)。最终用户还可以为数据分组创建新模板。一个以上的模板可被用在数据可视化系统中,并且最终用户设备可以基于现有模板创建新模板。71.系统100执行动态代码生成(304)。例如,系统可以使用动态代码构建服务来基于所定义的模板而动态地生成存储过程。此服务为模板中定义的每个启用的钻取路径构建独立的存储过程。动态代码生成包括将源字段数据添加到存储过程并产生计算数据度量字段116所需的代码。计算需要以正确的次序进行,因为一个度量字段可引用另一个度量字段。动态代码生成还包括确定数据分组策略、构建分组以及生成这些分组级别中的每一个。一旦动态代码被创建,则该代码就可以用于为导入到系统的数据构建缓存。动态代码可以重用(reuse)于与所定义的模板相关的源数据的附加的导入。图5提供了动态代码生成的更详细的描述。72.系统100通过自动化进程将数据导入模板的元数据数据库(306)。例如,最终用户可以经由模板设计器存储库特征上载元数据,以启动导入数据的自动化进程。在此示例中,系统100接收识别源数据和与源数据相关联的一个或多个模板的用户输入。基于用户输入,系统100根据该一个或多个模板以及基于该一个或多个模板生成的动态代码来自动地导入源数据。73.系统100使用动态生成的代码执行缓存建立(308)。动态缓存建立308从元数据数据库104中存储的源字段数据创建度量字段,并将度量字段作为缓存实例存储在缓存114中。动态缓存建立308执行由动态生成的存储过程定义的功能,以使用自动化进程对所导入的数据进行缓存。例如,动态缓存建立308包括构建和填充缓存,例如,模板中每个指定的钻取路径的postgresql表。图4提供了动态缓存建立的更详细的描述。74.系统100创建数据结构文件以分发到最终用户设备(310)。例如,源字段数据可以被压缩并保存为压缩文件,并且通过内容分发网络被分发给最终用户设备以用于数据可视化。在另一个示例中,系统100可以将压缩的源字段数据导出到远程数据库服务器,以用于最终用户设备102上的数据消费。75.图4示出了数据缓存的示例处理400。处理400也可以由系统200或者包括执行指令的处理器的一个或多个计算机或电子设备来执行。76.系统100执行将大的原始元数据集缩减到缓存中的较小数据集(402)。例如,将元数据导入到数据库104,并且基于与导入的数据相关联的一个或多个模板进行元数据缩减402。元数据数据库为客户存储大量数据,而最终用户可以定义缩减的数据范围以供数据缓存。77.系统100进行模板匹配和数据分组(404)。例如,用户可以选择用于元数据处理的现有模板以及选择系统100组的数据以供根据模板和为模板生成的动态代码来进行缓存处理。模板可以定义已经由最终用户设备设置或在系统100中预先确定的元数据过滤和数据格式重排信息。每个模板可以包括多个钻取路径,并且每个钻取路径由层次结构组成。78.系统100使用一个或多个钻取路径定义不同的数据层次结构(406)。钻取路径是指穿过元数据的数据通路。例如,在数据可视化中,系统可以将元数据分成组、构成组的行以及显示在数据的行内的字段。最终用户能够指定标签、格式和/或该部分将出现在钻取路径中的任何级别还是仅出现在最深向下钻取级别。层次结构可以是树格式并且包括对应于模板中的钻取路径的元数据组节点。用户可以确定对缓存的控制并启用对缓存的访问。用户可以定义如何从不同层次结构或数据分组的角度来查看数据。用户可以在层次结构上定义从根级别到最底层的钻取路径,并包括所有感兴趣的中间节点。可以在一个模板内定义若干钻取路径,并且每个钻取路径都定义一层次结构。79.系统100执行一个或多个存储过程以构建缓存(408)。数据可视化系统可以传递元数据的关键片段,例如,数据源、度量字段、层次结构的钻取路径、和分组语句。系统可以获取已接收到的所有信息并进行确定数据布局的进程,并且动态代码(例如,存储过程)将用于缓存建立。通常,已为每个钻取路径构建了存储过程。系统100识别先前为与导入的数据相关联的一个或多个模板动态生成了的一个或多个存储过程,并启动所识别的存储过程的执行。80.系统100使用存储过程创建缓存并将缓存存储在缓存数据库中(410)。系统后端在动态生成的存储过程内使用数据库管理功能(例如sql、pl/pgsql或c)来处理元数据以构建缓存。缓存(包括度量字段)被存储在数据库中。例如,缓存可以被存储在远程数据库中。系统100基于缓存数据生成数据可视化输出并将缓存数据放置在最终用户设备102上的可视上下文中。结合数据可视化,缓存数据内的任何模式、趋势和相关性可以更容易地暴露和识别。有很多可以用于数据可视化的图,例如条形图、直方图、散点图、散点图、网络图像和流图。81.图5示出了动态代码生成的示例处理。动态代码生成处理500以动态方式执行软件代码编程以生成用于为每个钻取路径创建缓存数据的存储过程。通常,动态代码生成处理包括识别元数据中的源字段数据。动态代码生成处理包括将源字段数据添加到存储过程以及计算数据度量字段。动态代码生成处理包括确定数据分组策略、构建分组以及生成每个分组级别。处理500被描述为由系统100执行。处理500还可以由系统200或包括执行指令的处理器的一个或多个计算机或电子设备来执行。82.系统100识别元数据中的源字段数据(502)。最终用户可能不需要所有元数据,并且系统100确定数据可视化需要什么源字段数据。最终用户可以控制分组的次序,直到该过程返回到模板的最开始。系统还可以检查什么源字段被度量字段引用。83.一旦钻取路径和数据层次结构被定义,系统100还将源字段数据添加到存储过程并计算数据度量字段(504)。用户可以操作系统来计算度量字段。计算需要以正确的次序进行,因为一个度量字段可能引用另一个度量字段。系统必须确保设代码被设置并将字段在正确的位置添加到存储过程。84.系统100还确定数据分组策略、构建分组并生成每个分组级别(506)。最终用户可以观察输出可视化图中的分组,并找出如何构建分组,其中每个所需级别的数千个值可以被向上钻取。系统100构建组并且将计算的向上钻取的值存储到层次结构的最高级别,并且向下依次类推地计算更多的向上钻取的值。85.如前所述,本公开允许最终用户重建模板并管理数据可视化系统中的缓存。图6示出了模板重建验证的示例流程图。处理600被描述为由系统100执行。处理600还可以由系统200或包括执行指令的处理器的一个或多个计算机或电子设备来执行。86.系统100初始化模板重建模型(601)。例如,系统100可以确定用户输入更改触发模板重建。用户输入可能是对模板的更改(这需要更改度量计算)或者可能是对钻取路径的更改(这需要重建支持模板的存储过程和缓存)。基于该确定,系统100初始化模板的重建模型。重建模型的初始化可以包括模板构建结构和模板构建字段的初始化,如图6的611中所示。87.系统100然后从模板获得启用的构建结构的列表(602)。例如,系统100检查钻取路径的isenabled元素是否为真。88.在以下用于模板重建验证的过程中,系统100如图6所示顺序地收集启用结构的列表(602)以及源和度量字段的列表(603),添加结构字段的列表以重建模型(604),并收集直接引用字段的列表(605)和收集父引用字段的列表(606)。附加地,系统100还添加直接引用字段的列表到重建模型(607)并添加父引用字段的列表到重建模型(608)。直接引用字段是在模板内引用的字段,例如度量字段的计算中引用的字段或是在颜色、大小、网格或记分卡中使用的字段。父引用字段可以是从其他字段引用的字段。在一些实现方案中,从过程602到608的获得结构和字段的列表的顺序可以变化。89.一旦所需的结构信息和字段信息被收集到,系统100就将重建模型序列化为json对象(609)。这些json对象可能包括数字、字符串、列表和字典的组合。最后,散列(例如md5散列)从json对象被计算(610),然后与先前操作期间存储在模板中的散列进行比较以确定模板重建。散列被存储在模板中,并被配置为存储用于为模板生成存储过程的所有关键组成部分。90.在本公开中,具有管理员访问权限的一个或多个最终用户可以通过数据可视化系统中的预览来调整模板输入并立即查看更改。预览提供让最终用户在提交更改之前对模板调整或更改的结果进行预览的功能。预览可以以各种形式显示,例如,地图、图表或表。因为模板调整可以更改模板的结构,因此,它可以强制执行按照预览的模板重建。贯穿与模板的整个交互,用于预览的模板重建可能涉及输入是否修改了模板的散列组成部分。如果输入更改并不强制执行模板的重建,则经调整的模板可以立即在预览中显示。91.在一些实现方案中,预览可能已经过时并且需要响应于模板调整而重建。对模板所做的更改被跟踪,以减少更新模板的冗余。例如,对模板所做的更改可以被确定为很重要,并因此强制执行模板的完全重建以用于预览。在其他示例中,对模板所做的更改被确定为不太重要,因此模板重建不被强制执行并且预览可以立即被查看。92.系统100利用散列算法,该算法将模板的关键组成部分存储为散列值,并通过比较当前和先前操作之间生成的散列值来触发模板重建。通常,散列值被创建并存储在模板内,以跟踪用于生成存储过程的关键组成部分的迭代。在模板重建的验证进程中,模板的所有区域被检查以生成散列值。93.图7示出了增强模板验证的示例流程图。一旦保存了来自最终用户的模板调整(710和720),就触发由模板重建验证器确定(740)的模板验证。94.通常,当调整模板时,在生成预览之前需要跨模板的验证处理(730)。验证处理的结果将通知是否需要模板的重建。由模板重建验证器执行的验证处理可以确定散列是否已经更改(750),并且因此是否需要预览的重建(760)。一旦散列被确定为已被更改,预览就被淘汰,并且模板将在生成预览之前被重建。此实例还将触发构建新的存储过程(780)和数据缓存(785)。如果预览的重建被确定为不需要的,则验证处理结束(790)。替代地,验证处理可以确定不需要重建模板,因此预览从先前的操作被重新启用,并且模板准备就绪而不重建存储过程、功能和缓存。在此情况下,系统100将利用现有的存储过程和缓存以用于操作(770)。95.模板重建验证器的确定是基于从当前操作(例如模板调整)生成的散列值与在生成存储过程的先前操作中所存储的散列值的比较而进行的。96.如果基于模板调整而生成的散列值与模板中存储或描述的散列值匹配,则没有模板的关键组成部分已被更改,并且系统100能够立即预览而不经过模板重建和缓存的重新生成。如果不是这样,则模板调整的保存将触发模板重建,以及新存储过程和缓存的构建。此散列算法,如图7中所描述的,可以提高新模板设计或模板调整的效率。97.在一些实现方案中,新的钻取路径正在模板中被创建并且被排列成与现有钻取路径具有一定的相关性。如果仅钻取路径的次序被修改(例如,被上下移动),则此调整不更改模板的关键组成部分,并保持相同的钻取路径结构。唯一的区别是钻取路径在最终用户设备的视图中被上下移动。类似地,此模板调整将不在模板中创建新的散列值,并将不会强制执行模板重建或缓存的重新生成。98.在一些其他实现方案中,钻取路径的字段可以被编辑或删除。此类型的调整将至少更改模板中字段的唯一id值,从而更改所计算的新的散列值。在此情况下,该模板调整将强制执行用于预览的模板重建和缓存的重新生成。99.存在可以强制执行模板的重建并且可以通过验证处理识别的多个用户输入更改。例如,数据源的更改将强制执行模板的重建。数据源的更改包括更改在别处使用的字段的名称,当字段用在别处时更改数据类型,更改模板中使用的所计算的列值的表达式,更改模板中使用的所计算的列值的汇总值,以及将模板中使用的所计算的列值的空白更改为零。具体地,钻取路径的更改可强制执行模板的重建。钻取路径的更改包括删除钻取路径、更改钻取路径的次序、将钻取路径更改为不同的组、将钻取路径设置为禁用以及修改钻取路径中的字段。在另一个示例中,最终用户设备上的数据外观(例如,颜色、大小、排序、网格、记分卡或控制板中的至少一个)的更改可以强制执行模板的重建,其中这些颜色、大小、排序、网格、记分卡和控制板都被包括在先前没有被包括在模板中的所计算的字段中。100.系统100可以包括验证api,其被配置为验证所有用户输入并确保不存在设计模板、生成动态代码和构建缓存的问题。例如,当最终用户输入被保存用于模板时,验证api将检查模板中的所有关键组成部分,并验证该输入是否将在构建模板和生成缓存中引起任何问题。101.图8示出了用于动态定义数据可视化的高级设计器模块的示例。在摄取任何格式的数据时,用户可以使用系统的高级“设计器(designer)”模块来动态定义数据将如何在视觉上被显示给应用程序的任何最终消费者。定义可视化体验的所有元数据都被附到数据库中的模板。在使用高级“设计器”模块构建模板的处理中,专有的精简软件被针对模板和模板内的每个钻取路径创建,以呈现给最终用户。数据可视化系统即时动态地构建软件以增强最终用户体验并提供更多可扩展性。102.图9示出了允许用户查看比汇总级别更深的多个级别中的数据的图形数据工具的示例。动态构建的软件可以处理数百万行数据,从而为每个钻取路径创建专有缓存进程。缓存数据在访问应用程序的所有用户之间共享,前提是它们具有所需的授权级别。完整的数据集,无论大小,都在一个可视化图像中表示。用户可以轻松地看到从汇总级别起点深入多达五个级别。没有其他图形数据工具允许一次性看到数据“内部”到此程度的这种能力。103.图10示出了动态创建的可自定义的标注特征的示例。在系统中,可以在几秒钟内对数百个级别执行深度分析。用户在几秒钟内从最高级别的机会(opportunity)被在视觉上引导到单个项的机会。此特征使系统100能够通过使用存储在缓存中的源字段行来快速检索相关联的数据。通过使用动态创建的可自定义的标注特征,用户可以将任何项组或单个项连接到任何类型的内容,例如应用程序、文件、互联网位置、内联网位置、媒体文件、教育内容、产品召回内容等。104.图11示出了查看和导出节点数据的示例。数据可视化系统允许用户在一个平台上查看来自多个数据系统的数据。在一个通用视图中查看软件信息系统、材料管理信息系统、电子病历、财务和患者会计数据,允许用户查看临床行为和结果之间的关系。用户还可以查看和导出可视图像后的节点数据。用户不必是其他软件工具(例如microsoftexcel)的专家。用户可以在此工具内对数据进行分组和排序。105.图12示出了一个或多个底层专有缓存数据集的示例,以呈现一个或多个趋势的控制板图示。此系统具有将多个数据集组合成利用简单可视化导航的一个自定义视图的能力。软件的最新版本使用底层专有缓存数据集来呈现控制板,该控制板示出跨预选数据集的趋势。在没有底层专有缓存技术的情况下,不可能像这样呈现大数据。106.图13示出了用于数据可视化的书签的示例。书签可以在地图或数据集中的任何级别创建,并用于导航回书签的可视化位置。用户还可以将鼠标悬停在书签上,以快速了解书签位置处节点的记分卡。107.本公开包括作为战略框架的用户接口工具。该软件工具充当数据的可视化语言,并执行包括以下的功能:简化对大数据的理解,增加所有利益相关者的协作,以对话的速度支持或驳斥使用大数据的想法,以及测量和记录项目结果。该软件工具是项目四个阶段的有效协作和文档工具,这些阶段包括:1)发现机会和异常,2)战略制定,3)项目实现,以及4)记录项目的测量和结果。108.软件工具的设计模块允许用户创建或修改数据的模板,设置标签和规则,这些标签和规则动态驱动用于构建底层缓存并呈现地图视图的软件的创建。图14a到23c概述了用户在设计部分具有的各种选项,这些选项直接影响地图的呈现以及如何创建底层软件。109.图14a和14b示出了用于数据可视化的通用选项卡的示例。在此选项卡上,设计者或用户可以设置以下内容,包括:1)模板名称,2)模板描述,3)根标签(图14a和14b中的“a”),其是指地图最顶层级别,以及4)开始和结束日期(图14a和14b中的“b”),其显示了数据在地图视图中的日期范围。110.图15示出了存储在远程数据库中并且用于修改数据源字段的属性的软件代码的示例。数据源选项卡被用于创建和配置影响模板的所有其他部分的字段。在地图视图中无法直接看到这里所做的更改。在此功能中,设计者可以进行编辑数据源字段的属性的操作。此选项可以被用于原始数据源列,包括更改字段的数据类型和小数位。设计者还可以进行创建所计算的列的操作。此选项允许设计者创建计算的列和修改数据类型,包括小数位、表达式、它们如何被汇总以及是否将空白值视为零的修改。图15给出了存储在cosmos数据库中以动态生成存储过程的javascript对象表示法(json)代码的示例。图16给出了存储在远程数据库中用于动态生成度量字段的软件代码的示例。111.图17a和17b示出了用于数据可视化的钻取路径选项卡的示例。在此选项卡上,设计者可以设置以下内容,包括钻取路径(图17a和17b中的“a”),其指代穿过数据的通路。列是按层次结构组织的。可以创建不同的钻取路径,每个路径都有它们自己的属于它们的字段。用户还可以指定默认钻取路径,意味着打开此模板类型的地图时要显示的第一钻取路径。设计者还可以设置以下内容,包括字段(图17a和17b中的“b”)。字段对应于数据如何按层次结构组织。字段可以根据需要被给予标签或集合。如果字段是需要的,那么如果它没有值,它就不会被显示在地图中。112.图18a和18b示出了用于数据可视化的颜色选项卡的示例。在此选项卡上,设计者可以设置颜色方案(图18a和18b中的“a”)。这些方案存在以在视觉上引导用户浏览数据。任何所计算的列都可以被用于创建颜色方案。用户还可以指定默认颜色方案,意味着打开此模板类型的地图时要显示的第一颜色方案。设计者还可以设置颜色范围(图18a和18b中的“b”)——这些是确定计算的值如何被着色的规则。这里设计者可以指定节点如何被着色的确切条件。设计者可以指定为每个条件使用纯色或随着值越来越接近使用颜色渐变,或进一步的特定规则。在用于为节点着色的度量在钻取路径中的某个点处不存在的情况下,设计者还可以指定是否将颜色应用到节点。113.图19a和19b示出了用于数据可视化的大小选项卡的示例。在此选项卡上,设计者可以设置大小方案(图19a和19b中的“a”)。这是指每个节点相对于其他节点显现得有多大。可以创建不同的大小方案,每个方案都有它们自己的属于它们的字段。用户还可以指定默认大小方案,意味着打开此模板类型的地图时要显示的第一大小方案。114.图20a和20b示出了用于数据可视化的排序选项卡的示例。在此选项卡上,设计者可以设置排序方案(图20a和20b中的“a”),其是指地图中每个节点相对于其他节点被排列的次序。可以创建不同的排序方案,每个方案都有它们自己的属于它们的字段。用户还可以指定默认排序方案,意味着打开此模板类型的地图时要显示的第一排序方案。115.图21a和21b示出了用于数据可视化的网格选项卡的示例。在此选项卡上,设计者可以设置网格表单(图21a和21b中的“a”)。网格是出现在地图右侧的部分,其中显示了列的表,包括与当前钻取路径相关的度量。可以创建不同的网格表单,每个网格表单都有它们自己的属于它们的字段。设计者还可以指定默认网格表单,意味着打开此模板类型的地图时要显示的第一网格表单。设计者还可以设置字段(图21a和21b中的“b”)。这些是构成网格表单的字段。设计者可以指定显示哪些字段、为它们显示什么标题、如何在网格表单中对齐它们、字段的格式以及使用哪个字段对网格表单进行排序。116.图22a和22b示出了用于数据可视化的记分卡选项卡的示例。在此选项卡上,设计者可以设置记分卡(图22a和22b中的“a”)。记分卡是悬停在地图中的节点上时出现的部分,其中显示了与当前钻取路径相关的关键度量。这是比网格更集中、更简洁的视图。设计者还可以设置组、行和字段(图22a和22b中的“b”)。记分卡可以分为组、构成这些组的行以及显示在行内的字段。对于所有这些,设计者能够指定标签、格式以及该部分将出现在钻取路径中的任何级别还是仅出现在最深向下钻取级别。117.图23a、23b和23c示出了用于数据可视化的详细视图选项卡的示例。在此选项卡上,设计者可以设置详细视图(图23a和23b中的“a”)。详细视图是让用户返回在钻取路径、网格或记分卡中可能找不到的数据元素(特别是定性信息,如id号或描述)的一种方式。此部分在用户右键单击地图中的节点时出现。可以创建不同的详细视图,每个视图都有它们自己的属于它们的字段。设计者还可以设置字段(图23a和23c中的“b”)。这些是构成详细视图的字段。设计者可以指定显示哪些字段以及使用哪些字段对网格表单进行排序。118.所描述的系统、方法和技术可以在数字电子电路、计算机硬件、固件、软件或这些元素的组合中实现。实现这些技术的装置可以包括适当的输入和输出设备、计算机处理器和有形地体现在机器可读存储设备中以由可编程处理器执行的计算机程序产品。实现这些技术的进程可以由可编程处理器执行,该处理器执行指令程序以通过对输入数据进行操作并生成适当的输出来执行期望的功能。这些技术可以在一个或多个计算机程序中实现,这些计算机程序可在可编程系统上执行,该系统包括至少一个可编程处理器,该处理器被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令以及将数据和指令发送到数据存储系统、至少一个输入设备和至少一个输出设备。119.每个计算机程序都可以用高级进程或面向对象的编程语言来实现,或者如果需要,可以用汇编语言或机器语言来实现;并且在任何情况下,语言可以是编译或解释语言。例如,合适的处理器包括通用和专用微处理器两者。通常,处理器将从只读存储器和/或随机存取存储器接收指令和数据。适用于有形地体现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储设备,诸如可擦可编程只读存储器(eprom)、电可擦可编程只读存储器(eeprom)和闪存设备;磁盘,诸如内置硬盘和可移动盘;磁光盘;以及光盘只读存储器(cd-rom)。任何上述内容都可以由专门设计的asic(专用集成电路)补充或并入其中。120.应当理解,可以做出各种修改。例如,如果以不同次序执行所公开技术的步骤和/或如果以不同方式组合和/或由其他部件替换或补充所公开的系统中的部件,则可以完成其他有用的实现方案。因此,其他实现方案在本公开的范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献