JP2022504865A - 選択したデータソースのオブジェクトモデルに従ったデータ視覚化の生成 - Google Patents

選択したデータソースのオブジェクトモデルに従ったデータ視覚化の生成 Download PDF

Info

Publication number
JP2022504865A
JP2022504865A JP2021520346A JP2021520346A JP2022504865A JP 2022504865 A JP2022504865 A JP 2022504865A JP 2021520346 A JP2021520346 A JP 2021520346A JP 2021520346 A JP2021520346 A JP 2021520346A JP 2022504865 A JP2022504865 A JP 2022504865A
Authority
JP
Japan
Prior art keywords
data
fields
visual
implementations
dimension
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.)
Granted
Application number
JP2021520346A
Other languages
English (en)
Other versions
JP7179981B2 (ja
Inventor
タルボット,ジャスティン
ハウ,ロジャー
コーリー,ダニエル
オウ,ジヨン
ロバーツ,テレサ
Original Assignee
タブロー ソフトウェア,インコーポレイテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by タブロー ソフトウェア,インコーポレイテッド filed Critical タブロー ソフトウェア,インコーポレイテッド
Publication of JP2022504865A publication Critical patent/JP2022504865A/ja
Application granted granted Critical
Publication of JP7179981B2 publication Critical patent/JP7179981B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24535Query rewriting; Transformation of sub-queries or views
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • G06F16/287Visualization; Browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Figure 2022504865000001
この方法は、データソース、視覚変数、およびデータソースからのデータフィールドを指定する視覚仕様を得る。各視覚変数は、データフィールドに関連付けられており、各データフィールドは、ディメンションまたはメジャーのいずれかである。この方法は、データソースのオブジェクトモデルから、ディメンションデータフィールドの全てを含む最小のサブツリーを識別し、最小のサブツリーからクエリを構造する。この方法は、タプルのセットを取得するために、データソースに対してクエリを実行し、各タプルは、ディメンションデータフィールドのデータ値の一意の順序付けられた組み合わせを含む。各タプルに対して、この方法は、各メジャーデータフィールドに対応する集計されたデータ値を添付することにより、拡張タプルを形成する。次に、この方法は、拡張タプルのデータフィールドに従い、かつデータフィールドが関連付けられている視覚変数に従って、データ視覚化を構築し、表示する。
【選択図】図1

Description

開示された実装形態は、一般に、データ視覚化に関連し、より具体的には、データセットのオブジェクトモデルを使用するデータセットのインタラクティブな視覚分析に関連する。
データ視覚化アプリケーションは、ユーザが、ビジネス上の意思決定をするのに重要な分布、傾向、外れ値、および他の要因を含むデータセットを視覚的に理解することを可能にする。いくつかのデータ要素は、選択したデータセットからのデータに基づいて計算する必要がある。例えば、データ視覚化では、合計を使用してデータを集計することがよくある。いくつかのデータ視覚化アプリケーションでは、ユーザが「Level of Detail」(LOD)を指定することを可能にし、これは、集計に使用することができる。しかしながら、データ視覚化に単一のLevel of Detailを指定するだけでは、特定の計算を構築するには不十分である。
いくつかのデータ視覚化アプリケーションは、データフィールドを選択し、それらを特定のユーザインターフェース領域に配置してデータ視覚化を間接的に定義することにより、ユーザがデータソースから視覚化を構築することを可能にするユーザインターフェースを提供する。例えば、2003年6月2日に出願された「Computer Systems and Methods for the Query and Visualization of Multidimensional Databases」と題された米国特許出願第10/453,834号、現在は米国特許第7,089,266号を参照されたく、これはその全体が参照により本明細書に組み込まれている。しかしながら、複雑なデータソースおよび/または複数のデータソースがある場合、ユーザの選択に基づいて生成するデータ視覚化のタイプ(存在する場合)が不明確になる場合がある。
加えて、いくつかのシステムは、ユーザが期待するものではないデータの視覚化をもたらすクエリを構造する。場合によっては、データの一部の行が省略される(例えば、ファクトテーブルのうちの1つに対応するデータがない場合)。場合によっては、数値集計されたフィールドは、同じデータ値が複数回カウントされているために水増しされた合計を生成する。エンドユーザが問題を認識していない、および/または問題の原因が分からない可能性があるため、これらの問題は特に問題になる可能性がある。
特に複数のファクトテーブルがある場合、複数のテーブルからのデータを組み合わせたデータ視覚化を生成することが困難な場合がある。場合によっては、データ視覚化を生成する前に、データのオブジェクトモデルを構造することが役立ち得る。場合によっては、ある人がデータの特定の専門家であり、その人がオブジェクトモデルを作成する。関係をオブジェクトモデルに格納することにより、データ視覚化アプリケーションはその情報を活用して、専門家でなくてもデータにアクセスする全てのユーザを支援することができる。
オブジェクトは、名前の付いた属性の集まりである。オブジェクトは、多くの場合、Storeなどの現実世界のオブジェクト、イベント、または概念に対応している。属性は、概念的にオブジェクトと1:1関係にあるオブジェクトの説明である。したがって、Storeオブジェクトには、単一の[Manager Name]または[Employee Count]が関連付けられている場合がある。物理レベルでは、多くの場合、オブジェクトはリレーショナルテーブルの行として、またはJSONのオブジェクトとして格納される。
クラスは、同じ属性を共有するオブジェクトの集まりである。クラス内のオブジェクトを比較し、それらを集計することは、分析的に意味のあるものでなければならない。物理レベルでは、多くの場合、クラスはリレーショナルテーブルとして、またはJSONのオブジェクトの配列として格納される。
オブジェクトモデルは、クラスのセットと、それらの間の多対1関係のセットである。1対1関係で関連付けられているクラスは、ユーザにとって意味のある別個のものであっても、概念的には単一のクラスとして扱われる。加えて、1対1関係で関連付けられているクラスは、データ視覚化ユーザインターフェースで別個のクラスとして提示される場合がある。多対多関係は、関係を捕捉する連想テーブルを追加することにより、概念的に2つの多対1関係に分割される。
クラスモデルが構造されると、データ視覚化アプリケーションは様々な方法でユーザを支援することができる。いくつかの実装形態において、すでに選択され、ユーザインターフェースのシェルフに配置されたデータフィールドに基づいて、データ視覚化アプリケーションは、追加のフィールドを推奨すること、または使用不可能な組み合わせを防止するために実行することができるアクションを制限することができる。いくつかの実装形態において、データ視覚化アプリケーションは、ユーザがフィールドをかなり自由に選択することを可能にし、オブジェクトモデルを使用して、ユーザが選択したもの応じて1つまたは複数のデータ視覚化を構築する。
いくつかの実装形態に従って、データ視覚化を生成する方法。この方法は、1つまたは複数のプロセッサおよびメモリを有するコンピュータにおいて実行される。メモリは、1つまたは複数のプロセッサによる実行用に構成された1つまたは複数のプログラムを格納する。コンピュータは、データソース、複数の視覚変数、およびデータソースからの複数のデータフィールドを指定する視覚仕様を受信する。視覚変数の各々は、データフィールドのうちのそれぞれ1つまたは複数に関連付けられており、データフィールドの各々はディメンションまたはメジャーのいずれかとして識別される。コンピュータは、データソースのオブジェクトモデルから、ディメンションデータフィールドの全てを含む最小のサブツリーを識別し、ディメンションデータフィールドにアクセスする最小のサブツリーからクエリを構造する。コンピュータは、タプルのセットを取得するために、データソースに対してクエリを実行する。各タプルは、ディメンションデータフィールドのデータ値の一意の順序付けられた組み合わせを含む。コンピュータは、各タプルに対して、メジャーデータフィールドの各々に対応する集計されたデータ値を添付することにより、拡張タプルを形成する。次に、コンピュータは、拡張タプルのデータフィールドに従い、かつデータフィールドの各々が関連付けられている視覚変数に従って、データ視覚化を構築し、表示する。
いくつのかの実装では、視覚仕様は、データソースからのどのデータフィールドにも関連付けられていない1つまたは複数の追加の視覚変数を含む。
いくつかの実装形態において、メジャーデータフィールドの集計されたデータ値は、ディメンションデータフィールドに従って集計される。
いくつかの実装形態において、コンピュータは、コンピュータのグラフィカルユーザインターフェースにデータ視覚化を表示する。いくつかの実装形態において、データ視覚化を表示することが、複数の視覚マークを生成することを含み、各マークは、それぞれの拡張タプルに対応する。いくつかの実装形態において、グラフィカルユーザインターフェースは、データ視覚化領域を含み、コンピュータは、データ視覚化領域にデータ視覚化を表示する。
いくつかの実装形態において、視覚変数の各々は、行属性、列属性、フィルタ属性、色符号化、サイズ符号化、形状符号化、およびラベル符号化のうちの1つである。
いくつかの実装形態において、集計されたデータ値が、SUM、COUNT、COUNTD、MIN、MAX、AVG、MEDIAN、ATTR、PERCENTILE、STDEV、STDEVP、VAR、およびVARPのうちの1つである集計関数を使用して計算される。
いくつかの実装形態において、複数のデータフィールドは、データソース内の複数の別個のテーブルからのものである。
いくつかの実装形態において、データソースのオブジェクトモデルは複数のオブジェクトを有し、複数のデータフィールドは複数のオブジェクトのうちの2つ以上の別個のオブジェクトに属する。
いくつかの実装形態において、視覚仕様は、複数のデータソースを指定し、視覚仕様は、複数のデータソースの各々からの1つまたは複数のデータフィールドを指定し、オブジェクトモデルは、複数のデータソースのオブジェクトモデルである。
いくつかの実装に従って、データ視覚化を生成する方法は、1つまたは複数のプロセッサおよびメモリを有するコンピュータにおいて実行される。メモリは、1つまたは複数のプロセッサによる実行用に構成された1つまたは複数のプログラムを格納する。コンピュータは、データソース、複数の視覚変数、およびデータソースからの複数のデータフィールドを指定する視覚仕様を受信する。視覚変数の各々は、データフィールドのうちのそれぞれ1つまたは複数に関連付けられており、データフィールドの各々は、ディメンションまたはメジャーのいずれかとして特定される。コンピュータは、データソースに対して第1のクエリを実行して、ディメンションデータフィールドDのデータ値の別個の順序付けされた組み合わせを含むディメンションタプルを形成する。メジャーデータフィールドの各々に対して、コンピュータは、(i)それぞれのメジャーを含むデータソースのテーブルの主キーから、ディメンションデータフィールドDとディメンションとからなるディメンションのセットSを形成し、(ii)データソースに対してそれぞれのクエリを実行して、Sにおけるデータフィールドとそれぞれのメジャーとを含む中間タプルを集計せずに取得し、(iii)ディメンションデータフィールドDに従って中間タプルを集計して、それぞれのメジャーの集計値を計算する。コンピュータは、各ディメンションタプルに対して、メジャーデータフィールドの各々に対応する集計されたデータ値を添付することにより、拡張タプルを形成する。次に、コンピュータは、拡張タプルのデータフィールドに従い、かつデータフィールドの各々が関連付けられている視覚変数に従って、データ視覚化を構築し、表示する。
いくつのかの実装形態では、視覚仕様は、データソースからのどのデータフィールドにも関連付けられていない1つまたは複数の追加の視覚変数をさらに含む。
いくつかの実装形態において、コンピュータは、コンピュータのグラフィカルユーザインターフェースにデータ視覚化を表示する。いくつかの実装形態において、データ視覚化を表示することは、複数の視覚マークを生成することを含み、各マークは、それぞれの拡張タプルに対応する。いくつかの実装形態において、グラフィカルユーザインターフェースはデータ視覚化領域を含み、コンピュータはデータ視覚化領域にデータ視覚化を表示する。
いくつかの実装形態において、視覚変数の各々は、行属性、列属性、フィルタ属性、色符号化、サイズ符号化、形状符号化、およびラベル符号化のうちの1つである。
いくつかの実装形態において、集計データ値が、SUM、COUNT、COUNTD、MIN、MAX、AVG、MEDIAN、ATTR、PERCENTILE、STDEV、STDEVP、VAR、およびVARPのうちの1つである集計関数を使用して計算される。
いくつかの実装では、複数のデータフィールドは、データソース内の複数の別個のテーブルからのものである。
いくつかの実装形態において、データソースのオブジェクトモデルは複数のオブジェクトを有し、複数のデータフィールドは複数のオブジェクトのうちの2つ以上の別個のオブジェクトに属する。
いくつかの実装では、視覚仕様は、複数のデータソースを指定し、視覚仕様は、複数のデータソースの各々からの1つまたは複数のデータフィールドを指定し、オブジェクトモデルは、複数のデータソースのオブジェクトモデルである。
いくつかの実装形態に従って、プロセスはデータ視覚化を生成する。プロセスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによる実行のために構成されている1つまたは複数のプログラムを格納したメモリと、を有するコンピュータにおいて、実行される。プロセスは、1つまたは複数のデータソース、複数の視覚変数、および1つまたは複数のデータソースからの複数のデータフィールドを指定する視覚仕様を受信する。各視覚変数は、1つまたは複数のデータフィールドに関連付けられており、データフィールドの各々は、ディメンションdまたはメジャーmのいずれかとして識別される。いくつかの実装形態において、視覚仕様は、ユーザインターフェースにおけるユーザ選択に基づいて記入されるデータ構造である。例えば、ユーザは、データフィールドのパレットから行シェルフ、列シェルフ、または符号化シェルフ(例えば、色またはサイズの符号化)にフィールドをドラッグすることができる。シェルフの各々は、視覚仕様における視覚変数に対応し、シェルフのデータフィールドは視覚仕様の一部として格納される。場合によっては、同じシェルフに2つ以上のデータフィールドが関連付けられているため、対応する視覚変数は、2つ以上の関連付けられたデータフィールドを有する。視覚変数に関連付けられたデータフィールドが2つ以上ある場合、通常は指定された順序がある。場合によっては、同じデータフィールドが2つ以上の別個の視覚変数に関連付けられる。一般に、個々のデータ視覚化では、使用可能な全ての視覚変数を使用するわけではない。すなわち、視覚仕様は、通常、1つまたは複数のデータソースからのどのデータフィールドにも関連付けられていない1つまたは複数の追加の視覚変数を含む。いくつかの実装形態において、視覚変数の各々は、行属性、列属性、フィルタ属性、色符号化、サイズ符号化、形状符号化、およびラベル符号化のうちの1つである。
多くの場合、メジャーは数値フィールドであり、ディメンションは文字列データ型のデータフィールドである。さらに重要なことに、「メジャー」および「ディメンション」というラベルは、データフィールドがどのように使用されるかを示している。
データフィールドの各メジャーmについて、プロセスは、データフィールドの全てのディメンションdからなるそれぞれの到達可能なディメンションセットR(m)を識別し、これらは、1つまたは複数のデータソースに対して事前に定義されたオブジェクトモデル内の多対1関係のシーケンスによって、それぞれのメジャーmから到達可能である。シーケンスの長さはゼロにすることができ、ディメンションdとメジャーmが同じクラスにある場合を表すことに留意されたい。いくつかの実装形態において、ディメンションdおよびメジャーmが事前に定義されたオブジェクトモデルの同じクラスにある場合、ディメンションdはメジャーmから到達可能であり、そうでなければ、メジャーmは事前に定義されたオブジェクトモデルにおける第1のクラスCの属性であり、ディメンションdはオブジェクトモデルにおけるn番目のクラスCの属性であり、n≧2であり、事前に定義されたオブジェクトモデルにはゼロ個以上の中間クラスC、…、Cn-1のシーケンスがあり、それにより、各i=1、2、…、n-1に対して、クラスCとCi+1との間には多対1関係がある。
Figure 2022504865000002

という自明な場合もあるが、これは視覚変数に関連付けられたディメンションがないか、ディメンションいずれにも到達できないいくつかのメジャーがあるためであることに留意されたい。これは、有効な到達可能なディメンションセットである。
到達可能なディメンションセットを構築すると、メジャーが分割される。具体的には、m~miff R(m)=R(m)によって定義された関係~は、同値関係である。ほとんどの場合、分割は1つだけである(つまり、R(m)はメジャーの全てで同じである)が、場合によっては、2つ以上の分割がある。
各別個の到達可能なディメンションセットRに対して、プロセスはそれぞれのデータフィールドセットSを形成する。セットSは、Rの各ディメンションと、R(m)=Rであるデータフィールドの各メジャーmからなる。一般に、データフィールドセットの各々には、少なくとも1つのメジャーが含まれる。いくつかの実装形態において、メジャーを有さないいずれのデータフィールドセットも無視される。いくつかの実装形態において、メジャーを有さないデータフィールドセットSが識別されると、データ視覚化アプリケーションでエラーが発生する。いくつかの実装形態において、データ視覚化アプリケーションは、(1つまたは複数のメジャーを含むデータフィールドセットSの各々に対して作成されたデータ視覚化に加えて)メジャーを有さないデータフィールドセットSの各々に対して追加のデータ視覚化を構築する。
各データフィールドセットSおよびそれぞれのデータフィールドセットSの各メジャーmに対して、プロセスはメジャーmの値を、それぞれのデータフィールドセットSのそれぞれのディメンションで指定された詳細レベルにロールアップする。次にプロセスは、それぞれのデータフィールドセットSのデータフィールドに従い、かつSにおけるデータフィールドの各々が関連付けられているそれぞれの視覚変数に従って、それぞれのデータ視覚化を構築する。
いくつかの実装形態において、それぞれのデータ視覚化の構築には、視覚仕様から生成された1つまたは複数のデータベースクエリを使用して、1つまたは複数のデータソースからデータのタプルを取得することが含まれる。例えば、SQLデータソースに対して、プロセスはSQLクエリを構築し、そのクエリを適切なSQLデータベースエンジンに送信する。場合によっては、タプルは、それぞれのデータフィールドセットSにおけるそれぞれのディメンションに従って集計されたデータを含む。すなわち、集計は、データソースによって実行される。
一般に、生成されたデータ視覚化は、コンピュータ上のグラフィカルユーザインターフェース(例えば、データ視覚化アプリケーションのユーザインターフェース)に表示される。いくつかの実装形態において、データ視覚化を表示することは、複数の視覚マークを生成することを含み、各マークは、1つまたは複数のデータソースから取得されたそれぞれのタプルに対応する。いくつかの実装形態において、グラフィカルユーザインターフェースはデータ視覚化領域を含み、プロセスはデータ視覚化領域にデータ視覚化を表示する。
いくつかの実装形態において、メジャーmの値を、それぞれのデータフィールドセットSにおけるそれぞれのディメンションによって指定される詳細レベルにロールアップすることは、メジャーmを含むデータテーブルの行を、それぞれのデータフィールドSにおけるそれぞれのディメンションに従って、グループに分割することと、各グループの単一の集計された値を計算することと、を含む。
いくつかの実装形態において、単一の集計された値は、集計関数SUM、COUNT、COUNTD(別個の要素のカウント)、MIN、MAX、AVG(平均)、MEDIAN、STDEV(標準偏差)、VAR(分散)、PERCENTILE(例えば、四分位数)、ATTR、STDEVP、およびVARPのうちの1つを使用して計算される。いくつかの実装形態において、ATTR()集計演算子は、式の値が全ての行で単一の値である場合はその値を返し、そうでない場合はアスタリスクを返す。いくつかの実装形態において、STDEVPおよびVARP集計演算子は、偏りのある集団または集団全体に基づいて値を返す。いくつかの実装形態は、本明細書に挙げられたものよりも多い、または異なる集計演算子が含む。いくつかの実装形態において、集計演算子に代わりの名称を使用している。
いくつかの実装形態において、データフィールドは、使用方法に基づいて「ディメンション」または「メジャー」として分類される。ディメンションはデータセットを分割するが、メジャーは分割の各々におけるデータを集計する。SQLの考え方では、ディメンションはGROUP BY句の要素であり、メジャーはSELECT句の要素である。一般的に、分割には離散カテゴリデータ(例:州、地域、または製品名を含むフィールド)を使用するが、集計(例えば、合計の算出)には連続的な数値データ(例えば、利益または売上)を使用する。しかしながら、全てのタイプのデータフィールドは、ディメンションまたはメジャーとして使用することができる。例えば、製品名を含む離散カテゴリフィールドは、集計関数COUNTD(別個にカウント)を適用することで、メジャーとして使用することができる。一方、人々の身長を表す数値データをディメンションとして使用することができ、それによって身長または身長の範囲で人々を分割することができる。SUMなどのいくつかの集計関数は、数値データにのみ適用できる。いくつかの実装形態において、アプリケーションは、フィールドの生データタイプに基づいて、各フィールドにデフォルトの役割(ディメンションまたはメジャー)を割り当てるが、ユーザがその役割をオーバーライドすることを可能にする。例えば、いくつかのアプリケーションでは、カテゴリ(文字列)データフィールドに「ディメンション」のデフォルトの役割を割り当て、数値フィールドに「メジャー」のデフォルトの役割を割り当てる。いくつかの実装形態において、日付フィールドは、データを日付範囲に分割するために一般的に使用されるため、デフォルトでディメンションとして使用される。
ディメンションまたはメジャーとしての分類は、計算された式にも適用される。例えば、YEAR([Purchase Date])などの式は、ディメンションとして一般的に使用され、基礎となるデータを年に分割する。別の例として、(文字列として)Product Codeフィールドを含むデータソースについて考察する。Product Codeの最初の3文字が製品タイプを符号化している場合、式LEFT([製品コード]、3)をディメンションとして使用して、データを製品タイプに分割することができる。
いくつかの実装形態では、ユーザはインタラクティブなグラフィカルユーザインターフェースを使用して複数の詳細レベルを指定することが可能である。いくつかの例では、2つの詳細レベルを使用しているが、実装では通常、無制限の数の詳細レベルが許容されている。場合によっては、ある詳細レベルでの集計に従って計算されたデータが、第2の詳細レベルにおける第2の集計で使用される。いくつかの実装形態において、データ視覚化に「視覚化の詳細レベル」が含まれており、これは、集計の計算にデフォルトで使用される。これは、最終的なデータ視覚化において視認可能である詳細レベルである。実装では、詳細レベルの式も提供されており、これにより、ユーザが特定の状況において特定の詳細レベルを指定することが可能になる。
いくつかの実装形態では、所望のデータ視覚化の特性を決定するシェルフ領域が指定されている。例えば、いくつかの実装形態は、行シェルフ領域および列シェルフ領域を含む。ユーザは、(例えば、スキーマ領域からフィールドをドラッグするなどして)これらのシェルフ領域にフィールド名を配置し、そのフィールド名でデータの視覚化特性が定義される。例えば、ユーザは、縦型の棒グラフを選択することができ、フィールドの各別個の値に対する列は、列シェルフ領域に配置される。各バーの高さは、行シェルフ領域に配置された別のフィールドによって定義される。
いくつかの実装形態に従って、データ視覚化を生成および表示する方法は、コンピュータにおいて実行される。コンピュータは、ディスプレイ、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサによる実行のために構成されている1つまたは複数のプログラムを格納したメモリを有する。プロセスは、ディスプレイにグラフィカルユーザインターフェースを表示する。グラフィカルユーザインターフェースは、データベースからの複数のフィールドを含むスキーマ情報領域を含む。プロセスは、グラフィカルユーザインターフェースにおいてユーザ入力を受信して、第1の集計を指定する。第1の集計の仕様は、複数のフィールドのうちの1つまたは複数のフィールドの第1のセットによってデータをグループ化し、第1の集計によって作成される第1の集計された出力フィールドを識別する。プロセスはまた、グラフィカルユーザインターフェースにおいてユーザ入力を受信して、第2の集計を指定する。場合によっては、第2の集計の仕様は、第1の集計を参照する。第2の集計では、1つまたは複数のフィールドの第2のセットによってデータがグループ化される。フィールドの第2のセットは、複数のフィールドおよび第1の集計された出力フィールドから選択される。フィールドの第2のセットは、フィールドの第1のセットとは異なる。プロセスは、第1および第2の集計の仕様に基づいて、視覚仕様を構築する。
いくつかの実装形態において、プロセスは、視覚仕様から生成された1つまたは複数のデータベースクエリを使用して、データベースからデータのタプルを取得することを含む。いくつかの実装形態において、タプルには、第2の集計に基づいて計算されたデータが含まれる。いくつかの実装形態において、プロセスは、視覚仕様に対応するデータ視覚化を表示することを含み、データ視覚化は、第2の集計に基づいて計算されたデータを含む。いくつかの実装形態において、表示されるデータ視覚化には複数の視覚マークが含まれ、各マークはデータベースから取得されたそれぞれのタプルに対応する。いくつかの実装形態において、グラフィカルユーザインターフェースはデータ視覚化領域を含み、プロセスはデータ視覚化領域にデータ視覚化を表示する。
いくつかの実装形態において、グラフィカルユーザインターフェースには、列シェルフと行シェルフが含まれる。いくつかの実装形態において、プロセスは、複数のフィールドの1つまたは複数の第1のフィールドを列シェルフに関連付け、複数のフィールドの1つまたは複数の第2のフィールドを行シェルフに関連付けるユーザのアクションを検出する。次に、プロセスは、ユーザのアクションに従って、データ視覚化領域に視覚テーブルを生成する。視覚テーブルは、1つまたは複数のペインを含み、各ペインは、列シェルフに関連付けられた1つまたは複数の第1のフィールドのデータに基づいて定義されたX軸を有し、各ペインは、行シェルフに関連付けられた1つまたは複数の第2のフィールドのデータに基づいて定義されたY軸を有する。いくつかの実装形態において、プロセスはユーザ入力を受信して、第2の集計を列シェルフまたは行シェルフに関連付ける。
いくつかの実装形態において、プロセスは、行および列シェルフに関連付けられたフィールドに従って、データベースからタプルを取得し、取得したタプルを視覚テーブルに視覚マークとして表示する。いくつかの実装形態において、第1および第2の集計の各演算子は、SUM、COUNT、COUNTD、MIN、MAX、AVG、MEDIAN、ATTR、PERCENTILE、STDEV、STDEVP、VAR、またはVARPのうちの1つである。
場合によっては、第1の集計された出力フィールドがディメンションとして使用され、第2のセットに含まれる。
いくつかの実装形態において、第1の集計された出力フィールドが、メジャーとして使用され、第2の集計は、集計演算子のうちの1つを第1の集計された出力フィールドに適用する。例えば、場合によっては、第2の集計で、第1の集計された出力フィールドの値の平均が計算される。
いくつかの実装形態において、プロセスはコンピュータディスプレイ上にグラフィカルユーザインターフェースを表示する。グラフィカルユーザインターフェースには、スキーマ情報領域とデータ視覚化領域が含まれる。スキーマ情報領域には複数のフィールド名が含まれ、各フィールド名は指定されたデータベースのデータフィールドに関連付けられる。データ視覚化領域は、データ視覚化の特性を決定する複数のシェルフ領域を含む。各シェルフ領域は、スキーマ情報領域から1つまたは複数のフィールド名のユーザ配置を受信するように構成されている。プロセスは、1つまたは複数のフィールド名のユーザ選択と、データ視覚化領域のそれぞれのシェルフ領域でのユーザが選択した各フィールド名のユーザ配置に従って、視覚仕様を構築する。
いくつかの実装形態において、データ視覚化は、複数の別個のコンポーネントデータ視覚化を含むダッシュボードを含む。視覚仕様は、複数のコンポーネント視覚仕様を含み、各コンポーネントデータの視覚化は、コンポーネント視覚仕様のうちのそれぞれの1つに基づく。
いくつかの実装形態において、視覚仕様によって定義されるデータ視覚化特性には、マークのマークタイプおよびゼロ個以上の符号化が含まれる。いくつかの実装形態において、マークタイプは、棒グラフ、折れ線グラフ、散布図、テキストテーブル、またはマップのうちの1つである。いくつかの実装形態において、符号化は、マークのサイズ、マークの色、およびマークのラベルから選択される。
いくつかの実装形態に従って、データ視覚化を生成するためのシステムは、1つまたは複数のプロセッサ、メモリ、およびメモリに格納された1つまたは複数のプログラムを含む。プログラムは、1つまたは複数のプロセッサによって実行されるように構成される。プログラムは、本明細書に記載の方法のいずれかを実行するための命令を含む。
いくつかの実装形態に従って、非一時的コンピュータ可読記憶媒体は、1つまたは複数のプロセッサおよびメモリを有するコンピュータシステムによる実行のために構成されている1つまたは複数のプログラムを格納する。1つまたは複数のプログラムは、本明細書に記載の方法のいずれかを実行するための命令を含む。
したがって、方法、システム、およびグラフィカルユーザインターフェースは、データセットのインタラクティブな視覚分析のために提供される。
本発明の前述の実装形態、および追加の実装形態をよりよく理解するために、同様の参照番号が図全体を通して対応する部分を参照する以下の図面と併せて、以下の発明を実施するための形態を参照されたい。
いくつかの実装形態に従ってデータ視覚化を構築するプロセスを概念的に示す。 いくつかの実装形態によるコンピューティングデバイスのブロック図である。 いくつかの実装形態によるデータ視覚化サーバのブロック図である。 いくつかの実装形態によるデータ視覚化ユーザインターフェースの例を提供する。 いくつかの実装形態に従って、3つのクラスを有する単純なオブジェクトモデルを示す。 いくつかの実装形態に従って、別のクラスと2つの別個の関係を有する単一のクラスを示す。 いくつかの実装形態に従って、4つのクラス間の関係のボウタイセット、およびこれに関連して提示される可能性のあるデータ視覚化を示す。 いくつかの実装形態に従って、単一のクラスに対してデータ視覚化が作成される非常に単純なオブジェクトモデルを示す。 いくつかの実装形態に従って、階層的にネストされていない2つの別個のクラスからのディメンションを含むデータ視覚化の構築を示す。 いくつかの実装形態に従って、オブジェクトモデル内の2つ以上の別個のクラスの属性であるメジャーのユーザ選択を示す。 いくつかの実装形態に従って、1つまたは複数の選択されたディメンションの階層的に上である1つまたは複数のメジャーのユーザ選択、および対応するデータ視覚化を示す。 いくつかの実装形態に従って、モデル内で接続されていないデータモデル内の2つ以上のクラスからのメジャーおよびディメンションのユーザ選択、および生成され得る対応するデータ視覚化を示す。 いくつかの実装形態に従って、オブジェクトモデル内の2つ以上の別個のクラスからのメジャーのユーザ選択、それらを接続する少なくとも1つの階層クラス、ならびにこのシナリオで生成され得るデータ視覚化を示す。 いくつかの実装形態に従って、オブジェクトモデル内のどのディメンションが到達可能であるかを決定するための擬似コード記述を提供する。 いくつかの実装形態に従って、データ視覚化アプリケーション内でフィルタを定義するためのユーザインターフェースウィンドウのスクリーンショットである。 いくつかの実装形態に従って、データ視覚化を構築するときにオブジェクトモデルを使用するプロセスのフローチャートを提供する。 いくつかの実装形態に従って、Object Modelグラフの2つの例を提供する。 いくつかの実装形態に従って、ルートからディメンションの全てが到達できるわけではないオブジェクトモデルグラフを示す。 いくつかの実装形態に従って、あるノードから別のノードへの2つの別個のパスがどこにあるかを示すオブジェクトモデルグラフを示す。 は、いくつかの実装形態に従って、売上の追跡に使用できるSnowflakeの例示スキーマを提供する。 いくつかの実装形態に従って、図20A~20Fの例を、スノーフレークではないツリーに拡張する。 いくつかの実装形態に従って、ツリーのMeasures and Dimensions in Different Branchesがあることを示す。 いくつかの実装形態に従って、ラインアイテムと注文の単純なモデルを提供する。 いくつかの実装形態に従って、オブジェクトモデルを使用して、データ視覚化のカウントを正確に生成することを示す。 いくつかの実装形態に従って、オブジェクトモデルを使用して、データ視覚化の合計を正確に生成することを示す。 いくつかの実装形態に従って、オブジェクトモデルを使用して、データ視覚化にフィルタを適用することを示す。 いくつかの実装形態に従って、オブジェクトモデルを使用して、データ視覚化に複数のフィルタを適用することを示す。
同様の参照番号は、図面全体の対応する部分を参照している。
ここで、実装形態を詳細に参照すると、その例は、添付の図面に示されている。以下の詳細な説明では、本発明の徹底した理解を提供するために、数多くの特定の詳細が記載される。しかしながら、当業者であれば、これらの特定の詳細がなくても本発明を実施することができることは明らかであろう。
実装形態の説明

図1に示すように、インタラクティブなデータ視覚化アプリケーションのいくつかの実装形態は、データ視覚化ユーザインターフェース102を使用して、視覚仕様104を構築する。視覚仕様は、1つまたは複数のデータソース106を識別し、これらは、局所的に(例えば、ユーザインターフェース102を表示しているのと同じデバイスに)格納され得るか、または外部に(例えば、データベースサーバまたはクラウドに)格納され得る。視覚仕様104はまた、視覚変数を含む。視覚変数は、データソース106から選択されたデータフィールドに従って、間接的に所望のデータ視覚化の特性を指定する。特に、ユーザは視覚変数の各々にゼロ個以上のデータフィールドを割り当て、データフィールドの値によって、表示されるデータ視覚化が決定される。
ほとんどの場合、全ての視覚変数が使用されるわけではない。場合によっては、一部の視覚変数は、2つ以上の割り当てられたデータフィールドを有する。このシナリオでは、視覚変数に割り当てられたデータフィールドの順序(例えば、データフィールドがユーザによって視覚変数に割り当てられた順序)は、通常、データ視覚化がどのように生成され、表示されるかに影響する。
いくつかの実装形態において、オブジェクトモデル108を使用して、適切なデータ視覚化を構築する。場合によっては、オブジェクトモデルは1つのデータソース(例えば、1つのSQLデータベースまたは1つのスプレッドシートファイル)に適用されるが、オブジェクトモデルは2つ以上のデータソースを包含し得る。通常、無関係のデータソースは、別個のオブジェクトモデルを有している。場合によっては、オブジェクトモデルは、物理的データソースのデータモデルを厳密に模倣する(例えば、SQLデータベースのテーブルに対応するオブジェクトモデルのクラス)。しかしながら、場合によっては、オブジェクトモデルは、物理的データソースよりも正規化されている(または正規化されていない)。オブジェクトモデルは、互いに1対1関係にある属性(例えば、データフィールド)をグループ化してクラスを形成し、クラス間の多対1関係を識別する。以下の図では、多対1関係が矢印で示され、各関係の「多」側が、関係の「1」側よりも垂直方向に低くなっている。オブジェクトモデルはまた、データフィールド(属性)の各々をディメンションまたはメジャーとして識別する。以下では、文字「D」(または「d」)を使用してディメンションを表し、後者の「M」(または「m」)を使用してメジャーを表す。オブジェクトモデル108が構造されるとき、それは、ユーザが選択するデータフィールドに基づいてデータ視覚化を構築することを容易にすることができる。単一のデータモデルは無制限の数の他の人々が使用できるため、データソースのオブジェクトモデルの構築は通常、データソースの相対的な専門家である人に委任される。
ユーザが(例えば、グラフィカルユーザインターフェースを使用して、データフィールドをシェルフに配置することによって間接的に)データフィールドを視覚仕様に追加すると、データ視覚化アプリケーション222(またはウェブアプリケーション322)は、オブジェクトモデル108に従ってユーザが選択したデータフィールドをグループ化する(110)。このようなグループは、データフィールドセット294と呼ばれる。多くの場合、ユーザが選択したデータフィールドは全て、単一のデータフィールドセット294内にある。場合によっては、2つ以上のデータフィールドセット294が存在する。各メジャーmは、正確に1つのデータフィールドセット294内にあるが、各ディメンションdは、2つ以上のデータフィールドセット294内にあり得る。データフィールドセット294を構築するプロセスは、図10、11、13A~13C、14A~14C、15、16、および18A~18Cに関して以下でより詳細に説明される。
データ視覚化アプリケーション222(またはウェブアプリケーション322)は、第1のデータフィールドセット294についてデータソース106にクエリを実行し(112)、次いで、取得されたデータに対応する第1のデータ視覚化122を生成する。第1のデータ視覚化122は、第1のデータフィールドセット294からデータフィールド284を割り当てた視覚仕様104における視覚変数282に従って構造される。データフィールドセット294が1つしかない場合、視覚仕様104における全ての情報は、第1のデータ視覚化122を構築するために使用される。2つ以上のデータフィールドセット294が存在する場合、第1のデータ視覚化122は、第1のデータフィールドセット294に関連する全ての情報からなる第1の視覚副仕様に基づく。例えば、元の視覚仕様104が、データフィールドfを使用するフィルタを含むと仮定する。フィールドfが第1のデータフィールドセット294に含まれる場合、フィルタは第1の視覚的副仕様の一部であり、したがって第1のデータ視覚化122を生成するために使用される。
第2の(または後続の)データフィールドセット294が存在する場合、データ視覚化アプリケーション222(またはウェブアプリケーション322)は、第2の(または後続の)データフィールドセット294についてデータソース106にクエリを行い(114)、次に、取得されたデータに対応する第2の(または後続の)データ視覚化124を生成する。このデータ視覚化124は、第2の(または後続の)データフィールドセット294からデータフィールド284を割り当てた視覚仕様104における視覚変数282に従って構造される。
図2は、データ視覚化アプリケーション222またはデータ視覚化ウェブアプリケーション322を実行してデータ視覚化122を表示することができるコンピューティングデバイス200を示すブロック図である。いくつかの実装形態において、コンピューティングデバイスは、データ視覚化アプリケーション222のためのグラフィカルユーザインターフェース102を表示する。コンピューティングデバイス200には、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、およびディスプレイと、データ視覚化アプリケーション222を実行できるプロセッサとを備えた他のコンピューティングデバイスが含まれる。コンピューティングデバイス200は、通常、メモリ214に格納されたモジュール、プログラム、および/または命令を実行し、それによって処理動作を実行するための1つまたは複数の処理ユニット/コア(CPU)202と、1つまたは複数のネットワークまたは他の通信インターフェース204と、メモリ214と、これらの構成要素を相互接続するための1つまたは複数の通信バス212と、を含む。通信バス212は、システム構成要素間の通信を相互接続および制御する回路網を含み得る。コンピューティングデバイス200は、ディスプレイ208および1つまたは複数の入力デバイスまたは機構210を含むユーザインターフェース206を含む。いくつかの実装形態において、入力デバイス/機構はキーボードを含み、いくつかの実装形態において、入力デバイス/機構は「ソフト」キーボードを含み、これは、ディスプレイデバイス208に必要に応じて表示され、それにより、ユーザがディスプレイ208に現れる「キーを押す」ことが可能になる。いくつかの実装形態において、ディスプレイ208および入力デバイス/機構210は、タッチスクリーンディスプレイ(タッチセンシティブディスプレイとも呼ばれる)を備える。いくつかの実装形態において、ディスプレイは、コンピューティングデバイス200の統合された部分である。いくつかの実装形態において、ディスプレイは分離したディスプレイデバイスである。
いくつかの実装形態において、メモリ214は、DRAM、SRAM、DDR RAM、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリを含む。いくつかの実装形態において、メモリ214は、1つまたは複数の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、または他の不揮発性固体記憶デバイスなどの不揮発性メモリを含む。いくつかの実装形態において、メモリ214は、CPU(複数可)202から遠隔に位置する1つまたは複数の記憶デバイスを含む。メモリ214、または代替的にメモリ214内の不揮発性メモリデバイス(複数可)は、非一時的コンピュータ可読記憶媒体を含む。いくつかの実装形態において、メモリ214、またはメモリ214のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットを格納する。
・様々な基本的なシステムサービスを処理し、ハードウェアに依存するタスクを実行するための手順を含むオペレーティングシステム216。
・1つまたは複数の通信ネットワークインターフェース204(有線または無線)およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどのような1つまたは複数の通信ネットワークを介して、コンピューティングデバイス200を他のコンピュータおよびデバイスに接続するために使用される通信モジュール218。
・ユーザがネットワークを用いて遠隔のコンピュータまたはデバイスと通信することを可能にするウェブブラウザ220(または他のクライアントアプリケーション)。
・ユーザが視覚グラフィックス(例えば、個々のデータ視覚化または複数の関連するデータ視覚化を備えたダッシュボード)を構造するためのグラフィカルユーザインターフェース102を提供するデータ視覚化アプリケーション222。いくつかの実装形態において、データ視覚化アプリケーション222は、スタンドアロンアプリケーション(例えば、デスクトップアプリケーション)として実行される。いくつかの実装形態において、データ視覚化アプリケーション222は、ウェブブラウザ220内で(例えば、ウェブアプリケーション322として)以下を実行する。
・以下の図4に示されるように、ユーザが要素を視覚的に指定することによってデータ視覚化を構築することを可能にするグラフィカルユーザインターフェース102。
・いくつかの実装形態において、ユーザインターフェース102は、所望のデータ視覚化の特性を指定するために使用される複数のシェルフ領域250を含む。いくつかの実装形態において、シェルフ領域250は、列シェルフ230および行シェルフ232を含み、これらは、所望のデータ視覚化におけるデータの配置を指定するために使用される。一般に、列シェルフ230に配置されるフィールドは、データ視覚化における列を定義するために使用される(例えば、視覚マークのx座標)。同様に、行シェルフ232に配置されたフィールドは、データ視覚化における行を定義する(例えば、視覚マークのy座標)。いくつかの実装形態において、シェルフ領域250は、フィルタシェルフ262を含み、これにより、ユーザは、選択されたデータフィールドに従って表示されるデータを制限することが可能になる(例えば、特定のフィールドが特定の値を有するか、または特定の範囲内に値を有する行にデータを制限する)。いくつかの実装形態において、シェルフ領域250は、データマークの様々な符号化を指定するために使用されるマークシェルフ264を含む。いくつかの実装形態において、マークシェルフ264は、(データフィールドに基づいてデータマークの色を指定するための)色符号化アイコン270、(データフィールドに基づいてデータマークのサイズを指定するための)サイズ符号化アイコン272、(データマークに関連付けられたラベルを指定するための)テキスト符号化アイコン、および(データ視覚化の詳細レベルを指定または変更するための)ビューレベル詳細アイコン228を含む。
・所望のデータ視覚化の特性を定義するために使用される視覚仕様104。いくつかの実装形態において、視覚仕様104は、ユーザインターフェース102を使用して構築される。視覚仕様は、識別されたデータソース280を含み(すなわち、データソースが何であるかを指定する)、これは、データソース106を見つけるのに十分な情報(例えば、データソース名またはネットワークフルパス名)を提供する。視覚仕様104はまた、視覚変数282、および視覚変数の各々に割り当てられたデータフィールド284を含む。いくつかの実装形態において、視覚仕様は、シェルフ領域250の各々に対応する視覚変数を有する。いくつかの実装形態において、視覚変数は、コンピューティングデバイス200に関するコンテキスト情報、ユーザ選好情報、またはシェルフ領域として実装されていない他のデータ視覚化機能(例えば、分析機能)などの他の情報も含む。
・データソース106の構造を識別する1つまたは複数のオブジェクトモデル108。オブジェクトモデルでは、データフィールド(属性)はクラスに編成され、各クラスにおける属性は互いに1対1で対応する。オブジェクトモデルには、クラス間の多対1関係も含まれる。場合によっては、オブジェクトモデルは、データベース内の各テーブルをクラスにマッピングし、クラス間の多対1関係は、テーブル間の外部キー関係に対応する。場合によっては、基礎となるソースのデータモデルが、この単純な方法でオブジェクトモデルにきれいにマッピングされないため、オブジェクトモデルには、生データを適切なクラスオブジェクトに変換する方法を指定する情報が含まれる。場合によっては、生データソースは単純なファイル(例えば、スプレッドシート)であり、複数のクラスに変換される。
・視覚仕様に従ってデータ視覚化を生成および表示するデータ視覚化ジェネレータ290。いくつかの実装形態に従って、データ視覚化ジェネレータ290は、オブジェクトモデル108を使用して、視覚仕様104内のディメンションが視覚仕様のデータフィールドから到達可能であるかを決定する。各視覚仕様について、このプロセスは、1つまたは複数の到達可能なディメンションセット292を形成する。これを以下の図10、11、13A~13C、14A~14C、15、16、および18A~18Cに示す。各到達可能ディメンションセット292は、データフィールドセット294に対応し、これは、一般に、到達可能ディメンションセット292内の到達可能ディメンションに加えて、1つまたは複数のメジャーを含む。
・視覚仕様104およびデータソース106によって提供される情報以外の、データ視覚化アプリケーション222によって使用される情報を含む視覚化パラメータ236。
・データ視覚化アプリケーション222によって使用される、ゼロ個以上のデータベースまたはデータソース106(例えば、第1のデータソース106-1)。いくつかの実装形態において、データソースは、スプレッドシートファイル、CSVファイル、XMLファイル、フラットファイル、JSONファイル、リレーショナルデータベースのテーブル、クラウドデータベース、または統計データベースとして格納できる。
上述の識別された実行可能モジュール、アプリケーション、または手順のセットの各々は、1つまたは複数の上述のメモリデバイスに格納され得、かつ上述の機能を実行するための命令のセットに対応する。上述の識別されたモジュールまたはプログラム(すなわち、命令のセット)は、別個のソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実装形態において組み合わされるか、または別様に再配置され得る。いくつかの実装形態において、メモリ214は、上述の識別されたモジュールおよびデータ構造のサブセットを格納する。いくつかの実施形態において、メモリ214は、上述されていない追加のモジュールまたはデータ構造を格納し得る。
図2は、コンピューティングデバイス200を示しているが、図2は、本明細書で説明されている実装形態の構造的概略としてではなく、むしろ存在し得る様々な特徴の機能的説明としてより意図されている。実際には、当業者によって認識されるように、別々に示されたアイテムを組み合わせることができ、いくつかのアイテムを分離することができる。
図3は、いくつかの実装形態によるデータ視覚化サーバ300のブロック図である。データ視覚化サーバ300は、1つまたは複数のデータベース328をホストすることができ、または様々な実行可能アプリケーションまたはモジュールを提供することができる。サーバ300は、通常、1つまたは複数の処理ユニット/コア(CPU)302、1つまたは複数のネットワークインターフェース304、メモリ314、およびこれらのコンポーネントを相互接続するための1つまたは複数の通信バス312を含む。いくつかの実装形態において、サーバ300は、ディスプレイ308と、キーボードおよびマウスなどの1つまたは複数の入力デバイス310とを含むユーザインターフェース306を含む。いくつかの実装形態において、通信バス312は、システムコンポーネント間の通信を相互接続および制御する回路(チップセットと呼ばれることもある)を含む。
いくつかの実装形態において、メモリ314は、DRAM、SRAM、DDR RAM、または他のランダムアクセス固体メモリデバイスなどの高速ランダムアクセスメモリを含み、1つまたは複数の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、または他の不揮発性固体記憶デバイスなどの不揮発性メモリを含んでもよい。いくつかの実装形態において、メモリ314は、CPU(複数可)302から遠隔に位置する1つまたは複数の記憶デバイスを含む。メモリ314、または代替的にメモリ314内の不揮発性メモリデバイス(複数可)は、非一時的コンピュータ可読記憶媒体を含む。
いくつかの実装形態において、メモリ314、またはメモリ314のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはそれらのサブセットを格納する。
・様々な基本的なシステムサービスを処理し、ハードウェアに依存するタスクを実行するための手順を含むオペレーティングシステム316。
・1つまたは複数の通信ネットワークインターフェース304(有線または無線)およびインターネット、他の広域ネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどのような1つまたは複数の通信ネットワークを介して、サーバ300を他のコンピュータに接続するために使用されるネットワーク通信モジュール318。
・ユーザからのウェブ要求を受信し、応答ウェブページまたは他のリソースを提供することで応答する(HTTPサーバなどの)ウェブサーバ320。
・ユーザのコンピューティングデバイス200上のウェブブラウザ220によってダウンロードおよび実行され得るデータ視覚化ウェブアプリケーション322。一般に、データ視覚化ウェブアプリケーション322は、デスクトップデータ視覚化アプリケーション222と同じ機能を有するが、ネットワーク接続を備えたいずれかの場所のいずれかのデバイスからのアクセスの柔軟性を提供し、インストールおよびメンテナンスを必要としない。いくつかの実装形態において、データ視覚化ウェブアプリケーション322は、特定のタスクを実行するための様々なソフトウェアモジュールを含む。いくつかの実装形態において、ウェブアプリケーション322は、ウェブアプリケーション322の全ての態様に対してユーザインターフェースを提供するユーザインターフェースモジュール324を含む。いくつかの実装形態において、ユーザインターフェースモジュール324は、コンピューティングデバイス200について上で説明したように、シェルフ領域250を指定する。
・データ視覚化ウェブアプリケーションは、ユーザが所望のデータ視覚化の特性を選択するときに、視覚仕様104も格納する。視覚仕様104、およびそれらが格納するデータは、コンピューティングデバイス200について上で説明されている。
・コンピューティングデバイス200について上で説明したように、1つまたは複数のオブジェクトモデル108。
・ユーザが選択したデータソースおよびデータフィールド、ならびにデータソース106を記述する1つまたは複数のオブジェクトモデルに従ってデータ視覚化を生成および表示するデータ視覚化ジェネレータ290。データ視覚化ジェネレータの動作は、コンピューティングデバイス200に関して上で説明され、図10、11、13A~13C、14A~14C、15、16、および18A~18Cで以下に説明される。
・いくつかの実装形態において、ウェブアプリケーション322は、データ取得モジュール326を含み、これは、クエリを構築および実行して、1つまたは複数のデータソース106からデータを取得する。データソース106は、サーバ300上に局所的に格納され得るか、または外部データベース328に格納され得る。いくつかの実装形態において、2つ以上のデータソースからのデータがブレンドされる場合がある。いくつかの実装形態において、データ取得モジュール326は、図2のコンピューティングデバイス200について上で説明したように、視覚仕様104を使用してクエリを構築する。
・データ視覚化ウェブアプリケーション322またはデータ視覚化アプリケーション222によって使用または作成されたデータを格納する1つまたは複数のデータベース328。データベース328は、生成されたデータ視覚化で使用されるデータを提供するデータソース106を格納することができる。各データソース106は、1つまたは複数のデータフィールド330を含む。いくつかの実装形態において、データベース328は、ユーザ選好を格納する。いくつかの実装形態において、データベース328は、データ視覚化履歴ログ334を含む。いくつかの実装形態において、履歴ログ334は、データ視覚化がデータ視覚化をレンダリングするたびに追跡する。
データベース328は、多くの異なるフォーマットでデータを格納することができ、一般に、それぞれが複数のデータフィールド330を有する多くの別個のテーブルを含む。いくつかのデータソースは、単一のテーブルを含む。データフィールド330は、データソースからの生フィールド(例えば、データベーステーブルからの列またはスプレッドシートからの列)と、1つまたは複数の他のフィールドから計算または構造され得る派生データフィールドの両方とを含む。例えば、派生データフィールドには、日付フィールドからの月または四半期の計算、2つの日付フィールド間の期間の計算、定量フィールドの累積合計の計算、成長率の計算などが含まれる。場合によっては、派生データフィールドは、データベース内のストアドプロシージャまたはビューによってアクセスされる。いくつかの実装形態において、派生データフィールド330の定義は、データソース106とは別に格納される。いくつかの実装形態において、データベース328は、各ユーザのユーザ選好のセットを格納する。ユーザ選好は、データ視覚化ウェブアプリケーション322(またはアプリケーション222)がデータフィールドのセット330を表示する方法について推奨を行うときに使用することができる。いくつかの実装形態において、データベース328は、生成された各データ視覚化に関する情報を格納するデータ視覚化履歴ログ334を格納する。いくつかの実装形態において、データベース328は、データ視覚化アプリケーション222またはデータ視覚化ウェブアプリケーション322によって使用される他の情報を含む、他の情報を格納する。データベース328は、データ視覚化サーバ300から分離していてもよく、またはデータ視覚化サーバ(またはその両方)とともに含まれていてもよい。
いくつかの実装形態において、データ視覚化履歴ログ334は、ユーザによって選択された視覚仕様104を格納し、これは、ユーザ識別子、データ視覚化が作成されたときのタイムスタンプ、データ視覚化で使用されるデータフィールドのリスト、データの視覚化のタイプ(「ビュータイプ」または「チャートタイプ」と呼ばれることもある)タイプ、データ符号化(例えば、マークの色とサイズ)、選択したデータの関係、および使用するコネクタを含み得る。いくつかの実装形態において、各データ視覚化の1つまたは複数のサムネイル画像も格納される。いくつかの実装形態では、データソースの名前と場所、データ視覚化に含まれていたデータソースの行数、データ視覚化ソフトウェアのバージョンなど、作成されたデータ視覚化に関する追加情報が格納される。
上述の識別された実行可能モジュール、アプリケーション、または手順のセットの各々は、上述のメモリデバイスのうちの1つまたは複数に格納され得、かつ上述の機能を実行するための命令のセットに対応する。上述の識別されたモジュールまたはプログラム(すなわち、命令のセット)は、別個のソフトウェアプログラム、手順、またはモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実装形態において組み合わされるか、または別様に再配置され得る。いくつかの実装形態において、メモリ314は、上述の識別されたモジュールおよびデータ構造のサブセットを格納する。いくつかの実装形態において、メモリ314は、上述されていない追加のモジュールまたはデータ構造を格納し得る。
図3は、コンピューティングデバイス300を示しているが、図3は、本明細書で説明されている実装形態の構造的概略としてではなく、むしろ存在し得る様々な特徴の機能的説明としてより意図されている。実際には、当業者によって認識されるように、別々に示されたアイテムを組み合わせることができ、いくつかのアイテムを分離することができる。加えて、サーバ300に関して上に示したプログラム、機能、手順、またはデータのいくつかは、コンピューティングデバイス200上に格納または実行され得る。いくつかの実装形態において、機能および/またはデータは、コンピューティングデバイス200と1つまたは複数のサーバ300との間で割り当てられ得る。さらに、当業者は、図3が単一の物理デバイスを表す必要がないことを認識している。いくつかの実装形態において、サーバ機能は、サーバシステムを含む複数の物理デバイスに割り当てられる。本明細書で使用される場合、「サーバ」または「データ視覚化サーバ」への言及は、説明された機能を提供するサーバの様々なグループ、集まり、または配列を含み、物理サーバは物理的に併置される必要はない(例えば、個々の物理デバイスは米国全体または世界中に広がり得る)。
図4は、いくつかの実装形態に従って、データ視覚化ユーザインターフェース102を示している。ユーザインターフェース102は、データペインとも呼ばれるスキーマ情報領域410を含む。スキーマ情報領域410は、データ視覚化を構築するために選択および使用され得る名前付きのデータ要素(例えば、フィールド名)を提供する。いくつかの実装形態において、フィールド名のリストは、ディメンションのグループとメジャーのグループ(通常は数量)に分けられる。いくつかの実装形態には、パラメータのリストも含まれる。グラフィカルユーザインターフェース102はまた、データ視覚化領域412を含む。データ視覚化領域412は、列シェルフ領域230および行シェルフ領域232などの複数のシェルフ領域250を含む。これらは、列シェルフ230および行シェルフ232とも呼ばれる。加えて、このユーザインターフェース102は、1つまたは複数のフィルタ424を含み得るフィルタシェルフ262を含む。
本明細書に示すように、データ視覚化領域412はまた、視覚グラフィックを表示するための大きなスペースを有する。この図ではまだデータ要素が選択されていないため、スペースには最初は視覚グラフィックがない。
ユーザは、1つまたは複数のデータソース106(コンピューティングデバイス200に格納され得るか、または遠隔で格納され得る)を選択し、データソース(複数可)からデータフィールドを選択し、選択されたフィールドを使用して視覚グラフィックを定義する。データ視覚化アプリケーション222(またはウェブアプリケーション322)は、生成されたグラフィック122をデータ視覚化領域412に表示する。いくつかの実装形態において、ユーザが提供する情報は、視覚仕様104として格納される。
いくつかの実装形態において、データ視覚化領域412は、マークシェルフ264を含む。マークシェルフ264は、ユーザがデータマークの様々な符号化426を指定することを可能にする。いくつかの実装形態において、マークシェルフは、色符号化アイコン270、サイズ符号化アイコン272、テキスト符号化アイコン274、および/またはビューレベル詳細アイコン228を含み、これらは、データ視覚化の詳細レベルを指定または変更するために使用することができる。
オブジェクトモデルは、クラスをノードとして、かつそれらの多対1関係をエッジとして持つグラフとして表すことができる。本明細書に示されているように、これらのグラフは、各関係の「多」側が常に「1側」の下になるように配置されている。例えば、図5では、オフィスクラス502は企業クラス504と多対1関係512を有しており、オフィスクラス502も国クラス506と多対1関係514を有している。このグラフでは、企業に複数のオフィスがあり、国に複数のオフィスがある場合があるが、個々のオフィスは単一の企業と国に属している。図5のオブジェクトモデルは接続されているが、全てのオブジェクトモデルが接続されているわけではない。一般に、データソース106のオブジェクトモデル108は、事前に構築されている。ユーザが後でデータ視覚化を構築するとき、オブジェクトモデル108の構造は、適切なデータ視覚化の生成を支援する。
通常、クラスのいずれのペアも、関係グラフを通して最大で1つのパスによって結合される。複数のパスが可能な場合、ユーザは使用するパスを指定するか、データセットのピボットを解除して2つのパスを1つに結合する必要がある。
次の図の一部は、様々なオブジェクトモデルを示し、オブジェクトモデル内でのディメンションDとメジャーMのユーザ選択を示している。オブジェクトモデル内のディメンションおよびメジャーの位置に基づいて、データ視覚化ジェネレータ290は、生成する別個のデータ視覚化の数および構築するものを決定する。これに関連して、オブジェクトモデル内の別のデータフィールドから到達可能なディメンションの概念を定義すると有用である。具体的には、データフィールドを含むクラスから始まり、ディメンションを含むクラスで終わる多対1関係のシーケンスがある場合、ディメンションDはデータフィールドから到達可能である。加えて、ディメンションDがクラスCにある場合、ディメンションDはクラスCの他の全てのデータフィールドから到達可能である。この場合、データフィールドで始まり、ディメンションで終わるゼロの多対1関係のシーケンスがある。
この「到達可能」の定義により、グラフ内の所与のノードから到達可能なディメンションのセットを定義することが可能になる。特に、視覚仕様104の各データフィールド(ディメンションまたはメジャー)について、到達可能なディメンションのセット292は、所与のデータフィールドと同じ詳細レベル(LOD)における視覚仕様の全てのディメンションであるか、またはデータフィールドからグラフを上に移動することによって到達可能である。
各データフィールドに対して、到達可能な視覚化フィルタのセットを識別することも有用である。これは、到達可能なディメンションの全てのフィルタが含まれる。メジャーフィルタは、適切な詳細レベルにおいてディメンションフィルタとして、暗黙のうちに処理できることに留意されたい。
図16は、オブジェクトモデル内の各データフィールド(ディメンションまたはメジャー)の到達可能なディメンションを決定するための擬似コードクエリを提供している。
各データフィールドに対して、到達可能なディメンションと到達可能なフィルタのセットにより、データフィールドを中心とした暗黙的なスノーフレークスキーマが作られる。これは、データフィールドにフィルタを適用し、メジャーを集計するための明確に定義された独自の方法があることを意味する。各データフィールドのクエリの結果を単独で表示すると、結果の解釈が容易になる。
ユーザが所望の視覚化を簡単に構築できるようにすることに加え、到達可能なディメンションを使用すると、データ取得のパフォーマンスを向上させることができる。クエリは、多対1関係を通じて到達可能なディメンションに結合するだけでよいため、より高速である。これは、積極的な結合カリング動作の一般化された形式として理解することができる。クエリは、所望の視覚化を作成するために厳密に必要なテーブルに触れるだけでよい。
N個のデータフィールドを使用するデータ視覚化の場合、このプロセスにより、理論上最大N個の別個のクエリが生成される可能性がある。しかしながら、これらの多くは冗長的となる。1つのクエリの結果は、1つまたは複数の他のクエリの結果に含まれ得る。加えて、同じ詳細レベルでメジャーを計算するクエリを組み合わせることができる。したがって、このプロセスは通常、実行するクエリが少ない。
パフォーマンスの観点から、多対多の結合を通して単一のモノリシックなクエリではなく、複数の独立したクエリを生成することには、クエリを並行して実行できるという追加の利点がある。このため、一部の実装形態では、全てのクエリが結果を返す前に、データ視覚化のレンダリングを開始することができる。
上記のクエリセマンティクスを考えると、複数の詳細レベルと複数のドメインという2つの主要な課題が存在する。第一に、独立したクエリは、様々な詳細レベルにおいて結果を出すことができる。詳細レベルがネストしている場合(例えば、(State、City)Stateで)、これは特に問題にはならない。このプロセスでは、粗いLODの値をより細かいLODに単純にレプリケーションすることができる。これは、LODが部分的に重なっている場合(例えば、(State、City)と(State、ZIP))、または互いに非同一である場合(例えば、(State、City)と(Product、Subproduct))に、非常に困難である。第二に、独立したクエリは、異なるドメインで結果を出すことができる。例えば、StateごとにSUM(Population)を計算すると、50の州の各々についての記載項目が返される場合がある(米国の人口テーブルが完成している場合)。しかしながら、StateごとのSUM(Sales)を計算すると、売買取引がある州のみが返ってくる。売上テーブルに10州の取引が含まれていない場合、クエリは40州の結果のみを返す。
複数の詳細レベルに対処するために、プロセスは、同じ詳細レベルのクエリ結果をコングロマリット結果テーブルに結合することによって開始する。このプロセスでは、ネストされたクエリ結果(厳密にサブセット/スーパーセットLOD関係にあるもの)も結合される。これにより、ネストされた結果が重複してしまうが、合計を小計と比較できるため、利害はない。
これら全てのケースを組み合わせた後でも、詳細レベルが部分的に重なっている、または非同一である場合、複数の結果テーブルを有する実例が存在する。実装形態では、これらの実例の結果を視覚化するために様々なアプローチを使用する
複数の詳細レベルに対処することに加えて、実装形態では他のシナリオにも対処する。データフィールドが2つ以上の異なる値のドメインを有する実例がある。例えば、全ての州のセットは、注文がある州のセットとは異なる場合があり、従業員がいる州のセットとは異なる場合がある。オブジェクトモデルを使用すると、単一の論理概念(例えば、「State」)に複数のドメインを関連付けることができる。
別のシナリオは、複数のルート(「ファクト」)テーブルがある場合である。複数のファクトテーブルが存在すると、多対多関係とレプリケーション(重複)が発生し得る。加えて、複数のファクトテーブルにより、結合の実装方法が変わる可能性がある。多くの場合、結合をツリーのように配置することで、スノーフレーク構造の単一のファクトテーブルのクエリを行うことができる。しかしながら、複数のファクトテーブルがある場合、どのテーブルをスノーフレークの中心として指定するかについては固有の曖昧さがあり、この方法でテーブルを結合することは、ユーザのデータモデルを適切に視覚化できない場合がある。
別のシナリオは、1つのテーブルに同じテーブル(およびそのサブツリー)への2つ以上の参照がある場合に生じる。例えば、各OrderにOrderDateとShipDateの両方が含まれるシナリオを考察してみる。このデータは様々な方法で構成化され得る。第1のケースでは、OrderDateとShipDateは両方ともOrderテーブル自体におけるデータフィールドである。この場合、データのクエリは、簡単に行える。第2のケースでは、別々のOrderDateテーブルとShipDateテーブルがあるため、Ordersテーブルとこれらの別個のテーブルのそれぞれとの間に別々の結合がある。第3のケースでは、図6に示されるように、OrderDate情報およびShipDate情報は、単一のDateテーブル604に統合される。この場合、注文日に対応する行の第1のサブセット606(例えば、「Order」のdate_typeを有する)と、出荷日に対応する行の第2のサブセット608(例えば、「Ship」のdate-typeを有する)がある。このシナリオでは、Orderテーブル602は、同じ日付テーブルへの2つの結合、注文日を表す行への第1の結合616と、出荷日を表す行への第2の結合618とを有している。
クラスまたはデータベーステーブル間の関係も、「ボウタイ」型の配置を有することができる。図7Aの視覚化では、Opportunity Amount、Case duration、Product、およびCustomer Nameを使用している。この情報を表示するために、2つの連結されたデータ視覚化704および706を使用しており、両方ともProduct702に対応する行を有する。これは、図7Bに示すように、データモデル(またはオブジェクトモデル)とのブレンドを利用している。ファクトテーブルfactCase722およびfactOpportunity724の各々は、ディメンションテーブルdimAccount712およびディメンションテーブルdimProduct728の両方に対して独立した関係を有している。4つの関係730はボウタイのように見える。口語的に名付けられた「ボウタイ」とは、2つのファクトテーブルがどちらも2つのディメンションテーブルに関連付けられることで、その関係を強制的にクロスさせてしまうという考え方である。
いくつかの実装形態では、「フラット」テーブルの正規化にも対処している。例えば、データソース(データウェアハウスなど)には、複数の概念クラスを表すデータが含まれ得る。いくつかの実装形態では、既知の正規化手法を使用して、意味のあるクラスを表すオブジェクトモデルを構築する。
各オブジェクトモデル図において、現在の視覚仕様104のディメンションおよびメジャーのソースは、「D」および「M」でラベル付けされている。最も単純なケースでは、図8に示すように、現在の視覚仕様104からのディメンションとメジャーの全てを含む単一のクラスがある。このシナリオでは、メジャーとディメンションは同じクラスから得られ、計算セマンティクスは自明である。このプロセスでは、メジャーをディメンションの詳細レベルにロールアップする。これにより、ディメンションと集計されたメジャーを含む単一のテーブルがもたらされる。
単一のクラスの属性間にモデル化された関係がないため、この結果テーブルの小さな複数のレイアウトを作成することは必ずしも明白ではない。しかしながら、シェルフモデル(行232および列230)は、これに対処するための一連の発見的問題解決を提供する。同じシェルフのディメンションは階層軸を作成するが(例えば、図9Bのように)、異なるシェルフのディメンションは交差軸を作成する。同じ軸上の複数のメジャーが、(図7Aの2つの列704および706で示されるように)連結される。他のシェルフは、マークを作成し、それらの視覚外観を定義するために使用される。
スノーフレークモデルでは、図9Aに示すように、メジャーは単一のクラスから得られる。ディメンションは、メジャーのクラスから関係グラフを上に移動することによって到達可能な同じクラスから得られる。このプロセスでは、関係エッジに沿ってディメンションをメジャークラスのクラスに結合する。メジャーは、ディメンションの詳細レベルまで集計される。他の全てのクラスは無視する。例えば、図9Aでは、メジャーは全て注文テーブル904から得られ、データ視覚化は製品クラス902と地域クラス908の両方のディメンションを有している。製品クラス902および地域クラス908のディメンションは、注文クラス904からのメジャーを集計するための詳細レベルを定義する。この例では、州クラス906からのデータ視覚化のディメンションまたはメジャーがないため、そのデータは使用されない。しかしながら、注文クラス904から領域クラス908にメジャーを接続するために、クエリにおいて州クラス906が必要となり得る。
オブジェクトモデルは、ディメンション間にネスト関係または交差関係があるかどうかを示し、これは、デフォルト動作を決定するためにいくつかの実装形態において使用される。図9Aの例では、製品と地域は互いに独立しているため、同じ軸上にあるかどうかに関係なく、小さな複数のレイアウトで交差する必要がある。しかしながら、いくつかの実装形態では、ユーザがデフォルト動作をオーバーライドすることを可能にしている。例えば、モデルが独立したディメンション間の相互関係を示している場合でも、ユーザは、実際のデータ値によって定義された関係のみに基づいてネストすることを望む場合がある。逆に、ネストが理にかなっている場合でも、ユーザは交差した視覚化を表示し、ネストされたディメンション間に対応するペア形成がない空白スペースを導入することを望む場合がある。
同じ軸上に交差ディメンションを表示することが、図9Bに示されている。この場合、ユーザは、2つの独立したディメンションセグメント920およびカテゴリ922を同じシェルフ(列シェルフ230)に配置した。ユーザは、メジャーSales924を行シェルフ232に配置し、ここではCOUNT()を使用して集計される。セグメントとカテゴリのディメンションは独立しているため、デフォルトでは交差している。上の列ヘッダ940にはセグメントが記載され、下の列ヘッダ942はカテゴリが記載されている。交差があるため、カテゴリの各々はセグメントの各々に対して表示され、これは、一部のセグメント/カテゴリの組み合わせについてのデータがない場合でも発生し得る。いくつかの実装形態において、ユーザインターフェース102は、交差を処理するためのユーザインタラクションに対処する。例えば、いくつかの実装形態において、交差軸で1つのヘッダ(例えば、第1の家具ヘッダ926)を選択すると、対応するデータ(例えば、同じ家具カテゴリを有する全ての列についての家具データ930、932、および934)の全てを選択することになる。
いくつかの実装形態において、異なる軸にネストされたディメンションがある場合、図9Cに示すように、ディスプレイは代替手法を使用して、関連する組み合わせのみを表示する。この場合、データフィールド「サブカテゴリ」はデータフィールド「カテゴリ」の下にネストされており、これら2つのデータフィールドは別個の軸上にある。各カテゴリのサブカテゴリは完全に異なる(例えば、家具カテゴリには本箱と椅子があるが、事務用品カテゴリには電化製品、美術品、バインダがある)。このため、表示には、データ視覚化の各行に対して個別の列ヘッダのセットが含まれる。これは、トレリスチャートと呼ばれることもある。これにより、各サブカテゴリが適切なカテゴリ内にのみ表示されるようになる。
ブレンディングは、メジャーが複数のクラスから得られるスノーフレークケースの一般化である。これは、図10に示される。ディメンションは、単一のクラス(「結合LOD」と呼ばれることもある)を通して全てのメジャーから到達可能である。図10では、州クラス1004は「結合LOD」である。
各メジャーを独立して考慮する場合、このシナリオはスノーフレークと同じである。各メジャーは、独立してディメンションLODにロールアップすることができる。次に、集計されたメジャーをディメンションLODにおいて結合することができる。例えば、注文テーブル1002からのメジャーは、地域クラス1008のディメンションに従って集計され、供給元クラス1006からのメジャーも地域クラス1008のディメンションに従って集計される。注文クラス1002と供給元クラスの両方のメジャーが同じ詳細レベルで集計されるため、結果セットを直接結合して、ディメンションLODにおいて単一のテーブルを形成することができる。
データの視覚化にディメンションがない場合(例えば、総計が表示されている場合)、全ての(ゼロ)ディメンションにいずれのメジャーからも到達できるため、これは自明なブレンディングの場合である。この場合、全てのメジャーは空のディメンションLODにロールアップされ(つまり、各メジャーに対して1つの集計データ値が計算される)、集計は1つの視覚化に表示される。これは、オブジェクトモデルが接続されていない場合でも機能する。
同じクラスを通して全てのディメンションに到達できるという制限を、緩和することができる。グラフを上に移動することで全てのメジャーから全てのディメンションに到達できる限り、プロセスは標準のブレンディングと同じクエリセマンティクスと視覚レイアウトを使用することができる。これは図11に示されており、これにより、図10に示すデータモデルに製品クラス1110が追加される。この例では、注文1002と供給元1006の両方からのメジャーは、単一の結合LODを経由しなくても、領域クラス1008と製品クラス1110のディメンションに従ってロールアップすることができる。
ディメンションの相互関係(交差またはネスト)は、使用されるメジャーのセットとは無関係であるため、小さな複数のディスプレイのレイアウトでは、単純なブレンディングの場合と同じルールを使用することができることに留意されたい。
図12Aに示すように、オブジェクトモデルのディメンションの上にメジャーが定義され得る。この場合、領域クラス1208(おそらく人口)のメジャーは集計されることは全くない。代わりに、メジャーは属性としてディメンションLOD(注文クラス1202および製品クラス1210のディメンションに従って)にレプリケーション(重複)される。実際、データ視覚化アプリケーションは、このメジャーを単なる別のディメンションとして扱う。
この動作をユーザに明確にするために、いくつかの実装形態では、図12Cに示すように、行シェルフ232または列シェルフ230の対応するピルの集計関数を抑制する。SUM(Profit)1250を表示する代わりに、ユーザインターフェースはProfit1252を表示する。いくつかの実装形態において、ユーザインターフェースは、視覚的に強調しないなど、他の方法で式の外観を変更する。加えて、いくつかの実装形態では、交差軸で重複するヘッダなど、選択範囲の重複を視覚的に認識する。例えば、図12Bでは、データ視覚化の全ての行1230は、カテゴリ売上に対して同じ値を示し(データ値は1つだけ)、表示されたときに行が一緒に強調表示される。
全てのディメンションが全ての非属性メジャーから到達できるわけではない場合、より困難な詳細レベルの問題が生じる。例えば、図13Aのオブジェクトモデルについて考察すると、これは、企業クラス1302と国クラス1304を有しているが、それらの間に関係は定義されていない。オブジェクトの使用が可能である前にユーザが2つのオブジェクト間の関係を定義する必要がないため、これは見た目ほど不思議なことではない。
いくつかの実装形態において、これは、図13Bに示されるように、2つの垂直に連結されたデータ視覚化1322および1324をもたらす。いくつかの実装形態において、図13Cおよび13Dに示すように、2つの別個のデータ視覚化は水平方向に連結される。図13Cでは、2つの視覚化1332および1334の上部は、水平に整列している。図13Dでは、2つのデータ視覚化1342および1344の底部は、水平に整列している。図13Cと13Dのプロットが、軸を共有していないことに留意されたい。
いくつかの実装形態において、複数のデータ視覚化がある場合、一度に1つの視覚化が表示され、ユーザはそれらを素早く変えることができる。どのフィールドが視覚化に使用されているかをユーザが理解しやすいように、いくつかの実装形態では、対応する視覚化が表示されていない、またはフォーカスされていない場合に、使用されていないフィールドまたはフィルタをグレー表示する。
場合によっては、図14Aに示すように、ディメンションおよびメジャーは多対多関係を介してリンクされる。この例では、顧客クラス1402からのディメンションおよびメジャーは、州クラス1406との多対1関係を介して接続されている。同様に、企業クラス1404からのディメンションおよびメジャーは、州クラス1406との多対1関係によって接続されている。
このケースは、ディメンションが2つの下部クラス1402および1404の両方から含まれていることを除いて、ブレンディングと非常に似ている。その結果、企業クラス1404からのディメンションは、顧客クラス1402のメジャーから到達できず、その逆も同様である。このケースは、追加の州クラス1406が追加されていることを除いて、図13Aの切断グラフのケースと同様である。
いくつかのシナリオにおいて、いくつかの実装形態では、ブレンディングと切断動作を組み合わせて、図14Bに示すように、州内にネストされた、顧客と企業の独立したデータ視覚化を表示する。図14Bに示すように、州のディメンションは、顧客クラス1402と企業クラス1404の両方から到達可能であるため、全体的な視覚化は州1420によって調整される。例えば、図14Bの部分的なデータ視覚化は、Alabama1422とArizona1424のデータを示している。州の各水平領域内には、企業1426のリストがあり、各企業の売上を表す視覚マーク1428が示されている。加えて、各水平の州の領域は、これらの個々の顧客のそれぞれの利益を表す視覚マーク1432(例えば、バー)とともに、顧客名1430のリストも有している。これは、州クラス1406からの共有ディメンション(複数可)に基づく部分的な整列を示している。
図14Cは、図14Aに示されている同じオブジェクトモデルからの異なるデータフィールドを選択して使用し、いくつかの実装形態が作成するデータ視覚化を示している。図14Cの場合、ユーザは顧客クラス1402からメジャー売上を選択し、企業クラス1404からもメジャー売上を選択した。しかしながら、ユーザはこれら2つのクラスのいずれからもディメンションを選択しなかった。ディメンション州は全てのメジャーから到達可能であるため、メジャーの各々が州にロールアップされた単一のデータ視覚化がある。しかしながら、2つのファクトテーブルと限られた売上では、どの州を表示するかに関する問題が生じる。いくつかの実装形態において、デフォルト動作は完全外部結合を実行し、州の各々、および州の各々に対する企業の売上と顧客の売上の両方を表示する(空白はゼロを示す)。例えば、図14Cでは、Alabamaは、企業または顧客のいずれについても売上1450がない。一方、Californiaは、企業の売上1452と顧客の売上1454の両方がある。いくつかの州では、どちらか一方しかなく、例えば、Floridaは企業の売上1456のみで、Illinoisは顧客の売上1458のみを有している。いくつかの実装形態において、ユーザは、どのデータを表示するかを選択することができる(例えば、顧客クラス1402または企業クラス1404のいずれかからのデータを持たない州を省略する)。いくつかの実装形態では、企業または顧客のいずれにもアクティビティがない州は、デフォルトで省略される。
図15は、州クラス1506のディメンションが省略されていることを除いて、図14Aと同じシナリオを示している。オブジェクトモデルのため、顧客クラス1502と企業クラス1504は、州クラス1506を通して多対多関係にあることが知られている。しかしながら、ユーザは州を視覚化に含めるように要求していない。
このシナリオでは、いくつかの実装形態は、州を通してのリンクを単に無視して、切断シナリオと同じ視覚化を生成する(図13A~13D)。このアプローチには、データ視覚化に州がない状態から州が含まれる状態への移行がやや自然であるという利点がある。ユーザは2つの独立したリストから始め、次に州を追加すると、各州に対する2つの独立したリストが作成される。
いくつかの実装形態では、このシナリオに別の方法で対処している。いくつかの実装形態では、個別の視覚化が生成されるが、州についてのリンク動作が自動的に強調表示される。場合によっては、これは意味がある。例えば、顧客が同じ州の企業からサービスを受けることができる場合、顧客リストの顧客をクリックすると、その顧客にサービスを提供できる州の企業が強調表示される。逆に、企業をクリックすると、サービスを提供できる顧客が強調表示される。一方、そのような興味深いセマンティクスがない場合、いくつかの顧客と同じ州内にある企業を強調表示すると、気が散る、または逆効果のデフォルトになり得る。このタイプのクロスハイライトは計算コストもかかる可能性があるので、デフォルト動作にすることは、計算リソースが限られているデバイスでの実装形態には実用的ではない。
これらの例に基づいて、一部の実装形態では、選択したディメンションとメジャー、および対応するオブジェクトモデルに基づいて次の手順を実行する。第一に、プロセスは、視覚仕様104内のメジャーを、それぞれから到達可能なディメンションのセットによって分割する(1つまたは複数の到達可能なディメンションセット292を作成する)。第二に、同じディメンションのセットに到達できるメジャーの各セットについて、プロセスはメジャーをディメンションの詳細レベルにロールアップする。各到達可能なディメンションセット292は、対応するメジャーとともに、データフィールドセットを形成する。294。第三に、プロセスは、データフィールドセット内のディメンションおよびメジャーに関連付けられた視覚変数マッピングを使用して、各データフィールドセット294に対して別個のデータ視覚化を作成する。プロセスは他の全てのマッピングを無視する。
いくつかの実装形態では、図14Bに示す状況にも対処している。その場合、State内にネストされた独立したCustomerリストとCompanyリストがある。この場合、共通のディメンションに別々の視覚化をネストすることが有用である。同様のシナリオは、あるセットのメジャーを、別のセットのメジャーの表示とインターリーブされた、またはその欄外にある小計または総計として表示することが有用な場合に発生する。
いくつかの実装形態では、上記のような簡単なシナリオの一つに制限することで、ユーザが複数の視覚化を伴うシナリオに入ることを防ぐことができる。例えば、いくつかの実装形態では、各シートの「結合LOD」オブジェクトを選択するようにユーザに要求し、結合LODからグラフを上に移動して到達できないディメンションを無効にし、ツリーを下に移動して到達できないメジャーを無効にすることで、ユーザを結合シナリオに制限する。
ブレンディングでは、多対1関係がどちらの方向に進むかが常に明確であるとは限らない。ブレンディングは、多対1関係が期待どおりに進んだ場合に、正確で有用な結果をもたらす。期待どおりにいかない場合は「*」が表示される。いくつかの実装形態は、ここでのオブジェクトモデルの問題に対して同様のアプローチを取る。例えば、独立したリストを作成する代わりに、いくつかの実装形態ではリストの外積を表示し、メジャーを重複させる。これについては、以下で詳しく説明する。
フィルタの適用方法は、ドメインの問題と密接に関連している。フィルタは、関係グラフ(1対多から)に確実に適用する必要がある。図5のオブジェクトモデルでは、企業のフィルタをオフィスにも適用する必要がある。グラフをフィルタリングすること(例えば、フィルタが英国内の全てのオフィスを削除する場合、英国もフィルタリングする必要があるか?)は、かなり疑問の余地がある。
いくつのかの実装形態において、各フィルタにLODが割り当てられており、その詳細レベルにおいて適用される。
いくつかの実装形態において、上記のプロセスが2つ以上の別個のデータ視覚化につながる場合、プロセスは全てのコングロマリットの結果セットの自然結合を実行して、単一の交差結果テーブルを生成する。このコングロマリットは単一のテーブルであるため、通常の方法で配置できる。これは、以下でより詳細に説明するように、データブレンディングの拡張形式である。このアプローチでは、データの重複が行われるが、重複は集計後に発生するため、分析的に間違っている可能性は低くなる。
特定のフィールドがどのように計算されたかをユーザが理解することに役立つように、ユーザがシェルフ領域のピルをクリックすると、いくつかの実装形態では、そのピルから到達できない全てのフィールドとフィルタがグレー表示される。ピルのホバーテキストは、例えば、「SUM(Sales)は各Stateに対して計算され、Ship Dateでフィルタリングされた(1つのディメンションと2つのフィルタは使用されなかった)」と表示する。
このアプローチでは、潜在的に多くのデータの重複が行われる。これにより、大量のデータマークがもたらされ、レンダリングパフォーマンスの問題が発生し得る。しかしながら、全ての計算が完了した後に重複が行われるため、クエリ時間は影響を受けない。データの重複は、ユーザに混乱を引き起こす可能性がある。いくつかの実装形態では、ユーザのために視覚化で重複したデータをインタラクティブに強調表示することで、この問題に対処している。代替的に、いくつかの実装形態では、データの重複が行われていることが分かっている場合に、それが自動的にスタックされることを回避している。データを見るときに、いくつかの実装形態では、ユーザが各データポイントの詳細レベルを理解するのに役立つ別々の結果セットを表示する。
いくつかの実装形態では、データ視覚化を構築するために、データブレンディングとオブジェクトモデルを組み合わせている。データブレンディングはアドホックなデータ統合機能であり、ユーザは複数の異なるデータソースに簡単に接続し、それら全てからのデータを使用する視覚化を構築することが可能になる。これにより、Tableau Server、企業データウェアハウス、スプレッドシートファイル、CSVファイルなど、様々な場所に関連データが格納されている場合に、ユーザは一般的なビジネス分析の質問に答えることを可能にする。
データブレンディングは、プライマリデータソースとセカンダリデータソースとの間の差異を排除する。データブレンディングでは、プライマリデータソースとセカンダリデータソースとの間に、ユーザが視認可能な差異はない。この対称性の重要な意味の1つは、ユーザがデータソースの「チェーン」をブレンドできることであり(例えば、CとブレンドされたBとブレンドされたA)、これにより、非スタースキーマを作成することが許可される。
データブレンディングは、プライマリデータソースと全てのセカンダリデータソースとの間の左結合セマンティクスに制限されずに、完全な外部結合セマンティクスを提供する。したがって、分析のドメインは、プライマリデータソースのエントリのセットによって制限されない。データブレンディングでは、デフォルトでは常に全てのデータソースからの全てのデータが表示される。ユーザは、データソース関係のフィルタおよび/または設定を通してこの動作を制御することができる。さらに、関連するフィールドは互換的に扱われ、どのデータソースからのものであるかに関わらず、常に合体したドメイン全体を表示する。例えば、2つの別個のテーブルがStateデータフィールドで結合されている場合、どちらのテーブルからのStateデータフィールドも同じように使用することができる。ユーザがドメインを入力データソースの1つに制限する場合は、関連フィールドをフィルタリングシェルフにドロップして、ドメインに寄与するデータソースを複数選択することを許可する特別なフィルタダイアログオプションを取得することができる。
データブレンディングは、スキーマビューアでリンク状態を管理する必要性を排除する。スキーマビューアのリンクを使用すると、ユーザは、ブレンドされたデータソースが結合される詳細レベルを制御することが可能になる。データブレンディングでは、外部結合セマンティクスにより、シートごとのリンクアイコンに対する必要性が排除される。ユーザは引き続きデータソースの関係を指定する必要があるが、このためのUIを使用するとこれが簡単になる。
データブレンディングは、あらゆる場所で全ての計算とデータモデリングの概念をサポートする。データブレンディングでプライマリとして指定されているソースがないため、全ての計算は全てのデータソースで機能する。特に、COUNTDおよびMEDIANなどの非加法集計は、全てのデータソースで機能し、全てのデータソースのディメンションは、行レベルのデータを使用してビューを分割し(デフォルトではATTR集計は使用されない)、クロスデータソース計算は行レベルのデータで機能し、ディメンションとして使用可能であり、ジオコーディングは全てのデータソースからのデータに対して行われ、その結果は視覚化のディメンションとして使用可能であり、セット、グループ、ビン、結合フィールド、およびLODの式は、それらがどのデータソースからのものであるかに関係なく、一貫して機能する。
データブレンディングは、豊富なデータソース関係を提供する。データブレンディングでは、ユーザはジオコーディングの結果をブレンドすることができる(いくつかの実装形態では、ユーザはテーブル計算とブレンドすることができる)。さらに、ユーザは、<および≠などのより標準的な演算子とともに、空間包含などのより豊富な関係演算子のセットを指定することができる。
データブレンディングのアドホックプロセスを、データ統合で実行される結合と比較することは有用である。データブレンディングに関連するデータ統合には、少なくとも3つの部分がある。第一に、データ統合セマンティクスでは、通常、データ処理パイプラインの開始時に結合を行う必要がある。これには、データブレンディングでより適切に解決される多くの望ましくない結果がある。
データ統合のユーザエクスペリエンスは、データモデリングツールにおいて始まる。ユーザは、データを見ることができるようになる前に、どのデータベーステーブルをそのデータソースに含めるか、どの結合タイプを使用するかなど、複雑な決定を行う必要がある。対照的に、データブレンディングでは、ユーザは、自身の分析で使用するテーブルのセットを段階的に構築し、必要な場合にのみ関係を定義することが可能になる。いくつかの実装形態では、それらのデフォルトの関係を推測することさえある。データブレンディングのこの態様は、いくつかの実装形態ではデフォルトのエクスペリエンスである。ユーザは、例えば、結合の重複動作が実際に望ましい、希少なシナリオでのみ、特定の結合を定義する必要がある。
集計前に結合するとデータの重複が行われるため、集計が不正確になることがよくある。これは、LODの式を使用して重複を元に戻すことで回避することができる場合がある。一方、データブレンディングでは、集計後に結合する動作により、はるかに広範囲の分析シナリオが解決され、より適切なデフォルトになる。さらに、一般に、集計後に結合を実行する方がはるかに効率的である。
結合は、ユーザのデータを変更する。内部、左、および右の結合は入力データをフィルタリングし、ユーザのデータのドメインを変更する。左、右、および外部の結合は、フィールドにNULLを導入し、これは、特にデータにすでにNULLがある場合、非常に紛らわしくなる可能性がある。パイプラインの後半まで結合を遅らせ、結合の詳細をユーザに公開しないことにより、データブレンディングはデフォルトでより良い動作を提供するという融通性を備えている。
上記の理由により、いくつかの実装形態では、ブレンドセマンティクスがデフォルトであるユーザインターフェースが提供される。データソース定義で具体的な結合を指定することは許可されているが、これは、データ統の使用ケースのごく一部をカバーする高度なシナリオになり得る。
データ統合とデータブレンディングを比較する第2の方法は、データ準備ウィンドウの結合図UIである。データブレンディングのいくつかの実装形態では、同じ基本的な結合図を利用する。
データ統合とデータブレンディングを比較する第3の方法は、データ連携に関するものである。データブレンディングのいくつかの実装形態では、データ連携を使用している。これは、ブレンディング計算をフェデレーションが実行される場所(Tableauデータエンジンなど)に移動できることを意味している。
データブレンディングでは、全てのデータソースは、基本的に「プライマリ」データソースのように動作する。この設計の重要な意味は、複数のデータソースからのディメンション間に多対多関係がある場合、データ視覚化ジェネレータ290は、複数のマークにわたってメジャーを視覚的に重複させることができるということである。これは、意図したとおりである。実際、これはまさにLODの式が機能する仕組みである。2つのLODの式が、視覚化LODよりも粗い集計を計算する場合、それらの各々がマークの全てに重複する。
留意すべき重要な点の1つは、ブレンドセマンティクスを使用すると、結合によって重複マークが発生し得るが、集計値には意味があるということである。対照的に、データ統合での結合は、最初にデータの重複が行われ、多くの場合、意味のない集計値と重複したマークがもたらされる。したがって、セマンティクスのブレンディングがデフォルト動作である。
オコーディングの結果である空間タイプにおけるブレンディングを可能にするために、ジオコーディングを最初に両方のテーブルに適用することができる。これは、他の計算でのブレンディングと同じように扱われる。
高密度化は、データブレンディング後に適用される。完全外部結合セマンティクスを使用すると、全てのデータが両方のデータソースから取得されるため、最初に高密度化を適用する必要性を回避する。
データブレンディングを使用する場合、図17に示すように、全ての関連フィールドには、「全て使用」オプションに代わる「選択したデータソースを使用」オプション1702がある。ここで、ユーザは、関連フィールドのドメインを作成するためにどのデータソースドメインを結合するかを具体的に選択することができる。
関連フィールドの一般フィルタは、関連フィールドのドメイン(入力フィールドドメインの和集合)上の全ての関連テーブルに行レベルで適用される。
関連フィールドに対するConditionおよびTop Nフィルタは、ソート計算で使用されるフィールドを含むテーブルの非関連フィールドフィルタと同様に扱われる。
非関連フィールドに対するフィルタは、常に行レベルでソーステーブルに適用される。
非関連フィールドに対するフィルタはソーステーブルで計算され、次いで、テーブルは、関連フィールドレベルにロールアップされて、フィルタを通過する関連フィールドドメインが取得される。次に、このフィルタは、フィルタを通過しなかった値を削除するために適用される。重要なことに、それは、関連するテーブルには存在するが、ソーステーブルには存在しない値を削除するためには使用されない。
いくつかの実装形態は、データベースクエリのクエリツリーを生成する。高いレベルで、いくつかの実装形態は、以下のパターンを使用して、視覚化のためのクエリを生成する。
・各データソースにデータソースフィルタを適用する。
・ジオコーディングを含む、データソース固有の計算を評価する。
・定義されたブレンディング関係を使用して、フィルタリングされたデータソース全体に結合ツリーを作成する。ユーザが外部結合を使用しないように明示的に指定していない場合、それを使用するようにデフォルト設定する。クロスデータソース計算の評価を、ツリーの必要な場所に挿入する(クロスデータソース計算を関係フィールドとして使用する場合は、結合ツリーの途中で評価する必要がある)。同等の関係にあるフィールドは、1つのフィールドにまとめられる。
・ディメンションフィルタを適用する。重要なことに、「一致しない」値を明示的に除外しないフィルタは、それらを保持すると想定される。
・各データソースに対して、そのデータソースからデータ関係フィールドと視覚化ディメンションの別個の組み合わせを選択する。結果は、そのデータソースの関係フィールド(「結合LOD」)から視覚化のLODにマッピングを行うテーブルである。
・このテーブルを対応するデータソースに結合し、「グループ化」を適用して、結果を視覚化LODにロールアップする。全ての集計は、行レベルから視覚化LODに直接ロールアップされる。
・結果のテーブル全てを視覚化LOD列で結合して、視覚化データテーブルを作る。
・メジャーフィルタを適用し、その後に残りの標準クエリパイプラインを適用する。
LODの式、集計条件のあるフィルタ、またはTop Nの場合、上記のツリーの一部をレプリケーションするサブクエリが生成される。
上記のパターンは、いずれかのブレンディングシナリオのクエリツリーを構築するための一般的なプロセスを指定しているが、これをはるかに効率的な形式に変換するさらなる最適化を適用することができる。
最適化を有効にするために、いくつかの実装形態には、各テーブルのデータフィールド間の機能依存性を追跡するメタデータが含まれている。いくつかの実装形態において、この情報は、データソースの主キー情報または計算されたフィールド関係から入手可能である。抽出されたデータセットの場合、いくつかの実装形態では、抽出中にテーブルを予め分析しており、このメタデータをクエリパイプラインで利用できるようにした。
いくつかの実装形態では、主キー/外部キー情報などの包含従属性も使用する。同じSQL接続からのテーブルの場合、いくつかの実装形態は、データベースメタデータからこの情報を取得する。他の場合、ユーザがこの情報を提供する。
いくつかの実装形態は、データ視覚化履歴ログ334など、過去のクエリからこれらのメタデータプロパティを学習する。
いくつかの実装形態において、データブレンディングは、データインタプリタの特殊なケースステージとしてブレンディングを実行する代わりに、連携を使用する。データブレンディングは、(いくつかの適切な最適化拡張を備えた)クエリパイプラインを使用して連携したツリーにコンパイルされるAQL(Analytical Query Language)論理ツリーとして実装される。
いくつかの実装形態において、連携ツリーは、主にTableau Data Engineにおいて最終的に実行される。空間分析シナリオを可能にするために、いくつかの実装形態ではジオコーディングをTableau Data Engineにも移動させる。
いくつかの実装形態には、様々なパフォーマンスの最適化が含まれている。いくつかの実装形態において、最適化には次のものが含まれる。
・MIN/MAX/SUM/COUNTを詳細レベルに分割して、第2のパスを必要とせずに、これらの集計を最初のクエリで要求することができるようにする。
・包含依存性が既知である場合は、ドメインのサイズを増加させない完全外部結合を簡略化または削除することができる
・いくつかの機能依存性が既知である場合、プロセスは何もしないロールアップを回避することができる。
・いくつかの既存の最適化を一般化することができる。特に、フィルタのプッシュダウンはパフォーマンスを向上させることができる。
ブレンディングの1つの前提は、プロセスがデータソースの行レベルのデータからビューのディメンション(例えば、マークのセット)にマッピングするテーブルをプロセスで作成できることである。これは、データブレンディングのいくつかの実装形態では「結合テーブル」と呼ばれることもある。データブレンディングで全てのデータソースのプライマリテーブルの動作を有効にするために、プロセスは、対応する結合テーブルを、集計が機能している各データソースに送信する。
概念的には、結合テーブルは、データソースの関連する列から、データ視覚化で機能しているディメンションにマッピングされる。これは、代わりに、関連する列からマークインデックス(例えば、ディメンション値の各組み合わせに対する一意の整数)にマッピングするテーブルを作成することで簡略化できる。これにより、ディメンションをデータソースに送信する必要性を回避する。ディメンション値が長くなる可能性があるため、クエリが複雑になる。また、ディメンション値が文字列(一般的)のときに、データソース間でデータを移動する場合、プロセスで照合の問題が発生する可能性がある。マークインデックスは、これらの問題を回避する。
関連する列からマークインデックスにマッピングする結合テーブルが与えられると、プロセスは様々な方法でそれをリモートデータベースに結合することができる。関連する列が機能的にマークインデックスを決定する場合(これは最も一般的なシナリオである)、ケースが多すぎない限り、プロセスは結合を単純ケース式に変換することができる。関連する列がマークインデックスを機能的に決定しない場合、データベースがテーブルリテラル(例えば、SQL ServerまたはPostgres)をサポートし、テーブル内に行が多すぎない限り、プロセスは結合テーブルをテーブルリテラルに変換することができる。プロセスは、リモートデータベースに一時テーブルを作成し、そこで結合することができる。これは、ユーザが一時テーブルを作成する権限を持っている場合にのみ機能する。最後に、プロセスはリモートデータソースをTableau Data Engineに取り込み、そこで結合を行うことができる。
図18A~18Cは、いくつかの実装形態に従ってデータ視覚化を生成するため(1802)のプロセス1800のフローチャートを提供する。この方法は、1つまたは複数のプロセッサおよびメモリを有するコンピューティングデバイス200において実行される(1804)。メモリは、1つまたは複数のプロセッサによる実行のために構成されている1つまたは複数のプログラムを格納する(1806)。
プロセスは、1つまたは複数のデータソース106、複数の視覚変数282、および1つまたは複数のデータソース106から複数のデータフィールド284を指定する視覚仕様104を受信する(1808)。複数の視覚変数282のそれぞれは、データフィールド284のうちのそれぞれ1つまたは複数に関連付けられ(1810)、これらの割り当てられたデータフィールド284の各々は、ディメンションdまたはメジャーmのいずれかである。通常、視覚仕様104は、1つまたは複数のデータソース106からのいずれかのデータフィールド330に関連付けられていない1つまたは複数の追加の視覚変数を含む(1812)。いくつかの実装形態において、視覚変数282の各々は、行属性、列属性、フィルタ属性、色符号化、サイズ符号化、形状符号化、またはラベル符号化のうちの1つである(1814)。
データフィールドの各メジャーmについて、プロセスは、データフィールドの全てのディメンションdからなるそれぞれの到達可能なディメンションセットR(m)292を識別し(1816)、これらは、1つまたは複数のデータソースに対して事前に定義されたオブジェクトモデル内の多対一関係のシーケンスによって、それぞれのメジャーmから到達可能である。シーケンスの長さは0にすることができ、ディメンションとメジャーが同じクラスにある場合を表す。いくつかの実装形態において、ディメンションdおよびメジャーmが事前に定義されたオブジェクトモデルの同じクラスにある場合、ディメンションdはメジャーmから到達可能であり(1820)、そうでなければ、メジャーmは事前に定義されたオブジェクトモデルにおける第1のクラスCの属性であり、ディメンションdはオブジェクトモデルにおけるn番目のクラスCの属性であり、n≧2であり、事前に定義されたオブジェクトモデルにはゼロ以上の中間クラスC、…、Cn-1のシーケンスがあり、それにより、各i=1、2、…、n-1に対して、クラスCとCi+1との間には多対1関係がある。
各別個の到達可能なディメンションセットR292に対して、プロセスは、データフィールドのそれぞれのデータフィールドセットS294を形成し(1822)、ここで、Sは、Rの各ディメンションと、R(m)=Rであるデータフィールドの各メジャーmとからなる。
データフィールドセットS294の各々(1824)について、プロセスは、それぞれのデータ視覚化を生成する。まず、それぞれのデータフィールドセットSの各メジャーmについて、プロセスはメジャーmの値を、それぞれのデータフィールドセットSにおけるそれぞれのディメンションで指定された詳細レベルにロールアップする(1826)。いくつかの実装形態において、メジャーmの値を、それぞれのデータフィールドセットSにおけるそれぞれのディメンションによって指定される詳細レベルまでロールアップすることは、メジャーmを含むデータテーブルの行を、それぞれのデータフィールドセットSにおけるそれぞれのディメンションに従ってグループに分割することと、各グループについて単一の集計された値を計算することとを含む(1828)。
通常、単一の集計を計算する演算子は(1830)、SUM、COUNT、MIN、MAX、またはAVERAGEのうちの1つである。いくつかの実装形態において、COUNTおよびAVERAGEの代わりに、キーワードCNTおよびAVGが使用される。いくつかの実装形態では、追加の集計演算子が提供される。例えば、いくつかの実装形態では、ATTR()集計演算子が提供される。各グループに対して、ATTR()演算子は、グループ内の全ての値が同じであるかどうかを判別する。その場合、ATTR()演算子はグループの一意の値を返し、それ以外の場合、ATTR()演算子は「*」を返し、これはグループに複数の値があることを示している。いくつかの実装形態において、単一の集計演算子は(1830)、SUM、COUNT、COUNTD、MIN、MAX、AVG、MEDIAN、ATTR、PERCENTILE、STDEV、STDEVP、VAR、およびVARPのうちの1つである。
各(1824)データフィールドセットS294に対して、プロセスはまた、それぞれのデータフィールドセットS294内のデータフィールドに従って、かつSにおけるデータフィールドの各々が関連するそれぞれの視覚変数282に従って、それぞれのデータ視覚化を構築する(1832)。いくつかの実装形態において、それぞれのデータ視覚化の構築には、視覚仕様104から生成された1つまたは複数のデータベースクエリを使用して、1つまたは複数のデータソース106からデータのタプルを取得することが含まれる(1834)。いくつかの実装形態において、これらのタプルは、データフィールドセットS294内のそれぞれのディメンションに従って集計されたデータを含む(1836)。
いくつかの実装形態において、プロセスは、コンピューティングデバイス200のグラフィカルユーザインターフェース102にそれぞれのデータ視覚化を表示する(1838)。いくつかの実装形態において、データ視覚化を表示することは、複数の視覚マークを生成することを含み(1840)、各マークは、1つまたは複数のデータソースから取得されたそれぞれのタプルに対応する。いくつかの実装形態において、グラフィカルユーザインターフェース102は、データ視覚化領域412を含み、データ視覚化は、データ視覚化領域に表示される。
いくつかのデータ視覚化アプリケーションは、データ視覚化ユーザインターフェース102で指定され得るデータ視覚化(「Viz」)に必要なフィールドを取り、これらの要素を含むData Sourceからフラットな非正規化テーブルを抽出する。データをフラット化することにより、データモデルは、基礎となるData Source内の別々のテーブルのうちの一部からのデータを重複させることができる。このデータモデルで集計関数を実行すると、これらのメジャーの集計がこれらの重複の影響を受けることがあり、意外な(つまり、予期しない、および/または望ましくない)結果となる可能性がある。
フラットモデルの別の問題は、非効率性が生じ得ることである。多くの場合、フラットな結果テーブル全体をカバーして正しい集計を行うLOD計算を用いることで、ユーザは期待通りの計算結果を得ることができる。テーブルはフラットであるため、関連フィールドが単一の小さなサブテーブルにある場合でも、結果テーブル全体でフィルタリングが行われる。
開示された実装形態は、これらおよび他の問題に対処している。Object Modelのオブジェクトは、主キーで参照できるデータの集まりである。それらは、SQLテーブル、スプレッドシートの領域、またはSQLストアドプロシージャである可能性がある。Synthetic Objectsは、Object Modelsをマージする、またはデータ関係の曖昧さを解消するために、作成することもある。各Objectは、Object Modelにおいて、カラムのリスト、どの列が主キーを構成しているか、どの列がForeign Keysとして使用されているかによって特徴付けられ得る。場合によっては、フィールドのサブセットのみを、VizにおけるDimensionsとして使用できる。
データのシステムに対するObject Modelは、様々なオブジェクトをForeign KeysからPrimary Keysへと多対1関係で関連付けるグラフである。エッジは、Many(Foreign Key)側からOne(Primary Key)側に向けられる。Object Modelグラフは、単一接続でサイクルを含まないことが重要であり、そのためグラフを通るパスは、曖昧ではない。このグラフの全体的な形状は、ポリツリーである。
Object Model Engineは、Object Model PerspectiveからAQLモデルを、またVizからAbstract Queryを作成する。
Vizのクエリを処理するには、Object Model内のPerspectiveを使用する。PerspectiveはVizのサブツリーであり、VizにおいてDimensionsとして使用できるフィールドのセット(サブツリー上のフィールド)を定義する。
Object Model Engineは、Viz内のフィールドを調べるときに、フィールドを集計される値(「Measures」)と、VizのLevel of Detailを決定する他の値(「Dimensions」)に分割する。図19Aおよび19Bは、サポートされているObject Modelグラフの2つの例を提供する。ボックス内の「M」は、ボックスに対応するオブジェクトに1つまたは複数のメジャーがあることを示している。ボックス内の「D」は、ボックスに対応するオブジェクトに1つまたは複数のディメンションがあることを示している。サポートされているモデルを見ると、ディメンションを含むオブジェクトのルートノードがある。例えば、図19Aのルートノードはノード1902である。図19Bでは、ルートノードはノード1912である。図19Bには、ルートノードの前に他のノードがあるが、それらにはディメンションがないことに留意されたい。この構造では、ディメンションを持つ全てのノードは(図19Aおよび19Bの矢印で示されているように)、外部キーと主キーの関係のシーケンスによってルートノードから到達可能である。
図19Cは、図19Bと同様であるが、ルートノード1922から到達できない追加のノード1924を有する。ルートから到達できないノード(ノード1924など)が存在するいくつかの実装形態では、到達不能ノードにおける全てのフィールドがメジャーまたは属性として扱われる。
図19Dは、2つのノード間に2つの別個のパス1936と1938がある別の問題のあるケースを示している。いくつかの実装形態では、1つのパスを任意に選択する必要があり、予測できない結果が生じるため、このケースをサポートしていない。
フィールドのセットとそのセットに有効なPerspectiveが与えられると、Object Model Queryプロセッサは、AQLモデルのデータクエリを変更する。次に、Modelはクエリパイプラインによってさらに処理され、データクエリは効率のためにさらに最適化される。Object Model Engineは、次の手順に従う。
ステップ1。セットからDimensionフィールドを識別する。これらのディメンションを使用した「別個の選択」クエリは、Object Model Query ResultのLevel of Detailを定義する。これらのディメンションフィールドを含むObject Modelで最小のサブツリーを見つけ、そのサブツリーのルートを識別する。(サブツリーがない場合、これはフィールドに対して有効なパースペクティブではないありませ。)Dimension Query Treeは、全てのDimensionsを含むサブツリーである。次に、Dimension Query Treeで、これらのDimensionsをSELECTするサブクエリを作成する。これはINNER JOINを使用するため、Domainは全てのDimensionがNULL以外の値を持つ行のみになる。いくつかの実装形態では、UNIONを使用して、空の列で行を取り込む。最後に、Dimension Filtersがある場合は、それを適用する。
ステップ2。各集計されたMeasureに対して、Measureのオブジェクトの主キーをステップ1で識別されたDimensionsに加える。ステップ1のように、これらのフィールドの最小サブツリーを見つける。スカラフィールドのみを含む計算の場合、それらのフィールドを同様に扱う。集計されたフィールドのみを使用する計算の場合、それらのフィールドを集計されたメジャーとして扱う(集計されたメジャーに適用される最終集計を除く)。これらのフィールドおよび(集計されていない)メジャー自体に対してDistinctサブクエリを実行する。これにより、クエリ全体の詳細レベル(LOD)において各メジャー記録がレプリケーションされる/コピーされる/含まれる結果セットが得られる。計算を評価し、その結果をクエリの残りの部分についても別の集計されたMeasureとして扱う。次に、クエリからMeasureのオブジェクトの主キーを削除し、Measureの集約関数で集計するサブクエリを作成し、残りのDimensionsでグループ化を行う。これにより、Dimensionsで構成されるキーと、これらのDimensionsのLODに別個に集計されたMeasureを持つ別のフィールドとからなる結果セットが得られる。集計されたフィールドのみを使用して計算結果を評価する。これらの評価により、クエリの残りの部分に新しい集計されたMeasureフィールドがもたらされる。
ステップ3。Dimensionsで一緒にMeasureサブクエリのJOINを行う。Domainクエリに空のファクトが含まれている場合、これらのJOINは、ステップ1のDomainを維持するために部分的なOUTER JOINであり得る。最後に、このクエリの結果にMeasureフィルタを適用する。
このアプローチは、結果セットに次のプロパティがあるクエリを定義する。
・Dimensionsのセットは、結果セットの複数列のキーを作成する。このセットは、結果のDomainを定義し、結果セットに含まれる行を確立する。
・各集計されたMeasureは、Domainの詳細レベルに正確に合わせて単独で集計される。左に移動したMeasureは、LODにレプリケーションされる。右に移動したMeasureは、集計される。
フィルタと計算は、生成されたAQL MODELのアーチファクトになる。一般的に、これらは、エフェクトの適切な詳細レベルを定義するオブジェクトとともにツリーに配置される。Object Model Queryプロセスは、計算またはフィルタの実行順序を変更することはない。これは、AQL実行パイプラインによって処理される。
スノーフレークとツリーは、オブジェクトモデルの一般的な例である。Object Modelでは、オブジェクトは基本的な構築ブロックである。オブジェクトになるには、データソースのサブクエリは次のようになる。
・クエリのメジャーに関して正規化される。各行は、Vizにおいてメジャーとして使用される全てのフィールドの異なる測定値を表す。ディメンションフィールドの正規化が必要ないことに留意されたい。
・オブジェクトがObject Modelツリーのルートにある場合、外部キーはそれを参照できない。このような場合、このクエリプロセスの目的のために、オブジェクトに主キーが必要ない場合がある。
Object Modelを作成する基本的なタスクは、Data Source内のオブジェクトを(Dimensionsに沿って)1つの(場合によっては多数の)ツリー内に接続することであり、ここで、エッジはオブジェクト間の多対1関係である。ツリーのような結合グラフにより、クエリが明確になる。多対1関係により、結合ツリーのノードオブジェクトにメジャーの重複が発生しなくなる。
Snowflakeは、全てのメジャーがルートオブジェクト内にあるツリーの特殊なケースである。これらは、集計機能に特別な配慮をする必要がないため、Object Modelでの変換が特に容易である。Object Modelは、これらのデータセットに対するクエリのセマンティクスを変更しないが、多くの場合、より効率的である。
図20A~20Fは、売上の追跡に使用できるSnowflakeの例を提供している。図20Aは、関連するデータベーステーブルLineItems2002、Products2004、Orders2006、およびCustomers2004を示している。データアナリストがProduct CategoryとOrder ZipCodeごとに価格を集計するためのVizを作成する場合、プロセスはLineItems2002、Products2004、およびOrders2006テーブルからの情報を結合する。図20Bに示すように、ユーザはデータフィールドカテゴリ2020とZipCode2022をRowsシェルフに配置し、SUM(価格)2024がテキストフィールドとして指定されている。これにより、テキストテーブル2026が作成され、図20Cに示すようなクエリが使用される。
図20Cのクエリは正確で効率的であるが、Object Model変換を適用することは有益である。図20Dに示すように、Object Model Engineのステップ1では、クエリ結果のインデックス作成に使用されるキーを分離する。これにより、製品Categoryと注文ZipCodeの各一意の組み合わせに対して別個の行が作成される。プロセスのステップ2は、図20Eに示すように、キーに対するメジャー(Price)を集計する。これにより、CategoryとZipCodeの各別個の組み合わせに対して別個の値SUM(LineItems.Price)が計算される。
最後に、ステップ3で、図20Fのクエリに示されているように、Object Modelエンジンが2つの結果を結合する。この新しいクエリは、クエリのセマンティクスを変更しない。場合によっては、この新しいクエリにより、「空のフィールドを表示」のケースをより効率的にフィルタリングおよび処理することが可能になる。Query Pipelineは、特にObject Model情報を持っているため、このクエリをクラスクエリと同様またはそれ以上に最適化することができる。
図21A~21Iは、前の例をスノーフレークではないツリーに拡張している。図21Aに示すように、スキーマはOrdersテーブル2006にSalesTax21110を含めるようになった。消費税は注文ごとに1回計算されるため、ここがSalesTax2110の論理的な位置であることに留意されたい。
図21Bに示すように、ユーザは2つのメジャーSUM(Price)2126とSUM(Sales Tax)2128をMeasure Valuesに配置し、Measure Values2124がText符号化に割り当てられている。加えて、ユーザはデータフィールドOrder 2122をRowsシェルフに、またMeasure Namesフィールド2120を列シェルフに配置している。図21Dに示すように、通常のクエリを使用して作成されたデータ視覚化において行2132および2134のデータを見てみると有益である。価格の合計は正しいが、Sales Taxの金額は水増しされている。クエリされたデータを図21Cに示す。OrderレベルにおいてPriceとSales Taxの両フィールドが合計されるため、2つ以上のラインアイテムがある場合は常に、各注文に対して消費税が重複する。
Object Modelエンジンのステップで、この問題がどのように解決されるかを確認することは有益である。Object Modelエンジンのステップ1は、図21Eに示す単純なクエリを使用して、各Order.IDについて別々の行を与える。2つのメジャーがあるため、ステップ2ではクエリがある。Price情報の取得では、図21Fのクエリが使用され、Sales Tax情報には、図21Gのクエリが使用される。どちらの場合も、適切なLODにおいて(つまり、Order.IDによって)集計値を正しく計算する。
ステップ3では、これら3つのサブクエリを結合し、図21Hに示すように、2つのメジャーに適切な異なるレベルの詳細を取得する。これは、ラインアイテムがない場合でも、Viz内の全ての注文を保持するために、部分的な外部結合を使用することに留意されたい。
図22A~22Iは、ツリーのDifferent BranchesにMeasuresとDimensionsを持たせたことを示しており、Object Modelエンジンによって提供されるより複雑な実装形態の必要性を実証している。図22Aは、映画および俳優のデータベーススキーマのごく一部分、およびActorsテーブル2206、Moviesテーブル2204、およびAppearancesテーブル2202を含むそれらの間の関係を示している。俳優と映画の関係は、多対多であることに留意されたい。加えて、1人の俳優が1つの映画内で複数の役割を演じることができる。したがって、Appearancesテーブル2202は、Movies2204とActors2206との間の複雑な関係を説明するために使用される。これらのテーブルを単純に結合すると、図22Bに示す結果セットが生成される。(実際の金額は、表示を単純化するために、より小さな丸め数値に置き換えられている。)
MoviesとActorsのこの単純なデータベースから、図22Cに示すこのVizを使用して、ある俳優が出演した映画がいくらの興行収入を挙げたかを尋ねることができる。ここで、ユーザはデータフィールドFullName2222をRowsシェルフに配置し、データフィールドSUM(Gross)2224をテキスト符号化アイコンに配置している。図2226に示すように、各俳優には若干の二重のカウントがあることに留意されたい。Peter Sellersは実際には2本の映画にしか出演しておらず、合計の総収益は$2,000、John Rhys-Daviesは3本の映画に出演し、合計の総収益は$3,000である。これらの誤った結果は、図22Dに示すように、通常のクエリによって生成された。
一方、Object Modelでは、プロセスは通常の方法で進行する。Object Modelプロセスのステップ1は、図22Eに示すように、別個の俳優のリストを生成する。ステップ2では、プロセスは最初に、Actor’sFullNameとMovie.IDの両方で定義された詳細レベル(Vizの詳細レベルよりも細かい)において、総収益を決定する。これは、図22Fに示される。次に、図22Gに示すように、中間テーブルがVizのLODにおいて集計される。
最後に、ステップ3では、予想どおり2つのクエリを組み合わせて、今回は、INNER JOINを使用して、映画に出演した俳優のみを取得する。結果を組み合わせるためのクエリを、図22Hに示す。結果の視覚化を、図22Iに示す。ここに見られるように、視覚化2236は正しいデータを有している。
Viz内の計算されたフィールドは、計算のソースデータが全て単一のオブジェクトから引き出されていない場合でも、他のフィールドと同様に扱うことができる。計算が単一のオブジェクトに基づいている場合、それらは適切なLevel of Detailにおいて収集され、そのレベルで計算され、その後通常の方法で集計される。
計算で異なるオブジェクトからのフィールドを使用する場合、次の2つのケースがある。
・スカラとして扱われる集計されていないフィールドは、単一のLoDにレプリケーションされる/コピーされる/含まれる。Object Modelエンジンは、可能であれば、これらを含むサブツリーのルートにおいて、これら全てのスカラのLODを確立する。
・計算における集計関数は、Measureでの集計関数と同様に、VizのLODにおいて集計される。
図23に示すように、単純なLine Items/Ordersモデルについて考察する。Extension=[Price]*[Quantity]の計算は、LineItemsテーブルのLODにおいて計算される。これは、そのテーブルで利用可能な別のフィールドと同じように機能する。
ここで、各Customerがその購入時に適用することができるDiscount Rateを有している場合、次の計算が行われる。Discounted Extension=([Price]*[Quantity])*(1-[Discount Rate])は、LineItemsテーブルのLODにおいても意味がある。一般的に、集計されていないフィールドは、計算のためにそれらを含むサブツリーのルートに収集される。このように、Line Item Profit=(([Price]*(1-[Discount Rate])-[Stocking Price])*[Quantity]のような複雑な計算でも、LineItemsのLODにおいて計算され、これは「正しい」。Object Modelのサブツリーで接続できないいくつかの単純な計算は、Object Model Engineでは意味を成さないことに留意されたい。例えば、Net Sales=[Refunds.Amount]-[Discounted Extension]について考察する。この計算が役立つLODはない。
多くの場合、計算はViz定義内で集計される。このような場合、Object Modelは、それらを共通のサブツリールートのLODにおいてメジャーとして扱い、Viz LODに従ってそれらを集計する。
集計された計算(計算内の全てのメジャーが集計される)は、VizのLODにおいても計算される。2つの計算、Extension=[Price]*[Quantity]およびSumOfExtension=Sum([Extension])について考察する。2つのMeasureピル、SUM(Extension)とAGGR(SumOfExtension)は、特定のVizにおいても同じ結果をもたらす。
集計とスカラを組み合わせた計算の場合、Object Modelエンジンはそれらを段階的に処理する。最初に、スカラが適切なLODに収集され、次に集計がその同じLODに集計される。計算は、そのLODにおいて実行できる。Vizからのいずれかの追加の集計は、その時点で実行される。例えば、式Discounted Extension=Sum([Price]*[Quantity])*(1-[Discount Rate])では、[Discounted Extension]は、Ordersオブジェクトにある[Discount Rate]のLODにおいて計算される。
多くの計算には、パラメータを含むこの計算など、If-Thenステートメントが含まれる。
Sale Extension=IF([Sale Discount]>[Discount Rate])THEN
([Price]*[Quantity])*(1-[Sale Discount])
ELSE
([Price]*[Quantity])*(1-[Discount Rate])
END
パラメータはいずれのオブジェクトにも属しておらず、いずれかのLODの定数であり。この計算では、LineItems ObjectにLODがある。この計算を特定のデータから独立して分析できるように、IF-THEN-ELSEステートメントの両方のブランチが同じLODを有している必要がある。
オブジェクトモデルは通常、INNER JOINで構成されているため、フィルタはオブジェクトレベルにおいて、そのオブジェクトのサブクエリに直接適用できる。これにより、以前のモデルからセマンティクスを変更することなく、効率的なクエリがもたらされる。
いくつかの実装形態では、オブジェクトごとのレベルで「Show All Records」の選択がユーザに与えられる。これは、Queryの最初の部分で確立されたDimensionsのDomainに影響する。元々、Dimensionクエリは、リンクが欠落している行を許容しないINNER JOINを使用するかのように指定されていた。1つの解決策は、LEFTおよびRIGHT JOINを組み合わせて使用することである。図20Aに示すスキーマについて考察する。
ユーザがCustomers Objectに対してShow All Recordsを要求したとする。いくつかの実装形態では、UNIONを使用して最初のDimension Domainクエリに追加のCustomersを追加する。
これらの実装形態では、次にそれをOrdersに、さらにLineItemsにRIGHT JOINして、全てのCustomersを含むドメインの作成を開始する。いくつかの実装形態では、曖昧さを回避するために、クエリは、サブクエリに分割される。Customersオブジェクトが他のオブジェクトと多対1関係にある場合、Perspectiveの各部分がサブクエリで捕捉され、次に別のサブクエリを作成して、CustomersオブジェクトをこれらにLEFT JOINすることができる。次に、Dimension DomainのLODまでのRIGHT JOINサブクエリのネストが適用される。他の全てのサブツリーは、元のスパインから新しいサブクエリへのRIGHT JOINによって、それ自身のサブクエリに収集される。これにより、Customers Objectから全てのDimensionsをクエリのドメインに昇格させる、曖昧さのない全体的なクエリが提供される。構成の代替アプローチでは、FULL OUTER JOINを介して、それぞれに全表示オブジェクトを持つサブクエリにJOINを使用する。
Object Modelエンジンは、メジャーデータの誤った重複なしに、正しい集計計算を取得する機能を向上させている。これは、データの形状(テーブル間の多対1関係を含む)を使用して、意味的に正しい方法でレプリケーションと重複排除を制御することによって機能する。Object Modelエンジンによって作成されたクエリは、最初に必要なデータを単一のテーブルにレプリケーションし、次にメジャーを集計する前に、それを重複排除(つまり、誤った重複を削除)するコンポーネントに分割される。
図24Aは、例示データソースの形状を示している。このデータソースは、Movies2406内のCharacters2404を演じるActors2408を追跡する。これらのデータは全て、特定の映画で特定のキャラクタを演じている特定の俳優の事例であるAppearances2402によって接続されている。Actorsは多くのMoviesで演じており、Moviesには多くのActorsがいるため、このデータソースで重複する可能性が高くなる。加えて、同じActorが単一のMovie内で2つ以上のCharacterを演じる場合もある。
これらの4つのテーブルを結合すると、図24Bに示すように、フラットな行のセットが生成される。各監督が何人のActorsと仕事をしたかを示すVizを作成することを望んでいるとする。単一のActorが、各監督と複数の役割および/または映画を持っている場合があることに留意されたい。Peter Jackson監督を見ると、彼が(今回の限られたサンプルの中で)4つの映画で4人の俳優を監督していることが分かる。しかしながら、図24Cは、Peter Jacksonが俳優とペアになっている10個の行2420があることを示している。図24Dのデータ視覚化は、水増しされた10人の俳優に対応するバー2422を示している。この視覚化では、Movies間(例えば、Peter Jackson映画におけるLiv Tyler)と、Movies内(例えば、GimliとTreebeardとしてのJohn Rhys-Davies)の両方に重複がある。フラット化されたテーブルに基づくクエリは、同じデータを複数回カウントしている。
図24Eは、正しい結果を計算するために、同じデータソース上でObject Modelエンジンを使用することを示している。Object Modelクエリの場合、Actors Object2408の主キー2428がSELECTION of Director and Actors.FullNameに追加され、最初の監督/俳優結果2430が作成される。これは、重複排除ステップで使用される。注:ほとんどのObjects(Object ModelツリーのルートにあるObjectを除く全て)は、Primary Keyを有している。これは、Object内で一意であることが保証されているフィールド(またはフィールドのセットをまとめたもの)である。Primaryキーは、Objectの各行に対するインデックスとして機能する。
次に、Dimensions(Director)およびメジャー(Actors.ID)の主キーによるグループ化(2440)により、重複が排除され、重複排除された監督/俳優の結果セット2432が生成される。各(Director、Actor)ペアは、この中間テーブル2432に1回だけ表示される。
メジャーのObjectの主キーは一意であることが保証されているため、これをグループ化で使用すると、適切な結果が生成される(例えば、同じ名前の俳優が複数存在する場合でも)。この例では、Actorsのいずれにも重複するFull Namesはないが、実際のデータセットには重複する可能性がある。
最後に、データはDirectorによって集計され(2442)、集計された結果セット2434内の監督ごとにActorsのカウントが取得される。集計された結果セットは、データ視覚化2436を構築(2444)するために使用され、これには、適切なカウントを有するPeter Jacksonのバー2438が含まる。
図25A~25Cは、正しいLevel of Detail(LOD)計算を生成するために、Object Modelエンジンを使用することを示している。ユーザが、Movieの「Star Power」の合計を見ることを希望しているとする。この例では、「Star Power」は、各Actor’s Movieが稼いだ総受領高として、各Actorに対して概算される。その場合、MovieのStar Powerは、Movieの全てのActorsに対するStar Powerの総計である。この例では、図24Aに示すデータソースを使用する。
ユーザは、LOD計算を使用して各ActorのStar PowerをStar Power={FIXED [Actor.Fullname]:Sum([Gross])}として計算することができる。しかしながら、重複を回避するために、このLOD計算は、Object Modelセマンティクスを介して計算する必要がある。
図25Aに示されるように、第1のステップは、Moviesテーブル2406、Appearancesテーブル2402、およびActorsテーブル2408を結合して、第1の結果セット2502を作成することである。この第1の結果セット2502には、俳優John Rhys-Daviesについて複数の行2520があり、同じ映画の複数の行が含まれている。次に、Object Modelエンジンは、第1の結果セット2502からの行を重複排除(2515)して、第2の結果セット2504を作成する。2番目の結果セット2504では、俳優John Rhys-Daviesについての行2522は3つのみである。2番目の結果セット2504では、俳優は映画と1度だけペアになる。最後に、Object Modelエンジンは、Actorによって設定された第2の結果からのデータを集計(2512)して、第3の結果セット2506(「Star Power」)の各ActorのSUM(総収益)を計算する。このLOD計算は、TargetLODの主キー(例えば、FullName)とAggregationのMeasure(例:Sum(Gross))を使用して、新しいObjectを効果的に作成する。
図25Bは、MoviesとActorsを相関させるテーブル2532とのStart Power結果セット2506の結合(2536)を示している。これにより、映画のスターパワーの結果セット2534が作成されるが、いくつかの行が重複している。図25Cでは、Object Modelエンジンは、中間結果セット2534を重複排除(2550)して、重複排除された結果セット2540を形成する。最後に、Object Modelエンジンは、重複排除された結果セットを集計(2552)して、最終結果セット2542内の各映画のスタートパワーの合計を計算する。
図26A~26Dは、Object Modelエンジンが、どのようにVizへのフィルタの追加を正確に処理し、図24Aに示すデータObject Modelを使用するかを示している。ユーザが、各Actor’s Movieが稼いだ合計の総受領高を見ることを希望しているが、Actorが人間以外のキャラクタを演じた映画の場合のみとする。これは、重複の問題を作る可能性がある。例えば、図26Aは、フラット化されたデータセット2602に基づいて作成されたデータ視覚化2604を示している。この平坦化されたデータセットを使用すると、合計の一部が水増しされる。例えば、John Rhys-DaviesとLiv Tylerはどちらも同じLord of the Ringsの映画に出演していたが、John Rhys-Daviesが複数の非人間を演じたため、彼の量は多くなっている。これは、データ視覚化2604のバー2606および2608によって示されている。
図26Bでは、各(Actor、Movie)組み合わせの総収益データ2610が結合されて(2620)、データ2612をフィルタリングして、フィルタリングされたが重複する結果セット2614を作成する。Object Modelエンジンは、メジャー「Gross」の総収益データ結果セットを作成し、これには、ディメンション(Actors.FullName)、メジャー(Movies.Gross)、およびメジャーObjectの主キー(Movies.ID)が含まれる。フィルタは、それ自体がクエリと考えることができる。メジャークエリが使用するのと同じ列を使用する(Vizディメンションとメジャーの主キーである、Actors.FullNameとMovies.ID)。しかしながら、メジャー列の代わりに、Object Modelエンジンはフィルタ計算(および計算する必要のある全てのフィールド)を追加する。ここで、フィルタの計算はSpecies<>“Human”であり、Elves、Ents、Swarves、およびGodsに対してTRUEを返す。Replicated QueryとFilterの両方に適切なフィールドが追加され、これらのフィールドは、行ごとに結合することができる。Object Modelエンジンはまた、Filter=TRUEでJOINを行い、Humanのキャラクタの行を排除することができる。しかしながら、John Rhys-Daviesには、まだいくつかの重複があることに留意されたい。
図26Cに示すように、GROUP BY with the JOINを適用することにより、図26Bの最終結果セット2614で確認された重複を排除することができる。図26Cでは、JOIN+GROUP BY操作2622により、重複のない最終結果セット2624が生成される。GROUP BYにより、重複が削除されている。3つのLord of the Ringsの映画は、Liv TylerとJohn Rhys-Daviesの両方でそれぞれ1回のみカウントされる。(Sean BeanのThe Fellowship of the Ringへの出演は、GROUP BYの前にフィルタで削除された)。これで、Aggregationを正しく計算することができる。
図26Dでは、図26Cからの最終結果セット2624が集計されて(2640)、結果セット2632を形成し、これは、データ視覚化2634で使用される(2642)。John Rhys-DaviesとLiv Tylerのバー2636と2638は、当然ながら同じサイズであることに留意されたい。
図27A~27Iは、Object Modelエンジンを使用してフィルタを適用する追加の例を示している。DataServerが公開するメタデータにないObjectsまたはFields上に存在し得るDataSourceフィルタについて考察する。例えば、Characterが「非表示」Objectであり、Species<>”Human”が非表示のDataSourceフィルタであるとする。クライアントのVizは、Actor名でGrossを要求している。クライアントは、Species<>”Human”のフィルタについて知らない。フィルタを適用しなかった場合、結果は図27Aに示すとおりとなる。しかし、これには明らかに、Humanとして登場するActorによる出演が含まれる。Vizで明示的に言及されている2つのオブジェクトは、ActorsとMoviesであることに留意されたい。また、それらを結合するオブジェクトであるAppearancesについても考慮する必要がある。
図27Bでは、Object Modelエンジンは、レプリケーションされた非人間俳優テーブル2710とキャラクタフィルタテーブル2712との間でJOIN2720を実行して、フィルタリングされたレプリケーションされた中間結果セット2714を形成する。図27Bでは、同じ操作が実行されるが、フィルタリングされて重複排除された中間結果セット2716を形成するために、JOIN with GROUP BY操作2722を使用する。
図27Dは、キャラクタフィルタテーブル2712をMovie結果セット2732にJOINing2740することによって、フィルタを映画結果セット2732に適用することを示している。これにより、フィルタリングされたがレプリケーションされたデータである映画中間結果セットが生成される。Actorsクエリと同様に、図27Eに示すように、JOIN with GROUP BY2750を適用することで、重複を排除することができる。これにより、フィルタリングと重複排除の両方が行われた中間映画結果セット2752が生成される。
図27Fは、JOIN2760をActor中間結果セット2716とMovie中間結果セット2752に適用し、これにより、フィルタリングされた最終結果セット2762が生成されることを示している。しかしながら、この手法では余分な行2764が生成された。ActorとMovieのクエリを分けたことにより、Sean BeanのThe Fellowship of the Ringへの出演が誤って含まれてしまった。彼は非人間(Zeus)を演じており、The Fellowship of the Ringには非人間がいたが、The Fellowship of the Ringでの彼の出演は、人間のBoromirとしてであった。
図27G~27Iは、この問題に対処するために、Object Modelエンジンによって使用される代替プロセスを示している。図27Gでは、Object Modelエンジンは、キャラクタフィルタテーブル2712と、各俳優によって演じられるキャラクタを有する初期テーブル2710との間で、JOIN with GROUP BY 2770を実行する。これにより、フィルタリングされ、各俳優が演じるキャラクタを有する中間結果セット2772が生成される。図27Hでは、Object Modelエンジンは、キャラクタフィルタ2712と、総収益を映画のキャラクタと相関させるテーブル2732との間で、JOIN with GROUP BY 2780を実行する。これにより、フィルタリングされ、Grossを映画のキャラクタと相関させる中間結果セット2782が生成される。
最後に、図27Iでは、Object Modelエンジンは、(演じたキャラクタに応じて)フィルタリングされた俳優とフィルタリングされた映画との間にJOINを適用して、最終的な正しい結果セット2792を生成する。この結果セットには、図27Fのテーブル2762に見られる無関係な行2764が含まれていないことに留意されたい。ここで、2つのテーブル間のJOINには、Appearance情報だけでなく、それらのCharacter列の情報も含まれていた。これにより、最終結果からBoromirが排除された。
必須のフィルタは、常にVizへの内部結合として適用されるが、オプションのフィルタは、Vizに適用可能である場合に適用される(例えば、フィルタがオブジェクトモデルの、Vizのフィールドと同じサブツリーにある場合)。いくつかの実装形態において、Object Modelエンジンは、Vizのディメンションとメジャーを取得し、Object Model内でそのLeast Common Ancestorを探し出し、フィルタ内の全てのフィールドのLeast Common Ancestorを探し出す。これらのObjectのうちの1つが、他のものの直接の先祖である場合、フィルタはVizに適用可能である。例えば、オプションであるフィルタSpecies<>“Human”について考察する。DirectorによるActorのカウントを計算するために、Species<>“Human”のフィルタが適用可能である。一方、DirectorによるGrossの総計の計算には、Species<>“Human”は適用できない。
複数のメジャーがある場合、それらを調整する必要があるかどうかの問題がある。単一のソリューションを選択する実装形態もあれば、構成可能なオプションをユーザに提供する実装形態もある。例えば、
・Speciesフィルタは、俳優が人間を演じているDirectors/Actorsの組み合わせの行を削除することができる。
・Directors/Grossの組み合わせでは、これらの同じ行を削除する必要があるか?
・その場合、VizのGross部分の見え方は、スタンドアロンのVizでの見え方とは異なる。
・そうでない場合、Gross部分とActors部分は異なる映画を検討することになり、異なるドメインを持つ可能性がある。
これらの問題を、図28A~28Cに示す。図28Aでは、第1のテーブル2802に集計されたデータがあり、フィルタは適用されていない。フィルタが適用される場合(2810)、結果セット2804は単一の行のみを有し、その単一の行からのデータは、第1の結果セットの対応する行と一致しない。同様に、図28Bでは、フィルタリングされていない第1の結果セット2812は6つの行を有する。データがフィルタリングされている場合(2820)、結果セット2814は単一の行のみを有し、カウントは第1の結果セットとは異なる。
図28Cは、フィルタを異なる方法で適用する2つの結果セット2832と2834の比較を示している。第1の結果セット2832では、フィルタはメジャーによって適用されるが、第2の結果セット2834では、フィルタは全てのフィールドに適用される。
本明細書で本発明の説明に使用される専門用語は、特定の実装形態を説明することのみを目的としており、本発明を限定することを意図するものではない。本発明の説明および添付の特許請求の範囲で使用される場合、単数形「a」、「an」、および「the」は、特に文脈が明示しない限り、複数形も含むことが意図される。本明細書で使用される「および/または」という用語は、1つまたは複数の関連するリストされたアイテムのありとあらゆる可能な組み合わせを指し、それらを包含することも理解されよう。本明細書で使用される場合、「含む」および/または「含んでいる」という用語は、述べられた特徴、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、ステップ、動作、要素、構成要素、および/またはそれらの群の存在または追加を排除しないことがさらに理解されよう。
前述の記載は、説明の目的で、特定の実装形態を参照して記載されてきた。しかしながら、上記の例示的な考察は、網羅的であること、または本発明を開示された正確な形態に限定することを意図していない。上記の教示を考慮して、多くの修正および変形が可能である。実装形態は、本発明の原理およびその実際の応用を最もよく解説するために選択および記載され、それにより、当業者は、本発明および企図される特定の用途に好適な様々な修正を伴う様々な実装形態を最大限に利用できる。

Claims (20)

  1. データ視覚化を生成する方法であって、
    1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサによる実行のために構成されている1つまたは複数のプログラムを格納するメモリと、を有する、コンピュータにおいて、
    データソース、複数の視覚変数、および前記データソースからの複数のデータフィールドを指定する、視覚仕様を受信することであって、前記視覚変数の各々が、前記データフィールドのうちのそれぞれ1つまたは複数に関連付けられ、前記データフィールドの各々が、ディメンションまたはメジャーのいずれかとして識別される、受信することと、
    前記データソースのオブジェクトモデルから、前記ディメンションデータフィールドの全てを含む最小のサブツリーを識別することと、
    前記ディメンションデータフィールドにアクセスする前記最小のサブツリーからクエリを構造することと、
    タプルのセットを取得するために、前記データソースに対して前記クエリを実行することであって、各タプルが、前記ディメンションデータフィールドのデータ値の一意の順序付けられた組み合わせを含む、実行することと、
    各タプルに対して、前記メジャーデータフィールドの各々に対応する集計されたデータ値を添付することにより、拡張タプルを形成することと、
    前記拡張タプルの前記データフィールドに従って、かつ前記データフィールドの各々が関連付けられている前記視覚変数に従って、データ視覚化を構築および表示することと、を含む、方法。
  2. 前記視覚仕様が、前記データソースからのどのデータフィールドにも関連付けられていない1つまたは複数の追加の視覚変数をさらに含む、請求項1に記載の方法。
  3. 前記メジャーデータフィールドの前記集計されたデータ値が、前記ディメンションデータフィールドに従って集計される、請求項1に記載の方法。
  4. 前記コンピュータのグラフィカルユーザインターフェースに前記データ視覚化を表示することをさらに含む、請求項1に記載の方法。
  5. 前記データ視覚化を表示することが、複数の視覚マークを生成することを含み、各マークが、それぞれの拡張タプルに対応する、請求項4に記載の方法。
  6. 前記グラフィカルユーザインターフェースが、データ視覚化領域を含み、前記方法が、前記データ視覚化領域に前記データ視覚化を表示することをさらに含む、請求項5に記載の方法。
  7. 前記視覚変数の各々が、行属性、列属性、フィルタ属性、色符号化、サイズ符号化、形状符号化、およびラベル符号化からなる群から選択される、請求項1に記載の方法。
  8. 前記集計されたデータ値が、SUM、COUNT、COUNTD、MIN、MAX、AVG、MEDIAN、ATTR、PERCENTILE、STDEV、STDEVP、VAR、およびVARPからなる群から選択される集計関数を使用して計算される、請求項1に記載の方法。
  9. 前記複数のデータフィールドが、前記データソース内の複数の別個のテーブルからのものである、請求項1に記載の方法。
  10. 前記データソースの前記オブジェクトモデルが、複数のオブジェクトを有し、前記複数のデータフィールドが、前記複数のオブジェクトのうちの2つ以上の別個のオブジェクトに属する、請求項1に記載の方法。
  11. 前記視覚仕様が、複数のデータソースを指定し、前記視覚仕様が、前記複数のデータソースの各々からの1つまたは複数のデータフィールドを指定し、前記オブジェクトモデルが、前記複数のデータソースのオブジェクトモデルである、請求項1に記載の方法。
  12. データ視覚化を生成するためのコンピュータシステムであって、
    1つまたは複数のプロセッサと、
    メモリと、を含み、
    前記メモリが、前記1つまたは複数のプロセッサによる実行のために構成されている1つまたは複数のプログラムを格納し、前記1つまたは複数のプログラムが、
    データソース、複数の視覚変数、および前記データソースからの複数のデータフィールドを指定する視覚仕様を受信することであって、前記視覚変数の各々が、前記データフィールドのうちのそれぞれ1つまたは複数に関連付けられ、前記データフィールドの各々が、ディメンションまたはメジャーのいずれかとして識別される、受信することと、
    前記データソースのオブジェクトモデルから、前記ディメンションデータフィールドの全てを含む最小のサブツリーを識別することと、
    前記ディメンションデータフィールドにアクセスする前記最小のサブツリーからクエリを構造することと、
    タプルのセットを取得するために、前記データソースに対して前記クエリを実行することであって、各タプルが、前記ディメンションデータフィールドのデータ値の一意の順序付けられた組み合わせを含む、実行することと、
    各タプルに対して、前記メジャーデータフィールドの各々に対応する集計されたデータ値を添付することにより、拡張タプルを形成することと、
    前記拡張タプルの前記データフィールドに従って、かつ前記データフィールドの各々が関連付けられている前記視覚変数に従って、データ視覚化を構築および表示することと、を行うための命令を含む、コンピュータシステム。
  13. 前記視覚仕様が、前記データソースからのどのデータフィールドにも関連付けられていない1つまたは複数の追加の視覚変数をさらに含む、請求項12に記載のコンピュータシステム。
  14. 前記メジャーデータフィールドの前記集計されたデータ値が、前記ディメンションデータフィールドに従って集計される、請求項12に記載のコンピュータシステム。
  15. 前記1つまたは複数のプログラムが、
    複数の視覚マークを生成することであって、各マークがそれぞれの拡張タプルに対応する、生成することと、
    前記コンピュータシステムのグラフィカルユーザインターフェースに前記データ視覚化を表示することと、を行うための命令をさらに含む、請求項12に記載のコンピュータシステム。
  16. 前記視覚変数の各々が、行属性、列属性、フィルタ属性、色符号化、サイズ符号化、形状符号化、およびラベル符号化からなる群から選択される、請求項12に記載のコンピュータシステム。
  17. 前記複数のデータフィールドが、前記データソース内の複数の別個のテーブルからのものである、請求項12に記載のコンピュータシステム。
  18. 前記データソースの前記オブジェクトモデルが、複数のオブジェクトを有し、前記複数のデータフィールドが、前記複数のオブジェクトのうちの2つ以上の別個のオブジェクトに属する、請求項12に記載のコンピュータシステム。
  19. 前記視覚仕様が、複数のデータソースを指定し、前記視覚仕様が、前記複数のデータソースの各々からの1つまたは複数のデータフィールドを指定し、前記オブジェクトモデルが、前記複数のデータソースのオブジェクトモデルである、請求項12に記載のコンピュータシステム。
  20. ディスプレイ、1つまたは複数のプロセッサ、およびメモリを有するコンピュータシステムによる実行のために構成されている1つまたは複数のプログラムを格納する非一時的コンピュータ可読記憶媒体であって、前記1つまたは複数のプログラムが、
    データソース、複数の視覚変数、および前記データソースからの複数のデータフィールドを指定する視覚仕様を受信することであって、前記視覚変数の各々が、前記データフィールドのうちのそれぞれ1つまたは複数に関連付けられ、前記データフィールドの各々が、ディメンションまたはメジャーのいずれかとして識別される、受信することと、
    前記データソースのオブジェクトモデルから、前記ディメンションデータフィールドの全てを含む最小のサブツリーを識別することと、
    前記ディメンションデータフィールドにアクセスする前記最小のサブツリーからクエリを構造することと、
    タプルのセットを取得するために、前記データソースに対して前記クエリを実行することであって、各タプルが、前記ディメンションデータフィールドのデータ値の一意の順序付けられた組み合わせを含む、実行することと、
    各タプルに対して、前記メジャーデータフィールドの各々に対応する集計されたデータ値を添付することにより、拡張タプルを形成することと、
    前記拡張タプルの前記データフィールドに従って、かつ前記データフィールドの各々が関連付けられている前記視覚変数に従って、データ視覚化を構築および表示することと、を行うための命令を含む、非一時的コンピュータ可読記憶媒体。
JP2021520346A 2018-10-22 2019-10-16 選択したデータソースのオブジェクトモデルに従ったデータ視覚化の生成 Active JP7179981B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862748968P 2018-10-22 2018-10-22
US62/748,968 2018-10-22
US16/236,612 US11537276B2 (en) 2018-10-22 2018-12-30 Generating data visualizations according to an object model of selected data sources
US16/236,612 2018-12-30
US16/236,611 US11966568B2 (en) 2018-10-22 2018-12-30 Generating data visualizations according to an object model of selected data sources
US16/236,611 2018-12-30
PCT/US2019/056491 WO2020086354A1 (en) 2018-10-22 2019-10-16 Generating data visualizations according to an object model of selected data sources

Publications (2)

Publication Number Publication Date
JP2022504865A true JP2022504865A (ja) 2022-01-13
JP7179981B2 JP7179981B2 (ja) 2022-11-29

Family

ID=70278934

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021520346A Active JP7179981B2 (ja) 2018-10-22 2019-10-16 選択したデータソースのオブジェクトモデルに従ったデータ視覚化の生成

Country Status (7)

Country Link
US (4) US11966568B2 (ja)
JP (1) JP7179981B2 (ja)
CN (1) CN113272801B (ja)
AU (1) AU2019364245B2 (ja)
BR (1) BR112021007542A2 (ja)
CA (1) CA3115816C (ja)
WO (1) WO2020086354A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024048866A1 (ko) * 2022-09-02 2024-03-07 주식회사 아미크 목적 데이터 시각화 방법 및 시스템

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099674B2 (en) 2005-09-09 2012-01-17 Tableau Software Llc Computer systems and methods for automatically viewing multidimensional databases
US11620315B2 (en) 2017-10-09 2023-04-04 Tableau Software, Inc. Using an object model of heterogeneous data to facilitate building data visualizations
US11132378B2 (en) * 2017-11-16 2021-09-28 Servicenow, Inc. Systems and methods for interactive analysis
US11966406B2 (en) 2018-10-22 2024-04-23 Tableau Software, Inc. Utilizing appropriate measure aggregation for generating data visualizations of multi-fact datasets
US11966568B2 (en) 2018-10-22 2024-04-23 Tableau Software, Inc. Generating data visualizations according to an object model of selected data sources
US11281672B2 (en) * 2019-03-19 2022-03-22 Sigma Computing, Inc. Join key propagation
USD912074S1 (en) * 2019-03-25 2021-03-02 Warsaw Orthopedic, Inc. Display screen with graphical user interface for medical treatment and/or diagnostics
US11176205B2 (en) * 2019-06-17 2021-11-16 Google Llc Visual data model object dependency tracing
US11379921B1 (en) * 2019-10-24 2022-07-05 Cigna Intellectual Property, Inc. System and interface for developing and processing simulations of modeled medical contracts
US11275792B2 (en) 2019-11-01 2022-03-15 Business Objects Software Ltd Traversing hierarchical dimensions for dimension-based visual elements
US11526526B2 (en) * 2019-11-01 2022-12-13 Sap Se Generating dimension-based visual elements
US10997217B1 (en) * 2019-11-10 2021-05-04 Tableau Software, Inc. Systems and methods for visualizing object models of database tables
US11308665B2 (en) * 2020-01-30 2022-04-19 International Business Machines Corporation Automatic generation of user onboarding tours for business analytic applications
US11281668B1 (en) 2020-06-18 2022-03-22 Tableau Software, LLC Optimizing complex database queries using query fusion
US20220207061A1 (en) * 2020-12-24 2022-06-30 Business Mobile Ag Technique for generating views of archived business data
US11500520B2 (en) * 2021-03-31 2022-11-15 Tableau Software, LLC Generating data visualizations with visual data marks having individually calculated grid positions
CN113505127B (zh) * 2021-06-22 2024-06-18 侍意(厦门)网络信息技术有限公司 对有关联性对象的数据的存储结构及方法、检索和可视化展示方法
CN113656403B (zh) * 2021-07-23 2024-10-15 济南浪潮数据技术有限公司 一种报表中输出多数据源数据的方法、系统、设备和介质
US12032586B2 (en) * 2021-12-15 2024-07-09 Kobai, Inc. Systems and methods for generation and display of query visualizations
CN114817308A (zh) * 2022-04-20 2022-07-29 北京海量数据技术股份有限公司 数据库中优化多个percentile_cont分析函数执行的方法
US20240004509A1 (en) * 2022-07-03 2024-01-04 Qliktech International Ab Closed-loop generation of insights from source data
CN115422167B (zh) * 2022-09-27 2023-02-17 北京柏睿数据技术股份有限公司 一种跨数据源数据库视图可视化构建方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357344A (ja) * 2000-06-13 2001-12-26 Hitachi Ltd データ視覚化支援システム
JP2006526840A (ja) * 2003-06-02 2006-11-24 ザ・ボード・オブ・トラスティーズ・オブ・ザ・レランド・スタンフォード・ジュニア・ユニバーシティ 多次元データベースの照会及び視覚化のためのコンピュータシステム及び方法本発明は、スタンフォード大学(StandfordUniversity)(「統合乱気流シミュレーションのためのセンタ(CenterforIntegratedTurbulenceSimulation)」)とのエネルギー省ASCIレベル1提携契約LLL−B523583だけではなく、防衛高等研究計画局(DefenseAdvancedResearchProjectsAgency)(「複雑なシステム及び環境の視覚化(VisualizationofComplexSystemsandEnvironments)」)、APRA発注番号E269によっても部分的に支援された。米国政府は本発明に権利を有する可能性がある。
US9779150B1 (en) * 2014-08-15 2017-10-03 Tableau Software, Inc. Systems and methods for filtering data used in data visualizations that use relationships
JP2018124728A (ja) * 2017-01-31 2018-08-09 富士通株式会社 表示プログラム、表示方法および表示装置

Family Cites Families (124)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4620287A (en) * 1983-01-20 1986-10-28 Dicomed Corporation Method and apparatus for representation of a curve of uniform width
US5428737A (en) * 1991-10-16 1995-06-27 International Business Machines Corporation Comprehensive bilateral translation between SQL and graphically depicted queries
JP3372563B2 (ja) * 1992-04-30 2003-02-04 新日鉄ソリューションズ株式会社 木構造表示編集装置
US5539870A (en) * 1992-10-05 1996-07-23 International Business Machines Corporation Computerized system and process for interactively managing a distributed database system
US5511186A (en) 1992-11-18 1996-04-23 Mdl Information Systems, Inc. System and methods for performing multi-source searches over heterogeneous databases
US5530865A (en) * 1993-03-03 1996-06-25 Apple Computer, Inc. Method and apparatus for improved application program switching on a computer-controlled display system
US5546526A (en) * 1993-12-10 1996-08-13 International Business Machines Corporation Reconfiguration of database by interactive manipulation of icons
US5911145A (en) * 1996-07-29 1999-06-08 Rae Technology, Inc. Hierarchical structure editor for web sites
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
JP3272281B2 (ja) * 1997-10-20 2002-04-08 インターナショナル・ビジネス・マシーンズ・コーポレーション データアイテム表示方法及び表示装置、データアイテムの表示を制御するプログラムを格納した記憶媒体
JP3383563B2 (ja) * 1997-12-18 2003-03-04 富士通株式会社 物体移動シミュレーション装置
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
US6189004B1 (en) * 1998-05-06 2001-02-13 E. Piphany, Inc. Method and apparatus for creating a datamart and for creating a query structure for the datamart
US6097382A (en) * 1998-05-12 2000-08-01 Silverstream Software, Inc. Method and apparatus for building an application interface
US6424358B1 (en) * 1998-12-03 2002-07-23 Lockheed Martin Corporation Method and system for importing database information
DK1175661T3 (da) 1999-04-21 2007-03-05 Spss Inc Computerfremgangsmåde og -apparat til frembringelse af synlig grafik ved brug af graf-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
GB9924523D0 (en) * 1999-10-15 1999-12-15 Univ Strathclyde Database processor
US6434557B1 (en) 1999-12-30 2002-08-13 Decode Genetics Ehf. Online syntheses programming technique
JP2003532195A (ja) 2000-04-27 2003-10-28 ウエブフイート・インコーポレイテツド 複数の別個のデータベースからサーチ結果を検索する方法およびシステム
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
US7302383B2 (en) 2002-09-12 2007-11-27 Luis Calixto Valles Apparatus and methods for developing conversational applications
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
US7603267B2 (en) 2003-05-01 2009-10-13 Microsoft Corporation Rules-based grammar for slots and statistical model for preterminals in natural language understanding system
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
US20050066293A1 (en) * 2003-09-23 2005-03-24 Hunt Simon Derek Tree and table GUI
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
US7941521B1 (en) 2003-12-30 2011-05-10 Sap Ag Multi-service management architecture employed within a clustered node configuration
US7756739B2 (en) 2004-02-12 2010-07-13 Microsoft Corporation System and method for aggregating a measure over a non-additive account dimension
JP4319077B2 (ja) * 2004-03-25 2009-08-26 富士通株式会社 図形オブジェクト指定装置、図形オブジェクト指定方法、図形オブジェクト指定プログラム
JP4899295B2 (ja) * 2004-07-01 2012-03-21 富士通株式会社 メタデータエディタプログラム、メタデータエディタ装置およびメタデータエディタ方法
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
EP1800227A2 (en) * 2004-10-04 2007-06-27 Clearpace Software Limited Method and system for implementing an enhanced database
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
US7483028B2 (en) * 2005-03-15 2009-01-27 Microsoft Corporation Providing 1D and 2D connectors in a connected diagram
US7780813B2 (en) 2005-06-09 2010-08-24 Alcatel-Lucent Usa Inc. Electric field mediated chemical reactors
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
US7574628B2 (en) * 2005-11-14 2009-08-11 Hadi Qassoudi Clickless tool
US8442828B2 (en) 2005-12-02 2013-05-14 Microsoft Corporation Conditional model for natural language understanding
US20070156734A1 (en) 2005-12-30 2007-07-05 Stefan Dipper Handling ambiguous joins
US8462175B2 (en) * 2006-04-26 2013-06-11 Sony Corporation Image processing apparatus, image processing method, and computer program
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
CN101162462A (zh) * 2006-10-11 2008-04-16 国际商业机器公司 提示定制工具与方法
US20180336223A1 (en) 2007-05-09 2018-11-22 Illinois Institute Of Technology Context weighted metalabels for enhanced search in hierarchical abstract data organization systems
US10042898B2 (en) * 2007-05-09 2018-08-07 Illinois Institutre Of Technology Weighted metalabels for enhanced search in hierarchical abstract data organization systems
US20090000063A1 (en) 2007-06-29 2009-01-01 Leandres Self Guard for vehicle door handles and keyholes
US7702622B2 (en) 2007-06-29 2010-04-20 Microsoft Corporation Advanced techniques for SQL generation of performancepoint business rules
US7908266B2 (en) * 2007-07-18 2011-03-15 Sas Institute Inc. Systems and methods for automatically creating an SQL join expression
US8209625B2 (en) 2008-06-12 2012-06-26 University Of Southern California Phrase-driven grammar for data visualization
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
TW201020901A (en) * 2008-11-20 2010-06-01 Ibm Visual feedback for drag-and-drop operation with gravitational force model
US20110119047A1 (en) 2009-11-19 2011-05-19 Tatu Ylonen Oy Ltd Joint disambiguation of the meaning of a natural language expression
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
US9336298B2 (en) 2011-06-16 2016-05-10 Microsoft Technology Licensing, Llc Dialog-enhanced contextual search query analysis
US20130080584A1 (en) 2011-09-23 2013-03-28 SnapLogic, Inc Predictive field linking for data integration pipelines
US10366066B2 (en) 2011-11-11 2019-07-30 Qliktech International Ab Collaborative data 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
US20130249917A1 (en) 2012-03-26 2013-09-26 Microsoft Corporation Profile data visualization
JP6065195B2 (ja) * 2012-05-08 2017-01-25 パナソニックIpマネジメント株式会社 表示映像形成装置及び表示映像形成方法
US9563674B2 (en) 2012-08-20 2017-02-07 Microsoft Technology Licensing, Llc Data exploration user interface
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
US9818211B1 (en) 2013-04-25 2017-11-14 Domo, Inc. Automated combination of multiple data visualizations
US9501585B1 (en) 2013-06-13 2016-11-22 DataRPM Corporation Methods and system for providing real-time business intelligence using search-based analytics engine
WO2015017787A2 (en) 2013-08-01 2015-02-05 Visa International Service Association Homomorphic database operations apparatuses, methods and systems
US9858292B1 (en) 2013-11-11 2018-01-02 Tableau Software, Inc. Systems and methods for semantic icon encoding in data visualizations
US9424318B2 (en) 2014-04-01 2016-08-23 Tableau Software, Inc. Systems and methods for ranking data visualizations
US9779147B1 (en) * 2014-08-15 2017-10-03 Tableau Software, Inc. Systems and methods to query and visualize data and 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
US9613086B1 (en) * 2014-08-15 2017-04-04 Tableau Software, Inc. Graphical user interface for generating and displaying data visualizations that use relationships
US10915233B2 (en) 2014-09-26 2021-02-09 Oracle International Corporation Automated entity correlation and classification across heterogeneous datasets
US10528589B2 (en) 2014-09-26 2020-01-07 Oracle International Corporation Cross visualization interaction between data visualizations
US9922099B2 (en) 2014-09-30 2018-03-20 Splunk Inc. Event limited field picker
US10418032B1 (en) 2015-04-10 2019-09-17 Soundhound, Inc. System and methods for a virtual assistant to manage and use context in a natural language dialog
US10558688B1 (en) 2015-04-15 2020-02-11 Arimo, LLC Natural language interface for data analysis
US11151761B2 (en) 2015-09-30 2021-10-19 Sap Se Analysing Internet of Things
US10394801B2 (en) 2015-11-05 2019-08-27 Oracle International Corporation Automated data analysis using combined queries
CN105740333A (zh) * 2016-01-23 2016-07-06 北京掌阔移动传媒科技有限公司 一种可视化的广告管理平台和实现方法
US10515121B1 (en) 2016-04-12 2019-12-24 Tableau Software, Inc. Systems and methods of using natural language processing for visual analysis of a data set
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
US10410107B2 (en) 2016-07-26 2019-09-10 Salesforce.Com, Inc. Natural language platform for database system
US10042840B2 (en) 2016-08-04 2018-08-07 Oath Inc. Hybrid grammatical and ungrammatical parsing
CN115858730A (zh) 2016-09-29 2023-03-28 微软技术许可有限责任公司 对话式的数据分析
US11210115B2 (en) 2016-11-06 2021-12-28 Tableau Software, Inc. Data visualization user interface with summary popup that includes interactive objects
US20180158245A1 (en) 2016-12-06 2018-06-07 Sap Se System and method of integrating augmented reality and virtual reality models into analytics visualizations
US10997227B2 (en) 2017-01-18 2021-05-04 Google Llc Systems and methods for processing a natural language query in data tables
US20190197605A1 (en) 2017-01-23 2019-06-27 Symphony Retailai Conversational intelligence architecture system
US20180210883A1 (en) 2017-01-25 2018-07-26 Dony Ang System for converting natural language questions into sql-semantic queries based on a dimensional model
US11200265B2 (en) 2017-05-09 2021-12-14 Accenture Global Solutions Limited Automated generation of narrative responses to data queries
US20200233905A1 (en) 2017-09-24 2020-07-23 Domo, Inc. Systems and Methods for Data Analysis and Visualization Spanning Multiple Datasets
US11620315B2 (en) 2017-10-09 2023-04-04 Tableau Software, Inc. Using an object model of heterogeneous data to facilitate building data visualizations
US20190121801A1 (en) 2017-10-24 2019-04-25 Ge Inspection Technologies, Lp Generating Recommendations Based on Semantic Knowledge Capture
US10546003B2 (en) 2017-11-09 2020-01-28 Adobe Inc. Intelligent analytics interface
US11157704B2 (en) 2018-06-18 2021-10-26 DataChat.ai Constrained natural language processing
US10552541B1 (en) 2018-08-27 2020-02-04 International Business Machines Corporation Processing natural language queries based on machine learning
EP3617898A1 (en) 2018-08-30 2020-03-04 QlikTech International AB Scalable indexing architecture
US10902045B2 (en) 2018-09-18 2021-01-26 Tableau Software, Inc. Natural language interface for building data visualizations, including cascading edits to filter expressions
US11048871B2 (en) 2018-09-18 2021-06-29 Tableau Software, Inc. Analyzing natural language expressions in a data visualization user interface
US11055489B2 (en) 2018-10-08 2021-07-06 Tableau Software, Inc. Determining levels of detail for data visualizations using natural language constructs
US11966568B2 (en) * 2018-10-22 2024-04-23 Tableau Software, Inc. Generating data visualizations according to an object model of selected data sources
US20200134103A1 (en) 2018-10-26 2020-04-30 Ca, Inc. Visualization-dashboard narration using text summarization

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001357344A (ja) * 2000-06-13 2001-12-26 Hitachi Ltd データ視覚化支援システム
JP2006526840A (ja) * 2003-06-02 2006-11-24 ザ・ボード・オブ・トラスティーズ・オブ・ザ・レランド・スタンフォード・ジュニア・ユニバーシティ 多次元データベースの照会及び視覚化のためのコンピュータシステム及び方法本発明は、スタンフォード大学(StandfordUniversity)(「統合乱気流シミュレーションのためのセンタ(CenterforIntegratedTurbulenceSimulation)」)とのエネルギー省ASCIレベル1提携契約LLL−B523583だけではなく、防衛高等研究計画局(DefenseAdvancedResearchProjectsAgency)(「複雑なシステム及び環境の視覚化(VisualizationofComplexSystemsandEnvironments)」)、APRA発注番号E269によっても部分的に支援された。米国政府は本発明に権利を有する可能性がある。
US9779150B1 (en) * 2014-08-15 2017-10-03 Tableau Software, Inc. Systems and methods for filtering data used in data visualizations that use relationships
JP2018124728A (ja) * 2017-01-31 2018-08-09 富士通株式会社 表示プログラム、表示方法および表示装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024048866A1 (ko) * 2022-09-02 2024-03-07 주식회사 아미크 목적 데이터 시각화 방법 및 시스템

Also Published As

Publication number Publication date
CA3115816A1 (en) 2020-04-30
US11210316B1 (en) 2021-12-28
CN113272801B (zh) 2024-08-23
US11537276B2 (en) 2022-12-27
US20200125559A1 (en) 2020-04-23
US11429264B1 (en) 2022-08-30
US11966568B2 (en) 2024-04-23
CN113272801A (zh) 2021-08-17
US20200125239A1 (en) 2020-04-23
BR112021007542A2 (pt) 2021-07-27
CA3115816C (en) 2024-02-20
JP7179981B2 (ja) 2022-11-29
AU2019364245B2 (en) 2022-08-18
AU2019364245A1 (en) 2021-05-13
WO2020086354A1 (en) 2020-04-30

Similar Documents

Publication Publication Date Title
CA3115816C (en) Generating data visualizations according to an object model of selected data sources
AU2021204978B2 (en) Using an object model of heterogeneous data to facilitate building data visualizations
US11966406B2 (en) Utilizing appropriate measure aggregation for generating data visualizations of multi-fact datasets
AU2020260374B2 (en) Building reports
US20070260582A1 (en) Method and System for Visual Query Construction and Representation
US8825633B2 (en) System, method, and data structure for automatically generating database queries which are data model independent and cardinality independent
US20220300525A1 (en) Systems and Methods for Using Multiple Aggregation Levels in a Single Data Visualization
JP7383799B2 (ja) マルチファクトデータセットのデータ視覚化を生成するための適切な測度集計の活用
US11449510B1 (en) One way cascading of attribute filters in hierarchical object models

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220823

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221116

R150 Certificate of patent or registration of utility model

Ref document number: 7179981

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350