(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-01
(54)【発明の名称】統合されたキャッシングを伴う対話型分析ワークフロー
(51)【国際特許分類】
G06F 16/907 20190101AFI20240725BHJP
【FI】
G06F16/907
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024506870
(86)(22)【出願日】2022-07-05
(85)【翻訳文提出日】2024-04-05
(86)【国際出願番号】 US2022073424
(87)【国際公開番号】W WO2023015087
(87)【国際公開日】2023-02-09
(32)【優先日】2021-08-06
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519405569
【氏名又は名称】アルテリックス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ジェフ アーノルド
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA10
5B175FB03
5B175FB04
(57)【要約】
データ分析アプリケーションは、ツールのシーケンスを含むワークフローを受信する。各ツールはデータ分析機能を実行する。データ分析アプリケーションは、ツールのシーケンスを使用してデータファイルを処理し、データファイルの処理結果を表す結果項目を生成する。データ分析アプリケーションは、1つ又は複数のメタデータファイルを格納し、各メタデータファイルは、データファイルの処理中にシーケンス内の対話型ツールによって生成されたデータを含む。データ分析アプリケーションは、シーケンス内の対話型ツールに関連付けられた対話要素を介してユーザー入力を受信する。対話要素は、ユーザー入力に基づいて対話型ツールの動作を修正することができる。データ分析アプリケーションは、対話型ツールのメタデータファイルを取得し、ツールのシーケンスのサブセット及びユーザー入力を使用してメタデータファイルを処理し、異なる結果項目を生成する。
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
ツールのシーケンスを含む分析ワークフローを受信することであって、前記シーケンス内の各ツールは、データ分析機能を実行するように適合され、対話要素が、前記シーケンス内の特定のツールに関連付けられ、前記特定のツールの動作を修正するためのユーザー入力を受信するように適合されることと、
前記シーケンスのツールを使用してデータファイルを処理し、前記データファイルの処理結果を表す第1の結果項目を生成することと、
前記特定のツールのメタデータファイルを格納することあって、前記メタデータファイルは、前記データファイルの前記処理中に前記特定のツールの前記データ分析機能の実行から前記特定のツールによって生成されたデータを含むことと、
前記特定のツールに関連付けられた前記対話要素を介して、ユーザー入力を受信することと、
前記ユーザー入力を受信したことに応答して、前記特定のツールの前記メタデータファイルを取得することと、
前記ツールのシーケンスのサブセット及び前記ユーザー入力を使用して、前記特定のツールの前記メタデータファイルを処理し、前記第1の結果項目とは異なる第2の結果項目を生成することであって、前記ツールのシーケンスの前記サブセットは、前記特定のツールで始まることと、
を備える、コンピュータ実装方法。
【請求項2】
追加対話要素は、前記シーケンス内の追加ツールに関連付けられ、前記追加ツールの動作を修正するための追加ユーザー入力を受信するように適合され、
前記追加ツールのための追加メタデータファイルを格納することであって、前記追加メタデータファイルは、前記データファイルの処理中に前記追加ツールの前記データ分析機能の実行から前記追加ツールによって生成されたデータを含み、前記メタデータファイル及び追加メタデータファイルは、別々のキャッシュに格納されることをさらに備える、
請求項1に記載のコンピュータ実装方法。
【請求項3】
前記ユーザー入力を受信することに応答して、前記特定のツールの前記メタデータファイルを検索することは、
前記特定のツールに基づいて、前記特定のツールの前記メタデータファイルを格納するキャッシュを特定することと、
特定された前記キャッシュから前記特定のツールの前記メタデータファイルを検索することと、
を備える、請求項2に記載のコンピュータ実装方法。
【請求項4】
前記特定のツールに基づいて、前記特定のツールの前記メタデータファイルを格納する前記キャッシュを特定することは、
前記対話要素に基づいて、前記ツールのシーケンスから前記特定のツールを特定することと、
前記特定のツールの特定に基づいて、前記キャッシュを特定することと、
を備える、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記ツールのシーケンスは、ツールの第1の分岐シーケンス及びツールの第2の分岐シーケンスを備え、前記特定のツールは、前記ツールの第1の分岐シーケンスにあり、前記ツールの第2のブランチシーケンスにはなく、前記メタデータファイルを処理するために使用される前記ツールのシーケンスの前記サブセットは、前記特定のツールと、前記ツールの第1の分岐シーケンスにおいて前記特定のツールに後続する別のツールと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記対話要素に基づいて、前記ツールの第1の分岐シーケンス及び前記ツールの第2の分岐シーケンスから、前記ツールの第1の分岐シーケンスを特定することを更に備える、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記対話要素を通じて前記ユーザー入力を受信することは、
前記第1の結果項目内のインターフェースアイコンから前記ユーザー入力を受信することであって、前記インターフェースアイコンは、前記ユーザー入力を提供するために前記第1の結果項目とユーザーが対話することを可能にし、前記ユーザー入力は、前記インターフェースアイコンから前記対話要素に送信されること、
を備える、請求項1に記載のコンピュータ実装方法。
【請求項8】
実行可能なコンピュータプログラム指令を格納する非一時的コンピュータ可読メモリであって、前記指令は、
ツールのシーケンスを含む分析ワークフローを受信することであって、前記シーケンス内の各ツールは、データ分析機能を実行するように適合され、対話要素が、前記シーケンス内の特定のツールに関連付けられ、前記特定のツールの動作を修正するためのユーザー入力を受信するように適合されることと、
前記シーケンスのツールを使用してデータファイルを処理し、前記データファイルの処理結果を表す第1の結果項目を生成することと、
前記特定のツールのメタデータファイルを格納することあって、前記メタデータファイルは、前記データファイルの前記処理中に前記特定のツールの前記データ分析機能の実行から前記特定のツールによって生成されたデータを含むことと、
前記特定のツールに関連付けられた前記対話要素を介して、ユーザー入力を受信することと、
前記ユーザー入力を受信したことに応答して、前記特定のツールの前記メタデータファイルを取得することと、
前記ツールのシーケンスのサブセット及び前記ユーザー入力を使用して、前記特定のツールの前記メタデータファイルを処理し、前記第1の結果項目とは異なる第2の結果項目を生成することであって、前記ツールのシーケンスの前記サブセットは、前記特定のツールで始まることと、
を備えた動作を実行可能である、非一時的コンピュータ可読メモリ。
【請求項9】
追加対話要素は、前記シーケンス内の追加ツールに関連付けられ、前記追加ツールの動作を修正するための追加ユーザー入力を受信するように適合され、
前記追加ツールのための追加メタデータファイルを格納することであって、前記追加メタデータファイルは、前記データファイルの処理中に前記追加ツールの前記データ分析機能の実行から前記追加ツールによって生成されたデータを含み、前記メタデータファイル及び追加メタデータファイルは、別々のキャッシュに格納されることをさらに備える、
請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項10】
前記ユーザー入力を受信することに応答して、前記特定のツールの前記メタデータファイルを検索することは、
前記特定のツールに基づいて、前記特定のツールの前記メタデータファイルを格納するキャッシュを特定することと、
特定された前記キャッシュから前記特定のツールの前記メタデータファイルを検索することと、
を備える、請求項9に記載の非一時的コンピュータ可読メモリ。
【請求項11】
前記特定のツールに基づいて、前記特定のツールの前記メタデータファイルを格納する前記キャッシュを特定することは、
前記対話要素に基づいて、前記ツールのシーケンスから前記特定のツールを特定することと、
前記特定のツールの特定に基づいて、前記キャッシュを特定することと、
を備える、請求項10に記載の非一時的コンピュータ可読メモリ。
【請求項12】
前記ツールのシーケンスは、ツールの第1の分岐シーケンス及びツールの第2の分岐シーケンスを備え、前記特定のツールは、前記ツールの第1の分岐シーケンスにあり、前記ツールの第2のブランチシーケンスにはなく、前記メタデータファイルを処理するために使用される前記ツールのシーケンスの前記サブセットは、前記特定のツールと、前記ツールの第1の分岐シーケンスにおいて前記特定のツールに後続する別のツールと、を含む、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項13】
前記動作は、前記対話要素に基づいて、前記ツールの第1の分岐シーケンス及び前記ツールの第2の分岐シーケンスから、前記ツールの第1の分岐シーケンスを特定することを更に備える、請求項12に記載の非一時的コンピュータ可読メモリ。
【請求項14】
前記対話要素を通じて前記ユーザー入力を受信することは、
前記第1の結果項目内のインターフェースアイコンから前記ユーザー入力を受信することであって、前記インターフェースアイコンは、前記ユーザー入力を提供するために前記第1の結果項目とユーザーが対話することを可能にし、前記ユーザー入力は、前記インターフェースアイコンから前記対話要素に送信されること、
を備える、請求項8に記載の非一時的コンピュータ可読メモリ。
【請求項15】
コンピュータシステムであって、
コンピュータプログラム指令を実行するためのコンピュータプロセッサと、
前記コンピュータプロセッサによって実行可能な、動作を実行するためのコンピュータプログラム指令を格納する非一時的コンピュータ可読メモリであって、前記動作は、
ツールのシーケンスを含む分析ワークフローを受信することであって、前記シーケンス内の各ツールは、データ分析機能を実行するように適合され、対話要素が、前記シーケンス内の特定のツールに関連付けられ、前記特定のツールの動作を修正するためのユーザー入力を受信するように適合されることと、
前記シーケンスのツールを使用してデータファイルを処理し、前記データファイルの処理結果を表す第1の結果項目を生成することと、
前記特定のツールのメタデータファイルを格納することあって、前記メタデータファイルは、前記データファイルの前記処理中に前記特定のツールの前記データ分析機能の実行から前記特定のツールによって生成されたデータを含むことと、
前記特定のツールに関連付けられた前記対話要素を介して、ユーザー入力を受信することと、
前記ユーザー入力を受信したことに応答して、前記特定のツールの前記メタデータファイルを取得することと、
前記ツールのシーケンスのサブセット及び前記ユーザー入力を使用して、前記特定のツールの前記メタデータファイルを処理し、前記第1の結果項目とは異なる第2の結果項目を生成することであって、前記ツールのシーケンスの前記サブセットは、前記特定のツールで始まることと、
を備えた該非一時的コンピュータ可読メモリと、
を備える、コンピュータシステム。
【請求項16】
追加対話要素は、前記シーケンス内の追加ツールに関連付けられ、前記追加ツールの動作を修正するための追加ユーザー入力を受信するように適合され、
前記追加ツールのための追加メタデータファイルを格納することであって、前記追加メタデータファイルは、前記データファイルの処理中に前記追加ツールの前記データ分析機能の実行から前記追加ツールによって生成されたデータを含み、前記メタデータファイル及び追加メタデータファイルは、別々のキャッシュに格納されることをさらに備える、
請求項15に記載のコンピュータシステム。
【請求項17】
前記ユーザー入力を受信することに応答して、前記特定のツールの前記メタデータファイルを検索することは、
前記特定のツールに基づいて、前記特定のツールの前記メタデータファイルを格納するキャッシュを特定することと、
特定された前記キャッシュから前記特定のツールの前記メタデータファイルを検索することと、
を備える、請求項16に記載のコンピュータシステム。
【請求項18】
前記ツールのシーケンスは、ツールの第1の分岐シーケンス及びツールの第2の分岐シーケンスを備え、前記特定のツールは、前記ツールの第1の分岐シーケンスにあり、前記ツールの第2のブランチシーケンスにはなく、前記メタデータファイルを処理するために使用される前記ツールのシーケンスの前記サブセットは、前記特定のツールと、前記ツールの第1の分岐シーケンスにおいて前記特定のツールに後続する別のツールと、を含む、請求項15に記載のコンピュータシステム。
【請求項19】
前記動作は、前記対話要素に基づいて、前記ツールの第1の分岐シーケンス及び前記ツールの第2の分岐シーケンスから、前記ツールの第1の分岐シーケンスを特定することを更に備える、請求項18に記載のコンピュータシステム。
【請求項20】
前記対話要素を通じて前記ユーザー入力を受信することは、
前記第1の結果項目内のインターフェースアイコンから前記ユーザー入力を受信することであって、前記インターフェースアイコンは、前記ユーザー入力を提供するために前記第1の結果項目とユーザーが対話することを可能にし、前記ユーザー入力は、前記インターフェースアイコンから前記対話要素に送信されること、
を備える、請求項15に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、データ分析に関し、特に、統合されたキャッシングを伴う対話型分析ワークフローに関する。
【背景技術】
【0002】
ビッグデータ分析などのデータ分析プラットフォームの成長により、データ処理は、ビジネス価値を有する情報を抽出するために大量のデータを処理するためのツールへと拡大した。例えば、中小企業は、外部データプロバイダ、内部データソース(例えば、ローカルコンピュータ上のファイル)、ビッグデータストア、及びクラウドベースのデータ(例えば、ソーシャルメディア情報)などの様々なソースから膨大な量のデータを収集、処理、及び分析するために、専用のコンピューティング及び人的リソースを採用するサードパーティのデータ分析環境を利用することがある。データ分析で使用されるような大規模なデータセットを、有用な定量的・定性的情報を抽出する方法で処理するには、通常、強力なコンピュータ装置に実装された複雑なソフトウェアツールが必要である。
【0003】
現在、分析ワークフローは、データ処理を実行するために広く使用されている。しかしながら、現在利用可能なワークフローツールは、その実行と終了のアプリケーションにより制限されており、これらのツールは、データ処理タスクを実行するためにワークフローを実行し、タスクが終了すると終了する。新しいワークフローを作成して実行することなく、別のデータ処理タスクを実行することは困難であり、計算能力と時間を消費する。現在のデータ分析技術の限界を考えると、大規模なデータセットをより効率的に処理するための分析技術の改善が必要である。
【図面の簡単な説明】
【0004】
【
図1】一実施形態によるデータ分析システムを含むデータ分析環境を示すブロック図である。
【
図2】一実施形態によるデータを処理するためにデータ分析システムを使用して作成されたワークフローを示すブロック図である。
【
図3】一実施形態によるデータ分析アプリケーションを示すブロック図である。
【
図4】一実施形態によるデータ分析アプリケーションを使用して作成された対話型ワークフローを示す概略図である。
【
図5A】一実施形態による対話型ワークフローによって生成された結果項目を示す図である。
【
図5B】一実施形態による対話型ワークフローによって生成された結果項目を示す図である。
【
図5C】一実施形態による対話型ワークフローによって生成された結果項目を示す図である。
【
図5D】一実施形態による対話型ワークフローによって生成された結果項目を示す図である。
【
図5E】一実施形態による対話型ワークフローによって生成された結果項目を示す図である。
【
図5F】一実施形態による対話型ワークフローによって生成された結果項目を示す図である。
【
図6】一実施形態による対話型ワークフローを生成するプロセスを示すフローチャートである。
【
図7】一実施形態による、
図1のデータ分析システムとして使用するための典型的なコンピュータシステムの機能を示す高レベルブロック図である。
【0005】
図面は、例示のみを目的として様々な実施形態を描写している。当業者であれば、以下の考察から、本明細書に記載された実施形態の原理から逸脱することなく、本明細書に図示された構造及び方法の代替実施形態を採用することができることを容易に認識するであろう。様々な図面における同様の符号及び指定は、同様の要素を示す。
【発明を実施するための形態】
【0006】
上記及び他の課題は、コンピュータ実装方法、コンピュータシステム、及びコンピュータ可読記憶媒体によって対処される。コンピュータ実装方法の一実施形態は、ツールのシーケンスを含む分析ワークフローを受信することを含む。シーケンス内の各ツールは、データ分析機能を実行するように適合される。対話要素は、シーケンス内の特定のツールに関連付けられ、特定のツールの動作を修正するためのユーザー入力を受信するように適合される。本方法はさらに、ツールのシーケンスを使用してデータファイルを処理し、第1の結果項目を生成することを含む。第1の結果項目は、データファイルの処理の結果を表す。本方法は、特定のツールのメタデータファイルを格納することをさらに含む。メタデータファイルは、データファイルの処理中に特定のツールのデータ分析機能の実行から特定のツールによって生成されたデータを含む。本方法は、特定のツールに関連付けられた対話要素を介して、ユーザー入力を受信することをさらに含む。本方法は、ユーザー入力を受信することに応答して、特定のツールのメタデータファイルを検索することをさらに含む。本方法はまた、ツールのシーケンスのサブセット及びユーザー入力を使用して、特定のツールのメタデータファイルを処理し、第2の結果項目を生成することを含む。第2の結果項目は、第1の結果項目とは異なる。ツールのシーケンスのサブセットは、特定のツールから始まる。
【0007】
コンピュータシステムの一実施形態は、コンピュータプログラム指令を実行するためのコンピュータプロセッサを含む。本システムはまた、実行されるとコンピュータプロセッサに動作を実行させるコンピュータプログラム命令を格納する非一時的コンピュータ可読記憶媒体を含む。動作は、ツールのシーケンスを含む分析ワークフローを受信することを含む。シーケンス内の各ツールは、データ分析機能を実行するように適合される。対話要素は、シーケンス内の特定のツールに関連付けられ、特定のツールの動作を修正するためのユーザー入力を受信するように適合される。動作はさらに、ツールのシーケンスを使用してデータファイルを処理し、第1の結果項目を生成することを含む。第1の結果項目は、データファイルの処理の結果を表す。動作はさらに、特定のツールのメタデータファイルを格納することを含む。メタデータファイルは、データファイルの処理中に特定のツールのデータ分析機能の実行から特定のツールによって生成されたデータを含む。動作は、特定のツールに関連付けられた対話要素を介して、ユーザー入力を受信することをさらに含む。動作は、ユーザー入力を受信することに応答して、特定のツールのメタデータファイルを検索することをさらに含む。動作はまた、ツールのシーケンスのサブセット及びユーザー入力を使用して、特定のツールのメタデータファイルを処理し、第2の結果項目を生成することを含む。第2の結果項目は、第1の結果項目とは異なる。ツールのシーケンスのサブセットは、特定のツールから始まる。
【0008】
非一時的コンピュータ可読メモリの一実施形態は、実行可能なコンピュータプログラム指令を格納する。指令は、動作を実行するために実行可能である。動作は、ツールのシーケンスを含む分析ワークフローを受信することを含む。シーケンス内の各ツールは、データ分析機能を実行するように適合されている。対話要素は、シーケンス内の特定のツールに関連付けられ、特定のツールの動作を修正するためのユーザー入力を受信するように適合される。動作はさらに、ツールのシーケンスを使用してデータファイルを処理し、第1の結果項目を生成することを含む。第1の結果項目は、データファイルの処理の結果を表す。動作はさらに、特定のツールのメタデータファイルを格納することを含む。メタデータファイルは、データファイルの処理中に特定のツールのデータ分析機能の実行から特定のツールによって生成されたデータを含む。動作は、特定のツールに関連付けられた対話要素を介して、ユーザー入力を受信することをさらに含む。動作は、ユーザー入力を受信することに応答して、特定のツールのメタデータファイルを検索することをさらに含む。動作はまた、ツールのシーケンスのサブセット及びユーザー入力を使用して特定のツールのメタデータファイルを処理し、第2の結果項目を生成することを含む。第2の結果項目は、第1の結果項目とは異なる。ツールのシーケンスのサブセットは、特定のツールから始まる。
【0009】
図1は、一実施形態によるデータ分析システム110を含むデータ分析環境100を示すブロック図である。環境100は、ネットワーク130を介してデータ分析システム110に接続された複数のデータソース120をさらに含む。図示された環境100は、複数のデータソース120に結合された1つのデータ分析システム110のみを含むが、実施形態は、複数のデータ分析システム及び単一のデータソースを有することができる。
【0010】
データ分析システム110は、大量のデータを処理するために利用されるコンピュータベースのシステムである。データは、ネットワーク130を介して複数のデータソース120から収集、集約され、又は他の方法でアクセスされる。データ分析システム110は、多種多様なデータソースからのデータ処理タスクに採用されるスケーラブルなソフトウェアツール及びハードウェアリソースを実装することができる。データ処理タスク(タスク又はデータ分析タスクとも呼ばれる)は、データを処理するためのコンピューティング動作である。データ処理タスクは、例えば、データへのアクセス、データの準備、データのブレンド、データのパッケージング、データの分析、データに対する他のタイプの動作、又はそれらの組み合わせを含む。データ分析システム110は、複数のタスクを並行して実行することができる。利用可能なコンピュータリソース(例えば、メモリ)を有する場合、データ分析システム110は、実行可能な複数のタスクから実行するタスクを選択することができる。
【0011】
図1の実施形態では、データ分析システム110は、メモリ140とデータ分析アプリケーション150とを含む。メモリ140は、データ分析動作で使用されるデータを格納し、データ格納領域へのアクセスを提供する。いくつかの実施形態では、メモリ140は、ランダムアクセスメモリ(RAM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、他の形態のコンピュータメモリ、又はそれらの組み合わせを含む。いくつかの実施形態では、メモリ140は、比較的小さいデータ格納領域への比較的高速なアクセスを提供する一次メモリ140と、比較的大きいデータ格納領域への比較的低速なアクセスを提供する二次メモリ150とを含む。
【0012】
データ分析アプリケーション150は、
図2に示されるワークフローのようなワークフローを使用することでデータ分析タスクの実行をサポートする、ソフトウェアアプリケーションである。ワークフロー(「分析ワークフロー」とも呼ばれる)は、データ分析タスクが開始(例えば、データファイルの入力)から完了(例えば、タスクの結果の出力)まで通過するデータ処理ツール(ツールとも呼ばれる)のシーケンスである。シーケンス内の各ツールは、入力、出力、準備、結合、予測、空間、調査、解析、変換など、特定の処理動作又はデータ分析機能を実行する。ワークフローの実行は、ワークフロー内のツールの動作を含み、タスクの結果を表す結果項目を生成する。結果項目は、一例では、タスクの結果の視覚的表現を提供するチャートである。
【0013】
データ分析アプリケーション150は、ワークフローの作成を容易にする環境を提供する。例えば、データ分析アプリケーション150は、データ分析アプリケーション150のGUIによってサポートされる視覚的ワークフロー環境を提供する。ビジュアルワークフロー環境は、ワークフローを設計するためにソフトウェアコードを提供する必要性を排除し、ワークフローによって実装される複雑な数式を特定する必要性を排除する、一連のドラッグアンドドロップツールを可能にする。別の実施形態では、ワークフロー200は、拡張可能マークアップ言語(XML)文書などの文書で作成され、記述される。
【0014】
この環境は、対話型ワークフローの作成も容易にする。対話型ワークフローは、ワークフロー内の特定のツールと結合された対話要素を含むワークフローである。データ分析アプリケーション150は、特定のツールのデータ分析機能に基づいて対話要素を生成する。データ分析アプリケーション150は、対話要素を特定のツールに関連付けるか、又は対話要素を特定のツールに先行する新しいツールとしてワークフローに追加することにより、対話要素を特定のツールに適用する。対話型ワークフローは、ユーザー入力なしで実行することも、ユーザー入力なしで実行することも、異なるユーザー入力で実行することもできる。
【0015】
いくつかの実施形態では、対話型ワークフローの実行により、インターフェースアイコンと結果項目が生成される。インターフェースアイコンは、対話要素によって定義され、対話要素と通信する。インターフェースアイコンは、ユーザー入力を受信し、ユーザー入力を対話要素に送信するように適合される。説明のために、ワークフローのフィルターツールと結合された対話要素を例にとると、対話要素は、ユーザーが日付を選択するためにクリックすることを可能にするクリック可能なボタンとしてインターフェースアイコンを定義する。対話要素は、フィルタリングパラメータとしてユーザーによって選択された日付を使用することにより、フィルターツールの動作を操作するように適合される。この例では、ワークフローの結果項目は、異なる日付のデータを示すチャートである。チャートは、日付に対応するクリック可能なアイコンを含む。特定の日付のデータに関心のあるユーザーは、チャート内の対応するクリッカ可能なアイコンをクリックすることができる。ユーザーのクリックは対話要素に送信される。対話要素は、特定の日付をフィルターツールに送信し、フィルターツールがユーザーによって選択された特定の日付に基づいてデータをフィルタリングするように、フィルターツールの動作を変更する。
【0016】
データ分析アプリケーション150によって生成される対話型ワークフローは、ユーザーが、新しいワークフローを作成したり、ワークフローへのデータ入力を変更したりすることなく、単にインターフェースアイコンと相互作用することによって、データ処理結果を操作することを可能にするので有利である。このような対話型ワークフローは、単に実行して終了するわけではない。その代わりに、ユーザーがインターフェースアイコンと相互作用することによって再実行され、ユーザーの相互作用に基づいて新しい結果を生成することができる。このように、データ分析アプリケーション150は、従来のデータ分析技術と比較して、より便利で効率的なデータ分析ツールを提供する。
【0017】
さらに、データ分析アプリケーション150は、データ処理タスクにおける対話型ワークフローの効率を最適化するために、対話型ワークフローの別の実行のために、対話型ワークフローの実行中に生成されたデータを再利用することができる。対話型ワークフローは、1つ又は複数の対話型ツールを含む。対話型ツールは、ユーザー入力を受信するように適合され、ツールに基づいてツールの動作を修正する対話要素に関連付けられたツールである。例えば、対話要素は、ユーザー入力を受信することに応答して、ユーザー入力を、ツールがデータを処理するためのパラメータとしてツールに送信することができる。データ分析アプリケーション150は、対話型ワークフローの実行中に生成されたメタデータファイルをキャッシュする。対話型ワークフローの実行は、対話型ワークフロー内のツールのシーケンスを使用することによるデータファイルの処理を含み、データ処理の結果を表す結果項目を生成する。各メタデータファイルは、データファイルの処理中に対話型ツールのデータ分析機能の実行から対話型ツールによって生成されたデータを含む。対話型ワークフロー内の対話型ツールに関連付けられた対応する対話要素を介して、ユーザー入力を受信することに応答して、データ分析アプリケーション150は、対話型ツールのメタデータファイルを検索し、ユーザー入力に基づいてワークフローの一部を再実行するためにメタデータファイルを使用する。例えば、データ分析アプリケーション150は、ツールのシーケンスのサブセットを特定し、このサブセットは、例えば、対話型ツールから始まり、シーケンスにおいて対話型ツールに後続するツールを含む。データ分析アプリケーション150は、サブセット内のツール及びメタデータファイルを使用して、新しい結果項目を生成する。新しい結果項目は、前の結果項目とは異なり、ユーザー入力に基づいてデータファイルを処理した結果を表す。
【0018】
このような手法により、データ分析アプリケーション150は、以前のデータ処理タスクからのデータ(すなわち、メタデータファイル)を再利用し、ユーザー入力によってトリガーされる後続のデータ処理タスクのために、(ワークフロー内のすべてのツールではなく)ツールのサブセットを実行することができる。したがって、データ分析アプリケーション150は、ユーザー入力に基づいてデータファイルを処理するために必要なコンピューティングパワー及び時間を節約するという技術的利点を提供する。
【0019】
さらに、データ分析アプリケーション150は、統合されたキャッシングを対話型ワークフローに関連付けることができる。対話型ワークフロー内の各対話型ツールは、ツールのメタデータファイルを格納する別個のキャッシュと関連付けられる。対話型ツールのメタデータファイルにアクセスするために、データ分析アプリケーション150は、対話型ツールに基づいて対応するキャッシュを特定し、特定されたキャッシュからメタデータファイルを取得することができる。通常、外部データソース又はソリッドステートドライブ(SSD)ストレージからデータファイルを取得する従来技術と比較して、データ分析アプリケーション150は、クエリ及びデータ受信の待ち時間を短縮する。また、データ分析アプリケーション150は、非対話型ツール、すなわち対話要素に関連しないツールによって生成されたメタデータをキャッシュしないことによって、コンピューティングリソースを節約する。
【0020】
さらに、いくつかの実施形態において、データ分析アプリケーション150は、ツールの複数の分岐シーケンスを含む対話型ワークフローの作成を容易にする。対話要素は、ツールの分岐シーケンスの1つに入れられることができる。対話要素によって受信されたユーザー入力に対して、対話要素を含む分岐シーケンス内のツールのサブセットは、ユーザー入力を組み込んだ結果項目を生成するために再実行するが、他の分岐シーケンス内のツールの再実行は、コンピューティングパワー及び時間の消費をさらに低減するために回避されることができる。
【0021】
場合によっては、データ分析アプリケーション150は、複数のエンドユーザーに対するデータ分析ツール及びマクロへのネットワーク化された、又はクラウドベースのアクセスをサポートするソフトウェアを提供する。一例として、データ分析アプリケーション150は、ダッシュボード、ウェブアプリケーション、モバイルアプリケーションなどの方法でワークフローの作成をサポートする。別の例として、データ分析アプリケーション150は、モバイルアプリケーションストア又は他のクラウドベースのサービスと同様の方法で、ユーザーが分析を共有、閲覧、及び消費することを可能にする。分析データ、マクロ及びワークフローは、例えば、データ分析システム110の他のユーザーがアクセスできる、より小規模でカスタマイズ可能な分析アプリケーション(すなわち、アプリ)としてパッケージ化され、実行されることができる。場合によっては、公開された分析アプリへのアクセスは、データ分析システム110によって管理されることができ、すなわち、アクセスを許可又は取り消すことができ、それによって、アクセス制御及びセキュリティ機能を提供することができる。データ分析アプリケーション150は、作成、デプロイ、公開、反復、更新などの分析アプリに関連する機能を実行することができる。
【0022】
さらに、データ分析アプリケーション150は、アクセス、準備、ブレンド、分析、及び分析結果の出力の能力など、データ分析に関与する様々な段階で実行される機能をサポートすることができる。場合によっては、データ分析アプリケーション150は、様々なデータソースにアクセスし、例えば、データのストリームで生データを取得することができる。データ分析アプリケーション150によって収集されたデータストリームは、生データの複数のレコードを含むことができ、生データは異なるフォーマット及び構造である。少なくとも1つのデータストリームを受信した後、データ分析アプリケーション150は、データストリームのレコードをデータ分析動作への入力として使用できるようにする動作を実行することができる。さらに、予測分析(例えば、予測モデリング、クラスタリング、データ調査)など、レコードの統計的、定性的、又は定量的処理に関与する分析機能は、データ分析アプリケーション150によって実装され得る。
【0023】
上述のように、データソース120は、データ分析システム110に電子データを提供する。データソース120は、コンピュータ、データベース、又はクラウドストレージシステムであり得る。データソース120はまた、別のソースからデータを取得することができるコンピュータシステムであってもよい。データソース120は、データ分析システム110から遠隔であってもよく、ネットワーク130を介してデータを提供し得る。さらに、一部又は全てのデータソース120は、データ分析システムに直接結合され、ネットワーク130を介してデータを通過させることなくデータを提供することができる。データソース120が提供するデータは、通常、データレコードに編成され、各データレコードは、1つ又は複数の値を含む。例えば、データソースによって提供されるデータレコードは、一連のカンマ区切りの値を含み得る。データは、データ分析システムを使用する企業に関連する情報を記述する。例えば、データソース120からのデータは、ウェブサイト及び/又はソーシャルメディアアプリケーションでアクセス可能なコンテンツとのコンピュータベースの相互作用(例えば、クリックトラッキングデータ)を記述することができる。
【0024】
ネットワーク130は、データ分析システム110とデータソース120との間の通信経路を表す。一実施形態では、ネットワーク130はインターネットであり、標準的な通信技術及び/又はプロトコルを使用する。ネットワーク130を介して交換されるデータは、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)などを含む技術及び/又はフォーマットを使用して表現することができる。別の実施形態では、エンティティは、上述のものに代えて、又はこれに加えて、カスタム及び/又は専用のデータ通信技術を使用することができる。
【0025】
図2は、一実施形態による、データを処理するためにデータ分析システム110を使用して作成されたワークフロー200を示すブロック図である。ワークフロー200は、データ分析システム110のコンピュータ装置によって実行される。しかしながら、他の実施形態では、ワークフロー200は、ネットワーク(例えば、ネットワーク130)を介して、データ分析システム110に通信可能に接続され得る別のコンピュータ装置に展開される。
【0026】
ワークフローは、特定の処理動作又はデータ分析機能を実行する一連のツールを含むことができる。ツールは順番に配置される。一般的な例として、ワークフローのツールは、入力/出力、準備、結合、予測、空間、調査、及び解析及び変換動作のうちの1つ又は複数のデータ分析機能を実行することができる。ワークフローの実装は、データがワークフロー内の各ツールに渡され、各ツールが受信したデータに対してそれぞれの処理動作を実行する、データ分析プロセスの定義、実行、自動化を含むことができる。個々のレコードの集約グループを含むレコードをワークフローのツールに渡すことで、個々の処理動作がデータに対してより効率的に動作できるようになる。このようなデータ集約技術により、大量のデータを処理する場合でも、ワークフローの開発及び実行速度を向上させることができる。ワークフローは、繰り返し可能な一連の動作を定義、又はその他の方法で構造化し、指定されたツールの動作シーケンスを指定することができる。場合によっては、ワークフローに含まれるツールは、直線的な順序で実行される。他のケースでは、複数のツールを並行して実行することができる。
【0027】
図示されているように、
図2のワークフロー200は、入力ツール205及び206として図示されている入力/出力ツールと、ブラウズツール230とを含む。入力ツール205及び206は、特定のデータソース120からレコードにアクセスするように機能する。入力ツール205及び206は、アクセスされたレコードをワークフローに取り込み、ワークフロー200の後続ツールにレコードを提供する。この例では、入力ツール205はアクセスされたレコードをフィルターツール210に提供し、入力ツール206はアクセスされたレコードを選択ツール211に提供する。ブラウズツール230は、ワークフロー200の最後に位置し、ワークフロー200の各上流ツールの実行結果の出力を受信する。この例では、ブラウズツール230はワークフロー200の末尾に配置されているが、ブラウズツール230は、ワークフローの上流ツールの実行結果をレビュー及び検証するために、ワークフローの任意の時点で追加することができる。
【0028】
図2の例を続けると、ワークフロー200は、フィルターツール210、選択ツール211、数式ツール215、及びサンプルツール212として示される準備ツールを含む。フィルターツール210は、式に基づいてレコードを照会し、式を満たすレコードを含む真のストリームと、式を満たさないレコードを含む偽のストリームの2つのストリームにデータを分割する。選択ツール211は、フィールドの選択、選択解除、並べ替え、名前の変更、フィールドのタイプ又はサイズの変更、説明の割り当てに使用できる。数式ツール215は、1つ又は複数の式を使用してフィールドを作成又は更新し、多種多様な計算及び/又は動作を実行する。サンプルツール212は、受信したレコードのストリームを、レコードの数、パーセンテージ、又はランダムセットに制限する。
【0029】
ワークフロー200は、複数のデータソースをブレンドする結合ツール220も含む。具体的には、結合ツール220は、共通のフィールド(又はレコード位置)に基づいて2つの入力データストリームを結合する。
図2のワークフロー200はまた、さらなる分析で使用されるフォーマットにデータを再構築及び再形成できる解析及び変換ツールである要約ツール225を含むことが示されている。要約ツール225は、グループ化、合計、計数、空間処理、及び文字列連結によるデータの要約も実行できる。一実施形態では、要約ツール225によって生成される出力には、計算結果が含まれる。
【0030】
いくつかの実施形態では、ワークフロー200の実行により、入力ツール205は、すべてのレコードが処理されて結合ツール220に到達するまで、フィルターツール210及び数式ツール215を介してレコードを一度に1つずつ通過させる。その後、入力ツール206は、レコードが同じ結合ツール220に渡されるまで、選択ツール211及びサンプルツール212を通してレコードを一度に1つずつ渡し始める。ワークフロー200の個々のツールの中には、データの最後のブロックを処理している間にデータのブロックの読み取りを開始したり、ソートツールのようなコンピュータ集約的な動作を複数の部分に分割したりするなど、独自の並列動作を実装するものもある。
【0031】
図3は、一実施形態によるデータ分析アプリケーション300を示すブロック図である。データ分析アプリケーション300は、対話型ワークフローの作成及び実行を容易にする。データ分析アプリケーション300は、
図1のデータ分析アプリケーション150の実施形態である。
図3の実施形態では、データ分析アプリケーション300は、データ受信モジュール310、ツールモジュール320、対話要素モジュール330、及びワークフロー実行モジュール340、ならびに複数のキャッシュ360を含む。当業者であれば、他の実施形態が、ここで説明したものとは異なる及び/又は他のコンポーネントを有し得ること、及び機能性が異なる方法でコンポーネント間に分散され得ることを認識するであろう。例えば、キャッシュ360は、データ分析アプリケーション300の一部ではなく、メモリ140などのデータ分析アプリケーション300に関連付けられたメモリに含まれ得る。
【0032】
データ受信モジュール310は、データソース、例えば、データソース120からデータファイルを受信し、データ分析アプリケーション300内の他のモジュールにデータファイルを提供する。一実施形態では、データ受信モジュール310は、
図2に示される入力ツール206などのデータ分析アプリケーション内のツール間のインターフェースとして機能する。別の実施形態では、データ受信モジュール310は存在せず、データ受信モジュール310の機能はツールによって実行される。
【0033】
ツールモジュール320は、ワークフローを作成するための一連のツールを提供する。各ツールは、特定のデータ分析機能を実行する。いくつかの実施形態では、ツールモジュール320は、
図2と併せて説明したワークフロー200に含まれるツールを提供する。ツールモジュール320の1つ又は複数のツールは、ワークフローのデータレコードを処理している間、並行して実行することができる。ツールは、複数の別個のスレッドとして実行されてもよく、各スレッドは、データ分析システム110のプロセッサの別個のコア上で動作する。例えば、結合ツールの一実施形態は、プロセッサの並列処理能力を活用するために、結合動作に関連付けられたタスクを複数のスレッドに分散する。ツールは、その動作を実行するためのタスクを作成する。ツールの動作には、1つ又は複数のタスクが含まれる。各タスクはツールのスレッドに割り当てられ、スレッドによって実行される。
【0034】
いくつかの実施形態では、ツールのセットは、ユーザインタフェース(例えば、GUI)で提供される。各ツールは、ツールのデータ分析機能を示すアイコンを有する。ユーザーインターフェースは、ユーザー、例えばワークフロー設計者がツールを選択し、ワークフローを作成するために選択されたツール間の関係(例えば、論理的関係又は逐次的関係)を定義することを可能にする。ユーザーインターフェースは、設計者がツールの機能を理解するのに役立つ、例えば、ツールのデータ分析機能を説明する情報を含む、各ツールの説明を提供することができる。
【0035】
対話要素モジュール330は、対話型ワークフローを作成するための対話要素を提供する。対話要素は、1つ又は複数のツールに適用可能であり、ツールに適用されると、対話要素は、ユーザー入力を受信し、ユーザー入力を使用してツールの動作を修正するように適合される。対話要素は、対話型ワークフローの実行を通じて生成されるインターフェースアイコンを定義し、インターフェースアイコンを通じてユーザー入力を受信する。対話要素は、ツール及び/又はワークフロー内の他のツールの動作を操作する。対話要素は、ユーザー入力を受信するための様々なタイプのインターフェースアイコンをサポートする。例示的なインターフェースアイコンには、チェックボックス、クリック可能なボタン、テキストフィールド、リストボックス、ドロップリスト、日付フィールドなどが含まれる。いくつかの実施形態では、1つの対話要素は、複数のインターフェースアイコンに対応する。
【0036】
いくつかの実施形態において、対話要素モジュール330は、ワークフロー内の特定のツールのデータ分析機能に基づいて、ワークフロー内の特定のツールのための対話要素を生成する。対話要素モジュール330は、ワークフロー内の特定のツールのデータ分析機能を分析し、分析に基づいて複数の候補対話要素から対話要素を選択する。例えば、対話要素モジュール330は、そのデータ分析機能を実行するための特定のツールの動作において使用されるパラメータを決定し、パラメータに基づいて対話要素を選択する。フィルターツールを例にとると、対話要素モジュール330は、ツールのデータ分析機能がデータのフィルタリングであり、ツールがその機能を実行するためにフィルタリングパラメータを必要とすることを決定する。決定に基づいて、対話要素モジュール330は、ユーザーがフィルタリングパラメータを入力することを可能にする入力ボックスを定義する対話要素をツールのために生成する。いくつかの実施形態では、対話要素モジュール330は、ツールによって処理されるデータファイルに基づいて対話要素をさらに生成する。フィルターツールの例では、対話要素モジュール330は、データファイルが複数の変数を含むことを決定する。対話要素モジュール330は、データファイル内の変数を特定し、変数を含むドロップダウンリストを定義する対話要素を生成する。ユーザーは、フィルタリングパラメータとしてフィルターツールによって使用される変数をドロップダウンリストから選択することができる。
【0037】
他のいくつかの実施形態では、対話要素モジュール330は、複数の対話要素候補を、例えばGUIにおいてワークフロー設計者に提供し、ワークフロー設計者から対話要素候補からの対話要素の選択を受信する。各対話要素の候補は、その対話要素によってサポートされる対話のタイプを示す記号又は説明を有することができる。ワークフロー設計者は、対話要素のシンボル又は説明に基づいて、候補対話要素から対話要素をドラッグすることができる。ユーザーインターフェースはまた、ワークフロー設計者が対話要素とツールとの関係を定義することを可能にする。例えば、対話要素をツールに接続して、対話要素をツールと関連付けることによって、又は対話要素をワークフロー内のツールに先行する新しいツールとしてワークフローに挿入することによって。
【0038】
いくつかの実施形態では、対話要素モジュール330によってサポートされるユーザーインターフェースと、ツールモジュール320によってサポートされるユーザーインターフェースとが統合される。例えば、ツール及び対話要素は、同じユーザーインターフェースにおいて提供される。ワークフロー設計者は、ツール及び対話要素のいずれかを選択し、それらの間の関係を定義することができる。このようなユーザーインターフェースにより、ワークフロー設計者は、新しい対話型ワークフローを作成することができ(例えば、ワークフローに別のツールを追加する前に、ワークフローにツールを追加し、ツールに対話要素を関連付ける)、又は既存のワークフローに対話要素を適用して、既存のワークフローを対話型にすることができる(例えば、ワークフロー内のツールの1つに対話要素を関連付ける前に、ワークフローを作成/検索する)。
【0039】
ワークフロー実行モジュール340は、ワークフロー(対話型ワークフローを含む)の実行及び再実行を容易にする。ワークフロー実行モジュール340は、データ受信モジュール310からデータファイルを受信し、データファイルをワークフローに送信する。ワークフローの実行は、データファイルを処理し、結果項目を生成する。ワークフロー実行モジュール340は、ワークフローによる後続のデータ処理のために、ワークフローの実行中に生成されたメタデータファイルを保存する。対話型ワークフローの場合、実行はまた、対話要素に対応するインターフェースアイコンを生成し、それを介してユーザー入力を受信することができる。インターフェースアイコンは、ユーザー入力を受信するように適合される。インターフェースアイコンは、チェックボックス、クリック可能なボタン、テキストフィールド、リストボックス、ドロップダウンリスト、日付フィールド等とすることができる。
【0040】
ワークフロー実行モジュール340は、ユーザー入力なしでデータファイルを処理するための対話型ワークフローを最初に実行する。対話型ワークフローの最初の実行は、対話型ワークフロー内のツールのシーケンスによるデータファイルの処理結果を表す最初の結果項目を生成する。ワークフロー実行モジュール340は、ユーザーに表示するための第1の結果項目を提供する。データファイルの処理中、シーケンス内の各ツールは、そのデータ分析機能を実行することからツールによって生成されたデータを含むメタデータファイルを生成し得る。ワークフロー実行モジュール340は、対話型ワークフロー内の対話型ツールを特定し、各対話型ツールのメタデータファイルを格納する。例えばフィルタリングパラメータに基づいてデータを選択するように適合されたフィルターツールを例にとると、フィルターツールのためのメタデータファイルは、フィルターツールが、例えば、ワークフロー内の別のツールからフィルターツールによって受信されたデータにフィルタリングパラメータを適用した後に、フィルターツールによって選択されたデータを含む。ワークフロー実行モジュール340は、対話型ツールのメタデータファイルをキャッシュ350(個々にキャッシュ350と呼ぶ)に保存する。各キャッシュ350は、対話型ワークフロー内のそれぞれの対話型ツールに対応し、それぞれの対話型ツール用のメタデータファイルを保存する。いくつかの実施形態では、非対話型ツール用のメタデータファイルは、たとえそのようなツールによって生成されたとしても、キャッシュされない。
【0041】
対話型ワークフローの最初の実行は、インターフェースアイコンも生成する。インターフェースアイコンは、ユーザー入力を受信し、ユーザー入力を対話要素に送信し、ユーザー入力に基づいてデータファイルを再処理するためのワークフローの再実行をトリガーする。ユーザー入力の受信に応答して、ワークフロー実行モジュール340は、対話型ツールのメタデータファイルを検索する。例えば、ワークフロー実行モジュール340は、対話要素に基づいて対話型ワークフローから対話型ツールを特定する。次に、ワークフロー実行モジュール340は、対話型ツールの特定に基づいてメタデータファイルを特定する。いくつかの実施形態において、ワークフロー実行モジュール340は、異なるツールのためのメタデータファイルを別々のキャッシュに格納し、各キャッシュはそれぞれのツールに対応する。ワークフロー実行モジュール340は、対話型ツールに対応するキャッシュを特定し、特定されたキャッシュから対話型ツール用のメタデータファイルを取得することができる。
【0042】
ワークフロー実行モジュール340はまた、ユーザー入力に基づいて、データファイルを再処理するために再実行されるツールのシーケンスのサブセットを特定する。シーケンスのサブセットは、対話型ツールから始まり、対話型ワークフロー内の1つ又は複数の他のツールを含み得る。いくつかの実施形態では、ツールのシーケンスは複数の分岐シーケンスを含む。各分岐シーケンスは、異なるツールのコレクションを有し、したがって、異なる処理を実行し、異なる結果項目を生成する。異なるブランチシーケンスは、1つ又は複数の同じツールを含んでもよい。ワークフロー実行モジュール340は、ツールのどの分岐シーケンスが対話型ツールを含むかを決定し、決定に基づいてサブセット内の他のツールを特定する。例えば、第1の分岐シーケンスが対話型ツールを含むと決定することに応答して、ワークフロー実行モジュール340は、対話型ツール自体及び第1の分岐シーケンスの対話型ツールに後続するツールをサブセットに追加する。ワークフロー実行モジュール340が、対話要素に関連付けられたツールを含む複数の分岐シーケンスを特定する実施形態において、ワークフロー実行モジュール340は、特定された特定シーケンスの各々において対話型ツールに後続するツールをサブセットに追加する。
【0043】
ワークフロー実行モジュール340は、ツールのシーケンスのサブセット及びユーザー入力を使用してメタデータファイルを処理し、第2の結果項目を生成する。第2の結果項目は、ユーザー入力に基づいてデータファイルを処理した結果を表し、第1の項目とは異なる。いくつかの実施形態において、ワークフロー実行モジュール340は、第1の結果項目の代替として、又は第1の結果項目とは別に、第2の結果項目をユーザーに表示するために提供する。
【0044】
いくつかの実施形態では、ワークフロー実行モジュール340は、エラーメッセージ、データ処理のステータスなど、ワークフローの実行中に生成された他の情報も記録する。いくつかの実施形態において、ワークフロー実行モジュール340は、ワークフロー設計者がワークフローをテストすることができるプレビューモードを促進する。プレビューモードは、実際の実行中にワークフローがどのように機能するかを記述する。
【0045】
図4は、一実施形態によるデータ分析アプリケーション150を使用して作成された対話型ワークフロー400を示す概略図である。対話型ワークフロー400は、データファイルを処理し、処理の結果を表す結果項目を生成する。
図5A-Fは、一実施形態による対話型ワークフロー400によって生成された結果項目510、520、530、540、550、及び560を示している。
【0046】
対話型ワークフロー400は、ユーザー入力を受信し、ユーザー入力に基づいて結果項目を更新することができる。対話型ワークフロー400は、2つの分岐シーケンスを形成するツールのシーケンスを有する。第1の分岐シーケンスには、入力ツール410、結合ツール415、フィルターツール420、数式ツール460及びブラウズツール470が含まれる。第2の分岐シーケンスには、入力ツール410、結合ツール415、フィルターツール420、数式ツール430、別のフィルターツール440、及びブラウズツール450が含まれる。他の実施形態では、対話型ワークフロー400は、異なるツール及び/又はより多くの対話要素を含むことができる。
【0047】
入力ツール410、結合ツール415、及びフィルターツール420は、第1及び第2の分岐シーケンスの両方にある。入力ツール410は、例えば、
図1に示されるデータソース120からデータファイルを受信する。入力ツール410は、データファイルを結合ツール430に送信し、結合ツール430は、データファイルを新しいデータファイルに結合する。フィルターツール420は、1つ又は複数のフィルタリングパラメータに基づいて新しいデータファイル内のデータをフィルタリングし、フィルタリングされたデータを生成する。いくつかの実施形態では、フィルターツール420は、対話要素480を介してフィルタリングパラメータを受信する。フィルターツール420は、インターフェースモジュール483及びアクションモジュール487を含む対話要素480と結合される。インターフェースモジュール483は、ユーザーがフィルタリングパラメータを提供するために相互作用できるインターフェースアイコンを定義する。例えば、インターフェースモジュール483は、インターフェースアイコンが、入力ボックス、クリック可能なボタン、ドロップダウンリスト、又はフィルタリングパラメータを提供するためにユーザーが相互作用できる他のタイプのアイコンであることを指定する。インターフェースモジュール483は、インターフェースアイコンと通信し、インターフェースアイコンからユーザーによって提供されたフィルタリングパラメータを受信する。インターフェースモジュール483がフィルタリングパラメータを受信することに応答して、アクションモジュール487は、フィルタリングパラメータをフィルタリングツール420に供給し、フィルタリングパラメータに基づいてフィルタリングツール420の動作をトリガーする。
【0048】
フィルターツール420は、第1の分岐シーケンスにおいて、フィルタリングされたデータを数式ツール460に送る。数式ツール460は、数式に基づいて第1の新しいデータを生成し、第1の新しいデータをブラウザツール470に送る。ブラウザツール470は、
図5Aに示す結果項目510を生成する。結果アイテム510は、第1の新しいデータの少なくとも一部を表す。結果項目510は、複数のバーを含むチャートである。各バーは、対応する曜日にアプリケーションが何回ダウンロードされたかを示している。結果項目510は、インターフェースモジュール483に対応するインターフェースアイコン513に関連付けられている。
図5Aの実施形態では、インターフェースアイコン513は入力ボックスであり、ユーザーはこれを通じてテキスト文字列を入力することができる。テキスト文字列は、対話要素480への入力である。
図5Aでは、インターフェースアイコン513は、結果項目510とは別個である。しかしながら、他の実施形態では、インターフェースアイコン513を結果項目と一体化されることができる。また、結果項目510の各バーは、インターフェースモジュール493に対応するインターフェースアイコン515である。各インターフェースアイコン515は、ユーザーが対応する曜日を選択するためにクリック可能である。ユーザーの曜日選択は、対話要素490への入力となる。
【0049】
フィルターツール420はまた、フィルタリングされたデータを、第2の分岐シーケンスの数式ツール430に送信する。数式ツール430は、数式を使用することによって、フィルタリングされたデータを第2の新しいデータに変換する。新しいデータは次に、フィルタリングパラメータに基づいてフィルタリングされた第2の新しいデータを生成するフィルターツール440に送信される。フィルターツール440は、フィルターツール420と同様に、インターフェースモジュール493及びアクションモジュール497を含む対話要素490と関連付けられている。対話要素490は、フィルターツール440の動作を変更するためのユーザー入力を受信するように適合されている。ブラウズツール450は、数式ツール430からフィルタリングされた第2の新しいデータを受信し、フィルタリングされた第2の新しいデータを表す、
図5Bに示される結果項目520を生成する。結果項目520は複数の曲線を含む。各曲線は、結果項目510に示される曜日に対応し、対応する曜日にアプリケーションが4種類のクライアントデバイスのそれぞれに何回ダウンロードされたかを示している。
図5Bの実施形態では、結果項目520は、インターフェースアイコンと関連付けられていない。他の実施形態では、結果項目520は、対話要素490のインターフェースモジュール493に対応するインターフェースアイコンに関連付けられてもよい。
【0050】
フィルターツール420によって生成されたフィルタリングされたデータ、数式ツール460によって生成された第1の新しいデータ、数式ツール430によって生成された第2の新しいデータ、及びフィルターツール440によって生成されたフィルタリングされた第2の新しいデータは、ツールのメタデータファイルとしてキャッシュされる。メタデータファイルは、対話要素480及び490へのユーザー入力に基づいてデータファイルを再処理するために再利用することができる。
【0051】
図5Cでは、ユーザーはインターフェースアイコン513を通じて平日を選択する。対話要素480は、インターフェースアイコン513を介してユーザーの選択を受信する。対話要素480は、第1及び第2の分岐シーケンスの両方に含まれるフィルターツール420に関連付けられているため、2つの分岐シーケンスのそれぞれの一部が再実行され、ユーザー入力に基づいてデータファイルを処理した結果を表す新しい結果項目が生成される。第1の分岐シーケンスでは、フィルターツール420のためのメタデータファイルが検索され、フィルターツール420に入力され、フィルターツールが、例えば、ユーザーの選択をフィルタリングパラメータとして使用してメタデータファイルをフィルタリングすることにより、ユーザーの選択に基づいてメタデータファイルを処理する。次に、数式ツール460及びブラウズツール470が再実行され、結果項目530を生成する。この結果項目530は、ユーザーが選択した平日にアプリケーションが何回ダウンロードされたかを示す。第2の分岐シーケンスでは、フィルターツール420用のメタデータファイルが取得され、フィルターツール420に入力され、フィルターツールがユーザーの選択に基づいてメタデータファイルを処理する。次に、数式ツール430、フィルターツール440、及びブラウズツール450が、ユーザー入力に基づいて再実行され、ユーザーによって選択された平日に対応する曲線を示す
図5Dの結果項目540を生成する。ユーザーによって選択されていない週末の日の曲線は、
図5Dには示されていない。前のデータファイルの処理で生成されたフィルターツール420用のメタデータファイルを使用することにより、入力ツール410と結合ツール415の動作が回避され、計算能力と時間が節約される。また、メタデータファイルはキャッシュされているため、データソースからデータファイルを再入力するよりも、メタファイルを取得する方が高速であり、さらに計算能力と時間を節約することができる。
【0052】
図5Eにおいて、ユーザーは、インターフェースアイコン515を介して結果項目510のバーをクリックし、日曜日という日を選択する。ユーザーの日曜日の選択は、対話要素490に送信される。対話要素490は、第1の分岐シーケンスには含まれるが第2の分岐シーケンスには含まれないフィルターツール440に関連付けられているため、第1の分岐シーケンスの一部が再実行され、日曜日に対応する曲線を示す
図5Fの結果項目550が生成される。他の曜日の曲線は、結果項目550には示されない。結果項目550を生成するために、最初の分岐シーケンスのどのツールも再実行されない。このように、1つのワークフローで複数の分岐シーケンスを使用することにより、それらのデータ分析タスクに必要でないツールの動作を回避して、特定のデータ分析タスクの効率をさらに向上させることができる。ワークフローの効率を最適化することができる。
【0053】
図6は、一実施形態による対話型ワークフロー600を生成するプロセスを示すフローチャートである。いくつかの実施形態において、プロセス600は、データ分析アプリケーション150によって実行されるが、プロセス600における動作の一部又は全部は、他の実施形態において他のエンティティによって実行され得る。いくつかの実施形態において、プロセス600における動作は、異なる順序で実行され、異なる及び/又は追加のステップを含むことができる。
【0054】
データ分析アプリケーション150は、分析ワークフロー610を受信する。分析ワークフローは、ツールのシーケンスを含む。シーケンス内の各ツールは、入力、出力、準備、結合、予測、空間、調査、解析、変換などのデータ分析機能を実行するように適合される。対話要素は、シーケンス内の特定のツールに関連付けられている。対話要素は、特定のツールの動作を修正するためのユーザー入力を受信するように適合されている。
【0055】
データ分析アプリケーション150は、ツールのシーケンスを使用してデータファイル620を処理し、第1の結果項目を生成する。第1の結果項目は、データファイルの処理の結果を表す。データ分析アプリケーション150は、特定のツールのメタデータファイル630を格納する。メタデータファイルは、データファイルの処理中に特定のツールのデータ分析機能の実行からシーケンス内の特定のツールによって生成されたデータを含む。いくつかの実施形態では、シーケンス内の1つ又は複数の追加ツールの各々は、追加ツールの動作を修正するためのユーザー入力を受信するように適合された追加統合要素と関連付けられる。各追加ツールについて、データ分析アプリケーション150は、データファイルの処理中に追加ツールのデータ分析機能の実行からシーケンス内の追加ツールによって生成されたデータを含むメタデータファイルを格納する。いくつかの実施形態において、データ分析アプリケーション150は、それぞれのそれぞれのメタデータファイルを別々のキャッシュに格納する。各キャッシュは、それぞれのツール、すなわち、キャッシュに格納されたメタデータファイルを生成したツールに対応する。
【0056】
データ分析アプリケーション150は、特定のツールに関連付けられた対話要素を介して、ユーザー入力640を受信する。いくつかの実施形態では、対話要素は、インターフェースアイコンを定義し、このインターフェースアイコンを介して、ユーザーは、分析ワークフローを操作するための入力を提供することができる。例えば、対話要素は、インターフェースアイコンからユーザー対話を受信し、ユーザー対話を特定のツールに送信し、ユーザー対話に基づいて特定のツールがデータ分析機能を実行するようにトリガーする。
【0057】
いくつかの実施形態において、データ分析アプリケーション150は、特定のツールのための対話要素を生成し、対話要素をツールに適用して分析ワークフローを更新する。一例では、データ分析アプリケーション150は、分析ワークフローにおけるツールのデータ分析機能に基づいて、複数の対話要素から対話要素を選択する。別の例では、データ分析アプリケーション150は、分析ワークフローにおけるツールのデータ分析機能に基づいて複数の対話要素を選択し、ユーザーが複数の対話要素から1つ又は複数の対話要素を選択するために、複数の対話要素をユーザーに提供する。データ分析アプリケーション150は、ユーザーによる対話要素の選択を受信する。
【0058】
ユーザー入力を受信することに応答して、データ分析アプリケーション150は、特定のツールのためのメタデータファイル650を検索する。データ分析アプリケーション150が、メタデータデータファイル及び追加のツールのための追加のメタデータファイルを別々のキャッシュに格納する実施形態において、データ分析アプリケーション150は、対話的要素に基づいて、ツールのシーケンスから特定のツールを識別する。データ分析アプリケーション150は、特定のツールに基づいて、特定のツールのためのメタデータファイルを格納するキャッシュを特定し、特定されたキャッシュから特定のツールのためのメタデータファイルを取得する。
【0059】
データ分析アプリケーション150は、ツールのシーケンスのサブセット及びユーザー入力を使用して、特定のツールのメタデータファイル660を処理し、第2の結果項目を生成する。第2の結果時間は、第1の結果項目とは異なる。ツールのシーケンスのサブセットは、特定のツールから始まり、シーケンス内の特定のツールに後続する1つ又は複数の他のツールを含み得る。いくつかの実施形態では、工具のシーケンスは、工具の第1の分岐シーケンスと、工具の第2の分岐シーケンスとからなる。特定のツールは、ツールの第1の分岐シーケンスにあるが、ツールの第2の分岐シーケンスにはない。データ分析アプリケーション150は、対話要素に基づいて、ワークフロー内のすべての分岐シーケンスから、第1の分岐シーケンス、すなわち、特定のツールを含む分岐シーケンスを特定する。メタデータファイルを処理するために使用されるツールのシーケンスのサブセットは、特定のツールと、ツールの第1のブランチシーケンスにおいて特定のツールに後続する別のツールとを含む。
【0060】
図7は、一実施形態による、
図1の機械学習サーバー110として使用するための典型的なコンピュータシステム700の機能図を示すハイレベルブロック図である。
【0061】
図示されたコンピュータシステムは、チップセット704に結合された少なくとも1つのプロセッサ702を含む。プロセッサ702は、同じダイ上に複数のプロセッサコアを含むことができる。チップセット704は、メモリコントローラハブ720及び入出力(I/O)コントローラハブ722を含む。メモリ706とグラフィックアダプター712がメモリコントローラハブ720に結合され、ディスプレイ718がグラフィックアダプター712に結合される。ストレージデバイス708、キーボード710、ポインティングデバイス714、及びネットワークアダプター716は、I/Oコントローラハブ722に結合されてもよい。いくつかの他の実施形態では、コンピュータシステム700は、追加の、より少ない、又は異なるコンポーネントを有してよく、コンポーネントは異なって結合されてよい。例えば、コンピュータシステム700の実施形態は、ディスプレイ及び/又はキーボードを欠いていてもよい。さらに、コンピュータシステム700は、いくつかの実施形態では、ラックマウントブレードサーバーとして、又はクラウドサーバーインスタンスとしてインスタンス化されてもよい。
【0062】
メモリ706は、プロセッサ702によって使用される指令及びデータを保持する。いくつかの実施形態では、メモリ706はランダムアクセスメモリである。ストレージデバイス708は、非一時的コンピュータ可読記憶媒体である。ストレージデバイス708は、HDD、SSD、又は他のタイプの非一時的コンピュータ可読記憶媒体とすることができる。機械学習サーバー110によって処理及び分析されたデータは、メモリ706及び/又はストレージデバイス708に格納されることができる。
【0063】
ポインティングデバイス714は、マウス、トラックボール、又は他のタイプのポインティングデバイスであってよく、コンピュータシステム700にデータを入力するためにキーボード710と組み合わせて使用される。グラフィックアダプター712は、画像及び他の情報をディスプレイ718に表示する。いくつかの実施形態では、ディスプレイ718は、ユーザー入力及び選択を受信するためのタッチスクリーン機能を含む。ネットワークアダプター716は、コンピュータシステム700をネットワーク170に接続する。
【0064】
コンピュータシステム700は、本明細書で説明する機能を提供するためのコンピュータモジュールを実行するように適合されている。本明細書で使用する場合、「モジュール」という用語は、指定された機能を提供するためのコンピュータプログラム指令及び他のロジックを指す。モジュールは、ハードウェア、ファームウェア、及び/又はソフトウェアで実装されることができる。モジュールは、1つ又は複数のプロセスを含むことができ、及び/又はプロセスの一部のみによって提供されることができる。モジュールは通常、ストレージデバイス708に格納され、メモリ706にロードされ、プロセッサ702によって実行される。
【0065】
コンポーネントの特定の命名、用語の大文字表記、属性、データ構造、又は任意の他のプログラミング又は構造的側面は、必須又は重要ではなく、記載された実施形態を実装する機構は、異なる名前、フォーマット、又はプロトコルを有し得る。さらに、システムは、説明されるように、ハードウェアとソフトウェアの組み合わせを介して実装されてもよく、完全にハードウェア要素で実装されてもよい。また、本明細書で説明される様々なシステムコンポーネント間の特定の機能分割は、単に例示的なものであり、必須ではない。単一のシステムコンポーネントによって実行される機能が、代わりに複数のコンポーネントによって実行されてもよく、複数のコンポーネントによって実行される機能が、代わりに単一のコンポーネントによって実行されてもよい。
【0066】
上記の説明のいくつかの部分は、アルゴリズム及び情報に対する動作の記号的表現の観点から特徴を提示している。これらのアルゴリズム記述及び表現は、データ処理技術の当業者が、当業者に最も効果的に仕事の内容を伝えるために使用する手段である。これらの動作は、機能的又は論理的に記述されているが、コンピュータプログラムによって実行されると理解される。さらに、一般性を損なうことなく、これらの動作の配置をモジュールとして、又は機能名で呼ぶことも、時には便利であることが証明されている。
【0067】
上記の議論から明らかなように、特に別段の記載がない限り、本明細書全体を通して、「処理」又は「コンピューティング」又は「計算」又は「決定」又は「表示」などの用語を使用する議論は、コンピュータシステムのメモリ又はレジスタ又は他のそのような情報記憶、伝送又は表示デバイス内の物理的(電子的)量として表されるデータを操作及び変換する、コンピュータシステム、又は同様の電子コンピューティング装置の作用及びプロセスを指すことが理解される。
【0068】
本明細書で説明される特定の実施形態は、アルゴリズムの形態で説明されるプロセスステップ及び指令を含む。実施形態のプロセスステップ及び指令は、ソフトウェア、ファームウェア、又はハードウェアで具現化される場合があり、ソフトウェアで具現化される場合、リアルタイムネットワークオペレーティングシステムによって使用される異なるプラットフォーム上に常駐し、そこから操作されるようにダウンロードされ得ることに留意されたい。
【0069】
最後に、本明細書で使用される文言は、主として可読性及び教示目的のために選択されたものであり、発明的主題を画定又は包囲するために選択されたものではない可能性があることに留意されたい。従って、実施形態の開示は、例示を意図しているが、限定を意図していない。
【国際調査報告】