CN116097241A - 使用语义角色的数据准备 - Google Patents
使用语义角色的数据准备 Download PDFInfo
- Publication number
- CN116097241A CN116097241A CN202080078301.XA CN202080078301A CN116097241A CN 116097241 A CN116097241 A CN 116097241A CN 202080078301 A CN202080078301 A CN 202080078301A CN 116097241 A CN116097241 A CN 116097241A
- Authority
- CN
- China
- Prior art keywords
- data
- logical
- implementations
- field
- user
- 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
- 238000002360 preparation method Methods 0.000 title description 48
- 238000000034 method Methods 0.000 claims abstract description 124
- 238000010586 diagram Methods 0.000 claims abstract description 36
- 238000004458 analytical method Methods 0.000 claims abstract description 27
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 238000013499 data model Methods 0.000 claims abstract description 17
- 238000012795 verification Methods 0.000 claims abstract description 9
- 238000013079 data visualisation Methods 0.000 claims description 59
- 230000008859 change Effects 0.000 claims description 45
- 238000006243 chemical reaction Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 26
- 238000010200 validation analysis Methods 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 10
- 230000004048 modification Effects 0.000 claims description 6
- 238000012986 modification Methods 0.000 claims description 6
- 230000009466 transformation Effects 0.000 claims description 6
- 238000000844 transformation Methods 0.000 claims description 6
- 238000005304 joining Methods 0.000 claims description 4
- 238000012549 training Methods 0.000 claims description 3
- 230000007704 transition Effects 0.000 abstract description 4
- 230000014509 gene expression Effects 0.000 description 46
- 238000004140 cleaning Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 238000012216 screening Methods 0.000 description 17
- 238000012800 visualization Methods 0.000 description 17
- 230000000007 visual effect Effects 0.000 description 13
- 238000013507 mapping Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000003058 natural language processing Methods 0.000 description 7
- 238000003672 processing method Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 238000000605 extraction Methods 0.000 description 5
- 241001439061 Cocksfoot streak virus Species 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 239000002775 capsule Substances 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 3
- 238000010606 normalization Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000008447 perception Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- LFQSCWFLJHTTHZ-UHFFFAOYSA-N Ethanol Chemical compound CCO LFQSCWFLJHTTHZ-UHFFFAOYSA-N 0.000 description 2
- 125000002015 acyclic group Chemical group 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000001680 brushing effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 238000010926 purge Methods 0.000 description 2
- 238000007670 refining Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000003442 weekly effect Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004752 cathodic stripping voltammetry Methods 0.000 description 1
- 238000013502 data validation Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000003973 paint Substances 0.000 description 1
- 239000006187 pill Substances 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011282 treatment 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9032—Query formulation
- G06F16/90332—Natural language query formulation or dialogue 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
一种准备数据以用于后续分析的方法。该方法获得将数据源编码为逻辑表的树的数据模型。每个逻辑表有其自己的物理表示,并包括逻辑字段。每个逻辑字段对应于跨逻辑表的数据字段或计算。该方法将数据模型中的每个逻辑表与概念图中的对应概念相关联。概念图体现了语义的层次继承。对于每个逻辑字段,该方法基于对应于逻辑表的概念为逻辑字段分派语义角色。该方法还基于逻辑字段的语义角色对逻辑字段进行验证。该方法还显示转换,以基于对逻辑字段的验证来清理逻辑字段。该方法根据用户选择转换逻辑字段,并更新逻辑表。
Description
相关申请
本申请与2018年12月27日提交的题为“Analyzing Underspecified NaturalLanguage Utterances in a Data Visualization User Interface”的美国专利申请16/234,470相关,该美国专利申请通过引用以其整体并入本文。
本申请还与2018年12月14日提交的题为“Data Preparation User Interfacewith Coordinated Pivots”的美国专利申请16/221,413相关,该美国专利申请通过引用以其整体并入本文。
本申请还与2018年12月30日提交的题为“Generating Data VisualizationsAccording to an Object Model of Selected Data Sources”的美国专利申请16/236,611相关,该美国专利申请通过引用以其整体并入本文。
本申请还与2018年12月30日提交的题为“Generating Data VisualizationsAccording to an Object Model of Selected Data Sources”的美国专利申请16/236,612相关,该美国专利申请通过引用以其整体并入本文。
技术领域
所公开的实现方式通常涉及数据可视化,且更具体地涉及准备和整理数据以供数据可视化应用使用的***、方法和用户界面。
背景
数据可视化应用使用户能够在视觉上理解数据集,包括分布、趋势、异常值、和对做出业务决策重要的其他因素。一些数据集是非常大的或复杂的,且包括许多数据字段。可以使用各种工具来帮助理解和分析数据,这些工具包括具有多个数据可视化的控制面板。然而,数据经常需要***纵或改动以将其设置成可以容易被数据可视化应用使用的格式。
概述
所公开的实现方式提供了基于数据字段的语义角色来清理(clean)和/或替换数据集中的数据值的方法,其可以用作数据准备应用的一部分。
根据一些实现方式,一种方法准备数据用于后续分析。该方法在具有显示器、一个或更多个处理器和存储器的计算机处被执行,该存储器存储被配置为由一个或更多个处理器执行的一个或更多个程序。该方法包括获得将第一数据源编码为逻辑表的树的数据模型。每个逻辑表都有其自己的物理表示,并包括相应的一个或更多个逻辑字段。每个逻辑字段对应于跨越一个或更多个逻辑表的数据字段或计算。树的每个边连接两个相关的逻辑表。该方法还包括将数据模型中的每个逻辑表与概念图中的对应概念相关联。概念图(例如,有向非循环图)体现了逻辑表的语义的层次继承。该方法还包括,对于被包括在逻辑表中的每个逻辑字段,基于对应于逻辑表的概念,将语义角色分派给逻辑字段。该方法还包括基于逻辑字段的分派的语义角色对逻辑字段进行验证。该方法还包括在显示器上的用户界面中显示一个或更多个转换,以基于对逻辑字段的验证来清理(或筛选)逻辑字段。响应于检测到选择转换以转换逻辑字段的用户输入,该方法根据用户输入转换逻辑字段,并且基于对逻辑字段进行转换来更新逻辑表。
在一些实现方式中,该方法还包括,对于每个逻辑字段,将该每个逻辑字段的分派的语义角色存储到第一数据源(或辅助数据源)。
在一些实现方式中,该方法还包括基于第一数据源生成第二数据源,并且对于每个逻辑字段,将该每个逻辑字段的分派的语义角色存储到第二数据源。
在一些实现方式中,该方法还包括,对于每个逻辑字段,从不同于第一数据源的第二数据源中检索代表性语义角色(例如,为类似逻辑字段分派的语义角色)。将语义角色分派给逻辑字段还基于代表性语义角色。在一些实现方式中,用户输入被检测到来自第一用户,并且该方法还包括,在从所述第二数据源中检索所述代表性语义角色之前,确定所述第一用户是否被授权访问所述第二数据源。
在一些实现方式中,语义角色包括所述逻辑字段的域,并且验证所述逻辑字段包括确定所述逻辑字段是否匹配所述域的一个或更多个域值。该方法还包括,在显示所述一个或更多个转换之前,基于所述一个或更多个域值确定所述一个或更多个转换。
在一些实现方式中,语义角色是用于验证逻辑字段的验证规则(例如,正则表达式)。
在一些实现方式中,该方法还包括,在用户界面中,基于与包括第一逻辑字段的第一逻辑表相对应的概念,显示关于所述第一逻辑字段的第一一个或更多个语义角色。该方法还包括,响应于检测到选择优选语义角色的用户输入,将所述优选语义角色分派给所述第一逻辑字段。在一些实现方式中,该方法还包括基于优选语义角色选择关于第二逻辑字段的第二一个或更多个语义角色。该方法还包括在用户界面中显示关于所述第二逻辑字段的第二一个或多个语义角色。响应于检测到从第二一个或更多个语义角色中选择第二语义角色的第二用户输入,该方法包括将第二语义角色分派给所述第二逻辑字段。在一些实现方式中,该方法还包括基于一个或更多个语义标记的数据源(例如,具有分派的或标记的语义角色的数据字段的数据源)训练一个或更多个预测模型。该方法还包括通过向一个或更多个预测模型输入对应于第一逻辑表的概念来确定第一一个或更多个语义角色。
在一些实现方式中,该方法还包括检测对第一数据源的更改。响应于检测到对第一数据源的更改,该方法包括根据对第一数据源的更改更新概念图,以及根据更新的概念图对每个逻辑字段重复分派、验证、显示、转换和更新。在一些实现方式中,以预先确定的时间间隔执行对第一数据源的更改的检测。
在一些实现方式中,逻辑字段是基于第一数据字段和第二数据字段的计算。将语义角色分派给逻辑字段还基于对应于第一数据字段的第一语义角色和对应于第二数据字段的第二语义角色。
在一些实现方式中,该方法包括确定对应于逻辑字段的数据字段的默认格式。将语义角色分派给逻辑字段还基于数据字段的默认格式。
在一些实现方式中,该方法还包括选择用于基于所分派的语义角色显示所述逻辑字段的默认格式选项并将该默认格式选项存储到第一数据源。
在一些实现方式中,该方法还包括在将语义角色分派给逻辑字段之前,在用户界面中显示概念图和修改概念图的一个或更多个选项。响应于检测到修改概念图的用户输入,该方法包括根据用户输入更新概念图。
在一些实现方式中,该方法还包括基于第一逻辑表的概念确定要添加到第一逻辑表的第一逻辑字段。该方法还包括在用户界面中显示添加第一逻辑字段的推荐。响应于检测到添加第一逻辑字段的用户输入,该方法包括更新第一逻辑表以包括第一逻辑字段。
在一些实现方式中,该方法还包括基于概念图确定对应于第二数据源的第二数据集以与对应于第一数据源的第一数据集联接。该方法还包括在用户界面中显示将所述第二数据集与所述第一数据源的所述第一数据集联接的推荐。响应于检测到联接第二数据集的用户输入,该方法还包括创建第一数据集和所述第二数据集之间的联接,并更新逻辑表的树。
在一些实现方式中,计算机***具有一个或更多个处理器、存储器和显示器。一个或更多个程序包括用于执行本文所述的任何方法的指令。
在一些实现方式中,一种非暂时性计算机可读存储介质存储被配置为由具有一个或更多个处理器、存储器和显示器的计算机***执行的一个或更多个程序。一个或更多个程序包括用于执行本文所述的任何方法的指令。
因此,公开了使用户能够分析、准备和整理数据的方法、***和图形用户界面。
附图简述
为了对前面提到的***、方法、和图形用户界面以及提供数据可视化分析和数据准备的额外***、方法、和图形用户界面的更好理解,应结合随附的附图来参考下面的实现方式的描述,其中相似的参考数字在全部附图中指相对应的部分。
图1示出了在一些实现方式中使用的图形用户界面。
图2是根据一些实现方式的计算设备的框图。
图3A和图3B示出了根据一些实现方式的数据准备应用的用户界面。
图4示出了根据一些实现方式的示例概念图。
图5A示出了根据一些实现方式的示例语义服务架构。
图5B是根据一些实现方式示出读写数据角色的模块之间的同步的示意图。
图6A是根据一些实现方式示出基于使用情况统计的排序启发法(rankingheuristics)的示例代码片段。
图6B是根据一些实现方式的不使用语义信息的用户查询的示例数据可视化610。
图6C是根据一些实现方式的用于图6B中示出的使用语义信息的用户查询的示例数据可视化630。
图6D根据一些实现方式示出了的示例查询。
图6E根据一些实现方式提供了自动生成建议的示例。
图6F根据一些实现方式示出了的示例使用情况数据。
图6G根据一些实现方式示出了示例推断。
图6H根据一些实现方式示出了示例使用情况统计。
图6I根据一些实现方式示出了关于自然语言查询的示例建议。
图6J根据一些实现方式示出了基于使用情况统计的更智能建议的示例。
图6K根据一些实现方式示出了用于获取使用情况统计的界面的示例实现方式的表。
图7A根据一些实现方式示出了使用数据源存储域值的数据角色的UML模型。
图7B根据一些实现方式示出了用于分派数据角色的示例过程。
图7C根据一些实现方式示出了用于验证数据的示例用户界面。
图7D根据一些实现方式示出了使用语义信息的改进搜索的示例用户界面。
图7E根据一些实现方式示出了用于控制对访问数据角色的权限的示例用户界面。
图8根据一些实现方式示出了用于预览和/或编辑清理推荐的示例用户界面。
图9A-9D根据一些实现方式示出了基于语义信息的资源推荐的示例用户界面。
图10A-10N根据一些实现方式提供了准备数据用于后续分析的方法1000的流程图。
现在将参考其示例在附图中被示出的实现方式。在下面的描述中,阐述了许多具体细节以便提供对本发明的透彻理解。然而,对于本领域中的普通技术人员将明显的是本发明可以在不需要这些特定细节的情况下被实践。
实施方式的描述
图1示出用于交互式数据分析的图形用户界面100。根据一些实现方式,用户界面100包括数据选项卡114和分析选项卡116。当数据选项卡114被选择时,用户界面100显示也被称为数据窗格的方案信息区域110。方案信息区域110提供可以被选择并用于建立数据可视化的命名的数据元素(例如,字段名称)。在一些实现方式中,字段名称的列表被分成一组维度(例如类别数据)和一组度量(例如数字量)。一些实现方式还包括参数的列表。当分析选项卡116被选择时,用户界面显示分析功能而不是数据元素的列表(未示出)。
图形用户界面100还包括数据可视化区域112。数据可视化区域112包括多个搁架区域,例如列搁架区域120和行搁架区域122。这些也被称为列工具架120和行工具架122。如这里所示的,数据可视化区域112还具有用于显示视觉图形的大空间。因为数据元素还没有被选择,所以该空间最初没有视觉图形。在一些实现方式中,数据可视化区域112具有被称为表的多个层。
图2是示出根据一些实现方式的可以显示图形用户界面100的计算设备200的框图。计算设备也可以由数据准备(“数据prep”)应用230使用。计算设备200的各种示例包括台式计算机、膝上型计算机、平板计算机以及具有能够运行数据可视化应用222和/或数据准备应用230的显示器和处理器的其他计算设备。计算设备200通常包括用于执行存储在存储器214中的模块、程序、和/或指令并从而执行处理操作的一个或更多个处理单元/核心(CPU)202;一个或更多个网络或其它通信接口204;存储器214;以及用于使这些部件互连的一个或更多个通信总线212。通信总线212可以包括在***部件之间进行互连和控制在***部件之间的通信的电路。
计算设备200包括用户接口206,用户接口206包括显示设备208和一个或更多个输入设备或机构210。在一些实现方式中,输入设备/机构包括键盘。在一些实现方式中,输入设备/机构包括“软”键盘,“软”键盘根据需要显示在显示设备208上,使用户能够“按下”出现在显示器208上的“键(key)”。在一些实现方式中,显示器208和输入设备/机构210包括触摸屏显示器(也被称为触敏显示器)。
在一些实现方式中,存储器214包括高速随机存取存储器,诸如DRAM、SRAM、DDRRAM或其他随机存取固态存储器设备。在一些实现方式中,存储器214包括非易失性存储器,诸如一个或更多个磁盘存储设备、光盘存储设备、闪存设备或其他非易失性固态存储设备。在一些实现方式中,存储器214包括远离CPU 202定位的一个或更多个存储设备。存储器214或可选地在存储器214内的非易失性存储器设备包括非暂时性计算机可读存储介质。在一些实现方式中,存储器214或存储器214的计算机可读存储介质存储下面的程序、模块、和数据结构、或其子集:
·操作***216,其包括用于处理各种基本***服务和用于执行硬件相关的任务的过程;
·通信模块218,其用于经由一个或更多个通信网络接口204(有线或无线)和一个或更多个通信网络(例如互联网、其它广域网、局域网、城域网等)来将计算设备200连接到其它计算机和设备;
·web浏览器220(或能够显示网页的其他应用),其使用户能够通过网络与远程计算机或设备进行通信;
·数据可视化应用222,其为用户提供图形用户界面100以构建视觉图形。例如,用户选择一个或更多个数据源240(其可以存储在计算设备200上或远程地被存储),从数据源中选择数据字段,并使用所选择的字段来定义视觉图形。在一些实现方式中,用户提供的信息被存储为视觉规范228。数据可视化应用222包括数据可视化生成模块226,数据可视化生成模块226采用用户输入(例如,视觉规范228),并生成相对应的视觉图形(也称为“数据可视化”或“数据viz”)。数据可视化应用222然后在用户界面100中显示所生成的视觉图形。在一些实现方式中,数据可视化应用222作为独立应用(例如,桌面应用)执行。在一些实现方式中,数据可视化应用222使用由web服务器提供的网页在web浏览器220或另一应用中执行;
·由数据可视化应用222使用的零或更多个数据库或数据源240(例如,第一数据源240-1和第二数据源240-2)。在一些实现方式中,数据源被存储为电子表格文件、CSV文件、XML文件、或平面文件,或者被存储在关系数据库中。
·零或更多个语义模型242(例如,第一语义模型242-1和第二语义模型242-2),每个语义模型都直接从相应的数据库或数据源240导出。语义模型242表示数据库模式并包含关于属性的元数据。在一些实现方式中,语义模型242还包括属性的替代标签或同义词的元数据。语义模型242包括关于相应数据库或数据源240的数据字段的数据类型(例如,“文本”、“日期”、“地理空间”、“布尔”和“数字”)、属性(例如,货币类型,如美元)和语义角色或数据角色(例如,关于地理空间属性的“城市”角色)。在一些实现方式中,语义模型242还捕获对于每个属性的统计值(例如,数据分布、范围限制、平均值和基数)。在一些实现方式中,语义模型242利用包含见于许多查询语言(例如,平均、筛选和排序)中的一组分析概念的语法词汇词典来扩充。在一些实现方式中,语义模型242还区分作为度量的属性(例如,可以被测量、聚合或用于数学运算的属性)和维度(例如,除了通过计数之外不能被聚合的字段)。在一些实现方式中,语义模型242包括封装数据源240的语义信息的一个或更多个概念图。在一些实现方式中,一个或更多个概念图被组织为有向非循环图,和/或体现一个或更多个实体(例如,逻辑字段、逻辑表和数据字段)之间语义的层次继承。因此,语义模型242有助于推断语义角色并为字段分派语义角色;和
·一个或更多个对象模型108,其识别数据源240的结构。在对象模型(或数据模型)中,数据字段(属性)被组织成类,其中在每个类中的属性彼此间具有一对一的对应性。对象模型还包括在类之间的多对一关系。在一些实例中,对象模型将在数据库中的每个表映射到一个类,在类之间的多对一关系对应于在表之间的外键关系。在一些实例中,基本源的数据模型不以这种简单的方式干净利索地映射到对象模型,因此对象模型包括指定如何将原始数据转换为适当的类对象的信息。在一些实例中,原始数据源是被转换成多个类的简单文件(例如,电子表格)。
在一些实例中,计算设备200存储可用于分析和处理数据以供(例如,由数据可视化应用222)后续分析的数据准备应用230。图3B示出了数据准备用户界面300的一个示例。如下面更详细描述的,数据准备应用230使用户能够构建流程323。
上面识别的可执行模块、应用、或程序集中的每一者可以被存储在前面提到的存储器设备中的一个或更多个中,并且对应于用于执行上述功能的指令集。上面识别的模块或程序(即,指令集)不需要被实现为独立的软件程序、过程、或模块,并且因此这些模块的各种子集可以在各种实现方式中被组合或以其他方式重新布置。在一些实现方式中,存储器214存储上面识别的模块和数据结构的子集。此外,存储器214可以存储上面未描述的附加模块或数据结构。
尽管图2示出了计算设备200,但是图2更多地被预期作为可能存在的各种特征的功能描述,而不是作为本文所述的实现方式的结构示意图。在实践中且如本领域中的普通技术人员所认识到的,单独示出的项目可以组合并且一些项目可以被分离。
图3A示出了用于数据准备的用户界面300的概述,显示了将不同功能分组在一起的窗格。在一些实现方式中,左侧窗格312为用户提供定位和连接到数据或对已经选择的数据执行操作的选项。在一些实现方式中,流程区域313示出在节点处对所选择的数据执行的一个或更多个操作(例如,用于准备数据以供分析的数据操纵)。在一些实现方式中,配置文件区域314提供关于当前选择的节点处的数据集的信息(例如,关于数据集中的一些数据字段的数据值分布的直方图)。在一些实现方式中,数据网格315提供在当前选择的节点处的数据集的行和列中的原始数据值。
图3B提供了用于数据准备的用户界面300的具体示例,其显示在每个窗格中的用户界面元素。菜单栏311包括一个或更多个菜单,例如文件菜单和编辑菜单。虽然编辑菜单是可用的,但是对流程的更多改变是通过与流程窗格313、配置文件窗格314、或数据窗格315进行交互来执行的。
在一些实现方式中,左侧窗格312包括数据源调色板/选择器。左侧窗格312还包括操作调色板,其显示可以放置到流程中的操作。在一些实现方式中,操作的列表包括任意联接(任意类型的和具有各种谓词的联接)、联合、将行转换为列、重命名和限制列、标量计算的投影、筛选、聚合、数据类型转换、数据解析、合并、融合、拆分、聚合、值替换、和采样。一些实现方式还支持操作员创建集合(例如,将数据字段的数据值划分成集合)、分箱(binning)(例如,将数据字段的数字数据值分组成一组范围)、和表计算(例如,计算每行的数据值,诸如总数的百分比,这些数据值不仅依赖于每行中的数据值,而且还依赖于表中的其他数据值)。
左侧窗格312还包括可以全部或部分地合并到当前流程中的其他流程的调色板。这使用户能够重新使用流程的部件来创建新的流程。例如,如果已经创建了使用10个步骤的组合来擦掉某一类型的输入的流程的一部分,则该10个步骤流程部分可以在同一流程中或在完全分离的流程中被保存和重新使用。
流程窗格313显示当前流程的视觉表示(例如,节点/链路流程图)323。流程窗格313提供用于用记载(document)该过程的流程的概述。当节点的数量增加时,实现方式通常添加滚动框。通过将多个相关节点合并成也被称为容器节点的超级节点来减小对滚动条的需要。这使用户能够更在概念上看到整个流程,并且只在必要时允许用户钻研细节。在一些实现方式中,当“超级节点”被扩展时,流程窗格313仅显示在超级节点内的节点,并且流程窗格313具有识别流程的哪个部分正在被显示的标题。实现方式通常实现多个分层级别。
复杂的流程可能包括节点嵌套的几个级别。流程图323中的不同节点执行不同的任务,且因此节点内部信息是不同的。此外,一些实现方式根据节点是否被选择来显示不同的信息。流程图323提供了一种容易的、视觉的方式来理解数据如何得到处理,并且保持过程以对用户合乎逻辑的方式被组织。
如上所述,配置文件窗格314包括关于在流程窗格313中的当前选择的节点(或多个节点)处的数据集的方案信息。如在这里所示的,方案信息提供关于数据的统计信息,例如每个字段的数据分布的直方图324。用户可以直接与配置文件窗格交互以修改流程323(例如,通过基于数据字段的值来选择用于筛选数据行的数据字段)。配置文件窗格314还给用户提供关于当前选择的节点(或多个节点)的相关数据以及指导用户的工作的可视化。例如,直方图324示出了每列的域的分布。一些实现方式使用涂刷(brushing)来显示这些域如何与彼此交互。
数据窗格315显示对应于在流程窗格313中的所选择的一个或更多个节点的数据行325。每列326对应于数据字段之一。用户可以直接与数据窗格中的数据交互以修改流程窗格313中的流程323。用户还可以直接与数据窗格交互以修改各个字段值。在一些实现方式中,当用户对一个字段值做出改变时,用户界面将相同的改变应用于在其值(或模式)匹配用户刚刚改变的值的同一列中的所有其他值。
在数据窗格315中对数据的采样被选择以向用户提供有价值的信息。例如,一些实现方式选择显示数据字段的值的全范围(包括异常值)的行。作为另一个示例,当用户选择了具有两个或多个数据表的节点时,一些实现方式选择行以帮助联接这两个表。选择在数据窗格315中显示的行以显示在两个表之间匹配的行以及不匹配的行。这可能在确定哪些字段用于联接和/或确定使用什么类型的联接(例如,内、左外、右外、或全外)时是有用的。
尽管用户可以直接在流程窗格313中编辑流程图323,但是对操作的改变通常以更直接的方式完成,直接对在配置文件窗格314或数据窗格315中的数据或方案进行操作(例如,右键点击在配置文件窗格中的数据字段的统计以添加列或从流程中移除列)。
传统的数据可视化框架依赖于用户来解释数据的含义。一些***理解像数据类型这样的低级数据约束,但缺乏对数据在现实世界中代表什么的理解。这在两个关键方面限制了此类***提供给用户的价值。首先,用户需要每个数据表的专业知识来理解它的含义,以及如何最好地产生有用的可视化(即使是经过整理的数据源也很少提供上下文)。其次,用户需要花费大量时间来手动操纵数据和编写计算,以有意义的形式产生数据。
一些实现方式通过使用更深层次的语义来丰富数据模型,并通过使用这些语义来提供智能自动化,克服了这些限制。这样的实现方式减少了用户对访问有意义内容的知识和专业知识的依赖。语义包括帮助计算建模数据在现实世界中所代表的元数据。语义有多种形式,其范围从公开字段之间的关系到用附加信息丰富数据的各个行。在一些实现方式中,行级语义包括同义词、地理编码和/或实体充实。在一些实现方式中,字段级语义包括数据类型、字段角色、数据范围类型、bin类型、默认格式、语义角色、单位转换、验证规则、默认行为和/或同义词。在一些实现方式中,对象级语义包括对象关系、字段计算、对象验证、查询优化和/或同义词。
字段级语义
在一些实现方式中,字段级语义在单个字段的上下文中利用更丰富的类型信息来扩充关于字段的现有元数据。在一些实现方式中,字段级语义排除关于字段或对象之间关系的知识。在一些实现方式中,字段级语义是从字段类型元数据构造的。一些实现方式对数据源字段使用语义角色属性(例如,地理角色)。一些实现方式通过添加对附加字段属性的支持来扩展字段级语义。
度量单位
一些实现方式添加单位作为字段(特别是度量)的属性,以自动化单位转换,改进格式化,并改进默认可视化行为。单位标度的示例包括:货币($)、持续时间(小时)、温度(℉)、长度(km)、体积(L)、面积(平方英尺)、质量(kg)、文件大小(GB)、压力(atm)、百分比(%)和速率(km/小时)。
一些实现方式在不同的用例中应用字段级语义,并在各种场景中提供改进的用户体验或结果。一些实现方式使用字段级语义以在自然语言查询中提供单位转换。例如,假设用户查询“超过3.5小时的通话”。一些实现方式提供小时到毫秒的自动单位转换(例如,在筛选器中)。一些实现方式在双轴可视化中提供单位归一化。假设用户将华氏场与摄氏度量进行比较。在该示例中,华氏自动转换为摄氏。类似地,在数据准备期间,一些实现方式将字段级语义应用于计算中的格式推断。假设用户通过将“距离”(以英里为单位)除以“时间”(以秒为单位)来创建计算字段。一些实现方式推断出“英里/秒”的默认格式。一些实现方式在可视化中应用字段级语义。例如,假设用户创建具有高度的条形图可视化。一些实现方式将度量格式化(例如,轴显示单位,如156cm)。在一些实现方式中,常量转换(如英里到公里)被编码在本体中,但像货币这样的变量从外部源(例如,计算知识引擎)导出。
自动数据验证和清理
一些实现方式添加验证规则作为字段的属性,以允许用户更容易地识别和清理脏数据。例如,开箱即用的验证规则包括电话号码、邮政编码、地址和URL。一些实现方式使用字段级语义来清理脏数据。例如,假设用户在数据准备期间上传了一个地址格式不正确的数据集。一些实现方式自动检测无效的数据行,并建议清理流程(例如,在Tableau Prep中)。作为另一个用例,一些实现方式在处理自然语言用户查询时使用字段级语义来执行字段推断。例如,假设用户查询“user sessions For [email protected]”。一些实现方式自动检测用户提供的值是电子邮件地址,并推断出“电子邮件”字段进行筛选。
默认行为
一些实现方式使用杂项语义概念的其他属性来自动改进跨字段的默认行为。一些实现方式应用字段级语义来确定用于生成数据可视化的默认排序。假设用户使用数据值“高”、“中”和“低”的“优先级”字段创建条形图可视化。一些实现方式自动按标量顺序而不是按字母顺序对值进行排序。一些实现方式应用字段级语义来确定用于生成数据可视化的默认颜色。假设用户创建了在选举中投票的可视化。当用户按县可视化政党胜利时,一些实现方式会自动按其政党颜色为区域着色。一些实现方式在数据准备期间应用字段级语义来确定默认角色。假设用户上传带有主键的数据集。一些实现方式自动将主键字段的角色设置为维度,即使它是数字数据字段。
同义词
一些实现方式使用关于字段及其域值在现实世界中表示的知识,以及人们对它们的不同名称,以改进自然语言查询的解释,并通过搜索改进数据发现。
在自然语言处理过程中,一些实现方式使用字段级语义来识别同义词。例如,假设用户查询“按类别的平均订单大小”。一些实现方式将“订单大小”映射到“量”字段,并显示按类别显示平均量的条形图可视化。一些实现方式使用字段级语义执行数据源发现。例如,假设用户在数据可视化服务器(例如,Tableau服务器)中搜索“客户”。一些实现方式确定包含与“客户端”、“客户”和“订阅者”相对应的数据的数据源。
对象级语义
一些实现方式使用对象级语义来扩展语义角色,其中新概念在特定对象的背景下具有意义。通过这种方式,一些实现方式自动将自然语言、相关计算、分析规则和约束与数据元素关联起来。
一些实现方式通过为字段分派语义角色,将其与概念关联,从而将语义与数据属性关联起来。在一些实现方式中,使用有向非循环概念图来表示概念。在一些实现方式中,概念链形成层次结构,其中每个层次级别都将新的现实世界理解添加到数据中,继承了先前级别的语义。
图4示出了根据一些实现方式的示例概念图400。在所示示例中,第一节点402对应于概念“货币”,第二节点406对应于概念“美元”,第三节点406对应于概念“市值”,以及第四节点408对应于概念“股票”。连接节点的边表示概念之间的关系。数据字段和/或表与一个或更多个概念相关联。假设一个字段与概念货币相关联。一些实现方式基于概念图推断出概念货币与概念美元相关联。基于这种语义关系,一些实现方式为字段指明了可能的单位(在本示例中是美元)。在一些实现方式中,概念是嵌套的。在一些实现方式中,关系是分层的,这意味着子概念继承父概念的特征。在图4所示示例中,概念市值继承了股票概念的语义角色。
在一些实现方式中,每个语义概念包括定义概念的含义、用户可以使用哪些自然语言表达式来引用它和/或用户应该能够执行(或阻止执行)哪些类型的计算的背景信息。在一些实现方式中,这种背景信息在不同的对象背景下是不同的——例如,术语“率(rate)”在税收或投资背景下的使用与在声音频率或赛车背景下的使用不同。
字段计算
一些实现方式使用字段的含义来自动推断在语义上可能有意义的其他相关信息的计算。对象级语义的一些实现方式可以推断计算出的字段,以在数据准备期间帮助用户。例如,假设用户发布具有包含出生日期字段的人类对象的数据源。一些实现方式自动建议添加名为“年龄”的计算字段。一些实现方式自动解释引用年龄的自然语言查询。一些实现方式使用对象级语义信息来解释不明确的自然语言查询。例如,假设用户查询“最大的国家”。一些实现方式按照人口降序自动筛选排名靠前的国家。一些实现方式使用对象级语义来解释包含字段之间关系的自然语言查询。例如,假设用户查询“平均事件持续时间”,并还假设持续时间不在任何数据源中。一些实现方式将持续时间自动计算为开始和结束日期(和/或时间)的函数。
对象关系
一些实现方式使用对象级语义来推理对象与其字段之间的关系。在一些实现方式中,这种推理限于对象的对之间的关系。在一些实现方式中,这种推理被扩展到完整的对象网络,以形成整个已知数据集,如“销售团队(Salesforce)”或“条带(Stripe)”。在一些实现方式中,这种推理被用于进行内容推荐、关联相似的数据集或理解自然语言查询。
一些实现方式使用对象级语义来解释自然语言查询以确定对象之间的关系。例如,假设用户查询“John发送的消息”。一些实现方式确定要联接的一个或更多个表(例如,用户和消息)。一些实现方式确定应该对由外键(例如,sender_id外键)联接的关系执行筛选操作。
一些实现方式使用对象级语义来执行查询评估优化。例如,假设用户评估对“用户计数”的查询,并进一步假设用户有许多消息。一些实现方式对不同的归一化消息的计数执行有效查询。
对象验证
一些实现方式基于对象级语义执行数据和/或对象验证。一些实现方式使用对象的背景来了解哪些验证可以应用于字段。一些实现方式将分析约束为基于背景确定对字段应用的验证。一些实现方式在数据准备过程中使用对象级语义来帮助用户。例如,假设用户发布带有地震震级数据的数据源。一些实现方式检测脏数据(例如,震级<1)。作为响应,一些实现方式向用户提供清理或筛选数据的选项,或者自动清理和/或筛选掉坏数据。
行级语义
一些实现方式在数据的行级处识别实体,并通过智能地将识别出的实体联接在一起,用从其他数据源导出的附加信息来丰富这些实体。在一些实现方式中,丰富数据源自客户提供的现有数据源,或源自数据可视化平台提供的数据(例如,来自Tableau的地理编码数据)或甚至第三方提供的数据(例如,公共或政府数据集)。
一些实现方式在数据准备期间帮助用户。例如,假设用户发布带有股票代码符号的数据源。一些实现方式使用外部数据执行实体丰富。例如,一些实现方式推荐与(由用户提供或从外部源导出的)另一数据集联接,以获取关于每个上市公司的数据(例如,总部位置)。对于这个示例,一些实现方式随后解释了关于总部位于加拿大的公司的投资的问题。
语义信息的推导
一些实现方式用语义丰富数据模型,即使不确定数据片应该如何分类。一些实现方式通过定义确定性规则来使用推断语义,这些规则用于从存储在数据源中的现有元数据推断语义分类,诸如通过检查度量的默认格式来推断度量是否为百分比。一些实现方式使用手动分类,并允许用户通过从选项列表中选择一个或更多个语义角色来手动标记字段。一些实现方式通过研究用户如何标记他们的数据源以做出推荐的模式来执行自动语义分类。在一些实现方式中,这些推荐是显式语义分类,用户可以重写它们。一些实现方式对用于在基于相似性的推荐算法中使用(例如,“类似字段通常这样使用”)的指纹字段使用这些模式。
全局语义概念
一些实现方式为用户提供全局语义概念的本体,以便在标记他们的字段时进行选择。这些概念具有普遍的语义意义。例如,“货币”或“长度”的概念不依赖于背景,并且一些实现方式对具有这些类型的字段的期望行为做出了合理假设。
用户定义的语义概念
一些实现方式从描述语义的稳定模型开始,并使用户能够用自定义语义概念扩展他们的本体。优选地,有价值的概念对于客户数据集或其业务是唯一的,和/或是可重新配置的。
例如,客户选择构建他们自己的与“零售”相关的语义概念包。如果用户后续上传数据集并选择应用“零售”包,则一些实现方式会自动建议哪些语义标签可以应用于哪些字段。
通过语义治理,一些实现方式允许组织整理跨团队共享语义包的本体。一些实现方式已经开发了领域特定语义概念的大型存储库,并创建了可以在客户之间共享这些语义概念的市场。
一些实现方式包括提供语义信息的模块。在一些实现方式中,这样的模块和/或语义信息是可配置的。一些实现方式自动检测数据角色。一些实现方式使用描述语义概念的结构和表示以及负责持久化、访问和/或管理语义概念的语义服务的架构和接口的框架。一些实现方式使用该框架来生成全局语义概念库(例如,“默认本体”)。一些实现方式使库可供用户管理或编辑。一些实现方式使用语义标记的数据源的示例来训练预测模型,以做出语义标记的推荐,从而减少从语义上准备用于分析的数据所需的工作量。
语义服务架构
图5A提供了根据一些实现方式的示例语义服务架构500。在一些实现方式中,语义服务524运行在数据可视化服务器522(例如,或者在现场、或者在线、或者在云中的Tableau服务器)上和/或在数据准备服务器(例如,Tableau Prep服务器)上。在一些实现方式中,语义服务524负责持久化和/或管理由数据角色服务512和相关特征使用的语义概念。在一些实现方式中,语义服务524用Go或类似的编程语言(例如,提供存储器安全性、键入和并发性的语言)编写。在一些实现方式中,语义服务使用gRPC接口或类似的高性能远程过程调用(RPC)框架,该框架在各种环境中运行,以连接数据中心内的和跨数据中心的服务。数据角色服务512捕获易于重使用、共享和治理的数据的语义属性。在一些实现方式中,数据角色表示内容类型。在一些实现方式中,关于数据角色的数据有两个组成部分:(i)内容元数据,其通常存储在data_roles表中的单体架构(monolith)502上,以及(ii)语义概念数据,其通常存储在语义服务524处(例如,在Postgres数据库518中、Elasticsearch数据库526中和/或类似的分析引擎中)。
在一些实现方式中,数据角色服务512(例如,Java模块)在单体架构502中运行,并负责管理数据角色内容元数据。在一些实现方式中,数据角色服务512是进程内服务,并且不侦听任何端口。在一些实现方式中,数据角色服务512从外部API(诸如(由数据准备使用的)REST API 504、(由服务器前端使用的)Web客户端API 506和客户端XML服务508)接收请求。
在一些实现方式中,语义服务524是Go模块,其运行在提供诸如自然语言查询处理的服务的NLP服务522中。在一些实现方式中,语义服务524具有由数据角色服务512使用的内部公开的gRPC接口。
编排数据角色(Authoring Data Roles)
在一些实现方式中,存在两种数据角色——内置数据角色(例如,国家或URL)和由客户/用户定义的自定义数据角色。
在一些实现方式中,自定义数据角色只在数据准备中编排。在一些实现方式中,自定义数据角色也在数据可视化软件的桌面版本、服务器和/或其中编排或操纵数据源的任何环境中编排(例如,目录、Web编排或询问数据)。
根据一些实现方式,图5A中的箭头示出了示例过程流。在一些实现方式中,数据准备向REST API服务504发送请求。在一些实现方式中,数据角色服务512使用授权服务510验证请求的权限516。在一些实现方式中,数据角色服务512将数据角色的内容元数据保存在数据库(例如,Postgres数据库518)中的data_roles表中。在一些实现方式中,数据角色服务512向语义服务524发送请求以保存数据角色的字段概念数据。根据一些实现方式,字段概念数据包含数据角色的语义内容。在一些实现方式中,数据角色服务512通知搜索服务514内容片段被更新并且需要在Solr520(或类似的企业搜索平台)中被索引。
匹配数据角色与数据字段
在一些实现方式中,语义服务524提供gRPC(或类似)接口以公开使用字段概念数据来检测字段的数据角色并在语义上丰富/验证其或其值的功能。一些实现方式使用字段概念数据提供值模式匹配。在这种情况下,字段概念数据对验证一个值在数据角色的背景下是否有效的正则表达式进行编码。一些实现方式使用字段概念数据提供名称模式匹配。在这种情况下,字段概念数据对验证数据字段的名称在数据角色的背景下是否有效的正则表达式进行编码。一些实现方式使用字段概念数据提供值域匹配。在这种情况下,字段概念数据引用发布的数据源的标识符和字段名,这为数据角色定义了有效成员值的域。
图5B是示出根据一些实现方式的读和写数据角色532的模块之间的同步的示意图530。在一些实现方式中,如果数据角色使用值域匹配,则语义服务524从发布的数据源536检索值并在Elasticsearch 526中索引它们,从而执行匹配。在一些实例中,基础数据源可能很慢,并且使用类似ElasticSearch的服务来帮助确定在短持续时间内(例如,小于一毫秒)一个值是否与任何(可访问的)数据角色的任何值匹配。在一些实现方式中,每个数据角色引用发布的数据源536作为该数据角色的值的真值源。当创建数据角色或更新数据源时,在一些实现方式中,语义服务524查询数据服务器以提取值并在Elasticsearch 526中索引它们。
在一些实现方式中,数据角色532的数据来自具有嵌入数据源的数据准备流534和/或工作簿538。在一些实现方式中,用于数据角色532的发布数据540存储在数据库240中(例如,作为语义模型242的一部分)。
数据驱动的自然语言查询处理
在一些实现方式中,由用户提供的自然语言命令和问题(例如,由用户询问的关于包括在数据可视化或发布的工作簿中的信息的问题)可以被利用来改进推荐、推断的质量和相关性,并用于模糊度解析(ambiguity resolution)。
推荐
在一些实现方式中,解释用户输入(诸如问题或自然语言命令)可以包括推断用户输入中包括的表达式或表达式的一部分。在这种情况下,可以向用户提供一个或更多个推荐或建议。例如,当用户输入选择感兴趣的数据源时,自动生成的建议列表可以包括以下任何建议:“按邻域”、“按字母顺序对邻域排序”、“按记录数之和的顶部邻域”、“平方英尺之和”、“平方英尺之和与主机总列表计数之和作为散点图”或“平方英尺至少为0”。在一些情况下,自动生成的建议可以包含不太可能与用户相关的建议。
在一些实现方式中,使用一个或更多个模型来提供与用户相关的推荐例如,当用户选择或标识感兴趣的数据源时,推荐可以包括例如:所选择数据源中的一个或更多个顶部字段、所选择数据源中的一个或更多个顶部概念(例如,“平均”筛选器)或一个或更多个完全指定的子表达式(例如,筛选、排序、限制、聚合)。在第二示例中,当用户选择了数据源和所选择数据源中的数据字段时,推荐可以包括一个或更多个顶部子表达式(例如,筛选、排序、限制、聚合)或一个或更多个顶部值。在第三示例中,当用户选择了数据源和一个或更多个表达式时,推荐可以包括一个或更多个顶部数据可视化类型。在另一示例中,当用户选择数据源、数据字段和筛选器时,推荐可以包括数据字段中满足筛选条件的一个或更多个顶部值。在又一示例中,当用户选择数据源和子表达式类型时,推荐可以包括一个或更多个顶部相关子表达式类型。
现有可视化背景
在一些实现方式中,用于提供推荐的一个或更多个模型可以考虑当前显示的数据可视化的数据可视化类型(例如,条形图、折线图、散点图、热图、地理图或饼图)以及具有类似数据可视化类型的历史使用行为。例如,当用户指定数据源和数据可视化类型时,推荐可以包括要添加到现有内容的一个或更多个顶部字段。可选地,推荐可以包括要添加到给定现有内容的一个或更多个顶部表达式(例如,流行筛选器)。
用户背景
在一些实现方式中,一个或更多个模型可以包括一个或更多个用户(例如,用户账户和/或用户配置文件),以便提供针对每个用户的个人行为定制的推荐。例如,商业团队中的用户可能会优先处理“订单日期”字段,但运输和物流团队的成员可能会优先处理“发货日期”字段。当商业团队中的用户选择数据源时,模型可能会推荐“订单日期”字段,而当运输和物流团队中的用户选择相同的数据源时,模型可能会推荐“发货日期”字段,而不是“订单日期”字段,或者除了“订单日期”字段之外还会推荐“发货日期”字段。因此,模型可以提供对每个用户最相关且合适的个性化推荐。
模糊度解析
在一些实现方式中,自然语言输入可以包括冲突的表达式(conflictingexpression)。虽然可以使用启发式选择默认表达式,但是在给定所选择的数据源、现有可视化背景或用户的情况下,默认选择可能并不总是最佳选择。
冲突类型的一些示例包括:
·多个字段之间的冲突
·字段间多个值之间的冲突
·字段内多个值之间的冲突
·分析概念或表达式之间的冲突
·值和字段之间的冲突
·值/字段与分析概念或表达式之间的冲突。
为了解决自然语言输入中的这种冲突,一些实现方式使用各种类型的权重来选择最合适或相关的表达式。权重的一些示例包括:特定表达式类型的硬编码权重、字段的受欢迎程度得分以及值和/或关键短语的出现频率。
在一些实现方式中,可以基于表达式在自然语言输入和/或在发布的数据可视化工作簿中的可视化中的出现频率来更新权重。
例如,当用户在访问包括假日租赁信息的数据源时提供自然语言输入“第七区平均价格(avg price seventh ward)”时,推荐可以包括以下任一选项:
·每日平均价格,将邻域筛选到第七区;
·每周平均价格,将邻域筛选到第七区;
·每月平均价格,将邻域筛选到第七区;
·每日平均价格,将主机邻域筛选到第七区;
·每周平均价格,将主机邻域筛选到第七区。
在通用示例中,当用户选择数据源并提供字符串(诸如“第七区”)时,推荐可以包括一个或更多个文本字段,这些文本字段包括作为数据值的字符串。在另一示例中,当用户选择数据源和可视化并提供字符串时,推荐可以包括一个或更多个表达式(例如,值表达式或字段表达式)。类似地,当用户在登录到账户或配置文件时选择数据源并提供字符串(以便一个或更多个模型可以考虑个人偏好)时,推荐可以包括一个或更多个表达式(例如,值表达式或字段表达式)。在一些实现方式中,一个或更多个表达式包括正则表达式,诸如帮助用户进行选择的模式。
有一些实例,其中启发法不能很好地解决自然语言输入中的冲突的表达式。图6A是根据一些实现方式的示出基于使用情况统计的排序启发法的示例代码片段600。对于该示例,假设筛选器FilterTo 604相比于筛选器AtLeast 602具有更高的使用情况计数。这可能是因为在对应的数据源中只有一个数字字段(薪酬),同时具有许多文本或地理字段,如城市、洲、国家、联盟、球员、球队。在这些情况下,一些实现方式会相应地对筛选器进行排序。在该示例中,筛选器FilterTo 604至少排在筛选器AtLeast 602之上。
图6B是根据一些实现方式的不使用语义信息的用户查询的示例数据可视化610。假设用户按联盟614、按国家616查询最大薪酬612。进一步假设用户没有选择可视化类型。在没有语义信息的情况下,一些实现方式示出了分别对应于联盟618和620的地图622和624。
图6C是根据一些实现方式的用于图6B中使用语义信息的用户查询的示例数据可视化630。一些实现方式基于基础数据字段的语义信息自动导出可视化类型(在此示例中为条形图632)。在这种情况下,数据可视化630包括分别用于联盟618和620的条形图634和636。
图6D示出了根据一些实现方式的示例查询。一些实现方式跟踪过去查询中重复的表达式,和/或跟踪自然语言查询中表达式的使用情况计数,并将这种统计与数据字段(例如,薪酬或联盟)相关联以自动导出可视化类型。在图6D所示的示例中,表达式“作为条形图”640显式出现多次。对于这个示例,当***(例如,解析器模块)确定自然语言表达式涉及薪酬或联盟时,***自动显示条形图。
图6E示出了根据一些实现方式自动生成建议的示例。假设用户通过商家类型描述642-2查询交易金额,并指定筛选器642-4(以将商家类型描述筛选成家庭供应仓库)。进一步假设用户在细化查询时犯了一个打字错误642-6,或者假设自然语言查询处理无法理解请求。一些实现方式为用户提供了用于细化查询的一些建议。在本示例中,建议642-8询问用户是否希望添加“交易金额至少-20.870”。在没有关于交易金额的语义信息的情况下,自然语言处理信息允许筛选器使用负金额。
图6F示出了根据一些实现方式的示例使用情况数据。对于正在运行的示例,使用情况统计包括关于“交易金额”的使用情况的数据。通过该使用数据,一些实现方式确定值“185.05”在用户查询中经常使用,且因此推断该值为交易金额的更合理的值。一些实现方式将图6E中建议的导出的“交易金额”值标记为可疑值,而不是推断出合理值。
图6G示出了根据一些实现方式用于筛选数据的示例建议。在本示例中,用于对审核类型字段进行筛选的建议646在这里包括默认推断值“空”。图6H示出了根据一些实现方式的示例使用情况统计。对于当前示例,基于“审核类型”(对应于“交易金额”)的使用情况数据648,一些实现方式确定“酒精”比所有其他审核类型值更受欢迎。基于这个使用情况数据,一些实现方式将此实例中的推断值确定为“酒精”。
图6I示出了根据一些实现方式用于自然语言查询的示例建议。在所示示例中,在对商家名称进行聚合650之后,各种建议652、654和656未能向用户提供有用提示。特别是,在该实例中建议对商家名称的计数添加筛选器是没有意义的。另一方面,建议660(添加字段/筛选器,如交易金额至少100)或建议662(添加薪酬至少0)更有意义。以这种方式,一些实现方式应用与数据字段相关联的使用情况数据(例如,存储在语义角色或语义信息中的使用情况统计)来改进建议。
图6J示出了根据一些实现方式基于使用情况统计的更智能建议的示例。一些实现方式为用户提供的完整表达式或部分表达式(作为自然语言查询的一部分)提供了更智能的推荐。在图6J所示的示例中,假设值“中国”664在国家和州中都存在,并且假设州比国家更受欢迎。第一个建议666错误地将中国视为州。根据使用情况,由于很少有人会选择中国作为一个州,因此在一些实现方式中,自然语言解析器能够自动更正数据源,并将中国正确地解释为国家(如建议668和670所示)。
在一些实现方式中,使用情况统计使用数据结构来表示,该数据结构将查找映射关联起来,以便获得对于每个值的每个数据源,下面显示了其一个示例:
一些实现方式使用一个或更多个接口,这些接口表示用于获取顶部值和计数的键。图6K根据一些实现方式示出了用于获取使用情况统计的接口的示例实现方式的表672。在表中,第一列674对应于各个接口,第二列676对应于由第一列中的接口支持的统计的类型,第三列678对应于传递给第一列中的接口的键,以及最后一列680对应于由第一列中各个接口返回的值。
一些实现方式使用数据结构来表示由上面参考图6K解释的接口返回的值,下面显示了其一个示例:
一些实现方式根据值所附加的StatKey类型将值转换为特定类型。
一些实现方式使用解析器(例如,自然语言查询解析器)中的接口(例如,StatKey)来获取值和计数。例如,为了获取对于字段sales和筛选器atLeast的最受欢迎的值,一些实现方式执行以下操作:
values:=usageStats.Loopup[NewFieldFilterToValueKey(“sales”,“atLeast”)]
mostPopularValue:=values[0].value.(complexValue)。
一些实现方式确保上述转换将会成功,并且所有值在添加到UsageStats之前都经过验证。
一些实现方式使用一个或更多个语义模型接口。下面提供了语义模型接口的示例:
一些实现方式与ArkLangData模块接口连接以获取使用情况统计(例如,func(parser)GetStats(exp ArkLangExp)[]stat)。一些实现方式存储自然语言处理推荐记录,用于跟踪使用情况统计。在一些实现方式中,推荐记录中的每一行代表对于分析概念的每日计数,并且包括时间信息(例如,创建记录的月份)、数据源URI字符串、统计类型字符串、表示键的字符串、数据字符串和/或计数字符串。一些实现方式还包括用于基于自然语言处理的可视化的数据可视化类型列。
一些实现方式存储自然语言处理使用情况统计。一些实现方式在统计中包括数据源URI字符串和使用情况统计(例如,JSON格式)。
一些实现方式存储性能估计,诸如在一段时间内(例如,持续90天)的可视化的数量。一些实现方式针对每个可视化存储统计的数量(例如,20个统计)或统计的范围。一些实现方式存储对于自然语言处理统计的每月聚合计数(例如,每月5个意味着60,000条记录/5=12,000条记录)。一些实现方式存储活动数据源的数量(例如,200个活动数据源)和/或每个数据源的记录数量。
数据角色的各种应用
在一些实现方式中,当与数据元素(如对象、字段或值)相关联时,关于真实世界的知识被用于自动化或增强分析体验。该知识提供了对数据字段的语义的理解,并且继而被用于帮助用户清理他们的数据、分析其、有效地呈现其和/或将其与其他数据相关联以创建丰富的数据模型。
一些实现方式将源自不同源的相同数据值或手动输入的数据值的不同表示形式标准化。在一些实现方式中,字段的语义有助于描述用于标准化的预期域值。
在一些实现方式中,数据知识包括在许多不同背景下通用的概念,诸如地理编码、电子邮件和URL。有时,这些概念被称为全局数据角色。
除了全局数据角色之外,在一些实现方式中,数据知识还包括与域特定背景相关的概念。这些角色被称为用户定义的数据角色。在许多情况下,客户用例涉及非标准域,诸如产品名称或健康码。例如,用户可以设置自定义数据角色(例如,用户定义的数据角色),以通过自动识别无效值并帮助用户修复它们(例如,对已知值应用模糊匹配)来帮助标准化域值。
在一些实现方式中,用户定义的数据角色只有在他们连接到(例如,登录到)服务器时才对用户可用。在一些实现方式中,被包括在第一用户的用户定义的数据角色中的语义和标准化规则可以经由服务器与其他用户共享以用于数据准备和分析。因此,连接到服务器的用户可以共享、查找和发现组织中的内容,诸如由同一团队、组或公司中的其他用户创建的用户定义的数据角色。
在一些实现方式中,用户能够在当前应用中访问和重新利用先前在不同于当前应用的另一应用中定义的用户定义的数据角色。
在一些实现方式中,多个应用共享和利用数据角色池,以便获得每个应用的背景唯一的附加值。应用特定的语义功能的示例包括:
·将数据角色应用于数据字段,以识别与该角色不匹配的域值,从而用户可以清理该数据字段;
·分析用户的数据并建议应用于数据字段的匹配数据角色;
·对于具有数据角色的数据字段,分析用户的数据并推荐应用于该数据字段的清理转换;
·一旦数据字段具有数据角色,选择好的默认格式选项来显示数据字段中的值;
·清理用户的数据字段,并将清理后的数据字段作为数据角色保存到服务器,从而为用户组织中连接到服务器的其他用户提供对数据角色的访问权,以用于另外的数据准备和分析;
·通过在用户的查询(例如,自然语言命令、问题或搜索输入)中输入的同义词标识数据字段;
·自动将数据字段的单位从其规范单位转换为在用户查询中输入的单位;
·从用户查询(例如,用户查询,如“user sessions for [email protected]”)中输入的特定数据值的数据角色推断字段;
·通过对数据字段与用户查询目标之间关系的理解推断计算的数据字段(例如,从数据源中的开始日期和结束日期计算持续时间);
·通过对数据字段和用户查询目标之间关系的理解来推断表之间的联接。(例如,自然语言输入“John发送的消息”导致关于通过“John”筛选的sender_id联接用户和消息);
·搜索字段可以将表中的字段名与查询中使用的同义词匹配。
·跨流搜索通常可以处理更有表现力的查询(例如,“连接到客户的所有输入步骤”);
·从对数据字段与用户查询目标之间关系的理解来创建计算的数据字段(例如,从表中的开始日期和结束日期计算持续时间);
·从对数据字段和用户查询目标之间的关系在表之间创建联接(例如,自然语言输入“用户发送的消息”关于sender_id联接用户和消息),;
·搜索数据源可以将数据源中的数据字段名与查询中使用的同义词进行匹配;
·搜索通常可以处理更有表现力的查询(例如,“至少5个工作簿使用的所有错误(bug)数据源”);
·查看和编辑跨组织或公司共享的用户定义的数据角色的目录;
·自动用单位标记轴或图例;
·自动对双轴图上的单位进行归一化(例如,将以摄氏为单位的度量与以华氏为单位的度量进行比较);
·在使用不同单位的值执行计算时自动转换单位(例如,将华氏温度添加到摄氏温度);
·按优先级(例如,“高”、“中”、“低”)排序的条形图的默认排序是按相关联的标量值(例如,1、2、3)排序;
·地图上按政党归属标识的区域的颜色编码默认为政党颜色;
·为数据字段分派数据角色,将要清理的数据源导出到数据准备应用以清理(例如,移除)无效值,并将清理的数据源导入回到初始数据应用或桌面以继续分析;
·搜索数据源可以将数据源中的数据字段名与查询中使用的同义词进行匹配;
·搜索通常可以处理更有表现力的查询(例如,“至少5个工作簿使用的所有错误数据源”);
·影响分析:查找包含使用特定数据角色的数据字段的所有流和数据源;
·经由建立的对象模型识别语义相关的数据字段(例如,当名称、地址和ID字段在客户对象中时,它们都与客户相关联);
·使用对象模型关系自动联接数据字段和/或数据表;
·建议具有语义关联的一组数据字段(例如,可以建议将Product_Name、Product_Code、Product_Details分组到产品对象中);和
·在对象模型构建阶段期间,基于与其他表进行的联接建议关系。
在一些实现方式中,数据角色对用户的工作流有短期影响和作用。例如,数据角色用于自动检测数据准备应用中的脏数据(例如,标记无效电话号码,从而用户知道它们需要清理)。在另一示例中,数据角色用于自动解释服务器中数据源上自然语言输入中的同义词(例如,将“大不列颠”映射到“联合王国”)。在又一示例中,创建的用户定义的数据角色被发布到服务器以供共享使用。
在一些实现方式中,数据角色对用户的工作流有长期影响和作用。例如,数据角色用于推荐或推断在发布的数据源上的计算的数据字段(例如,在已知“出生日期”时推断“年龄”)。在另一示例中,数据角色用于添加对度量单位的支持(例如,响应于接收诸如“距离至少4,000km”的自然语言输入,执行从千米到英里的单位转换)。
通过采用用户定义的数据角色,向用户介绍在编排(authoring)、关联和治理工作流中的新体验。
在一些实现方式中,当用户将数据源添加到用户的桌面、数据准备应用或连接的服务器时,数据源中的相关数据字段与已知(例如,预定义的或先前使用的)字段级数据角色自动关联。这种关联对用户是可见的,并且用户可以通过从一组现有数据角色中选择一个数据角色来选择重写推断的数据角色。在存在许多数据角色的情况下,用户可以搜索和/或导航选项的目录,以更容易地选择与当前数据源背景和/或与用户自己的偏好相关的概念。
在一些实现方式中,可能没有满足用户需求的现有数据角色。在这种情况下,用户可以编排(例如,创造、生成或定制)新的字段级数据角色。例如,用户可以将现有数据字段中的元数据作为数据角色发布到连接的服务器。在一些实现方式中,元数据包括数据字段的名称、同义词、定义、验证规则(例如,正则表达式)或已知域值。在一些实现方式中,用户可以在将数据角色发布到服务器之前编辑这些属性。在一些实现方式中,用户还可以从头开始编排新的字段级数据角色,而不从现有数据字段继承属性。在一些实现方式中,新编排的数据角色被保存到储存装置(例如,由语义服务管理的储存装置),和/或用其他数据源自动检测。此外,用户可以选择是否与使用由同一服务器提供的应用的其他用户共享他们的数据角色。
在一些实现方式中,用户可以浏览编排的数据角色的目录以查看其元数据,并跟踪数据角色的沿袭以了解哪些数据源具有与其相关联的元素。在一些实现方式中,用户还可以从连接的服务器上的概念目录内修改数据角色。例如,用户可以修改元数据中的现有概念(例如,添加同义词、改变验证规则、改变已知域值等)、创建新概念(例如,利用修改复制现有概念、从头开始编排新概念)、消除重复概念和更新数据源以指向相同概念、删除概念以及控制服务器上的其他用户可以修改用户的数据角色的权限。
数据分析用例示例
一些实现方式提供了数据分析能力,其示例如下所示。
·用户清理包括产品名称列表的数据字段(例如,使用正则表达式(“regex”),使用分组(group)和替换(replace)将值同义词映射到规范值)。
·用户将数据字段的域保存为数据角色(包括同义词映射),使得用户可以将数据角色分派给来自其他数据源的数据字段,以便验证和清理其他数据字段和数据源。
·用户将清理过的数据字段的域保存为数据角色,使得他或她的组织中的其他用户可以使用该数据角色进行验证和清理。
·用户使用在一个或更多个应用中先前定义的数据角色来验证并清理其他数据字段(例如,自动地或通过使用自然语言输入)。
·用户编辑先前定义的数据角色(例如,以纠正错误或更新数据角色)。
例如,用户可以连接到包括关于产品库存的信息的数据源。用户创建数据清理步骤,并且应用可以建议用户将数据角色“产品名称”应用到数据源中的“prod_name”数据字段。例如,尽管用户以前使用过此数据源,但这可能是应用第一次提出此建议。在接受推荐并将建议的数据角色应用到建议的数据字段后,用户会看到一些产品名称不是有效名称。然后,用户接收另一个推荐,以通过将无效名称映射到对于的有效名称来自动清理数据。用户接受推荐,并且数据字段“prod_name”中的无效值将替换为有效名称。
在另一示例中,用户发布已存在的数据源,并从发布的数据源中的数据字段之一提升数据角色,使得数据字段中的值保持同步(以便在重新发布数据源时自动更新数据角色)。在一些情况下,数据源中的一个或更多个数据字段需要进行某种清理,并且用户创建数据准备流来清理数据字段并更新发布的数据源。用户将数据准备流发布到服务器,并为数据角色指定数据字段。然后,用户将数据准备流置于每周刷新计划中,使得数据角色每周被更新。在一些实例中,用户(或与发布数据角色的用户不同的用户)从服务器检索数据角色和/或将数据角色应用到其他数据准备流中的字段。
示例数据目录用例
一些实现方式提供了数据编目能力,其示例如下所示。
·用户将发布的数据源中的数据字段提升为数据角色,使得用户可以在另一个应用中或与其他数据源一起重新使用它。
·用户将现有数据角色应用于发布的数据源中的数据字段,以使包括自然语言输入接口的应用能够关联同义词和语言模式。
例如,用户可能正在使用两种不同的按优先级显示警报数量的数据可视化。用户怀疑这两个数据可视化使用相同的数据源,但其中一个数据可视化具有不同于另一个数据可视化的几个优先级值。用户可以使用数据目录检查每个数据可视化的沿袭,并确定例如一个数据可视化直接连接到数据库,而另一个数据可视化使用连接到数据准备流的发布的数据源,该数据准备流又连接到相同的数据库。发布的数据源中的优先级字段具有与之关联的数据角色和一组有效值,并且数据准备包括清理步骤,该清理步骤筛选掉具有与数据角色不匹配的优先级值的行。用户通知第一数据可视化的作者考虑使用发布的数据源。
在另一示例中,用户通过移除一些过时的产品名称并添加一些新的产品名称来更新“产品名称”数据角色。在另一示例中,用户从数据字段提升数据角色。
在一些实现方式中,数据角色值与数据字段保持同步,使得如果用户重新发布数据源,则数据角色将自动更新。这样,其他分析师就可以开始在他们的数据准备流中使用它。在一些实现方式中,自然语言查询处理***创建更好的洞察力。
在另一示例中,用户将发布的数据源中的数据字段提升为数据角色,使得用户可以与其他数据源或在其他应用中重新使用该数据角色。
在另一示例中,用户查阅保存在服务器上的数据角色列表,以确保它们是有效的。用户可以删除可能不适当的任何数据角色(例如,过时或包括不正确信息的数据角色)。
在另一示例中,用户确认包含敏感数据的数据角色具有正确的权限,使其仅对预期人员可用。用户可以编辑权限,以确保访问数据角色的人员列表是最新的。
在另一示例中,用户编辑与服务器上的数据角色相关联的同义词,以便提高使用具有与数据源的自然语言输入接口的应用的有效性。
应用中包括自然语言输入接口的用例
在一个示例中,用户将现有的数据角色应用于发布的数据源中的数据字段,以使应用能够关联同义词和语言模式(例如,“像地理”)。
在另一示例中,用户提供自然语言命令或查询,该自然语言命令或查询包括与存储在所选择的数据源中的单位不同的单位。应用使用数据角色以自动将数据源中的数据转换为用户自然语言输入指定的单位。
例如,用户可以提供自然语言输入“按类别的平均订单大小”。应用将短语“订单大小”映射到“量”数据字段,并显示按类别显示平均量的条形图数据可视化。
例如,用户可以为“最大的国家”提供自然语言查询。该应用创建了按人口降序(从人口最多到人口最少)显示排名靠前的国家的数据可视化。
例如,用户可以为“平均事件持续时间”提供自然语言查询,而术语“持续时间”并不被包括在数据源中。应用根据数据源中包括的开始日期和结束日期计算持续时间,并创建条形图数据可视化。还可以使用开始时间和结束时间计算持续时间。
示例数据角色
在一些实现方式中,数据角色包括:数据角色的名称、数据角色的描述、数据角色名称的同义词、数据角色标识字符串、数据角色版本号、数据类型(例如,字符串、整数、日期、布尔或64位浮点)和/或数据角色类型。数据角色类型的一些示例包括:(i)字典数据角色类型,其是有效域值的离散列表,(ii)关于数据角色类型的值的范围,该范围是定义值有效的范围(例如,数值范围),以及(iii)正则表达式数据角色类型,其包括与被认为有效的一个或更多个正则表达式匹配的一个或更多个值。字典中的每个域值都可以有同义词值的关联列表。例如,“月份”数据角色(例如,名称为“月份”的数据角色)可以具有带域值的整数类型:(1,2,3,4,5,6,7,8,9,10,11,12)并且可以具有匹配字符串值的同义词域:(“一月”,“二月”,......,“十二月”)。
在一些实现方式中,当与其他数据字段结合理解时,数据角色类型更有意义。例如,当提供城市和州数据字段时,邮政编码数据字段可能无效。在一些实现方式中,可以基于相关数据字段之间的层次结构来确定给定数据字段的重要性或优先级。例如,在地理层次结构中,城市数据字段可以优先于州和国家数据字段,因为与州和国家数据字段相比,城市数据字段提供对应于更精确位置的信息。
一些实现方式将语义类型表示为具有一组相关联定义属性的对象。例如,城市类型使用城市名、州名和国家名属性表示。一些实现方式只在字段本身中公开这些属性中的一个。
在一些实现方式中,数据角色包括可选属性,诸如认聚合、维度/度量、连续/离散、默认视图类型(数据可视化类型)、默认格式、单位和可视编码信息。可视编码信息可以包括相关字段和派生属性。例如,对于属性利润,派生属性可以是“有利润的”,它具有计算有利润的:=(Profit>0)。
关联的数据
在一些实现方式中,数据角色可以与字段域数据关联。例如,字典数据角色由所有有效域值的列表定义。作为另一示例,正则表达式数据角色引用有效值列表,该有效值列表用作向用户说明有效数据的样本数据。在一些实现方式中,这些数据角色存储在数据源中,允许用户:(i)使用嵌入在数据角色中的数据源来保持对数据角色的数据私有,(ii)从先前发布的数据源创建数据角色,(iii)使用发布的数据源,从服务器上的数据准备流输出,该数据准备流按计划刷新,作为字典数据角色的数据,和/或(iv)管理到由数据角色批量使用的数据源的连接,以及来自其他数据源的连接。
在一些实现方式中,用户可以发布工作簿,其中嵌入了对工作簿私有的数据源。工作簿还可以引用所连接的其他人可用的发布的数据源。一些实现方式允许用户对连接进行更改。一些实现方式允许用户进行批量更改(例如,跨许多数据源进行更改)。在一些实现方式中,发布的数据源和嵌入的数据源所使用的连接可以一起被编辑。
数据角色中关联数据的示例用例包括:
·用户从其中已清理数据字段的源数据的数据准备流发布用户定义的字典数据角色。如果用户不希望该数据在数据角色之外在服务器上可见,则相应地标记数据源(例如,使用标签,如“仅嵌入式提取”)。
·用户从其中已清理数据字段的源数据的数据准备流发布用户定义的字典数据角色。如果用户希望该数据在数据角色之外在服务器上可见以便数据可以与数据角色分开连接来进行分析,则相应地标记数据源(例如,使用标签,例如“仅发布提取”)。
·用户从数据源创建用户定义的字典数据角色,该数据源已经发布在服务器上并且与数据库(例如,Hadoop数据库)具有实时连接。在这种情况下,数据源被发布作为到数据库的实时连接。
·用户使用作为提取的CSV的发布的数据源,作为正则表达式数据角色的示例数据源。在这种情况下,数据源是连接到文件的已发布提取。
修改数据
在一些实现方式中,应用包括允许用户编辑和修改数据源值的用户界面。例如,当数据角色使用带有文件连接的嵌入式数据源时,用户可以经由用户界面修改服务器上的数据源值。
在一些实现方式中,例如当数据角色使用发布的数据源时,用户可以使用用于创建数据角色及其关联的任何应用或工具来修改数据角色。
图7A根据一些实现方式示出了使用数据源存储域值的数据角色的UML模型700。图7A所示的示例数据角色702存储语义信息,语义信息包括名称、名称同义词、描述、角色类型(正则表达式或字典)和数据类型。在一些实现方式中,与数据角色702相关联的数据字段具有一个或更多个显示格式704以显示值。根据一些实现方式,数据角色702可以具有字典角色706和/或正则表达式角色708。根据一些实现方式,如果数据角色702执行字典的角色,则字典角色的域值存储在数据源710中。根据一些实现方式,如果数据角色执行正则表达式(有时称为“regexp”)的角色,则数据源710存储示例域值。在一些实现方式中,数据源710是嵌入式数据源714。在一些实现方式中,数据源710是发布的数据源712。
图7B根据一些实现方式示出了用于分派数据角色的示例过程。假设用户希望将标识为字符串的数据字段更改(720)为纬度(即,更改语义角色或信息)。响应于用户选择打开类型菜单选项722,一些实现方式提供了具有可供选择的不同选项的菜单。进一步假设用户从地理类别726中选择(724)纬度选项。一些实现方式显示了地理类型数据的各种子类别,包括纬度728。假设用户选择纬度选项728,一些实现方式允许用户重新打开(730)类型菜单以查看当前选择。例如,刷新类型菜单以显示地理类型字段中的子类别纬度732。以此方式,一些实现方式允许用户更改数据字段的语义角色。
图7C根据一些实现方式示出了用于验证数据的示例用户界面734。一些实现方式允许用户设置数据验证规则736。一些实现方式允许用户设置触发器或通知738(例如,当验证失败时发生的动作)。一些实现方式允许用户输入验证规则并将其转换为数据角色。在所示的示例中,用户选择使用正则表达式740来验证数据。一些实现方式提供了使用下拉菜单进行验证的各种选项。该示例还显示了用户为验证数据而输入的正则表达式742。在用户选择了验证规则之后,一些实现方式提供选项744,以将验证规则保存为数据角色。在一些实现方式中,(通过客户ID 746标识的)每个客户被示出基于权限的特定选项。(在一些实现方式中,显示的选项还取决于过去使用情况、数据字段、类似字段的数据角色和/或对象级信息。)一些实现方式还提供当设置验证规则和/或数据角色时在数据源或数据库748之间切换的选项。
图7D根据一些实现方式示出了使用语义信息的改进搜索的示例用户界面窗口。一些实现方式提供了界面(例如,第一界面750),其提供列的概述。一些实现方式为整个配置文件卡提供了摘要条,因此用户可以评估筛选器、数据角色或建议的质量。一些实现方式提供选择搜索标准的选项752。一些实现方式提供一致性指示符754,其指示基础数据符合搜索标准13的程度。一些实现方式还为建议提供置信度水平的指示756(例如,低到非常高)。一些实现方式提供允许用户设置默认搜索行为的第二界面(例如,界面758)。根据一些实现方式,默认显示匹配搜索结果的记录。在所示的示例中,用户正在查看电子邮件760相关选项。一些实现方式选择适当的电子邮件域地址(例如,.com 762)和/或显示用于电子邮件地址的各种选项764。一些实现方式提供用于输入和输出搜索(in&out searching)的第三界面(例如,界面766)。在一些实现方式中,用户可以选择图表的“输出”部分来查看输入和输出记录。在所示的示例中,用户选择了电子邮件768,并且***通过选择域770和/或多个电子邮件选项772来响应。一些实现方式提供用于正则表达式筛选的第四界面(例如,界面774)。在一些实现方式中,数据准备应用识别regex搜索模式并使用该模式进行筛选。在一些实现方式中,用户可以切换以直接查看图表的输入和输出部分。在所示的示例中,用户选择了筛选电子邮件776。一些实现方式显示正则表达式778以及匹配正则表达式的电子邮件地址的采样780。
一些实现方式提供用户界面和/或选项来编排和/或编辑数据角色。一些实现方式提供了编辑域值的用户选项。一些实现方式允许用户导入或导出CSV或Excel文件以更改嵌入的数据角色。一些实现方式允许用户编辑正则表达式(例如,数据角色的验证规则)。在一些实现方式中,嵌入式数据源是没有关联的源数据文档的提取文件。在一些实现方式中,数据角色具有增强机器可读性和/或较易于操纵的特定数据格式。在一些实现方式中,特定的文件格式使得能够在没有服务器的情况下导出数据角色或与其他准备(或数据准备)用户共享数据角色。在一些实现方式中,嵌入式数据源嵌入到包括数据字段的同一文档中。一些实现方式允许用户将文件放入准备或prep存储库文件夹中,以添加数据角色。
在一些实现方式中,数据角色具有其自己的格式(例如,存储在语义服务中的JSON文件格式),其包括关于数据角色的信息,包括名称、验证标准和排序顺序。在一些实现方式中,数据角色与发布的或嵌入的数据源(例如,数据可视化平台或数据准备流知道如何消费、更新、编辑和/或分派权限的特定数据格式)相关联。
一些实现方式向用户公开数据角色格式,而另一些实现方式则对用户禁止或隐藏此类信息。一些实现方式允许用户(例如,经由数据准备或准备流)从共享的数据角色文件发布数据角色。一些实现方式允许用户使用命令行和/或使用批量添加或批处理来创建数据角色。
一些实现方式允许用户查看数据值,并测试在数据值上应用regex。一些实现方式允许用户导入或连接到数据库表或***,以设置数据角色。在一些实现方式中,嵌入的数据角色被排除在搜索之外。
一些实现方式允许用户设置或更改访问数据角色的权限。例如,数据准备用户希望为个人用户保存数据角色,而不发布该数据角色与其他人共享。图7E根据一些实现方式示出了用于控制对访问数据角色的权限的示例用户界面782。一些实现方式提供搜索用户的搜索框784,以及授予查看790、交互/编辑792和/或编辑794数据角色(和/或基础数据源或视图798)的权限788的选项。一些实现方式允许用户选择用户或用户组786。一些实现方式允许用户添加(796)另一个用户或一组规则796。以这种方式,各种实现方式提供了对数据角色的访问控制。
一些实现方式提供了对全局数据角色与本地数据角色(对某个组的数据对象是本地的)的差异访问(和/或控制),和/或对自定义数据角色与内置数据角色的差异访问(和/或控制)。在一些实现方式中,内置数据角色是不可编辑的。在一些实现方式中,用户被允许查看引用对应于内置角色(例如,地理角色)的值的数据源。
一些实现方式允许用户针对数据角色编目和/或搜索数据角色在数据目录中包括的沿袭。一些实现方式允许用户搜索数据角色,和/或搜索使用数据角色的对象(例如,数据源)。一些实现方式为语义类型提供可浏览和/或可搜索的内容(例如,由数据可视化服务器托管的内容)。一些实现方式排除了对于自定义数据角色的沿袭信息。一些实现方式处理的数据角色类似于数据库服务器上的其他内容,允许用户通过名称而不是值搜索数据角色,而不需要目录。一些实现方式允许将数据角色打包为一个产品,该产品可以像其他数据库产品一样出售。一些实现方式允许用户在编排桌面或web文档时指定数据角色。一些实现方式允许用户将数据角色与桌面应用中的字段相关联,使得当信息被导出到数据源和/或带入数据准备数据流时,数据被自动验证。
数据角色和清理
一些实现方式自动更新数据角色以反映用户工作流中的更改。一些实现方式通过清理数据角色(例如,更新和/或移除旧的、过时的或不相关的数据角色)来自动维护数据角色。
一些实现方式将数据角色输出到不支持语义类型的数据库。一些实现方式在向数据库输出数据角色时发现语义类型并写入发现的语义类型。一些实现方式使用语义类型作为清理数据的辅助。在一些实现方式中,存在多个输出步骤,其中一些会写回数据库(不支持语义类型)。一些实现方式不从工作流输出语义类型,即使语义类型用于促进数据角色清理和/或成形。
一些实现方式允许用户连接到数据源,并使用由数据源提供的数据,而无需类型更改或清理数据。此步骤允许用户在对数据进行任何更改之前查看数据。在一些实现方式中,对于具有严格类型字段的数据库,数据类型将在输入步骤处显示。在文本文件(例如CSV)的情况下,一些实现方式利用字符串数据类型标识所有数据,并在随后的转换步骤中执行附加的数据类型标识。
为了进一步说明,假设用户希望筛选数据以使其只包含最近3个月的数据。一些实现方式在输入步骤处向用户提供至少两个选项:包括原语类型标识的适中选项和包括语义类型标识的灵活选项。进一步假设用户选择了适中选项。一些实现方式通过识别原语数据类型(例如,数字、字符串、日期或布尔)而不清理数据来进行响应。一些实现方式对文本文件执行初始数据类型推断。一些实现方式支持筛选。对于其中数据类型标识导致舍弃(drop)数据或值的字段,一些实现方式通知用户,并允许用户例如将数据类型更改为字符串,并在后续转换步骤中执行清理。更高级的语义类型标识只在后续的转换步骤中完成。另一方面,假设用户选择了灵活选项。一些实现方式允许用户发现和/或分派数据类型。一些实现方式允许用户在输入步骤期间发现语义类型。在一些实现方式中,用户可以启动语义类型的发现,以确保初始数据类型识别快速且有效。例如,初始步骤可以包括发起语义类型分析的选项。在一些实现方式中,用户可以在输入步骤期间选择性地清理数据。一些实现方式允许在输入步骤期间的完整类型发现和/或不允许清理。
一些实现方式在输入步骤期间执行筛选,以移除不需要的字段,从而将不需要的字段排除在工作流之外。例如,可以筛选掉行以减少在流中运行的数据。在一些情况下,例如当施加采样限制时,一些实现方式在输入步骤期间执行筛选。一些实现方式识别语义类型,以便用户更容易理解在输入步骤期间应该排除或筛选哪些数据字段。一些实现方式提供数据清理或语义类型建议,而不管是否提供或已知数据字段的完整域。
在一些实现方式中,数据清理是迭代过程,它关于针对所有数据运行流的稳定性来平衡工具的交互性能。在一些情况下,由于许多原因,例如在对采样数据进行操作和转变到包含完整域的数据时,可能需要更新或清理数据。换句话说,清理可以在有限的时间段内保持准确和充分,但是到包括完整域的数据的转变导致数据更改并引入新的域值,从而使关于数据的假设无效。例如,迭代数据清理过程包括向用户提供建议,使得用户可以基于采样数据清理数据。随后,用户运行流,并且各种断言导致通知,告知用户处理的数据在哪里与在第一步骤期间交互地做出的假设背道而驰。在特定示例中,用户设置数据字段组和替换数据字段的映射。当用户运行完整流时,会发现原始样本数据之外的新值。可选地,用户可以使用组和替换来更改数据字段的数据类型,使得数据字段中的数据值映射到规范中的值。在这种情况下,会发现数据字段中的新值,这些值对于先前定义的数据类型无效(在对采样数据进行操作时)。作为这两种情况之一的结果,在一些实现方式中,当用户再次打开流时,用户会接收到一系列结果通知,并且用户可以编辑流以考虑到此新信息。在完成任何编辑后,用户可以再次运行流。
与数据类型的语义角色交互
一些实现方式将语义类型视为对现有类型***的扩展。例如,用户选择单个数据类型名称(例如“电子邮件地址”),并且该单个数据类型名称标识原语数据类型(例如字符串)和任何相关联的语义。当用户选择“电子邮件地址”类型时,数据字段的数据类型将更改为“字符串”(如果还没有),并且向用户标识数据字段内的无效值。在这样的实现方式中,对语义类型的处理允许语义角色有单个的基础数据类型。所选的数据类型是最好地反映角色的语义并允许用户执行预期操纵和/或清理该角色的值的数据类型。在一些情况下,不强制将值设置为理想的基础数据类型可能会导致问题,例如阻止用户将值归一化为单个表示或执行有意义的计算或清理操作。
一些实现方式将语义角色视为独立于基础原语数据类型的角色,并且这两个属性可以相互独立地更改。例如,用户可以将数据类型设置为“整数”,且然后将语义角色“电子邮件地址”应用到数据字段,以便查看哪些值无效(例如,这些值都是数字,且数据类型仍然是整数)。在另一示例中,邮政编码可以以整数数据类型存储,语义角色设置为“邮政编码/邮编”。以这种方式,在不更改数据字段的数据类型的情况下应用语义角色,即使允许所有有效值所需的最一般的数据类型实际上是“字符串”(用于处理字母数字邮编,且可能还有连字符)。在一些情况下,如果用户最终希望将数据字段写回数据库,以便数据字段保持为整数数据类型,则此操作非常有用。
在一些实现方式中,用户可以通过用户界面访问对任何数据可用的所有语义角色。另外,用户界面还可以包括以下任何一个:应该适合于任何数据字段的可用数据类型的列表、应该适合于任何数据字段的可用语义角色的列表、可用的数据类型和/或数据角色的列表、用户可以从其中选择的语义角色的列表,其中每个语义角色不依赖于当前字段数据类型(例如,用户可以从数据类型或数据角色的任何排列更改到任何其他排列)。在一些实现方式中,用户界面(例如,经由字段报头上总结数据字段的代表性图标)显示语义角色和原语数据类型二者。在一些实现方式中,更改数据字段的格式并不会为了维持计算而更改数据类型。在一些实现方式中,用户能够在输出步骤(例如,导出、写入或保存)期间将格式合并到数据字段中。
一些实现方式独立于语义角色保持数据类型。当输出目标没有保留语义角色(例如,建模属性)时,这很有帮助。在这种情况下,在整个工作流中保持用户对稳定数据类型元素的感知是很有用的。一些实现方式在不更改数据类型的情况下保持基础的基本数据类型,并且独立存储语义角色。例如,当***检测到输入(例如,用户移动光标或将其悬停在配置文件中的数据类型图标上)时,一些实现方式会在提示信息中显示此信息。用户对数据类型的感知在计算中也很重要(计算只适用于原语数据类型)。一些实现方式保持了用户对数据类型的感知,而不会更改彼此间独立的数据类型和语义角色。在一些实现方式中,在整个工作流中保持数据的表示,以便在用户界面中显示的信息保持在整个用户的工作流中的背景。例如,从输入步骤(例如,数据清理步骤)到输出步骤(例如,保存、发布、导出或写入步骤)保持数据表示。
在一些实现方式中,语义角色应用于多于一个数据类型。在一些实现方式中,当选择语义角色时,不会自动更改数据类型,以便为输出目的保持数据类型的一致性。
在一些实现方式中,当存在不同的数据字段类型时,数据字段可以自动更改为可以表示两个数据字段中的值的更一般的类型(没有语义)。可选地,当处理不同的数据字段类型时,数据字段可以自动更改为可以表示两个字段中的值的更一般的类型。另一方面,如果语义角色不同,则自动清除语义角色。
一些实现方式基于联接子句字段(join clause field)的语义角色来标识无效联接。例如,假设联接子句字段具有不同的数据类型或不同的语义类型。一些实现方式在联接子句具有类似的语义角色时识别无效联接。
在一些实现方式中,无论格式如何,数据字段的数据类型都保留初始数据类型(例如,即使当用户更改数据字段的显示格式时),以便可以按预期操纵数据字段。例如,日期数据字段可以具有纯数字格式或字符串格式,但无论其显示方式如何,都将保留相同的规范日期数据类型。在另一示例中,“一周中的哪一日”数据字段保留其基础数字类型,即使数据字段值显示文本,诸如“星期一”,以便仍然可以使用“一周中的哪一日”中的数据值执行计算。例如,如果值为“星期一”,则计算“日+1”将给出结果“星期二”。在本示例中,接受的数据值是字符串(例如,“星期日”、“星期一”、……“星期五”、“星期六”)。在输出节点处,可能需要根据用户目标和输出目标更改“一周中的哪一日”数据字段的数据类型。例如,可以将数据输出到强类型数据库,使得数据输出默认为基本数据类型,并需要将日期数据字段切换为“字符串”数据类型以保持格式。可选地,在一些实现方式中,数据输出默认为“字符串”数据类型,且因此不需要更改数据类型来保留格式。在一些实现方式中,用户可以更改数据类型。
一些实现方式支持各种语义类型操纵,即使在保持基础原语数据类型的情况下也是如此。例如,假设用户使用日期类型操纵日期字段以更改日期的格式。一些实现方式将日期的原语数据类型保持为整数,即使格式发生了更改也是如此。一些实现方式只在用户请求语义类型时才标识原语数据类型并指示语义类型。
在一些实现方式中,数据不在输入节点处清理(上面描述的)。一些实现方式将通过类型分派舍弃的任何数据通知给用户,并且用户将被提供在后续转换节点中编辑数据的机会。在一些实现方式中,转换节点可以由用户从输入节点发起。另外,数据质量和基数可能不会在输入步骤期间显示,而仅在转换步骤期间显示。
在一些实现方式中,语义类型具有对应模式。一些实现方式包括严格模式和非严格模式。如果语义类型处于严格模式,则不在域中保留该类型定义之外的值。如果语义类型设置为非严格模式,则类型定义之外的值将保留在域中,并通过流传递。在一些实现方式中,原语类型总是严格的,并且不支持在整个流中落入类型定义之外的值。
一些实现方式执行文本扫描,并通知用户是否舍弃特定类型的数据。一些实现方式向用户提供要舍弃的数据的值。在一些实现方式中,对于类型更改操作,当选择类型更改处理方法(recipe)时,将在配置文件视图中标记落入类型之外的值(该值将舍弃)。在一些实现方式中,一旦用户转移到新的(例如,下一个)处理方法,这些舍弃的值将不再显示。因此,向用户提供舍弃(或待舍弃)的值的立即可见性,以便用户可以选择它们并在需要时执行重新映射。另外,一些实现方式允许用户从动作的列表中选择动作,这将为类型定义之外的所有值创建到空值的重新映射。在一些实现方式中,用户还可以编辑或细化重新映射或从一个或更多个提供的建议或推荐中选择重新映射动作。在一些实现方式中,紧接在类型更改操作之前执行重新映射,以便重新映射值将流入类型更改(因为舍弃的值不会留在类型更改操作,因此在类型更改后它们无法被重新映射)。在一些实现方式中,语义类型被用作数据断言,而不是类型,或者除了被视为类型,语义类型还被用作数据断言。一些实现方式允许用户向***指示“这是我在这里预期的数据类型;如果不是这样,请通知我”,且***自动相应地通知用户。
在一些实现方式中,包括附加的自动清理步骤,以提供类型标识和建议。在一些实现方式中,附加的自动清理步骤可以在后台运行(例如,由后台程序),或者可以由用户取消。
例如,当复制现有列时,如果要舍弃特定类型的任何数据,则该列中要舍弃的值将重新映射为空值。一些实现方式提供了初始列和复制列的并排比较。
一些实现方式允许用户添加自动清理步骤,这将添加一个步骤并且开始类型识别和建议。在一些实现方式中,该步骤作为后台作业执行。一些实现方式提供了在作业正在运行时取消作业的用户选项。
一些实现方式会复制列来清理数据。一些实现方式复制现有列,将列中的类型规范值映射为空值,执行或显示列的并排比较(例如,在映射列中选择空值以涂刷(brush)复制列中的映射值),允许用户从复制列中的类型值中选择数据字段值,并筛选以仅获得包含这些值的那些行,以便将行中的其他字段显示为背景以用于校正。一些实现方式允许用户更正在复制列中映射到空值的值,然后移除初始列。一些实现方式使用类似于联接子句元组重映射用户界面的界面来允许用户执行本文描述的操作。
一些实现方式为字段获得全域值以进行鲁棒校正。一些实现方式指示域值。
响应于类型更改动作,一些实现方式结合了重映射以将超出规范的值自动映射到空值。一些实现方式允许用户从类型更改处理方法编辑重映射。
一些实现方式在用户选择类型更改处理方法时显示超出类型规范的值。在一些实现方式中,如果添加了另一个处理方法,则超出规范的值将消失(因此它们不会在流中移动)。一些实现方式对这些值执行内联或编辑重映射,这将在类型更改处理方法之前创建重映射处理方法。一些实现方式显示关于在用户选择处理方法时被分组的值的分组图标。
在一些实现方式中,类型更改操作创建重映射的处理方法,以便将超出规范的值映射到空值,然后再创建类型更改处理方法,使得在命中类型更改之前重映射值。当用户选择类型更改处理方法时,如果不可能显示在域中标记的超出规范的值,则一些实现方式将此用作替代方案。
在一些实现方式中,类型更改动作隐式地排除任何超出类型规范的值。在一些实现方式中,处理方法对应于许多被排除的值。一些实现方式允许用户针对类型更改映射创建重映射上游(例如,将排除的值映射为空值)。
在一些实现方式中,当清理流正在运行时,向用户提供排除值的列表,使得用户可以将这些值添加到上游重映射以清理数据。
在一些实现方式中,用户界面允许用户通过将选择的注释(对应于处理方法)拖离出配置文件来删除处理方法。在一些实现方式中,类型分派在输入和输出步骤中是严格的,并且在中间步骤(例如,在输入和输出步骤之间的步骤)期间是不严格的(例如,灵活的),以便保存值。
在一些实现方式中,字段的数据类型和/或语义角色指示用户对用户希望数据字段中的数据是什么的期望。与数据名称组合使用,数据类型有助于传达数据字段的含义并提供对数据字段的理解。例如,如果该值是称为“利润”的十进制数字,则该值可能是以美元或百分比表示的。因此,数据类型可以通知或确定允许对数据字段进行何种操作,从而为用户和应用提供关于数据字段(有时是数据源)的背景(包括推断的背景)和诸如计算、重映射或应用筛选器的操作的结果的更高的置信度。例如,如果数据字段具有数字类型,则用户可以确信用户能够执行数学计算。
一些实现方式对数据字段使用语义角色,以通过突出显示与数据类型不匹配并需要清理和/或筛选的值来帮助用户清理数据。在一些实现方式中,数据字段的数据类型和/或语义角色提供允许数据准备应用对数据字段执行自动清理操作的背景。
在一些实现方式中,当用户选择关于字段的类型更改时,类型规范之外的值将被分组并映射到空值。一些实现方式排除这样的值和/或允许用户检查和/或编辑该组中的值。一些实现方式分别对超出类型规范的值和超出语义角色的值进行分组。一些实现方式允许用户选择组并将组合并/应用到新字段。
一些实现方式显示了可视化并指示选择离群值(例如,空值)的配置文件摘要视图。一些实现方式在直方图中显示每个值。一些实现方式显示与数据类型不匹配的值(例如,标记为“已舍弃”的值)、与语义角色不匹配的值(例如,标记为“无效”的值)和/或选择异常值。一些实现方式使用划掉的文本来指示与数据类型不匹配的值。一些实现方式在红色文本中或通过特殊图标指示与语义角色不匹配的值。一些实现方式筛选值以只显示异常值、与数据类型不匹配的值和/或与语义角色不匹配的值。一些实现方式提供了用于筛选的搜索框,允许用户使用下拉菜单中的选项以“在无效值内搜索”来激活搜索。一些实现方式提供了筛选列表的选项。一些实现方式提供了选择各个异常值或整个汇总直方图条的选项,以及将选择移到另一个字段上(例如,右键单击选项或拖放功能),或者在字段之间移动值以创建新字段。一些实现方式显示新字段的数据类型和/或指示所有值都匹配数据类型。一些实现方式为用户提供了清理新字段中的值和/或随后将舍弃的值或整个字段拖回初始字段以合并回更改的选项。
数据准备中的推荐
在一些实现方式中,自动建议包括转换各个字段的值。在一些情况下,可以通过为数据字段分派数据角色来促进这一点。在其他情况下,不需要为数据字段分派数据角色。当数据角色被应用于数据字段时,验证规则被应用于数据字段中的数据值,并且异常值在配置文件和数据网格中以不同的视觉处理显示(例如,异常值可以被强调,诸如高亮显示或以不同颜色的字体显示,或者去强调,诸如灰色显示或以浅色字体显示)。这种对异常值的可视化处理保持在整个工作流的各个步骤中。
在一些实现方式中,重映射建议包括:(i)异常值的手动重映射,(ii)通过利用与所分派的数据角色相关联的域的模糊匹配重映射异常值,和/或(iii)自动将异常值重映射到空值。
一些实现方式提供了1次点击选项来筛选异常值。一些实现方式提供了1次点击选项来将异常值提取到新的数据字段中,使得用户可以编辑提取的值(手动、通过重映射操作或通过应用数据角色),然后将编辑的值合并回数据字段中或单独存储编辑的值。一些实现方式提供了如果大多数值为空值则舍弃数据字段的选项。
一些实现方式中,当用户为特定数据字段选择数据角色时,数据准备应用提供转换建议。例如,对于URL的域或对于电话号码的区号,转换建议可以包括提取/拆分转换(例如,从1112223333到“区号”=“111”和“电话号码”=“2223333”)。在另一示例中,转换建议可以包括对于数据字段的重新格式化建议,例如:(i)将州名改为州缩写(例如,加利福尼亚改为CA),(ii)将电话号码改为特定格式(例如,从1112223333到(111)222-3333),(iii)将日期转换为以不同格式表示,或由不同的提取部分表示(例如,将1990年12月1日提取为只有年,或将格式改为12/01/1990)。
一些实现方式自动解析、验证和/或更正/清理各种格式的日期字段。一些实现方式使国家值标准化。一些实现方式基于名称的规范列表显示值。一些实现方式将年龄识别为正数和/或提供搜索和/或标准化年龄值的选项。一些实现方式允许用户基于连接器名称对数据库名称列表进行标准化。一些实现方式允许用户进一步编辑选项和/或提供手动重写。一些实现方式基于语义角色对城市、州或类似值进行标准化。
在一些实现方式中,重映射推荐用于通知用户数据字段的语义已经被识别,并向用户提供清理数据的建议。在一些实现方式中,清理建议包括向用户显示至少一部分元数据,使得用户能够更好地理解每个建议是什么以及为什么该建议与用户的需求相关。在一些实现方式中,用户的选择驱动分析和/或进一步的建议。在一些实现方式中,用户界面包括供用户查看概述和/或细节、缩放和/或筛选数据字段和/或数据源的选项。
在一些实现方式中,用户界面包括结果预览(例如,诸如筛选、缩放或应用数据角色的操作结果的预览),以便用户可以放心地继续进行。
图8根据一些实现方式示出了用于预览和/或编辑清理推荐的示例用户界面800。图8所示的示例显示了针对城市804的建议802。一些实现方式显示了最初建议的选项的列表,随后是进一步的建议806。一些实现方式示出对于附加建议806的置信度水平808。一些实现方式显示了特定建议(或单个值),这些建议对长值或名称特别有用。当置信度低于预定阈值(例如,80%置信度水平)时,一些实现方式显示了多个可能的建议。一些实现方式显示更多的建议,以响应用户的单击或选择。一些实现方式允许用户从列表810中进行选择,而不是必须键入附加建议,特别是对于冗长的建议。一些实现方式提供这样的选项作为查看模式的一部分(例如,组和替换编辑器中的模式)。一些实现方式提供了在查看模式之间切换的用户选项。例如,一种查看模式可能更适合于一组数据角色,而其他查看模式可能更适合于其他组的数据角色。
图9A-9D根据一些实现方式示出了基于语义信息的资源推荐的示例用户界面。图9A根据一些实现方式显示了用于操纵部分日期的各种界面。示例界面900是显示日期的各种选项的胶囊背景菜单(pill context menu)。示例界面902显示了允许用户拖放字段(在此示例中为日期类型)的右拖放选项。示例界面904显示了用于用户输入文本以搜索动作的选项。示例界面906显示了创建自定义日期的选项。示例界面908显示了用于添加和/或编辑字段映射以允许用户编辑关系(例如,字段之间的关系)的选项。一些实现方式提供DATEPART和/或DATETRUNC函数来操纵日期字段。图9B显示了用于操纵URL的部分的各种界面。示例界面910是显示URL的各种选项的胶囊背景菜单。示例界面912显示了允许用户拖放字段(在此示例中为URL类型)的右拖放选项。示例界面914显示了用于用户输入文本以搜索对应于URL的动作的选项。示例界面916显示了创建自定义URL的选项。示例界面918显示了用于添加和/或编辑字段映射以允许用户编辑URL字段之间的关系的选项。一些实现方式提供了操纵数据字段和/或数据角色的函数,类似于BigQuery的HOST()、DOMAIN()和TLD()函数。图9C显示了用于操纵电子邮件地址的部分的各种界面。示例界面920是显示电子邮件的各种选项的胶囊背景菜单。示例界面922显示了允许用户拖放字段(在此示例中为电子邮件部分)的右拖放选项。示例界面924显示了用于用户输入文本以搜索对应于电子邮件的动作的选项。示例界面926显示了创建自定义电子邮件或(例如,使用日期)筛选电子邮件的选项。示例界面928显示了用于添加和/或编辑字段映射以允许用户编辑电子邮件字段之间的关系的选项。图9D显示了用于操纵名字的部分的各种界面。示例界面930是显示名字的各种选项的胶囊背景菜单。示例界面932显示了允许用户拖放字段(在此示例中为名字的部分)的右拖放选项。示例界面934显示了用于用户输入文本以搜索对应于名字的动作的选项。示例界面926显示了创建自定义名字或(例如,使用日期)筛选名字的选项。示例界面928显示了用于添加和/或编辑字段映射以允许用户编辑电子邮件字段之间的关系的选项。一些实现方式包括在一个或更多个用户界面中的字段名、组部分的示例,包括(用于编辑字段映射的)截断和/或匹配部分。
图10A-10N根据一些实现方式提供了准备用于数据后续分析的方法的流程图1000。该方法通常在具有显示器2080、一个或更多个处理器202和存储器214的计算机200处被执行,该存储器存储被配置为由一个或更多个处理器执行的一个或更多个程序。
该方法包括获得(1002)将第一数据源编码为逻辑表的树的数据模型(例如,对象模型108)。每个逻辑表都有其自己的物理表示,并包括相应的一个或更多个逻辑字段。每个逻辑字段对应于跨越一个或更多个逻辑表的数据字段或计算。树的每个边连接两个相关的逻辑表。该方法还包括将数据模型中的每个逻辑表与概念图中的对应概念相关联(1004)。概念图(例如,有向非循环图)体现了逻辑表的语义的层次继承。根据一些实现方式,上面参考图4描述了示例概念图。该方法还包括,对于被包括在逻辑表中的每个逻辑字段(1006),基于对应于逻辑表的概念,将语义角色(有时称为数据角色)分派(1008)给逻辑字段。
接下来参考图10B,在一些实现方式中,该方法还包括,对于每个逻辑字段,将其分派的语义角色存储(1016)到第一数据源(或辅助数据源)。
接下来参考图10C,在一些实现方式中,该方法还包括基于第一数据源生成(1018)第二数据源,并且对于每个逻辑字段,将其分派的语义角色存储到第二数据源。
接下来参考图10D,在一些实现方式中,该方法还包括,对于每个逻辑字段,从不同于第一数据源的第二数据源中检索(1020)代表性语义角色(例如,为类似逻辑字段分派的语义角色)。将语义角色分派给逻辑字段还基于代表性语义角色。在一些实现方式中,用户输入被检测到来自第一用户,并且该方法还包括,在从第二数据源检索代表性语义角色之前,确定(1022)第一用户是否被授权访问第二数据源。
接下来参考图10E,在一些实现方式中,该方法还包括,在用户界面中,基于与包括第一逻辑字段的第一逻辑表相对应的概念,显示(1024)第一逻辑字段的第一一个或更多个语义角色。该方法还包括,响应于检测到选择优选语义角色的用户输入,将优选语义角色分派(1026)给第一逻辑字段。在一些实现方式中,该方法还包括:基于优选语义角色选择(1028)关于第二逻辑字段的第二一个或更多个语义角色。该方法还包括在用户界面中显示(1030)关于第二逻辑字段的第二一个或多个语义角色。响应于检测到从第二一个或更多个语义角色中选择第二语义角色的第二用户输入,该方法包括将第二语义角色分派(1032)给第二逻辑字段。在一些实现方式中,该方法还包括基于一个或更多个语义标记的数据源(例如,具有分派的或标记的语义角色的数据字段的数据源)训练(1034)一个或更多个预测模型。该方法还包括通过向一个或更多个预测模型输入对应于第一逻辑表的概念来确定(1036)第一一个或更多个语义角色。
接下来参考图10F,在一些实现方式中,逻辑字段是(1038)基于第一数据字段和第二数据字段的计算,并且将语义角色分派给逻辑字段还基于对应于第一数据字段的第一语义角色和对应于第二数据字段的第二语义角色。
接下来参考图10G,在一些实现方式中,该方法包括确定(1040)对应于逻辑字段的数据字段的默认格式,并且将语义角色分派给逻辑字段还基于数据字段的默认格式。
接下来参考图10H,在一些实现方式中,该方法还包括选择用于基于所分派的语义角色显示逻辑字段的默认格式选项并将其存储(1042)到第一数据源。
接下来参考图10I,在一些实现方式中,该方法还包括在将语义角色分派(1044)给逻辑字段之前,在用户界面中显示(1046)概念图和修改概念图的一个或更多个选项。响应于检测到修改概念图的用户输入,该方法包括根据用户输入更新(1048)概念图。
返回参考图10A,该方法还包括基于逻辑字段所分派的语义角色来验证(1010)该逻辑字段。接下来参考图10J,在一些实现方式中,语义角色包括(1050)逻辑字段的域,并且验证逻辑字段包括确定逻辑字段是否匹配域的一个或更多个域值。该方法还包括,在显示一个或更多个转换之前,基于一个或更多个域值确定一个或更多个转换。接下来参考图10K,在一些实现方式中,语义角色是(1052)用于验证逻辑字段的验证规则(例如,正则表达式)。
返回参考图10A,该方法还包括在显示器上的用户界面中显示(1012)一个或更多个转换,以基于对逻辑字段的验证来清理(或筛选)逻辑字段。响应于检测到选择转换以转换逻辑字段的用户输入,该方法根据用户输入转换(1014)逻辑字段,并且基于对逻辑字段进行转换来更新逻辑表。
接下来参考图10L,在一些实现方式中,该方法还包括基于第一逻辑表的概念确定(1054)要添加到第一逻辑表的第一逻辑字段。该方法还包括在用户界面中显示(1056)添加第一逻辑字段的推荐。响应于检测到添加第一逻辑字段的用户输入,该方法包括更新(1058)第一逻辑表以包括第一逻辑字段。
接下来参考图10M,在一些实现方式中,该方法还包括基于概念图确定(1060)对应于第二数据源的第二数据集以与对应于第一数据源的第一数据集联接。该方法还包括在用户界面中显示(1062)将第二数据集与第一数据源的第一数据集联接的推荐。响应于检测到联接第二数据集的用户输入,该方法还包括创建(1064)第一数据集和第二数据集之间的联接,并更新逻辑表的树。
接下来参考图10N,在一些实现方式中,该方法还包括检测(1066)对第一数据源的更改。在一些实现方式中,以预先确定的时间间隔执行(1068)对第一数据源的更改的检测。响应于(1070)检测到对第一数据源的更改,该方法包括根据对第一数据源的更改更新(1072)概念图,以及根据更新的概念图对每个逻辑字段重复(1074)分派、验证、显示、转换和更新。
在本发明的描述中使用的术语仅为了描述特定实现方式的目的,且并不意欲限制本发明。如在本发明的描述和所附的权利要求中所使用的,单数形式“a”、“an”、和“the”意欲也包括复数形式,除非上下文另外清楚地指示。还要理解的是,如在本文使用的术语“和/或”指相关的所列出的项目中的一个或更多个的任何和所有可能的组合并包括这些组合。还要理解的是,术语“包括(comprises)”和/或“包括(comprising)”当在本说明书中使用时指定所陈述的特征、步骤、操作、元件、和/或部件的存在,但不排除一个或更多个其它特征、步骤、操作、元件、部件、和/或它们的组合的存在或添加。
为了解释的目的,前面的描述参考了特定的实现方式进行描述。然而,上面的说明性讨论并没有被规定为无遗漏的或将本发明限制到所公开的精确形式。鉴于上面的教导,许多修改和变形是可能的。实现方式被选择和描述是为了最好地解释本发明的原理及其实际应用,以从而使本领域中的技术人员能够以适合于所设想的特定用途的各种修改最好地利用本发明和各种实现方式。
Claims (20)
1.一种准备数据以用于后续分析的方法,包括:
在具有显示器、一个或更多个处理器和存储被配置用于由所述一个或更多个处理器执行的一个或更多个程序的存储器的计算机处:
获得将第一数据源编码为逻辑表的树的数据模型,每个逻辑表具有它自己的物理表示并包括相应的一个或更多个逻辑字段,每个逻辑字段对应于跨越一个或更多个逻辑表的数据字段或计算,其中所述树的每个边连接相关的两个逻辑表;
将所述数据模型中的每个逻辑表与概念图中的对应概念相关联,其中所述概念图体现语义的层次继承;和
对于逻辑表中包括的每个逻辑字段:
基于对应于所述逻辑表的概念将语义角色分派给所述逻辑字段;
基于所述逻辑字段的所分派的语义角色验证所述逻辑字段;
在所述显示器上的用户界面中显示一个或更多个转换,以基于对所述逻辑字段的验证来清理所述逻辑字段;和
响应于检测到选择转换以转换所述逻辑字段的用户输入,根据所述用户输入转换所述逻辑字段,并且基于对所述逻辑字段进行转换来更新所述逻辑表。
2.根据权利要求1所述的方法,还包括,对于每个逻辑字段,将所述每个逻辑字段的所分派的语义角色存储到所述第一数据源。
3.根据权利要求1所述的方法,还包括基于所述第一数据源生成第二数据源,并且对于每个逻辑字段,将所述每个逻辑字段所分派的语义角色存储在所述第二数据源中。
4.根据权利要求1所述的方法,还包括,对于每个逻辑字段,从不同于所述第一数据源的第二数据源检索代表性语义角色,其中将所述语义角色分派给所述逻辑字段还基于所述代表性语义角色。
5.根据权利要求4所述的方法,其中,所述用户输入被检测到来自第一用户,所述方法还包括,在从所述第二数据源检索所述代表性语义角色之前,确定所述第一用户是否被授权访问所述第二数据源。
6.根据权利要求1所述的方法,还包括:
在所述用户界面中,基于与包括第一逻辑字段的第一逻辑表相对应的概念,显示关于所述第一逻辑字段的第一一个或更多个语义角色;和
响应于检测到选择优选语义角色的用户输入,将所述优选语义角色分派给所述第一逻辑字段。
7.根据权利要求6所述的方法,还包括:
基于所述优选语义角色选择关于第二逻辑字段的第二一个或更多个语义角色;
在所述用户界面中显示关于所述第二逻辑字段的所述第二一个或多个语义角色;和
响应于检测到从所述第二一个或更多个语义角色中选择第二语义角色的第二用户输入,将所述第二语义角色分派给所述第二逻辑字段。
8.根据权利要求6所述的方法,还包括:
基于一个或更多个语义标记的数据源训练一个或更多个预测模型;和
通过向所述一个或更多个预测模型输入与所述第一逻辑表相对应的所述概念来确定所述第一一个或更多个语义角色。
9.根据权利要求1所述的方法,其中,所述逻辑字段是基于第一数据字段和第二数据字段的计算,其中将所述语义角色分派给所述逻辑字段还基于对应于所述第一数据字段的第一语义角色和对应于所述第二数据字段的第二语义角色。
10.根据权利要求1所述的方法,还包括确定对应于所述逻辑字段的数据字段的默认格式,其中将所述语义角色分派给所述逻辑字段还基于所述数据字段的所述默认格式。
11.根据权利要求1所述的方法,还包括选择用于基于所分派的语义角色显示所述逻辑字段的默认格式选项并将所述默认格式选项存储到所述第一数据源。
12.根据权利要求1所述的方法,还包括:
在将所述语义角色分派给所述逻辑字段之前:
在所述用户界面中显示所述概念图和修改所述概念图的一个或更多个选项;和
响应于检测到修改所述概念图的用户输入,根据所述用户输入更新所述概念图。
13.根据权利要求1所述的方法,其中,所述语义角色包括所述逻辑字段的域,并且验证所述逻辑字段包括确定所述逻辑字段是否匹配所述域的一个或更多个域值,
所述方法还包括,在显示所述一个或更多个转换之前,基于所述一个或更多个域值确定所述一个或更多个转换。
14.根据权利要求1所述的方法,其中,所述语义角色是用于验证所述逻辑字段的验证规则。
15.根据权利要求1所述的方法,还包括:
基于第一逻辑表的概念确定要添加到所述第一逻辑表的所述第一逻辑字段;
在所述用户界面中显示添加所述第一逻辑字段的推荐;和
响应于检测到添加所述第一逻辑字段的用户输入,更新所述第一逻辑表以包括所述第一逻辑字段。
16.根据权利要求1所述的方法,还包括:
基于所述概念图确定对应于第二数据源的第二数据集以与对应于所述第一数据源的第一数据集联接;
在所述用户界面中显示将所述第二数据集与所述第一数据源的所述第一数据集联接的推荐;和
响应于检测到联接所述第二数据集的用户输入,创建所述第一数据集和所述第二数据集之间的联接,并更新所述逻辑表的树。
17.根据权利要求1所述的方法,还包括:
检测对所述第一数据源的更改;和
响应于检测到对所述第一数据源的更改:
根据对所述第一数据源的更改,更新所述概念图,以及
根据所更新的概念图,对每个逻辑字段重复所述分派、所述验证、所述显示、所述转换和所述更新。
18.根据权利要求9所述的方法,其中,以预先确定的时间间隔执行对所述第一数据源的更改的检测。
19.一种用于生成数据可视化的计算机***,包括:
一个或更多个处理器;以及
存储器;
其中,所述存储器存储被配置为由所述一个或更多个处理器执行的一个或更多个程序,以及所述一个或更多个程序包括用于执行下列操作的指令:
获得将第一数据源编码为逻辑表的树的数据模型,每个逻辑表具有它自己的物理表示并包括相应的一个或更多个逻辑字段,每个逻辑字段对应于跨越一个或更多个逻辑表的数据字段或计算,其中所述树的每个边连接相关的两个逻辑表;
将所述数据模型中的每个逻辑表与概念图中的对应概念相关联,其中所述概念图体现语义的层次继承;和
对于逻辑表中包括的每个逻辑字段:
基于对应于所述逻辑表的概念将语义角色分派给所述逻辑字段;
基于所述逻辑字段的所分派的语义角色验证所述逻辑字段;
在所述显示器上的用户界面中显示一个或更多个转换,以基于对所述逻辑字段的验证来清理所述逻辑字段;和
响应于检测到选择转换以转换所述逻辑字段的用户输入,根据所述用户输入转换所述逻辑字段,并且基于对所述逻辑字段进行转换来更新所述逻辑表。
20.一种非暂时性计算机可读存储介质,其存储被配置为由具有显示器、存储器和一个或更多个处理器的计算机***执行的一个或更多个程序,所述一个或更多个程序包括用于执行下列操作的指令:
获得将第一数据源编码为逻辑表的树的数据模型,每个逻辑表具有它自己的物理表示并包括相应的一个或更多个逻辑字段,每个逻辑字段对应于跨越一个或更多个逻辑表的数据字段或计算,其中所述树的每个边连接相关的两个逻辑表;
将所述数据模型中的每个逻辑表与概念图中的对应概念相关联,其中所述概念图体现语义的层次继承;和
对于逻辑表中包括的每个逻辑字段:
基于对应于所述逻辑表的概念将语义角色分派给所述逻辑字段;
基于所述逻辑字段的所分派的语义角色验证所述逻辑字段;
在所述显示器上的用户界面中显示一个或更多个转换,以基于对所述逻辑字段的验证来清理所述逻辑字段;和
响应于检测到选择转换以转换所述逻辑字段的用户输入,根据所述用户输入转换所述逻辑字段,并且基于对所述逻辑字段进行转换来更新所述逻辑表。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/679,234 US11366858B2 (en) | 2019-11-10 | 2019-11-10 | Data preparation using semantic roles |
US16/679,234 | 2019-11-10 | ||
PCT/US2020/053406 WO2021091637A1 (en) | 2019-11-10 | 2020-09-30 | Data preparation using semantic roles |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116097241A true CN116097241A (zh) | 2023-05-09 |
Family
ID=73014601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080078301.XA Pending CN116097241A (zh) | 2019-11-10 | 2020-09-30 | 使用语义角色的数据准备 |
Country Status (7)
Country | Link |
---|---|
US (3) | US11366858B2 (zh) |
JP (1) | JP2023501098A (zh) |
CN (1) | CN116097241A (zh) |
AU (1) | AU2020380139B2 (zh) |
BR (1) | BR112022007887A2 (zh) |
CA (1) | CA3157928A1 (zh) |
WO (1) | WO2021091637A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11922140B2 (en) * | 2019-04-05 | 2024-03-05 | Oracle International Corporation | Platform for integrating back-end data analysis tools using schema |
US12026275B2 (en) * | 2020-03-05 | 2024-07-02 | Microstrategy Incorporated | Systems and methods for semantic context enrichment and data masking |
US12001993B2 (en) * | 2020-07-31 | 2024-06-04 | Trackonomy Systems, Inc. | System and methods of electronics sampling to optimize system performance, cost, and confidence levels |
US12026172B2 (en) * | 2020-12-15 | 2024-07-02 | Bank Of America Corporation | System and method for automatically validating data stored in multiple locations |
US11483216B1 (en) * | 2021-10-04 | 2022-10-25 | Exempt Me Now, Inc. | Computer networks |
CN114116724A (zh) * | 2021-11-29 | 2022-03-01 | 平安科技(深圳)有限公司 | 数据校验方法、装置、设备及可读存储介质 |
US11841873B2 (en) * | 2022-02-15 | 2023-12-12 | Sap Se | Dynamic filter and projection push down |
US20230289696A1 (en) * | 2022-03-14 | 2023-09-14 | Adobe Inc. | Interactive tree representing attribute quality or consumption metrics for data ingestion and other applications |
Family Cites Families (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5511186A (en) | 1992-11-18 | 1996-04-23 | Mdl Information Systems, Inc. | System and methods for performing multi-source searches over heterogeneous databases |
US5917492A (en) | 1997-03-31 | 1999-06-29 | International Business Machines Corporation | Method and system for displaying an expandable tree structure in a data processing system graphical user interface |
US6199063B1 (en) | 1998-03-27 | 2001-03-06 | Red Brick Systems, Inc. | System and method for rewriting relational database queries |
US6212524B1 (en) | 1998-05-06 | 2001-04-03 | E.Piphany, Inc. | Method and apparatus for creating and populating a datamart |
DE60031664T2 (de) | 1999-04-21 | 2007-08-30 | SPSS, Inc., Chicago | Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra |
US9262384B2 (en) | 1999-05-21 | 2016-02-16 | E-Numerate Solutions, Inc. | Markup language system, method, and computer program product |
US6385604B1 (en) | 1999-08-04 | 2002-05-07 | Hyperroll, Israel Limited | Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements |
US6434557B1 (en) | 1999-12-30 | 2002-08-13 | Decode Genetics Ehf. | Online syntheses programming technique |
AU2001261089B2 (en) | 2000-04-27 | 2005-02-24 | Webfeat, Inc. | Method and system for retrieving search results from multiple disparate databases |
US6915289B1 (en) | 2000-05-04 | 2005-07-05 | International Business Machines Corporation | Using an index to access a subject multi-dimensional database |
US20020055939A1 (en) | 2000-11-06 | 2002-05-09 | Joseph Nardone | System for a configurable open database connectivity conduit |
US6532471B1 (en) | 2000-12-11 | 2003-03-11 | International Business Machines Corporation | Interface repository browser and editor |
US7010779B2 (en) | 2001-08-16 | 2006-03-07 | Knowledge Dynamics, Inc. | Parser, code generator, and data calculation and transformation engine for spreadsheet calculations |
US7290007B2 (en) | 2002-05-10 | 2007-10-30 | International Business Machines Corporation | Method and apparatus for recording and managing data object relationship data |
US7039650B2 (en) | 2002-05-31 | 2006-05-02 | Sypherlink, Inc. | System and method for making multiple databases appear as a single database |
US20040083199A1 (en) | 2002-08-07 | 2004-04-29 | Govindugari Diwakar R. | Method and architecture for data transformation, normalization, profiling, cleansing and validation |
US7243093B2 (en) | 2002-11-27 | 2007-07-10 | International Business Machines Corporation | Federated query management |
US7181450B2 (en) | 2002-12-18 | 2007-02-20 | International Business Machines Corporation | Method, system, and program for use of metadata to create multidimensional cubes in a relational database |
US7953694B2 (en) | 2003-01-13 | 2011-05-31 | International Business Machines Corporation | Method, system, and program for specifying multidimensional calculations for a relational OLAP engine |
JP2004341605A (ja) * | 2003-05-13 | 2004-12-02 | Ntt Comware Corp | フォーマット変換装置および方法、ならびに、コンピュータプログラム |
US7089266B2 (en) | 2003-06-02 | 2006-08-08 | The Board Of Trustees Of The Leland Stanford Jr. University | Computer systems and methods for the query and visualization of multidimensional databases |
US20050038767A1 (en) | 2003-08-11 | 2005-02-17 | Oracle International Corporation | Layout aware calculations |
US7426520B2 (en) | 2003-09-10 | 2008-09-16 | Exeros, Inc. | Method and apparatus for semantic discovery and mapping between data sources |
US7756907B2 (en) | 2003-09-16 | 2010-07-13 | The Board Of Trustees Of The Leland Stanford Jr. University | Computer systems and methods for visualizing data |
US7149731B2 (en) | 2003-11-26 | 2006-12-12 | International Business Machines Corporation | Methods, systems and articles of manufacture for abstract query building with selectability of aggregation operations and grouping |
US7337163B1 (en) | 2003-12-04 | 2008-02-26 | Hyperion Solutions Corporation | Multidimensional database query splitting |
US7756739B2 (en) | 2004-02-12 | 2010-07-13 | Microsoft Corporation | System and method for aggregating a measure over a non-additive account dimension |
US7873669B2 (en) | 2004-07-09 | 2011-01-18 | Microsoft Corporation | Direct write back systems and methodologies |
US7302447B2 (en) | 2005-01-14 | 2007-11-27 | International Business Machines Corporation | Virtual columns |
US7800613B2 (en) | 2004-12-02 | 2010-09-21 | Tableau Software, Inc. | Computer systems and methods for visualizing data with generation of marks |
US20060173813A1 (en) | 2005-01-04 | 2006-08-03 | San Antonio Independent School District | System and method of providing ad hoc query capabilities to complex database systems |
US7548925B2 (en) | 2005-01-24 | 2009-06-16 | Microsoft Corporation | Diagrammatic access and arrangement of data |
US7584205B2 (en) | 2005-06-27 | 2009-09-01 | Ab Initio Technology Llc | Aggregating data with complex operations |
US8099674B2 (en) | 2005-09-09 | 2012-01-17 | Tableau Software Llc | Computer systems and methods for automatically viewing multidimensional databases |
US20070156734A1 (en) | 2005-12-30 | 2007-07-05 | Stefan Dipper | Handling ambiguous joins |
US7831617B2 (en) | 2006-07-25 | 2010-11-09 | Microsoft Corporation | Re-categorization of aggregate data as detail data and automated re-categorization based on data usage context |
US7702622B2 (en) | 2007-06-29 | 2010-04-20 | Microsoft Corporation | Advanced techniques for SQL generation of performancepoint business rules |
US8073840B2 (en) | 2008-06-17 | 2011-12-06 | Attivio, Inc. | Querying joined data within a search engine index |
US8762420B2 (en) | 2008-06-20 | 2014-06-24 | Microsoft Corporation | Aggregation of data stored in multiple data stores |
US8161070B2 (en) | 2008-07-02 | 2012-04-17 | Sap Ag | Efficient delta handling in star and snowflake schemes |
US8225230B2 (en) | 2008-09-19 | 2012-07-17 | International Business Machines Corporation | Providing a hierarchical filtered view of an object model and its interdependencies |
US8352883B2 (en) | 2010-07-08 | 2013-01-08 | Alexey Kashik | Analysis of complex data objects and multiple parameter systems |
US10360527B2 (en) | 2010-11-10 | 2019-07-23 | International Business Machines Corporation | Casual modeling of multi-dimensional hierarchical metric cubes |
US9165029B2 (en) | 2011-04-12 | 2015-10-20 | Microsoft Technology Licensing, Llc | Navigating performance data from different subsystems |
US8898104B2 (en) | 2011-07-26 | 2014-11-25 | International Business Machines Corporation | Auto-mapping between source and target models using statistical and ontology techniques |
US20130080584A1 (en) | 2011-09-23 | 2013-03-28 | SnapLogic, Inc | Predictive field linking for data integration pipelines |
US10685005B2 (en) | 2011-11-11 | 2020-06-16 | Qliktech International Ab | Alternate states in associative information mining and analysis |
US20130166498A1 (en) | 2011-12-25 | 2013-06-27 | Microsoft Corporation | Model Based OLAP Cube Framework |
US8713076B2 (en) | 2012-01-20 | 2014-04-29 | Cross Commerce Media, Inc. | Providing a multi-tenant knowledge network |
US9563674B2 (en) | 2012-08-20 | 2017-02-07 | Microsoft Technology Licensing, Llc | Data exploration user interface |
US9324033B2 (en) | 2012-09-13 | 2016-04-26 | Nokia Technologies Oy | Method and apparatus for providing standard data processing model through machine learning |
US9633077B2 (en) | 2012-12-21 | 2017-04-25 | Business Objects Software Limited | Query of multiple unjoined views |
US20140189559A1 (en) | 2012-12-27 | 2014-07-03 | International Business Machines Corporation | Control for rapidly exploring relationships in densely connected networks |
WO2015017787A2 (en) | 2013-08-01 | 2015-02-05 | Visa International Service Association | Homomorphic database operations apparatuses, methods and systems |
US10769122B2 (en) * | 2014-03-13 | 2020-09-08 | Ab Initio Technology Llc | Specifying and applying logical validation rules to data |
US9471609B2 (en) * | 2014-03-31 | 2016-10-18 | Sap Se | Data cleansing tool with new cleansing tree |
US9424318B2 (en) | 2014-04-01 | 2016-08-23 | Tableau Software, Inc. | Systems and methods for ranking data visualizations |
US9779150B1 (en) | 2014-08-15 | 2017-10-03 | Tableau Software, Inc. | Systems and methods for filtering data used in data visualizations that use relationships |
US9710527B1 (en) | 2014-08-15 | 2017-07-18 | Tableau Software, Inc. | Systems and methods of arranging displayed elements in data visualizations and use relationships |
US10528589B2 (en) | 2014-09-26 | 2020-01-07 | Oracle International Corporation | Cross visualization interaction between data visualizations |
US10210246B2 (en) | 2014-09-26 | 2019-02-19 | Oracle International Corporation | Techniques for similarity analysis and data enrichment using knowledge sources |
US9922099B2 (en) | 2014-09-30 | 2018-03-20 | Splunk Inc. | Event limited field picker |
US10909178B2 (en) * | 2015-03-05 | 2021-02-02 | Workday, Inc. | Methods and systems for multidimensional analysis of interconnected data sets stored in a graph database |
US10394801B2 (en) | 2015-11-05 | 2019-08-27 | Oracle International Corporation | Automated data analysis using combined queries |
US10529099B2 (en) | 2016-06-14 | 2020-01-07 | Sap Se | Overlay visualizations utilizing data layer |
US10509859B2 (en) | 2016-07-21 | 2019-12-17 | Ayasdi Ai Llc | Topological data analysis utilizing spreadsheets |
US11210115B2 (en) | 2016-11-06 | 2021-12-28 | Tableau Software, Inc. | Data visualization user interface with summary popup that includes interactive objects |
WO2019060861A1 (en) | 2017-09-24 | 2019-03-28 | Domo, Inc. | SYSTEMS AND METHODS FOR ANALYZING AND VISUALIZING DATA COVERING MULTIPLE DATA SETS |
US11620315B2 (en) | 2017-10-09 | 2023-04-04 | Tableau Software, Inc. | Using an object model of heterogeneous data to facilitate building data visualizations |
US20200073876A1 (en) | 2018-08-30 | 2020-03-05 | Qliktech International Ab | Scalable indexing architecture |
-
2019
- 2019-11-10 US US16/679,234 patent/US11366858B2/en active Active
-
2020
- 2020-09-30 CN CN202080078301.XA patent/CN116097241A/zh active Pending
- 2020-09-30 BR BR112022007887A patent/BR112022007887A2/pt unknown
- 2020-09-30 WO PCT/US2020/053406 patent/WO2021091637A1/en active Application Filing
- 2020-09-30 AU AU2020380139A patent/AU2020380139B2/en active Active
- 2020-09-30 CA CA3157928A patent/CA3157928A1/en active Pending
- 2020-09-30 JP JP2022523073A patent/JP2023501098A/ja active Pending
-
2022
- 2022-06-21 US US17/845,921 patent/US11853363B2/en active Active
-
2023
- 2023-12-21 US US18/393,517 patent/US20240126815A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
AU2020380139A1 (en) | 2022-05-05 |
JP2023501098A (ja) | 2023-01-18 |
US20220318312A1 (en) | 2022-10-06 |
BR112022007887A2 (pt) | 2022-07-05 |
US20240126815A1 (en) | 2024-04-18 |
AU2020380139B2 (en) | 2023-03-16 |
US11366858B2 (en) | 2022-06-21 |
US20210141838A1 (en) | 2021-05-13 |
US11853363B2 (en) | 2023-12-26 |
CA3157928A1 (en) | 2021-05-14 |
WO2021091637A1 (en) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11435874B2 (en) | Formulas | |
CN116097241A (zh) | 使用语义角色的数据准备 | |
Batini et al. | Data and information quality | |
US7490099B2 (en) | Rapid application development based on a data dependency path through a body of related data | |
US20170139891A1 (en) | Shared elements for business information documents | |
Woodall et al. | A classification of data quality assessment and improvement methods | |
CN106796578A (zh) | 知识自动化*** | |
Soylu et al. | TheyBuyForYou platform and knowledge graph: Expanding horizons in public procurement with open linked data | |
Fürber et al. | Data quality | |
Wintjen | Practical Data Analysis Using Jupyter Notebook: Learn how to speak the language of data by extracting useful and actionable insights using Python | |
Connolly et al. | Business database systems | |
Kwakye | A Practical Approach to Merging Multidimensional Data Models | |
Mansmann | Extending the OLAP technology to handle non-conventional and complex data | |
Ly | Data quality management in data integration | |
Biswas | Modeling, analysis and simulation of near real-time ETL processes of big data in cloud | |
Kandel | Interactive Systems for Data Transformation and Assessment | |
Keijzer | Most Work (Basic): Building Analytical Queries in an IDE | |
Maftei | Resource management tool: modern application architecture with focus on database performance | |
Vijayendra | A courseware on ETL process | |
CA3141742A1 (en) | Digital duplicate | |
Morton | Interactive Data Integration and Entity Resolution for Exploratory Visual Data Analytics | |
Gottron et al. | LOVER: Support for Modeling Data Using Linked Open Vocabularies | |
Salas | OLAP2Datacube: An On-Demand transformation Framework from OLAP to RDF Data Cubes | |
Kozmina | Metadata-based Personalization in Data Warehouses |
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 |