IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アルテリックス インコーポレイテッドの特許一覧

特許7150214順次データブロックの非同期処理中のエラー対処
<>
  • 特許-順次データブロックの非同期処理中のエラー対処 図1
  • 特許-順次データブロックの非同期処理中のエラー対処 図2
  • 特許-順次データブロックの非同期処理中のエラー対処 図3
  • 特許-順次データブロックの非同期処理中のエラー対処 図4
  • 特許-順次データブロックの非同期処理中のエラー対処 図5
  • 特許-順次データブロックの非同期処理中のエラー対処 図6
  • 特許-順次データブロックの非同期処理中のエラー対処 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-29
(45)【発行日】2022-10-07
(54)【発明の名称】順次データブロックの非同期処理中のエラー対処
(51)【国際特許分類】
   G06F 11/34 20060101AFI20220930BHJP
   G06F 16/17 20190101ALI20220930BHJP
【FI】
G06F11/34 138
G06F16/17
【請求項の数】 14
(21)【出願番号】P 2022507427
(86)(22)【出願日】2020-06-30
(65)【公表番号】
(43)【公表日】2022-08-12
(86)【国際出願番号】 US2020040245
(87)【国際公開番号】W WO2021025810
(87)【国際公開日】2021-02-11
【審査請求日】2022-03-24
(31)【優先権主張番号】16/533,302
(32)【優先日】2019-08-06
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】519405569
【氏名又は名称】アルテリックス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】クリストファー エイチ.キングズリー
(72)【発明者】
【氏名】エドワード ピー.ハーディング ジュニア
【審査官】北川 純次
(56)【参考文献】
【文献】特開2010-170462(JP,A)
【文献】米国特許第6115544(US,A)
【文献】米国特許出願公開第2006/0277444(US,A1)
【文献】国際公開第2019/079190(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 16/17
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
データファイルのデータブロックを解析することであって、前記データファイルが、データブロックを含む前記データブロックのシーケンスと、前記シーケンス内の前記データブロックに先行する1つまたは複数の先行データブロックを含み、前記データブロックの解析は、前記1つまたは複数の先行データブロックの解析の前に行われる、ことと、
前記データブロックの前記解析中に発生する解析エラーを検出することと、
前記検出された解析エラーのエラーメッセージを生成することであって、前記生成されたエラーメッセージが前記データブロック内の前記検出された解析エラーの位置を示す未解決の位置情報を含む、ことと、
記1つまたは複数の先行データブロック析されたかどうかを決定することと、
記1つまたは複数の先行データブロックが解析されたという決定に応答して、前記データファイル内の前記検出された解析エラーの前記位置を示す解決された位置情報を生成することと、
格納されたエラーメッセージを前記解決された位置情報で更新して、更新されたエラーメッセージを生成することと、
前記データファイル内の前記検出された解析エラーの前記位置を示す前記解決された位置情報を含む前記更新されたエラーメッセージを出力することと、
を含む、コンピュータに実装された方法。
【請求項2】
前記検出された解析エラーのエラーメッセージを生成することであって、前記生成されたエラーメッセージが前記データブロック内の前記検出された解析エラーの位置を表す 未解決の位置情報を含む、ことは、
前記検出された解析エラーが発生する前記データブロック内の行を参照する行番号を決定することを含む、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の先行データブロックが解析されたかどうかを決定することは、
前記データブロックが、解析が完了していないシーケンス内の最小番号のデータブロックであるかどうかを決定することを含む、請求項に記載の方法。
【請求項4】
前記データファイル内の前記検出された解析エラーの前記位置を示す前記解決された位置情報を生成することは、
前記未解決の位置情報、前記データブロックの前記解析の結果、および前記1つまたは複数の先行データブロックの前記解析の結果に基づいて、前記解決された位置情報を生成すること、を含む請求項1に記載の方法。
【請求項5】
前記データファイル内の前記検出された解析エラーの前記位置を示す前記解決された位置情報を含む前記更新されたエラーメッセージを出力することは、
前記シーケンス内の前記データブロックに先行する1つまたは複数の追加データブロックの解析中に検出されたエラーの前記更新されたエラーメッセージおよび1つまたは複数の他のエラーメッセージを出力すること
を含む請求項1に記載の方法。
【請求項6】
実行可能なコンピュータプログラム命令を格納する非一時的コンピュータ可読メモリであって、
前記命令が、
データファイルのデータブロックを解析することであって、前記データファイルが、データブロックを含む前記データブロックのシーケンスと、前記シーケンス内の前記データブロックに先行する1つまたは複数の先行データブロックを含み、前記データブロックの解析は、前記1つまたは複数の先行データブロックの解析の前に行われる、ことと、
前記データブロックの前記解析中に発生する解析エラーを検出することと、
前記検出された解析エラーのエラーメッセージを生成することであって、前記生成されたエラーメッセージが前記データブロック内の前記検出された解析エラーの位置を示す未解決の位置情報を含む、ことと、
記1つまたは複数の先行データブロック析されたかどうかを決定することと、
記1つまたは複数の先行データブロックが解析されたという決定に応答して、前記データファイル内の前記検出された解析エラーの前記位置を示す解決された位置情報を生成することと、
格納されたエラーメッセージを前記解決された位置情報で更新して、更新されたエラーメッセージを生成することと、
前記データファイル内の前記検出された解析エラーの前記位置を示す前記解決された位置情報を含む前記更新されたエラーメッセージを出力することと、
含む操作を実行するように実行可能である、非一時的コンピュータ可読メモリ。
【請求項7】
前記検出された解析エラーのエラーメッセージを生成することであって、前記生成されたエラーメッセージが前記データブロック内の前記検出された解析エラーの位置を表す未解決の位置情報を含む、ことは、
前記検出された解析エラーが発生する前記データブロック内の行を参照する行番号を決定することを含む、請求項に記載の非一時的コンピュータ可読メモリ。
【請求項8】
前記1つまたは複数の先行データブロックが解析されたかどうかを決定することは、
前記データブロックが、解析が完了していないシーケンス内の最小番号のデータブロックであるかどうかを決定することを含む、請求項に記載の非一時的コンピュータ可読メモリ。
【請求項9】
前記データファイル内の前記検出された解析エラーの前記位置を示す前記解決された位置情報を生成することは、
前記未解決の位置情報、前記データブロックの前記解析の結果、および前記1つまたは複数の先行データブロックの前記解析の結果に基づいて、前記解決された位置情報を生成すること、を含む請求項に記載の非一時的コンピュータ可読メモリ。
【請求項10】
前記データファイル内の前記検出された解析エラーの前記位置を示す前記解決された位置情報を含む前記更新されたエラーメッセージを出力することは、
前記シーケンス内の前記データブロックに先行する1つまたは複数の追加データブロックの解析中に検出されたエラーの前記更新されたエラーメッセージおよび1つまたは複数の他のエラーメッセージを出力すること
を含む請求項6に記載の非一時的コンピュータ可読メモリ。
【請求項11】
データブロックを処理するためのコンピュータ実装のデータ分析システムであって、
コンピュータプログラム命令を実行するためのコンピュータプロセッサと、
データファイルのデータブロックを解析することであって、前記データファイルが、データブロックを含む前記データブロックのシーケンスと、前記シーケンス内の前記データブロックに先行する1つまたは複数の先行データブロックを含み、前記データブロックの解析は、前記1つまたは複数の先行データブロックの解析の前に行われる、ことと
前記データブロックの前記解析中に発生する解析エラーを検出することと、
前記検出された解析エラーのエラーメッセージを生成することであって、前記生成されたエラーメッセージが前記データブロック内の前記検出された解析エラーの位置を示す未解決の位置情報を含む、ことと、
前記1つまたは複数の先行データブロック解析されたかどうかを決定することと、
前記1つまたは複数の先行データブロックが解析されたという決定に応答して、前記データファイル内の前記検出された解析エラーの前記位置を示す解決された位置情報を生成することと、
格納されたエラーメッセージを前記解決された位置情報で更新して、更新されたエラーメッセージを生成することと、
前記データファイル内の前記検出された解析エラーの前記位置を示す前記解決された位置情報を含む前記更新されたエラーメッセージを出力することと、
を含む操作を実行するように前記コンピュータプロセッサによって実行可能なコンピュータプログラム命令を格納する非一時的コンピュータ可読メモリと、
を備えた、システム。
【請求項12】
前記検出された解析エラーのエラーメッセージを生成することであって、前記生成されたエラーメッセージが前記データブロック内の前記検出された解析エラーの位置を表す未解決の位置情報を含む、ことは、
前記検出された解析エラーが発生する前記データブロック内の行を参照する行番号を決定することを含む、請求項11に記載のシステム。
【請求項13】
前記1つまたは複数の先行データブロックが解析されたかどうかを決定することは、
前記データブロックが、解析が完了していないシーケンス内の最小番号のデータブロックであるかどうかを決定することを含む、請求項11に記載のシステム。
【請求項14】
前記データファイル内の前記検出された解析エラーの前記位置を示す前記解決された位置情報を生成することは、
前記未解決の位置情報、前記データブロックの前記解析の結果、および前記1つまたは複数の先行データブロックの前記解析の結果に基づいて、前記解決された位置情報を生成すること、を含む請求項11に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、順次データブロックの非同期処理中のエラー対処に関する。
【背景技術】
【0002】
説明される実施形態は、概して、コンピュータシステムでのデータの処理、特に、順次データブロックの非同期処理中のエラー対処に関係する。
【0003】
[関連技術の説明]
データ分析は、大規模なデータセットからビジネス価値のある情報を抽出することを含む。たとえば、小規模企業は、専用のコンピューティングおよび人的リソースを使用するサードパーティのデータ分析環境を利用して、外部データプロバイダー、内部データリソース(ローカルコンピュータ上のファイルなど)、ビッグデータストア、クラウドベースのデータ(ソーシャルメディアの情報など)のような、様々なソースからの膨大な量のデータを、収集、処理、および分析し得る。データ分析で使用されるそのような大規模なデータセットを、有用な定量的および定性的情報を抽出するやり方で処理することは、典型的に、強力なコンピュータプラットフォームに実装された複雑なソフトウェアツールを必要とする。
【0004】
加えて、効率的なデータ処理技術が、異なるデータソースからの大量のデータのセットにアクセス、処理、および分析するにために必要とされる。そうでなければ、パフォーマンスのボトルネックが発生し、データ分析プラットフォームの機能を妨げる、データの処理を遅延させる、ならびにデータから抽出される情報の品質を低下させる可能性がある。たとえば、エラー対処は重要な考慮事項である。エラー対処は、エラーの検出、ユーザへのエラーの報告、およびリカバリー計画の作成を含む。データ処理中に検出されたエラーの対処ミスは、データ分析プラットフォーム全体の遅延に繋がる可能性がある。
【発明の概要】
【0005】
上記およびその他の問題は、データ分析システムでの順次データブロックの非同期処理中のエラーに対処するための、方法、コンピュータ実装されたデータ分析システム、およびコンピュータ可読メモリで対処される。方法の実施形態は、データファイルを集合的に形成するデータブロックの順序付けられたセットのデータブロックを解析することを含む。方法は、データブロックの解析中に発生する解析エラーを検出することをさらに含む。方法は、検出された解析エラーのエラーメッセージを生成することをさらに含む。生成されたエラーメッセージは、データファイル内の検出された解析エラーの位置を表す未解決の位置情報を含む。方法はまた、未解決の位置情報をセット内の1つまたは複数の他のデータブロックの解析に応答して解決できるかどうかを決定することを含む。方法は、未解決の位置情報を解決できるという決定に応答して、データファイル内の検出された解析エラーの位置を示す解決された位置情報を生成することをさらに含む。方法は、格納されたエラーメッセージを解決された位置情報で更新して、更新されたエラーメッセージを生成することをさらに含む。方法は、データファイル内の検出された解析エラーの位置を示す解決された位置情報を含む更新されたエラーメッセージを出力することをさらに含む。
【0006】
コンピュータ実装のデータ分析システムの実施形態は、コンピュータプログラム命令を実行するためのコンピュータプロセッサを含む。システムはまた、操作を実行するコンピュータプロセッサによって実行可能なコンピュータプログラム命令を格納する非一時的コンピュータ可読メモリを含む。操作は、データファイルを集合的に形成するデータブロックの順序付けられたセットのデータブロックを解析することを含む。操作は、データブロックの解析中に発生する解析エラーを検出することをさらに含む。操作は、検出された解析エラーのエラーメッセージを生成することをさらに含む。生成されたエラーメッセージは、データファイル内の検出された解析エラーの位置を表す未解決の位置情報を含む。
【0007】
操作はまた、未解決の位置情報をセット内の1つまたは複数の他のデータブロックの解析に応答して解決できるかどうかを決定することを含む。操作は、未解決の位置情報を解決できるという決定に応答して、データファイル内の検出された解析エラーの位置を示す解決された位置情報を生成することをさらに含む。操作は、格納されたエラーメッセージを解決された位置情報で更新して、更新されたエラーメッセージを生成することをさらに含む。操作は、データファイル内の検出された解析エラーの位置を示す解決された位置情報を含む更新されたエラーメッセージを出力することをさらに含む。
【0008】
非一時的コンピュータ可読メモリの実施形態は、実行可能なコンピュータプログラム命令を格納する。命令は操作を実行するために実行可能である。操作は、データファイルを集合的に形成するデータブロックの順序付けられたセットのデータブロックを解析することを含む。操作は、データブロックの解析中に発生する解析エラーを検出することをさらに含む。操作は、検出された解析エラーのエラーメッセージを生成することをさらに含む。生成されたエラーメッセージは、データファイル内の検出された解析エラーの位置を表す未解決の位置情報を含む。操作はまた、未解決の位置情報をセット内の1つまたは複数の他のデータブロックの解析に応答して解決できるかどうかを決定することを含む。操作は、未解決の位置情報を解決できるという決定に応答して、データファイル内の検出された解析エラーの位置を示す解決された位置情報を生成することをさらに含む。操作は、格納されたエラーメッセージを解決された位置情報で更新して、更新されたエラーメッセージを生成することをさらに含む。操作は、データファイル内の検出された解析エラーの位置を示す解決された位置情報を含む更新されたエラーメッセージを出力することをさらに含む。
【図面の簡単な説明】
【0009】
図1図1は、一実施形態によるデータ分析システムを含むデータ分析環境を示すブロック図である。
図2図2は、データブロックとデータレコードとの間の例示的な関係を示す図である。
図3図3は、一実施形態によるデータを処理するためにデータ分析システムを使用して作成されたワークフローを示すブロック図である。
図4図4は、一実施形態によるデータ分析システムのデータ分析アプリケーションのより詳細な図を示すブロック図である。
図5図5は、一実施形態によるデータ分析アプリケーションのエラー管理モジュールのより詳細な図を示すブロック図である。
図6図6は、一実施形態による、データブロックの処理中に検出されたエラーを管理する方法を示すフローチャートである。
図7図7は、一実施形態によるデータ分析システムとして使用するための典型的なコンピュータシステムの機能図を示す高レベルのブロック図である。
【0010】
図は、説明のみを目的としたさまざまな実施形態を示している。当業者は、以下の議論から、本明細書に記載の実施形態の原理から逸脱することなく、本明細書に示される構造および方法の代替の実施形態を使用し得ることを容易に認識するであろう。さまざまな図面における同様の参照番号および指定は、同様の要素を示している。
【発明を実施するための形態】
【0011】
図1は、一実施形態によるデータ分析システム110を含むデータ分析の環境100を示すブロック図である。環境100は、データ分析システム110にネットワーク130を介して接続された複数のデータソース120をさらに含む。例示の環境100は、複数のデータソース120に結合された1つのデータ分析システム110のみを含むが、実施形態は、複数のデータ分析システムおよび単一のデータソースを有することができる。
【0012】
データソース120は、電子データをデータ分析システム110に提供する。データソース120は、ハードディスクドライブ(HDD)またはソリッドステートドライブ(SSD)などのストレージデバイス、複数のストレージデバイスへのアクセスを管理および提供するコンピュータ、ストレージエリアネットワーク(SAN)、データベース、またはクラウドストレージシステムであり得る。データソース120はまた、別のソースからデータを取り出すことができるコンピュータシステムであり得る。データソース120は、データ分析システム110からリモートあり、およびネットワーク130を介してデータを提供し得る。加えて、データソース120の一部またはすべてはデータ分析システムに直接結合され、ネットワーク130を介してデータを渡すことなく、データを提供し得る。
【0013】
データソース120によって提供されるデータは、典型的に、データレコードに編成され、各データレコードは1つまたは複数の値を含む。たとえば、データソース120によって提供されるデータレコードは、一連のコンマ区切り値を含み得る。データは、データ分析システム110を使用する企業に関連する情報を記述する。たとえば、データソース120からのデータは、ウェブサイト上でアクセス可能なコンテンツとの、および/またはソーシャルメディアアプリケーションとのコンピュータベースの相互作用(たとえば、クリック追跡データ)を記述できる。
【0014】
データ分析システム110は、大量のデータを処理および分析するために利用されるコンピュータベースのシステムである。データは、ネットワーク130を介して複数のデータソース120から回収(collect)、収集(gather)、またはそうでなければアクセスされる。データ分析システム110は、多種多様なデータソースからのデータへのアクセス、準備、ブレンド、および分析に使用されるスケーラブルなソフトウェアツールおよびハードウェアリソースを実装できる。たとえば、データ分析システム110は、データ集約型のプロセスおよびワークフローの実行をサポートする。データ分析システム110は、本明細書で説明される非同期データ処理技術を含むデータ分析機能を実装するために使用されるコンピューティングデバイスとすることができる。
【0015】
データ分析システム110は、データ分析アプリケーション140として図1に示される1つまたは複数のソフトウェアアプリケーションをサポートするように構成できる。データ分析アプリケーション140は、1つまたは複数のデータソース120から取得された大量のデータを処理および分析する。いくつかのケースでは、データ分析アプリケーション140は、複数のエンドユーザによるデータ分析ツールおよびマクロへのネットワーク、またはクラウドベースの、アクセスをサポートするソフトウェアを提供する。例として、データ分析アプリケーション140は、ユーザが、モバイルアプリケーションストアまたは他のクラウドベースのサービスと同様のやり方で、分析を共有、閲覧、および消費することを可能にする。分析データ、マクロ、およびワークフローは、たとえば、データ分析システム110の他のユーザがアクセスできる、より小規模およびカスタマイズ可能な分析アプリケーション(すなわち、アプリ)としてパッケージ化および実行できる。いくつかのケースでは、公開された分析アプリへのアクセスをデータ分析システム110によって管理、つまりアクセスを許可または削除する、ことができ、したがってアクセス制御およびセキュリティ機能を提供する。データ分析アプリケーション140は、作成、展開、公開、反復、更新などの分析アプリに関連付けられた機能を実行できる。加えて、データ分析アプリケーション140は、データ分析中に発生したエラーに対処する機能、分析結果にアクセス、準備、ブレンド、分析、および出力する機能など、データ分析に関与する様々な段階で実行される機能をサポートできる。
【0016】
データ分析アプリケーション140はまた、視覚的なグラフィカルユーザインターフェース(GUI)を介して、反復可能なワークフローを設計および実行するソフトウェアツールをサポートできる。例として、データ分析アプリケーション140に関連付けられたGUIは、データブレンド、データ処理、および高度なデータ分析のためのドラッグアンドドロップのワークフロー環境を提供する。さらに、ワークフローは、特定の処理操作またはデータ分析機能を実行する一連のデータ処理ツールを含むことができる。ワークフローの一部である各ツールは、ツールに固有のデータに関連する機能を実行する。例として、ワークフローは、入力/出力、準備、結合、予測、空間、調査、ならびに解析および変換操作、の1つまたは複数を含むさまざまなデータ分析機能を実装するツールを含むことができる。ワークフローに関する更なる詳細は、図3に関連して説明される。
【0017】
いくつかの実施形態では、GUIは、エラーに対処するための環境を提供する。たとえば、GUIは解析エラーのメッセージをオペレータに提示する。GUIはまた、オペレータが、メッセージへアクセスする、メッセージを編集する、解析エラーを分析する、解析エラーを修正するなどを可能にできる。
【0018】
データ分析アプリケーション140は、データのブロックをデータソース120から読み取る。たとえば、データ分析アプリケーション140は、SSDからのデータブロックの順序付けられたセットを含むデータファイルを読み取り得る。各データブロックは典型的には複数のデータレコードを含み、しばしばデータレコードの境界はデータブロックの境界と一致しない。したがって、データレコードは2つまたは複数の隣接するブロックにまたがり得る。
【0019】
データ分析アプリケーション140は、各データブロックを処理して、そこに含まれるデータレコードを抽出する。これらのデータレコードは、データ分析アプリケーション140によって実装されるデータ分析ワークフローによって処理される。一実施形態では、データ分析アプリケーション140は、並行して実行される複数のワーカースレッドを使用して、順次データブロックを非同期的に処理する。結果として、データブロックが順不同で処理さ得る。いくつかの実施形態では、データブロックは、順不同でデータ分析アプリケーション140に配信される。ワーカースレッドは、データブロックが来るとそれらの処理を開始する。したがって、シーケンスの後半のデータブロック(たとえば、第3のデータブロック)は、シーケンスの前半のデータブロック(たとえば、第1および第2のデータブロック)の前に処理され得る。
【0020】
データブロックの非同期処理は、エラー対処の問題を引き起こす。データ分析アプリケーション140は、データブロックの解析中に解析エラーを検出し得る。解析エラーの例は、認識されないコード、不適切な列区切り文字、非標準文字の検出、解析結果のための不十分なストレージ、データファイルの非互換性などを含む。データブロック内の解析エラーの相対的な位置が分かる(たとえば、エラーはブロック内の第4のレコードの最後で発生する)。しかし、エラーを含むデータブロックに先行する未解析のデータブロックがある場合、解析エラーが検出された時点で、データファイル内の解析エラー(たとえば、エラーはデータファイルの第10のレコードで発生する)の絶対位置を検出できない。したがって、データ分析アプリケーション140は、エラーの絶対位置を記述するエラーメッセージを出力できない。絶対的な位置の欠如は、人間のオペレータまたは自動化されたプロセスがエラーを見つけて修正することを困難にし、データ分析に遅延を発生させる。
【0021】
これらおよび他の困難を克服するために、データ分析アプリケーション140は、エラーの2つのタイプの位置情報を生成することによって、順次データブロックの非同期処理中に発生するエラーに対処する。データ分析アプリケーション140は、最初に、先行データブロックが処理されていないデータブロックの解析中に検出された解析エラーの未解決の位置情報を生成する。未解決の位置情報は、データブロック内のエラーの位置を示す行またはレコード番号など、データブロック内の解析エラーの相対的な位置を示す。いくつかの実施形態では、未解決の位置情報はまた、データブロックを参照するブロック番号を含むことができる。データ分析アプリケーション140は、未解決の位置情報を含むエラーメッセージをバッファ内に格納する。
【0022】
データ分析アプリケーション140は、先行データブロックが解析されたかどうか、および/またはいつ解析されたかを決定することによって、未解決の位置情報を解決できるかどうかをさらに決定する。これらのブロックが解析されると、データ分析アプリケーション140は、先行データブロックの解析結果を使用して、解析エラーの解決された位置情報を生成する。解決された位置情報は、解析エラーが発生したデータファイル内のレコードを参照する行番号またはレコード番号など、データファイル内の解析エラーの絶対的な位置を示す。データ分析アプリケーション140は、たとえば、オペレータがアクセスできるGUI、モジュール、またはファイルに、解決された位置情報を含む解析エラーの更新されたエラーメッセージを出力する。エラーメッセージはまた、エラーの修正に役立つその他の情報を含むことができる。
【0023】
ネットワーク130は、データ分析システム110とデータソース120との間の通信経路を表す。一実施形態では、ネットワーク130はインターネットであり、標準の通信技術および/またはプロトコルを使用する。したがって、ネットワーク130は、イーサネット、802.11、マイクロ波アクセスの世界的な相互運用性(WiMAX)、3G、ロングタームエボリューション(LTE)、デジタル加入者線(DSL)、非同期転送モード(ATM)、InfiniBand、PCI Express Advanced Switching等の技術を使用するリンクを含むことができる。同様に、ネットワーク130で使用されるネットワーキングプロトコルは、マルチプロトコルラベルスイッチング(MPLS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキストトランスポートプロトコル(HTTP)、シンプルメール転送プロトコル(SMTP)、ファイル転送プロトコル(FTP)などを含むことができる。
【0024】
ネットワーク130を介して交換されるデータを、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)などを含む技術および/またはフォーマットを使用して表すことができる。加えて、すべてまたは一部のリンクは、セキュアソケットレイヤー(SSL)、トランスポートレイヤーセキュリティ(TLS)、仮想プライベートネットワーク(VPN)、インターネットプロトコルセキュリティ(IPsec)などの従来の暗号技術を使用して暗号化できる。別の実施形態では、エンティティは、上記の代わりに、またはそれに加えて、カスタムおよび/または専用のデータ通信技術を使用できる。
【0025】
図2は、データブロックとデータレコードとの間の例示的な関係を示す図である。図2は、3つの順次データブロック210、220、および230、ならびに7つの順次データレコード215、225、235、245、255、265、および275を含むデータファイル200を示している。データレコードは、データブロックと完全には一致していない。データブロック210は、すべてのデータレコード215および225、ならびにデータレコード235の第1の部分を含む。データブロック220は、データレコード235の第2の部分、データレコード245のすべて、およびデータレコード255の第1の部分を含む。データブロック230は、データレコード255の第2の部分と、データレコード265および275のすべてを含む。
【0026】
3つの順次データブロック210、220、および230を、順不同に解析できる。たとえば、データブロック230を、データブロック210および220の前に解析することができ、これらをすべて、異なるワーカースレッドによって並行して処理できる。解析エラーがデータブロック230の解析中に発生し得る。たとえば、解析エラーがデータレコード265内に発生し得る。しかし、データブロック210および220は処理されていないため、それらのデータレコードおよびこれらのデータレコードの境界は不明である。したがって、データファイル200内の解析エラーの絶対的な位置を正確に決定できない。
【0027】
図3は、一実施形態によるデータを処理するためにデータ分析システム110を使用して作成されたワークフロー300を示すブロック図である。一実施形態では、ワークフロー300は、データ分析システム110のGUIによってサポートされる視覚的なワークフロー環境を使用して作成される。視覚的なワークフロー環境は、ワークフローを設計するためのソフトウェアコードを提供する必要をなくす、およびワークフローによって実装される複雑な式を識別する必要をなくす、ドラッグアンドドロップツールのセットを使用可能にする。別の実施形態では、ワークフロー300は、拡張マークアップ言語(XML)文書などの文書で作成および記述される。ワークフロー300は、データ分析システム110のコンピュータデバイスによって実行される。しかし、他の実施形態では、ワークフロー300は、ネットワーク(たとえば、ネットワーク130)を介して、データ分析システム110に通信可能に接続され得る別のコンピュータデバイスに展開される。
【0028】
ワークフローは、特定の処理操作またはデータ分析機能を実行する一連のツールを含むことができる。一般的な例として、ワークフローのツールは、入力/出力、準備、結合、予測、空間、調査、ならびに解析および変換の操作の、データ分析機能の1つまたは複数を実行できる。ワークフローの実装は、データ分析プロセスの定義、実行、自動化を含むことができ、データがワークフロー内の各ツールに渡され、各ツールは受信したデータに対してそれぞれの処理操作を実行する。個々のデータレコードの集約グループを含むパケットを、ワークフローのツールを通して渡すことができ、これは個々の処理操作がデータに対してより効率的に動作することを可能にする。そのような集約技術は、大量のデータを処理する場合でも、ワークフローの開発および実行の速度を上げることができる。ワークフローは、反復可能な一連の操作を定義またはそうでなければ構造化して、指定されたツールの操作シーケンスを指定できる。いくつかのケースでは、ワークフローに含まれるツールが線型順序で実行される。別のケースでは、複数のツールは並行して実行される。
【0029】
図示のように、図3のワークフロー300は、入力ツール305および306ならびにブラウズツール330として示される入力/出力ツールを含む。入力ツール305および306は、特定のデータソース120からのデータレコードにアクセスするように機能する。入力ツール305および306は、ワークフロー内にアクセスされたデータレコードを取り込み、データレコードをワークフロー300の後続のツールに提供する。この例では、入力ツール305はアクセスされたデータレコードをフィルタツール310に提供し、入力ツール306はアクセスされたデータレコードを選択ツール311に提供する。ブラウズツール330は、ワークフロー300の最後に位置し、ワークフロー300の上流のツールのそれぞれの実行から生じる出力を受信する。この例では、ブラウズツール330は、ワークフロー300の最後に配置されているが、ブラウズツール330は、ワークフローの任意の時点で追加されて、ワークフローの上流ツールの実行からの結果をレビューおよび検証できる。
【0030】
引き続き、図3の例では、ワークフロー300は、フィルタツール310、選択ツール311、式ツール315、およびサンプルツール312として示される準備ツールを含む。フィルタツール310は、式に基づいてデータレコードをクエリし、式を満たすデータレコードを含む真のストリームおよび式を満たさないデータレコードを含む偽のストリーム、の2つのストリームにデータを分割する。選択ツール311を使用して、フィールドの選択、選択解除、並べ替え、および名前変更、フィールドタイプまたはサイズの変更、ならびに説明の割り当てをすることができる。式ツール315は、多種多様な計算および/または演算を実行する1つまたは複数の式を使用してフィールドを作成または更新する。サンプルツール312は、データレコードの受信したストリームを、データレコードの数、割合、またはランダムなセットに限定する。ワークフロー300はまた、複数のデータソースをブレンドする結合ツール320を含む。具体的には、結合ツール320は、共通のフィールド(またはデータレコード位置)に基づいて2つの入力データストリームを組み合わせる。
【0031】
図3のワークフロー300はまた、データをさらなる分析で使用されるフォーマットに再構築および再形成できる解析および変換ツールである要約ツール325を含むように示されている。要約ツール325はまた、グループ化、合計、カウント、空間処理、および文字列の連結によってデータの要約化を実行できる。一実施形態では、要約ツール325によって生成された出力は計算の結果を含む。
【0032】
いくつかの実施形態では、ワークフロー300の実行は、すべてのデータレコードが処理されて結合ツール320に到達するまで、入力ツール305が、データレコードを一度に1つフィルタツール310および式ツール315を通じて、渡させる。その後、入力ツール306は、データレコードが同じ結合ツール320に渡されるまで、選択ツール311およびサンプルツール312を通じて、データレコードを一度に1つ渡し始める。ワークフロー300のいくつかの個々のツールは、データの最後のブロックを処理している、または並べ替えツールなどのコンピュータを集中的に使用する操作を複数の部分に分割する間にデータのブロックの読み取りを開始するような独自の並列操作を実装する機能を有することができる。しかし、一部の既存のワークフローの技術では、処理操作を実行するために複数のデータレコードを必要とするワークフロー内のツール(たとえば、並べ替えツール、結合ツール、要約ツールなど)に到達するまで、データレコードのセットからの各データレコードは、パイプライン方式で、一度に1つのデータレコードを、ワークフローの各ツールによって個別に処理される。
【0033】
ワークフロー300でエラーが発生する可能性がある。エラーは、データレコード、データソース120、ワークフローが実行されるコンピュータ、またはそれらの任意の組み合わせに関連付けられた欠陥によって引き起こされる可能性がある。エラーは致命的なエラーまたは非致命的なエラーのいずれかの可能性がある。致命的なエラーが検出された後、ワークフロー300は、致命的なエラーが修正されるまで停止し得る。非致命的なエラーが検出された後、ワークフロー300は継続し得、非致命的なエラーは後で、たとえば、ワークフロー300が終了した後、修正され得る。
【0034】
図4は、一実施形態によるデータ分析システム110のデータ分析アプリケーション140のより詳細な図を示すブロック図である。データ分析アプリケーション140は、データ受信モジュール410、ツールモジュール420、エラー対処モジュール430、データ出力モジュール440、およびブロックデータベース450を含む。当業者は、他の実施形態が本明細書での説明とは異なるおよび/または他のコンポーネントを有することができ、機能を異なるやり方において、コンポーネント間で分散できることを認識するであろう。
【0035】
データ受信モジュール410は、データソース120からデータを受信する。一実施形態では、データ受信モジュール410は、データソースからデータブロックを受信し、データブロックを解析してデータレコードを生成する。たとえば、データ受信モジュール410は、SDS上のデータファイルから読み取られたデータブロックを受信し得、ここで、各データブロックは複数のデータレコードを含み、一部のデータレコードは複数のデータブロックにまたがり得る。データ受信モジュール410は、データ分析アプリケーション140内の他のモジュールにデータレコードを渡す。
【0036】
ツールモジュール420は、入力/出力、準備、結合、予測、空間、調査、解析および変換操作の1つまたは複数を含む特定の処理操作またはデータ分析機能を実行するデータ処理ツールのセットを提供する。ツールは、データ受信モジュール410によってデータソース120から受信されたデータレコードを操作する。データレコードの操作は非同期とすることができる。ツールモジュール420は、図3に関連して説明されるワークフロー300に含まれるツールを提供する。
【0037】
エラー対処モジュール430は、ツールモジュール420による順次データブロック内のデータレコードの非同期処理中、または他の処理中に発生するエラーに対処する。エラー対処モジュール430は、データレコードの解析中に発生する解析エラーを検出する。エラー対処モジュール430は、検出された解析エラーに対してエラーメッセージを生成する。エラーメッセージは、初期に、データブロック内の解析エラーの相対的な位置を示す解析エラーの未解決の位置情報を含む。相対的な位置は、データブロック内で解析エラーが発生した行の位置を示す相対的な行番号、またはデータブロック内で解析エラーが発生したデータレコードの位置を示す相対的なレコード番号を含むことができる。エラー対処モジュール430は、未解決の位置情報を伴うエラーメッセージを格納し、順序付けられたセット内のデータブロックに先行する他のデータブロック(本明細書では以下、「先行データブロック(preceding data blocks)」と呼ぶ)が解析されるまで、待機する。先行データブロックが解析されると、エラー対処モジュール30は、位置情報を解決して、データファイル内のエラーの絶対的な位置を示す解決されたエラー情報を生成する。
【0038】
エラー対処モジュール430は、データブロックが、解析が完了していないシーケンス内の最小番号のデータブロックであるかどうかを決定することによって、先行データブロックが解析されたかどうかを決定できる。いくつかの実施形態では、エラー対処モジュール430は、たとえば、バッファ内の情報に基づいて、データブロックが、解析が完了していないシーケンス内の最小番号のデータブロックであると決定する。バッファは、データブロックが処理中またはまだ処理されていないと示す情報を格納している。一例では、バッファは、順次データブロックのサブセットのステータスインジケータを格納する。ステータスインジケータは、対応するデータブロックが解析されたかどうかを示す。アクティブなデータブロックのグループは、順次データブロックのサブセットである。最小番号のアクティブデータブロックは、解析が完了していないシーケンス内の最小番号のデータブロックである。
【0039】
エラー対処モジュール430は、先行データブロックの解析の結果に基づいて、未解決の位置情報を解決できる。いくつかの実施形態では、エラー対処モジュール430は、先行データブロックの解析中に生成されたデータレコードを使用して、解析エラーが発生したデータレコードを参照するレコード番号を決定し、レコード番号に基づいて解決された位置情報を生成する。エラー対処モジュール430は、エラーメッセージを解決された位置情報で更新して、更新されたエラーメッセージを生成する。いくつかの実施形態では、エラー対処モジュール430は、エラーメッセージ内の未解決の位置情報を解決された位置情報で置き換える。エラー対処モジュール430は、更新されたエラーメッセージにオペレータがアクセスできるように、更新されたエラーメッセージを出力する。
【0040】
データ出力モジュール440は、データ分析アプリケーション140によって実行された処理の結果を出力する。すなわち、データ出力モジュール440は、ワークフロー200の実行によって生成された処理済みデータレコードを受信し、他のシステムおよび/または人間のレビュアーがデータレコードを利用可能にする。たとえば、データ出力モジュール440は、企業に関連付けられた人間のレビュアーが企業に関連付けられたデータレコードの処理から生じるワークフロー200の出力をレビューできるGUIを提供し得る。
【0041】
図5は、一実施形態によるデータ分析アプリケーション140のエラー対処モジュール430のより詳細な図を示すブロック図である。エラー対処モジュール430は、エラー検出モジュール510、エラーメッセージモジュール520、位置解決モジュール530、および出力モジュール540を含む。当業者は、他の実施形態が本明細書での説明とは異なるおよび/または他のコンポーネントを有することができ、機能を異なるやり方において、コンポーネント間で分散できることを認識するであろう。
【0042】
エラー検出モジュール510は、データブロック(「ターゲットデータブロック」)の解析中に発生する解析エラーを検出する。ターゲットデータブロックは、順次レコードのセットを集合的に保持する順次データブロックのセットを含むデータファイル(たとえば、カンマ区切りの値ファイル)の一部である。順次データブロックを順不同で解析できる。したがって、所与のデータブロックを、先行データブロックが解析される前に、または先行データブロックが解析されるのと同時に解析できる。エラー検出モジュール510は、データブロックを解析するワーカースレッドが、事前定義されたスキーマへの適合に失敗する、および/または予想されるデータの配置からの別の逸脱を含む、データレコードまたは他のデータに遭遇することを検出することによって、解析エラーを検出する。
【0043】
エラーメッセージモジュール520は、検出された解析エラーの未解決の位置情報を含む、検出された解析エラーのエラーメッセージを生成する。未解決の位置情報は、ターゲットデータブロック内の解析エラーの位置を示す。未解決の位置情報は、エラーを有するデータレコードを含むターゲットデータブロック内の行を参照する行番号を含むこと、および/またはそうでなければターゲットデータブロック内のデータレコードの位置を記述することができる。
【0044】
未解決の位置情報に加えて、エラーメッセージはまた、解析エラーを記述する他の情報(たとえば、解析エラーの原因を説明する情報など)およびエラーを修正するための情報(たとえば、回復戦略、解析エラーを修正する方法の推奨事項など)を含むことができる。いくつかの実施形態では、エラーメッセージは、解析エラーの警告を含む。エラーメッセージモジュール520は、エラーメッセージを格納する。
【0045】
位置解決モジュール530は、エラーメッセージ内の未解決の位置情報を解決して、更新されたエラーメッセージを生成する。位置解決モジュール530は、ターゲットデータブロックの解析が完了するまで、エラーメッセージ内の未解決の位置情報を解決し得ない。
【0046】
いくつかの実施形態では、位置解決モジュール530は、先行データブロックが解析されたかどうかを決定することによって、未解決の位置情報を解決できるかどうかを決定する。いくつかの実施形態では、位置解決モジュール530は、バッファ内の情報を使用して、先行データブロックが解析されたかどうかを決定する。バッファの例は循環バッファである。バッファは、エラーメッセージモジュール520によって生成されたエラーメッセージを格納できる。また、データブロックのステータスインジケータを保存できる。データブロックのステータスインジケータは、データブロックが解析されたかどうかを示す。一実施形態では、解析されたデータブロックのステータスインジケータは、データブロック内にあることがわかっているレコードの数であり、解析されていないデータブロックのステータスインジケータは-1である。一例では、バッファはアクティブなデータブロックのステータスインジケータのみを格納する。アクティブなデータブロックは、シーケンスの一部にデータブロックを含む。シーケンスの一部は、解析が完了していないシーケンス内の最小番号のデータブロックから始まる。言い換えると、第1のアクティブなデータブロックに先行するすべてのデータブロックが解析されている。たとえば、データファイルは、シーケンス内の順序付けられた100個のデータブロックを含む。最初の36個のデータブロックは解析されたが、第37のデータブロックは解析されていない。第37のデータブロックは、解析が完了していないシーケンス内の最小番号のデータブロックである。データブロックが非アクティブになった後、そのステータスインジケータをバッファから削除して、メモリ使用量を節約できる。たとえば、第37のデータブロックの解析が完了し、第38のデータブロックがすでに解析されている場合、第39のデータブロックは、まだ解析されていないと仮定して、解析が完了していないシーケンス内の最小番号のデータブロックとなる。第37および第38のデータブロックのステータスインジケータがバッファから削除される。
【0047】
位置解決モジュール530は、ターゲットデータブロックが第1のアクティブなデータブロック(すなわち、解析が完了していないシーケンス内で最小番号のデータブロック)であるかどうかを決定できる。ターゲットデータブロックが第1のアクティブデータブロックであるという決定に応答して、位置解決モジュール530は、先行データブロックが解析され、未解決の位置情報を解決できると決定する。そうでなければ、位置解決モジュール530は、先行データブロックが解析されておらず、未解決の位置情報を解決できないと決定する。
【0048】
アクティブなデータブロックは、解析が開始されたシーケンス内の最大番号のデータブロックで終了し得る。たとえば、100個のデータブロックを含むデータファイルの第45のデータブロックの解析が開始された。しかし、第46から第100のデータブロックの解析は開始されていない。したがって、第45のデータブロックは、解析が開始されたシーケンス内の最大番号のデータブロックである。したがって、第37乃至45のデータブロックはアクティブなデータブロックであり、バッファは第37乃至45のデータブロックのステータスインジケータを格納する。
【0049】
未解決の位置情報を解決できるという決定に応答して、位置解決モジュール530は、解析エラーの解決された位置情報を生成し、解決された位置情報を含むように格納されたエラーメッセージを更新する。解決された位置情報は、たとえば、データファイル内で解析エラーが発生した行の位置を参照する行番号、またはデータファイル内で解析エラーが発生したレコードの位置を参照するレコード番号とすることできる。いくつかの実施形態では、位置解決モジュール530は、未解決の位置情報と先行するブロックの解析によって生成された情報との組み合わせに基づいて、解決された位置情報を生成する。たとえば、先行ブロックに50個のレコードが含まれていることが解析で示され、未解決の位置情報がブロックの第3のレコードにエラーがあることを示している場合、ローカル解決モジュールは、エラーがデータファイルの第53のレコード内にあることを示す解決された位置情報を生成し得る。
【0050】
出力モジュール540は、更新されたエラーメッセージを出力する。いくつかの実施形態では、出力モジュール540は、更新されたエラーメッセージをデータ分析システムから、オペレータがアクセスするモジュール、GUI、ディスプレイ、またはファイルに送信する。出力モジュール540は、更新されたエラーメッセージを出力した後、更新されたエラーメッセージをバッファから除去し得る。いくつかの実施形態では、出力モジュール540は、更新されたエラーメッセージが生成されると、更新されたエラーメッセージを出力する。いくつかの実施形態では、出力モジュール540は、他のエラーメッセージが生成されるまで、更新されたエラーメッセージの出力を保留する。出力モジュール540は、データブロックの解析中に検出された他のエラーのエラーメッセージおよび/または先行データブロックの解析中に検出されたエラーのエラーメッセージを、更新されたエラーメッセージと共に出力できる。いくつかの実施形態では、出力モジュール540は、エラーメッセージが出力されるべきデータレコードの数を示すレコード数の上限を受信する。出力モジュール540は、データファイル内のデータレコードの第1の数のエラーメッセージを出力する。出力モジュール540は、出力されるべきではないエラーメッセージを除去し得る。
【0051】
図6は、一実施形態による、順次データブロックの非同期処理中のエラー対処の方法を示すフローチャートである。いくつかの実施形態では、方法はデータ分析アプリケーション140によって実行されるが、方法の操作の一部またはすべては他の実施形態の他のエンティティによって実行され得る。いくつかの実施形態では、フローチャートの操作は異なる順序で実行され、異なるおよび/または追加のステップを含む。
【0052】
データ分析アプリケーション140は、データファイルを集合的に形成するデータブロックの順序付けられたセットのデータブロックを解析する610。たとえば、データ分析アプリケーション140は、ワーカースレッドを使用してデータブロックを解析し、データレコードを生成する。いくつかの実施形態では、データ分析アプリケーション140は、並行して実行される複数のワーカースレッドを使用して、順序付けられたセット内の複数のデータブロックを同時に解析する。ワーカースレッドは、データブロックを順不同で解析し得る。たとえば、第1および第2のデータブロックは、第3のデータブロックの後に解析され得る。各データブロックは典型的には複数のデータレコードを含み、しばしばデータレコードの境界はデータブロックの境界と一致しない。
【0053】
データ分析アプリケーション140は、データブロックの解析中に発生する解析エラーを検出する620。一実施形態では、解析エラーは致命的なエラーであり得、そのケースでは、データブロックの解析は、解析エラーが検出された後に停止する。別の実施形態では、解析エラーは非致命的なエラーであり得、そのケースでは、データブロックの解析は、解析エラーが検出された後も継続する。
【0054】
データ分析アプリケーション140は、検出された解析エラーに対してエラーメッセージを生成する630。生成されたエラーメッセージは、たとえば、データブロック内の検出された解析エラーの位置を示す、データファイル内の検出された解析エラーの相対的な位置を表す未解決の位置情報を含む。
【0055】
データ分析アプリケーション140は、セット内の1つまたは複数の他のデータブロックの解析に応答して、未解決の位置情報を解決できるかどうかを決定する640。データ分析アプリケーション140は、順序付けられたセット内のデータブロックに先行する1つまたは複数の追加のデータブロック(すなわち、1つまたは複数の先行データブロック)が解析されたかどうかを決定することによって決定を行う。いくつかの実施形態では、データ分析アプリケーション140は、データブロックが、解析が完了していない順序付けられたセット内の最小番号のデータブロックである、かどうかを決定する。データブロックが、解析が完了していない順序付けられたセット内の最小番号のデータブロックであるという決定に応答して、データ分析アプリケーション140は、未解決の位置情報を解決できると決定する640。
【0056】
未解決の位置情報を解決できるという決定に応答して、データ分析アプリケーション140は、データファイル内の検出された解析エラーの絶対的な位置を示す解決された位置情報を生成する650。いくつかの実施形態では、解決された位置情報は、検出された解析エラーのレコード番号を含む。レコード番号は、検出された解析エラーが発生する順序付けられたセット内のデータレコードの位置を参照する。データ分析アプリケーション140は、未解決の位置情報、データブロックの解析の結果、1つまたは複数の先行データブロックの解析の結果、またはそれらのいくつかの組み合わせに基づいてレコード番号を決定できる。
【0057】
データ分析アプリケーション140は、格納されたエラーメッセージを解決された位置情報で更新して、更新されたエラーメッセージを生成し660、更新されたエラーメッセージを出力する670。更新されたメッセージは、データファイル内の検出された解析エラーの位置を示す解決された位置情報を含む。いくつかの実施形態では、データ分析アプリケーション140はまた、順序付けられたセット内のデータブロックに先行する1つまたは複数の他のデータブロックの解析中に検出されたエラーについて他のエラーメッセージを出力する。いくつかの実施形態では、データ分析アプリケーション140は、ユーザからレコード数の上限を受信する。レコード数の上限は、エラーメッセージが出力されるべきデータレコードの数を示す。データ分析アプリケーション140は、順序付けられたセット内の第1の数のデータレコードについてエラーメッセージを出力する。
【0058】
図7は、一実施形態による図1のデータ分析システム110として使用するための典型的なコンピュータシステム700の機能図を示す高レベルのブロック図である。コンピュータシステム700は、図3のワークフローを実装するデータ分析アプリケーション140を実行できる。
【0059】
図示のコンピュータシステムは、チップセット704に結合された少なくとも1つのプロセッサ702を含む。プロセッサ702は、同じダイ(die)上に複数のプロセッサコアを含むことができる。チップセット704は、メモリコントローラハブ720および入力/出力(I/O)コントローラハブ722を含む。メモリ706およびグラフィックアダプタ712は、メモリコントローラハブ720に結合されており、ディスプレイ718は、グラフィックアダプタ712に結合されている。ストレージデバイス708、キーボード710、ポインティングデバイス714、およびネットワークアダプタ716は、I/Oコントローラハブ722に結合され得る。いくつかの他の実施形態では、コンピュータシステム700は、追加の、より少ない、または異なるコンポーネントを有し得、コンポーネントは、異なって結合され得る。たとえば、コンピュータシステム700の実施形態は、ディスプレイおよび/またはキーボードを欠き得る。さらに、コンピュータシステム700は、いくつかの実施形態では、ラックに取り付けられたブレードサーバとして、またはクラウドサーバインスタンスとしてインスタンス化され得る。
【0060】
メモリ706はプロセッサ702によって使用される命令およびデータを保持する。いくつかの実施形態では、メモリ706はランダムアクセスメモリである。ストレージデバイス708は、非一時的コンピュータ可読記憶媒体である。ストレージデバイス708は、HDD、SSD、または他のタイプの非一時的コンピュータ可読記憶媒体とすることができる。データ分析システム110によって処理および分析されたデータを、メモリ706および/またはストレージデバイス708に格納できる。
【0061】
ポインティングデバイス714は、マウス、トラックボール、または他のタイプのポインティングデバイスであり得、コンピュータシステム700にデータを入力するために、キーボード710と組み合わせて使用される。グラフィックアダプタ712は、画像および他の情報をディスプレイ718に表示する。いくつかの実施形態では、ディスプレイ718は、ユーザの入力および選択を受信するためのタッチスクリーン機能を含む。ネットワークアダプタ716は、コンピュータシステム700をネットワーク170に繋ぐ。
【0062】
コンピュータシステム700は、本明細書で説明される機能を提供するためのコンピュータモジュールを実行するように適合されている。本明細書で使用される「モジュール」という用語は、特定の機能を提供するためのコンピュータプログラム命令およびその他のロジックを指す。モジュールをハードウェア、ファームウェア、および/またはソフトウェアで実装できる。モジュールは、1つまたは複数のプロセスを含むことが、および/またはプロセスの一部のみによって提供されることができる。モジュールは、通常、ストレージデバイス708に格納され、メモリ706に読み込まれ、プロセッサ702によって実行される。
【0063】
コンポーネントの特定の命名、用語の大文字化、属性、データ構造、またはその他のプログラミングまたは構造的側面は必須または重要ではなく、説明された実施形態を実装するメカニズムは、異なる名前、フォーマット、またはプロトコルを有し得る。さらに、システムは、説明されているように、ハードウェアとソフトウェアの組み合わせを介して、または完全にハードウェア要素で実装され得る。また、本明細書で説明されるさまざまなシステムコンポーネント間の機能の特定の分割は単なる例示であり、必須ではなく、単一のシステムコンポーネントによって実行される機能は、代わりに複数のコンポーネントによって実行され得、複数のコンポーネントによって実行される機能は、代わりに単一のコンポーネントによって実行され得る。
【0064】
上記の説明のいくつかの部分は、情報の操作のアルゴリズムおよび記号表現の観点から機能を示している。これらのアルゴリズムの説明および表現は、データ処理技術の当業者が、当技術分野の他の者に作業の内容を最も効果的に伝えるために使用する手段である。これらの操作は、機能的または論理的に説明されているが、コンピュータプログラムによって実装されると理解される。さらに、一般性を失うことなく、これらの操作の配置をモジュールとして、または機能名で参照することも便利な場合がある。
【0065】
上記の議論から明白であると特に明記しない限り、説明全体を通して、「処理(processing)」または「計算(computing)」または「計算(calculating)」または「決定(determining)」または「表示(displaying)」などの用語を利用する議論は、コンピュータシステムのメモリまたはレジスタ、または他のそのような情報ストレージ、送信または表示デバイス内の物理(電子)量として表されるデータを操作および変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスに言及していることが理解される。
【0066】
本明細書で説明される特定の実施形態は、アルゴリズムの形で説明されるプロセスのステップおよび命令を含む。実施形態のプロセスのステップおよび命令は、ソフトウェア、ファームウェア、またはハードウェアで実施でき、ソフトウェアで実施した場合、ダウンロードしてリアルタイムネットワークオペレーティングシステムで使用される異なるプラットフォームに常駐し、そこから操作できることに留意されたい。
【0067】
最後に、明細書で使用される文言は、主に読みやすさと教育目的のために選択されており、本発明の主題を描写または制限するために選択され得ないことに留意されたい。したがって、実施形態の開示は、例示的であることを意図しているが、限定ではない。
図1
図2
図3
図4
図5
図6
図7