(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】迅速なデータ探査
(51)【国際特許分類】
G06F 16/65 20190101AFI20241106BHJP
G06F 16/23 20190101ALI20241106BHJP
G06F 3/16 20060101ALI20241106BHJP
【FI】
G06F16/65
G06F16/23
G06F3/16 650
(21)【出願番号】P 2022575919
(86)(22)【出願日】2021-06-14
(86)【国際出願番号】 IB2021055202
(87)【国際公開番号】W WO2022003462
(87)【国際公開日】2022-01-06
【審査請求日】2023-11-14
(32)【優先日】2020-07-01
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】カニア、トマシュ
(72)【発明者】
【氏名】ジェドリツカ、ティモテウシュ
(72)【発明者】
【氏名】ブランディーズ、シモン
(72)【発明者】
【氏名】ピツラ、クシシュトフ
(72)【発明者】
【氏名】マデジ、マチェイ
(72)【発明者】
【氏名】グジウナ、ピオトル
【審査官】原 秀人
(56)【参考文献】
【文献】米国特許出願公開第2020/0202171(US,A1)
【文献】国際公開第2019/105189(WO,A1)
【文献】国際公開第2020/017357(WO,A1)
【文献】国際公開第2018/217635(WO,A1)
【文献】中国特許出願公開第110413765(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06F 3/16
(57)【特許請求の範囲】
【請求項1】
コンピュータの情報処理により、アップロードすべきデータの迅速なデータ探査を行う方法であって、
第1のサイズの第1のデータ・セットをローカル・システムからサーバにアップロードすることと、
前記ローカル・システムによって、前記第1のデータ・セットが破損していないと決定することと、
前記アップロードと並行して、
前記第1のデータ・セットから特定の数のレコードを選択し、前記選択されたレコードを用いて第2のデータ・セットを構築すること、
前記第1のデータ・セットに関する統計データおよびメタデータを決定すること、ならびに
前記第2のデータ・セット、前記統計データ、および前記メタデータを視覚化すること
を実行することと
を含む、コンピュータ実装方法。
【請求項2】
前記統計データが、最小値、最大値、中央値、平均値、四分位値、データ値の度数、および欠損データ値の量を含む群からの少なくとも1つを含む、請求項1に記載の方法。
【請求項3】
前記メタデータが、行数、列数、および列フィールドのタイプを含む群からの少なくとも1つを含む、請求項1または2に記載の方法。
【請求項4】
前記統計データおよびメタデータを前記サーバに送信することをさらに含み、前記統計データおよびメタデータの前記サーバへの前記送信が、前記第1のデータ・セットの前記サーバへの前記アップロードと並行して実行される、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記第1のデータ・セットが破損していないとの前記決定が、前記アップロードが開始される前に実行される、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記ローカル・システムが、第1の期間に前記第1のデータ・セットを使用して機械学習モデルを訓練することが可能な、処理コアおよびメモリの第1の構成を有し、前記サーバが、第2の期間に前記第1のデータ・セットを使用して前記機械学習モデルを訓練することが可能な、処理コアおよびメモリの第2の構成を有し、前記第2の期間が前記第1の期間より短い、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記統計データ、前記メタデータ、または前記第2のデータ・セットを使用してデータ・モデリング・ツールを
、前記ローカル・システム上または前記サーバ上で構成することをさらに含み、前記第1のデータ・セットの前記アップロードと並行して、データ・モデリング・ツールが構成される、請求項1~6のいずれか1項に記載の方法。
【請求項8】
構成済みの
前記データ・モデリング・ツールを前記第1のデータ・セットに対して実行することをさらに含む、請求項7に記載の方法。
【請求項9】
前記第2のデータ・セットが第2のサイズであり、前記第1のデータ・セットの前記第1のサイズが前記第2のサイズよりも大きい、請求項1~8のいずれか1項に記載の方法。
【請求項10】
前記第1のデータ・セットからの前記選択が、前記第1のデータ・セットから、最初、中間、最後から、ランダムに、または所定のアルゴリズムに従って、データを選択することを含む、請求項1~9のいずれか1項に記載の方法。
【請求項11】
請求項1~10のいずれか1項に記載された方法を、コンピュータに対して実行させるためのコンピュータ・プログラム。
【請求項12】
請求項11に記載のコンピュータ・プログラムを記録した、コンピュータ可読な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、クライアント・システムからサーバへ大量のデータをアップロードすることに関し、より詳細には、アップロードすべきデータの迅速なデータ探査のためのコンピュータ実装方法に関する。本発明はさらに、アップロードすべきデータの迅速なデータ探査のためのデータ探査システム、およびコンピュータ・プログラム製品に関する
【背景技術】
【0002】
昨今、AI(人工知能)は、あらゆる規模の企業ならびに様々なタイプの企業および消費者向けアプリケーションに普及している。したがって、開発者の大規模なコミュニティが、AI技術の開発または統合に関与している。その結果、通常、機械学習モデルの訓練には大量のコンピューティング・リソースが必要になるので、そのようなサービスは、多くの場合、中央サービスまたはクラウド・コンピューティング・ベースのサービスとして実装される。
【0003】
従来の機械モデル学習方法は、機械学習アルゴリズムに基づいており、未知のデータ・サンプルに対する注釈を予測することが可能な一般的なモデルを訓練するために、既知の一連のデータ・サンプルを、関連する注釈とともに使用する。例えば、画像分類用の深層学習モデルは、入力画像のセットおよび関連する画像クラス・ラベル上で訓練される。その後、テスト段階中、この機械学習(ML)モデルを使用して、新しい未知の画像に対する画像クラス・ラベルを予測する。入力データ・サンプルは、訓練フェーズ中に一緒に処理される注釈付きデータ・サンプルと注釈なしデータ・サンプルとの混合を含み得る。
【0004】
一般的な観点から、入力データ・サンプルは、捕捉された入力データとして利用可能であるか、またはデータ生成器によって生成され得る。データ生成器は、実世界のセンサ(例えば、静止画カメラまたはビデオ・カメラ、オーディオ・システム)、人間(例えば、テキスト作成者)、またはシミュレータ(特定のタイプのデータ・サンプルを生成することを目的とした人工システム)として表され得る。従来のデータ認識方法は、データ・サンプルの訓練セットを形成し得る、注釈付きの固定数の訓練サンプルで動作し得る。これらの訓練データ・セットは、通常、比較的大きい。
【0005】
機械学習モデルの開発者は通常、適切な機械学習アルゴリズムを選択するために、利用可能な訓練データの構造についての理解を深める必要がある。通常、このフェーズでは、所与の問題および利用可能な訓練データについての関連するハイパー・パラメータを有する適切なAIアルゴリズムを選択するために、トライアル・アンド・エラー形式の多くのテストとエラーのサイクルが必要になる。
【0006】
訓練セッション中には大量のコンピューティング能力が必要になるので、訓練フェーズ、データ検査フェーズ、テスト・フェーズなどは、中央のコンピューティング・リソース上で行われるが、開発者は、自分のローカル・ワークステーションで作業を続ける。しかしながら、通常、大きい訓練データ・セットを中央のリソースにアップロードしなければならず、このアップロードに非常に時間がかかり、開発者の時間が非生産的になる可能性がある。
【0007】
アップロードすべきデータの迅速なデータ探査のためのコンピュータ実装方法に関連するいくつかの開示がある。
【0008】
特許文献1は、データ・セットを管理するための、具体的には、メタデータを使用して大きいデータ・セットおよびデータ・ファイルを表現、取得、および配布するための、システム、方法、ならびに技術を開示している。メタデータを使用したデータ表現、大きいデータ・セットおよびデータ・ファイルの取得ならびに配布について説明されている。
【0009】
特許文献2は、ユーザがコンピュータ・データベース・システムからの情報の提示を構成できるようにするためにメタデータによって駆動されるパネルを表すデータ表現モジュールを開示している。データ表現モジュールは、データ表現モジュール・ソフトウェアの初期インストール時にメタデータ・テーブルを構成することによってユーザの環境に合わせてカスタマイズされる。データ表現モジュールによって提示されるパネルへの変更は、データ表現モジュール・ソフトウェアを修正することなく、メタデータ・テーブルを変更することによって実行することができる。
【0010】
公知の解決策の欠点は、ローカル・システムからサーバへのデータの伝送またはアップロードにかなりの時間を要し続け、MLモデルを開発する際にデータ・サイエンティストの生産性を低下させることであり得る。
【0011】
したがって、特に機械学習アルゴリズムの開発というコンテキストにおいて、アップロード中にデータを用いて作業し続けることができないという欠点を克服する必要があり得る。
【先行技術文献】
【特許文献】
【0012】
【文献】米国特許第8,805,835(B2)号
【文献】米国特許第6,308,168(B1)号
【発明の概要】
【0013】
本発明の一態様によれば、アップロードすべきデータの迅速なデータ探査のためのコンピュータ実装方法が提供され得る。方法は、ローカル・システムから第1のサイズの第1のデータ・セットをアップロードすることと、第1のデータ・セットが破損していないと決定することとを含み得る。方法はまた、アップロードと並行して、第1のデータ・セットから所定の数のレコードを選択し、第2のデータ・セットを構築すること、第1のデータ・セットに関する統計データおよびメタデータを決定すること、ならびに第2のデータ・セット、統計データ、およびメタデータを視覚化することも実行することを含み得る。
【0014】
本発明の別の態様によれば、アップロードすべきデータの迅速なデータ探査のためのデータ探査システムが提供され得る。システムは、ローカル・システムから第1のサイズの第1のデータ・セットをアップロードするための手段と、第1のデータ・セットが破損していないと決定するための手段とを含み得る。さらに、システムは、第1のデータ・セットから所定の数のレコードを選択し、第2のデータ・セットを構築するための手段と、第1のデータ・セットに関する統計データおよびメタデータを決定するための手段と、第2のデータ・セット、統計データ、およびメタデータを視覚化するための手段とを含み得る。これにより、選択するための手段、統計データおよびメタデータを決定するための手段、ならびに視覚化するための手段は、アップロードするための手段と時間的に並行して動作し得る。
【0015】
アップロードすべきデータの迅速なデータ探査のための提案するコンピュータ実装方法は、複数の利点、技術的効果、寄与、もしくは改善またはそれらの組合せを提供し得る。
【0016】
ローカル・システム、すなわち、シン・クライアント、例えば、ウェブ・ブラウザをユーザ・インターフェースとして使用するローカル・ワークステーションと、MLモデルの訓練を実行するために使用されるはるかに多くのコンピューティング・リソースを備えたサーバ・システムとを含む環境において作業するデータ・サイエンティストは、時間を大幅に節約し、生産性を高め、利用可能なコンピューティング・リソースをより有効に活用することができる可能性がある。MLモデルの開発には、多くの前進後退、多くのトライアル・アンド・エラー、データを用いたかなりの量の実験が必要となるため、ローカル・システムからサーバへの伝送時間またはアップロード時間により、データ・サイエンティストの生産性が大幅に低下する可能性がある。これは、ローカル・システムからサーバにアップロードする必要がある様々な訓練データのセットを用いた実験の結果でもある。
【0017】
提案する概念により、データ・サイエンティストは、ローカル・システムからサーバにアップロードされる過程にある第1のデータ・セットの代表的なサブセットに基づいて、ローカル・システムからサーバへの訓練データのアップロード中に自分の実験およびデータ探査を継続することが可能になることがある。
【0018】
第1のデータ・セットから導出された統計データおよびメタデータは、ユーザまたはデータ・サイエンティストが選択された訓練データについての印象を得るのに役立つ場合があり、データ・クレンジング、データ正規化、データ修正、もしくはデータ採用、またはそれらの組合せのための追加ツールを構成するための基礎を構築することができる。次いで、そのように構成されたツールは、第1のデータ・セットに適用され得る。これにより、ユーザまたはデータ・サイエンティストは、ローカル・システム上、または第1のデータ・セットがアップロードされたサーバ上でツールを実行することに制限されない場合がある。
【0019】
提案する概念は、データ・サイエンティストがML訓練プロセスを開始する前にデータを用いて実験および適応させる際の自由を制限するものではなく、データ・サイエンティストの生産性を高めるために、かつ利用可能なリソース、具体的にはコンピューティング・リソースを使用するために、サブセット、具体的には第2のデータ・セットのみを用いて作業する際にデータ・サイエンティストにより多くの時間および柔軟性を与えるものであり、データ・サイエンティストは、第1のデータ・セットを代表し得るとともに迅速なデータ探査にほとんどリソースを必要としない、第2のデータ・セットを使用できるので、はるかに生産性が高くなる。
【0020】
以下では、方法およびシステムに適用可能な、本発明の概念の追加の実施形態について説明する。
【0021】
方法の有利な一実施形態によれば、統計データは、最小値、具体的には列のデータ値の最小値、最大値、中央値、平均値、四分位値、データの度数、(例えば、特定のレコードまたは特定の列内の)欠落データ値の量を含む群からの少なくとも1つを含む。データ・セットのメタデータの従来の意味を超える、追加の統計データを決定することも可能である。
【0022】
方法のさらなる有利な一実施形態によれば、メタデータは、行数、列数、および列フィールドのタイプを含む群からの少なくとも1つを含む。さらに、メタデータは、第1のデータ・セット内のデータに関する追加のデータも含み得る。これには、例えば、レコードのサイズおよびタイプ、データの総量、ならびに、例えば第1のデータ・セットの最初または最後に追加された、明示的なメタデータも含まれ得る。このように追加で付加されるメタデータは、第1のデータ・セットからのみ抽出され得る。
【0023】
許容される一実施形態によれば、方法は、第1のデータ・セットのアップロードと並行して、統計データおよびメタデータを送信することも含み得る。送信の宛先は、第1のデータ・セットに使用された宛先と同じであり得る。統計データは、ローカルに記憶される場合もあれば記憶されない場合もあり、すなわち、統計データは、REST(representational state transfer:表現可能な状態の転送)要求を介して、ローカルのクライアント・システムからサーバに伝送され得る。
【0024】
方法の任意選択の一実施形態によれば、第1のデータ・セットが破損していないとの決定は、アップロードが開始される前に実行され得る。これは、プロセスの早い段階で、データの破損、したがって、正しい伝送が不可能であることをほぼ確実に検出できるという利点を有する。破損したデータが検出されると、アップロードが抑制され、ユーザに対する警告が生成され得る。したがって、例えば、チェックサムを構築して、伝送が正しく完了しない可能性があることを確認できる場合、伝送の最後ではなく早い段階で障害(「早期の障害(fast failure)」)を検出することができる。
【0025】
方法の有用な一実施形態によれば、アップロードの宛先は、クラウド・コンピューティング・ベースのサービスであり得る。一実施形態では、クラウド・コンピューティング・ベースのサービスは、アップロードされた第1のデータ・セットを用いて訓練される機械学習アルゴリズムであり得る。
【0026】
有利な一実施形態によれば、方法は、アップロードと並行して、統計データ、メタデータ、もしくは第2のデータ・セット、またはそれらの組合せを使用することによって、ツール(例えば、データ・モデリング・ツールまたは別のデータ操作ツール)を構成すること、場合によっては実行することも含み得る。したがって、ツールの構成は、クライアント・システム上でローカルにおいて、またはサーバ・システム上でリモートにおいて行われ得る。しかしながら、第2のケースでは、具体的には第1のデータ・セットのアップロードと並行して、第2のデータ・セットをサーバにアップロードすることも有用であり得る。一方で、アップロード中にクライアント上でツールをローカルで構成し、アップロードされた構成をサーバ側で使用することが有利であり得る。したがって、提案する方法を使用するデータ・サイエンティストは、ツールが構成および実行されるシステムによって制限されない。
【0027】
したがって、さらなる有利な実施形態によれば、方法は、構成されたツールを第1のデータ・セットに対して、具体的にはサーバ上で実行することも含み得る。特に、クライアント側でツールを構成する場合、この機能を有利に使用することができる。さらに、構成データをクライアントからサーバ側ツールに伝送することが必要になる場合がある。
【0028】
方法の好ましい一実施形態によれば、第2のデータ・セットのサイズは、第1のデータ・セットのサイズのごく一部であり得る。典型的には、第2のデータ・セットは、約1000個(またはそれ以下)のレコードを含み得る。これは、はるかに多くの訓練データを用いてサーバ側で機械学習システムを訓練するために機械学習ツールの初期訓練または必要なデータ・モデリングのアイデアを得るための、典型的な個数を表し得る。さらに、データ・セットのサイズの観点での、第2のデータ・セットと第1のステータス・セットとの間の関係は、例えば、1/100、1/1000、1/10,000などの範囲であり得る。データ・サイエンティストが認識する必要があることの1つは、データが非対称であり得ることであり、すなわち、あるグループの人々の行動に関する予測が行われるものとし、訓練データは、そのグループの人々をそのすべての態様、例えば、性別、民族性、年齢、健康状態、教育などにおいて等しく表すものとする。したがって、データ・サイエンティストは、MLモデルの片側だけのバイアスのリスクを回避するために、訓練データが適切な各態様に対してほぼ同じ量のレコードを有することを保証する必要がある。
【0029】
方法の許容される一実施形態によれば、第1のデータ・セットからの選択は、第1のデータ・セットから、最初、中間、最後からランダムにまたは所定のアルゴリズムに従って、データを選択することを含み得る。選択のプロセスは、具体的には、利用可能なデータの種類、訓練される機械学習システム、データのソース、およびデータの予想されるバイアス、ならびにさらに多くのパラメータに依存し得る。
【0030】
さらに、実施形態は、コンピュータもしくは任意の命令実行システムによって使用するための、またはそれとともに使用するためのプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能な、関連するコンピュータ・プログラム製品の形をとることができる。この説明の目的のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、もしくはデバイスによって使用するための、またはそれとともに使用するためのプログラムを記憶、通信、伝達、または転送するための手段を包含し得る、任意の装置であり得る。
【0031】
本発明の実施形態は、異なる主題を参照して説明されていることに留意されたい。具体的には、いくつかの実施形態は、方法タイプの請求項を参照して説明されており、他の実施形態は、装置タイプの請求項を参照して説明されている。しかしながら、当業者は、上記および以下の説明から、別段の通知がない限り、あるタイプの主題に属する特徴の任意の組合せに加えて、異なる主題に関連する特徴間、具体的には、方法タイプの請求項の特徴と装置タイプの請求項の特徴との間の任意の組合せも本文書内で開示されているものと考えられると推測するであろう。
【0032】
本発明の上記で定義された態様およびさらなる態様については、これ以降に記載する実施形態の例から明らかであり、実施形態の例を参照して説明されるが、本発明はそれに限定されない。
【0033】
本発明の好ましい実施形態について、例示のみを目的として、以下の図面を参照して説明する。
【図面の簡単な説明】
【0034】
【
図1】アップロードすべきデータの迅速なデータ探査のための本発明のコンピュータ実装方法の実施形態のブロック図である。
【
図2】一実施形態による、方法を実行するためのいくつかの技術構成要素のサブセットのブロック図である。
【
図3】本明細書で提案する概念の一実施形態のフローチャートである。
【
図4】アップロードすべきデータの迅速なデータ探査のためのデータ探査システムの一実施形態のブロック図である。
【
図5】
図4によるデータ探査システムを備えるコンピューティング・システムの一実施形態を示す図である。
【
図6】一実施形態による、本発明の概念の少なくとも一部が展開され得るクラウド・コンピューティング環境を示す図である。
【発明を実施するための形態】
【0035】
本説明の文脈において、以下の慣例、用語、もしくは表現、またはそれらの組合せが使用される場合がある。
【0036】
「迅速なデータ探査」という用語は、データ・サイエンティスト(または任意の他のユーザ)が大きな(第1の)データ・セットについて評価を行う能力を意味する場合があり、この能力は、典型的には、大きなデータ・セットの代表的なはるかに小さなサブセットの分析に基づいた、MLベースのシステムの訓練に使用される。本用語は、特に、大きな第1のデータ・セットに関する統計データおよびメタデータを使用して、第1のデータ・セットの代表的なサブセットを評価するという任意選択肢に関連し得る。迅速なデータ探査は、サーバ側システム上のデータにアクセスする必要があるのとは対照的に、データ・サイエンティストのローカル・システム上で実行され得る。しかしながら、サブセット、統計データ、およびメタデータをローカル・システムからサーバ・システムに伝送することも可能であり得る。
【0037】
「アップロード」という用語は、本明細書ではデータを送信または伝送するプロセスを意味する場合があり、様々な実施形態では、典型的にはローカル・データ・ストレージ・システムに記憶されている大量のデータを、リモート・コンピュータ・システム、例えばサーバ、具体的にはローカル・システムと比較して大量のコンピューティング・リソースを有するクラウドベースのコンピューティング・システムに伝送するプロセスを意味する場合がある。
【0038】
「ローカル・システム」という用語は、データ・サイエンティストのワークステーション、パーソナル・コンピュータ、ウェブ・ブラウザなどのシン・クライアント、または任意の他のユーザ・インターフェース・システムを意味する場合がある。
【0039】
「第1のデータ・セット」という用語は、典型的には機械学習の目的で使用されるデータ・セット、例えば、訓練データを意味する場合がある。一般に、第1のデータ・セットの量は非常に多い場合があるため、ローカル・システムからサーバ側システムへの伝送にかなりの時間がかかる可能性があり、これにより、データ・サイエンティストの不十分なリソースに関する活動が遅くなる可能性がある。従来のシステムでは、第1のデータ・セットがローカル・システムからサーバに伝送される、すなわちアップロードされる間、データ・サイエンティストは、第1のデータ・セットを用いて作業することができない場合がある。
【0040】
「破損している」という用語は、データが、有用ではない、例えばデータ伝送の最後のチェックサムに誤りがある、または他の方法で、あるコンピューティング・システムから別のコンピューティング・システムに伝送できない可能性があることを意味する場合がある。データ・ファイルが、使用または伝送される前に破損した状態にあり得ることを理解されたい。データ・ファイルは、様々なフォーマット、例えばCSV(カンマ区切り値)であり得る。一例として、CSVファイルは、とりわけ、無効なフォーマット、無効な文字の使用、フィールド内の改行などのいくつかの理由で破損状態になる可能性がある。
【0041】
「第2のデータ・セット」という用語は、第1のデータ・セットと比較した場合、はるかに小さなデータ・セットを意味する場合がある。第2のデータ・セットの典型的なサイズは、約1000レコードの範囲またはそれ以下でさえあり得る。しかしながら、1/100、1/1,000、1/10,000などのように、第1のデータ・セットのサイズと第2のデータ・セットのサイズとの間に一定の関係がある場合もある。この一定の関係は、指定されたサンプル・サイズに基づき得る。第2のデータ・セットは、ローカル・システム上に記憶され得るか、または第2のデータ・セットは、サーバにアップロードされ得る。第2のデータ・セットの有利な特徴は、ローカル・システム上に記憶されている場合、ローカル・システム上の非常に少ないリソースで処理され得ることである。一方、第2のデータ・セットがサーバ・システム上に記憶されている場合、ローカル・システムによってウェブ・ブラウザを介してリモートで第2のデータ・セットにアクセスし、その第2のデータ・セットを用いて作業することも容易であり得る。
【0042】
「統計データ」という用語は、第1のデータ・セットについて決定されたか、もしくは計算されたか、またはその両方である情報を意味する場合がある。これには、列内の最小値、列内の最大値、列内の中央値、列内の平均値、列内の四分位値、列内のデータの度数、欠損データ値の量、およびメタデータの古典的な意味を超える場合がある一連の他の統計データが含まれ得るが、これに限定されない。統計データは、データ・セットの指定されたフォーマットに準拠していない、データ・セット内のいくつかの値を含み得る。
【0043】
「メタデータ」という用語は、データ、具体的には第1のデータ・セットに関する情報を意味する場合がある。通常、メタデータは、記述型であり、第1のデータ・セットの参照データの構造上の構成要素または管理上の構成要素に関連している。メタデータは、例えば、データ・セット内の行数および列数、ならびにデータ・セットのフォーマットを含み得る。この従来の形式の、第1のデータ・セットに関するメタデータと統計データは区別されるべきであることに留意されたい。
【0044】
「クラウド・コンピューティング」という用語、および同様に「クラウド・コンピューティング・ベースのサービス」という用語は、本文書の文脈では、最小限の管理労力またはサービス・プロバイダとの対話で迅速にプロビジョニングおよび解放され得る構成可能なコンピューティング・リソース(例えば、ネットワーク、サーバ、ストレージ、アプリケーション、およびサービス)の共有プールへの簡便なオンデマンドによるネットワーク・アクセスを可能にするためのモデルとして解釈される場合がある。このクラウド・モデルは、可用性を促進し、少なくとも5つの基本的な特徴、3つのサービス・モデル、および4つの展開モデルで構成される。
【0045】
クラウド・コンピューティングの基本的な特徴は、以下を含む。
(i)オンデマンド・セルフ・サービス。消費者は、各々のサービス・プロバイダとの人的な対話を必要とすることなく、必要に応じて自動的に、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能を一方的にプロビジョニングすることができる。
(ii)広範なネットワーク・アクセス。機能は、ネットワーク上で利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的なメカニズムを介してアクセスされる。
(iii)リソースのプール化。プロバイダのコンピューティング・リソースは、マルチテナント・モデルを使用して複数の消費者にサービス提供するようにプール化され、消費者の要求に応じて、異なる物理リソースおよび仮想リソースが動的に割当ておよび再割当てされる。顧客は、一般に、提供されたリソースの正確な位置について制御も知識も有していないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で位置を特定することが可能であり得るという点で、位置の独立性があるといえる。リソースの例には、ストレージ、処理、メモリ、ネットワーク帯域幅、および仮想マシンが含まれる。
(iv)迅速な柔軟性。機能を迅速かつ柔軟に、場合によっては自動的にプロビジョニングして急速にスケール・アウトすること、および迅速に解放して急速にスケール・インすることが可能である。消費者にとっては、プロビジョニングに利用可能な機能は、しばしば無制限であるように見え、いつでも任意の数量で購入することができる。
(v)サービスの測定。クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブなユーザ・アカウント)に適した一定の抽象化レベルでの計量機能を活用することによって、リソースの使用を自動的に制御および最適化する。リソースの使用状況を監視、制御、および報告することができ、利用するサービスのプロバイダと消費者との両方に透明性がもたらされる。
【0046】
使用されるクラウド・コンピューティングのサービス・モデルは、以下を含む。
(i)ソフトウェア・アズ・ア・サービス(SaaS)。消費者に提供される機能は、クラウド・インフラストラクチャ上で動作しているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えば、ウェブ・ベースの電子メール)などのシン・クライアント・インターフェースを介して様々なクライアント・デバイスからアクセス可能である。限定されたユーザ固有のアプリケーション構成設定の想定される例外があるものの、消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション機能を含む基礎となるクラウド・インフラストラクチャを管理も制御もしない。
(ii)プラットフォーム・アズ・ア・サービス(PaaS)。消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションをクラウド・インフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージなどの基礎となるクラウド・インフラストラクチャを管理も制御もしないが、展開されたアプリケーション、および場合によっては環境構成をホストするアプリケーションを制御する。
(iii)クラウド・インフラストラクチャ・アズ・ア・サービス(IaaS)。消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティング・リソースをプロビジョニングすることであり、そこでオペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアを消費者が展開および実行することができる。消費者は、基礎となるクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージ、展開されたアプリケーションを制御し、場合によっては選択されたネットワーク構成要素(例えば、ホスト・ファイアウォール)を限定的に制御する。
【0047】
クラウド・コンピューティングのための展開モデルは、以下を含む。
(i)プライベート・クラウド。クラウド・インフラストラクチャは、ある組織によってのみ運用される。このクラウド・インフラストラクチャは、組織または第三者によって管理される場合があり、オン・プレミスまたはオフ・プレミスに存在する場合がある。
(ii)コミュニティ・クラウド。クラウド・インフラストラクチャは、複数の組織によって共有され、関心事項(例えば、任務、セキュリティ要件、ポリシー、およびコンプライアンス上の考慮事項)を共有している特定のコミュニティをサポートする。このクラウド・インフラストラクチャは、組織または第三者によって管理される場合があり、オン・プレミスまたはオフ・プレミスに存在する場合がある。
(iii)パブリック・クラウド。クラウド・インフラストラクチャは、一般公衆または大規模な業界グループにとって利用可能であり、クラウド・サービスを販売する組織によって所有される。
(iv)ハイブリッド・クラウド。クラウド・インフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)の合成であり、これらのクラウドは、固有のエンティティのままであるが、データおよびアプリケーションの移植性(例えば、クラウド間の負荷分散のためのクラウド・バースティング)を可能にする標準化された技術または専用の技術によって結び付けられる。
【0048】
クラウド・ソフトウェアは、ステートレス性(例外あり)、低結合性、モジュール性、および意味的相互運用性に重点を置いたサービス指向型であることによって、クラウド・パラダイムを最大限に活用していることに留意されたい。
【0049】
以下では、図面の詳細な説明および好ましい実施形態が与えられる。図中の指示はすべて概略的なものである。最初に、アップロードすべきデータの迅速なデータ探査のための本発明のコンピュータ実装方法の実施形態のブロック図が与えられる。その後、さらなる実施形態、およびアップロードすべきデータの迅速なデータ探査のためのデータ探査システムの実施形態について説明する。
【0050】
図1は、アップロードすべきデータの迅速なデータ探査のためのコンピュータ実施方法100の好ましい実施形態の流れ図を示す。方法100は、ローカル・システムから、第1のサイズの、具体的には大きな、第1のデータ・セットをアップロードすること(102)を含む。アップロードは、PC(パーソナル・コンピュータ)、ローカル・ワークステーション、またはローカル・サーバなどのローカル・システムから、はるかに多くのコンピューティング・リソースを有するより強力なサーバであり得る受信側サーバに対して実行され得る。アップロードは、シン・クライアント、例えば、比較的小さな処理リソースおよびメモリ・リソースを有するPC上で実行されるウェブ・ブラウザを使用して実行され得る。典型的には、MLモデルまたはMLシステムの訓練などの機械学習アルゴリズムは、受信側サーバ、例えばサーバ214上で実行され得る。また、受信側サーバは、より大きなクラウド・コンピューティング・センタに統合され得る。ローカル・システムは、クライアント・システムであり得るか、またはウェブ・ブラウザのみであり得る。
【0051】
さらに、方法は、第1のデータ・セットが破損していないと決定すること(104)を含む。破損している場合、早期の障害の効果を利用して他の活動のための時間およびリソースを節約するために、アップロードは開始されない(または、アップロードが開始した後に破損が検出された場合は完了しない)。
図1では、第1のデータ・セットをアップロードすること(102)に続いて、第1のデータ・セットが破損していないと決定すること(104)が示されているが、このシーケンスは必須ではないことを理解されたい。様々な実施形態において、動作104は、動作102の前または同時に実行され得る。
【0052】
また、方法100の一部は、アップロードすること(102)と並行して、第1のデータ・セットから、第2のデータ・セット、したがってサイズのはるかに小さいサブセットを構築するための所定の数のレコードを選択すること(106)と、第1のデータ・セットに関する統計データおよびメタデータを決定すること(108)と、第2のデータ・セット、統計データ、およびメタデータを視覚化すること(110)とを実行することである。最後のステップは、サーバ・アクティビティ、すなわち要求、またはローカル・システム・アクティビティ、すなわち送信コマンドに基づいて実行され得る。動作106、108、および110は、アップロード動作102と並行して実行されることが好ましいが、動作106、108、および110が動作102と完全に並行して実行されることは必須ではない。例えば、動作106、108、および110は、アップロード動作102の前に開始するか、またはアップロード動作102の後に終了され得る。
【0053】
図2は、一実施形態による、方法100を実行するための関連技術構成要素のサブセットのブロック
図200を示す。MLのコンテキストでは、ローカル・システム202は、ストレージ・システム206上の大きなデータ・セット208を管理し得、ストレージ・システム206は、ハード・ドライブもしくはフラッシュ・ドライブなどの1つもしくは複数のストレージ・デバイスであり得るか、または1つもしくは複数のストレージ・デバイスとともに、プロセッサ、バス、および周辺デバイスなどの従来のコンピュータ構成要素を含み得る。訓練すべきMLアルゴリズムは、サーバ214上に存在し得る。サーバ214からストレージ・システム206へのリモート・アクセスは、低パフォーマンス特性、例えば、ML訓練を完了するのにかなりの時間がかかることによって制約を受け、また比較的大量のネットワーク帯域幅を必要とする場合があり、それによって実用的でないかまたは不可能である場合がある。したがって、サーバ取付型ストレージ・システム218内の大きなデータ・セット220に対する破線によって示されるように、第1のデータ・セット208をローカル・システム202からサーバ214に転送、アップロード、または送信する必要があり得る。大きなデータ・セット220は、ストレージ・システム206上の第1のデータ・セット208のコピーである。すなわち、このような第1のデータ・セット208の典型的なサイズは、50GB、100GB、またはそれ以上(例えば、画像データ)の範囲であり得る。多くの場合、画像データが、MLアルゴリズムの訓練のための基礎として使用され得、したがって、言及したデータ量が異例というわけではないことが理解されよう。しかしながら、ローカル・システム202からサーバ・システム214へのアップロードには多くの時間がかかる可能性があるため、データ・サイエンティストは、すべてのデータがサーバ214側に転送されるまで待つ必要があり、かなりの時間を要する場合があるという欠点がある。
【0054】
言及したように、サーバ214は、ローカル・システム202よりも多くのコンピューティング・リソースを有する、より強力なコンピューティング・システムであり得る。サーバ214の能力は、ローカル・システム202と比較して、サーバがより多くの処理コア、より多くのメモリ、より速いクロック速度などを有する結果であり得るが、特定のハードウェア構成は必要とされない。様々な実施形態において、サーバ214をローカル・システム202と区別する特徴は、スループット、応答時間、処理速度などである。具体的には、サーバ214は、ローカル・システム202に必要となる時間のごく一部で、第1のデータ・セット208/220を使用してMLモデルを訓練できることに基づいて、ローカル・システム202と区別され得る。例えば、サーバ214は、ローカル・システム202に必要となる時間の5パーセントまたは10パーセントで、第1のデータ・セット208/220を使用してMLモデルを訓練することが可能であり得る。具体的な例として、サーバ214は、50分で第1のデータ・セット208/220を使用してMLモデルを訓練することが可能であり得るが、ローカル・システム202では同じタスクに500分(8.3時間)かかる。他の事例では、時間の節約はそれほど大きくない可能性はあるが、サーバ214が、ローカル・システム202に必要となる時間の50パーセントまたは75パーセントを必要とする場合でも、時間の節約は、依然として大幅であり、有利であり得る。
【0055】
様々な実施形態では、ローカル・システム202は、第1の期間に第1のデータ・セットを使用して機械学習モデルを訓練することが可能な、処理コアおよびメモリの第1の構成を有し、サーバ214は、第2の期間に同じ第1のデータ・セットを使用して同じ機械学習モデルを訓練することが可能な、処理コアおよびメモリの第2の構成を有する。サーバ214はローカル・システム202より強力なシステムであるため、第2の期間は第1の期間より短い。
【0056】
様々な実施形態によれば、データ・サイエンティストは、アップロードに必要な時間を使用して、アップロードと並行してローカルでデータを探査し、任意選択としてデータ・モデリング・ツールまたはデータ操作ツールを構成し得る。
【0057】
ローカル・システム202は、送信機/アップローダ204によって、第1のデータ・セット208をサーバ214に送信するようにトリガされ、第1のデータ・セットは受信機216によって受信される。送信機/アップローダ204は、モデムなどのデータ伝送ハードウェアと、TCPなどのデータ通信プロトコルおよびエラー検出プロトコルを実装するデータ伝送ソフトウェアとを含み得る。送信の前に(または送信と同時に)、第1のデータ・セットが破損していないと決定するために、ローカル・システム202においてチェックが実行され得る。例えば、CSVLintなどのツールを使用して、第1のデータ・セットが、含むべき列および値の型を含んでいるかどうかをチェックすることができ、すなわち、自動化されたツールを使用して、ファイルが解析可能かつ読取り可能かどうかをチェックすることができる。破損したデータの場合、そのデータは、送信機/アップローダ204によって送信されない。さらに、伝送後に第1のデータ・セットが依然として破損していないと決定するために、受信機216においてチェックが実行され得る。
【0058】
ローカル・システム202からサーバ214への伝送の時間を使用するために、アップロード、すなわちデータ伝送と並行して、第1のデータ・セット208から、サブセット、すなわち第2のデータ・セット210が生成され得(例えば、サブセットは、第1のデータ・セットのごく一部であり得る)、第1のデータ・セットから、第1のデータ・セットに関する統計データおよびメタデータ212も導出もしくは決定され得るか、またはその両方であり得る。第1のデータ・セット内のデータの第一印象を得る機会をデータ・サイエンティストに与えるために、データ・サイエンティストに対して、第2のデータ・セット210、統計データ、およびメタデータ212が視覚化され得るが、例えば、ローカル・システム202のディスプレイ・デバイス上に表示され得る。データ・サイエンティストは、視覚化から得られた第2のデータ・セット210に関する知識に基づいて、第1のデータ・セット208に適用されるデータ・モデリング・ツールを構成することを決定し得る。データ・モデリング・ツールの構成もしくはMLアルゴリズムの選択またはその両方は、ローカル・システム202上またはサーバ214上で行われ得る。典型的には、このフェーズ中に、第1のデータ・セットを代表し得る第2のデータ・セット上で、データ・クレンジング・アクティビティ、データ正規化アクティビティのための準備タスクがテストされる。様々な実施形態では、どのプログラムが最も効果的であり得るか、およびデータ・クレンジング・ソフトウェアまたはデータ正規化ソフトウェアの任意のパラメータを最も効果的に構成する方法を決定するために、1つまたは複数のデータ・クレンジング・ソフトウェア・プログラムまたはデータ正規化ソフトウェア・プログラムが、ローカル・システム204上の第2のデータ・セットに適用され得る。
【0059】
MLモデル開発ではトライアル・アンド・エラーの手法が比較的多いため、提案する方法は、データ・サイエンティストの時間を大幅に節約する可能性がある。サーバ側での第1のデータ・セット220へのアクセスは、サーバ214上で、またはサーバ214と同様にローカル・システム202よりもはるかに多くのコンピューティング・リソースを有する非常に強力なサーバであり得る別の独立したMLシステム222上で、MLアルゴリズムが実行されることによるものであり得る。
【0060】
MLアルゴリズムは、サーバ214およびMLシステム222が属することができる、
図6に示すものなどのクラウド・コンピューティング環境に組み込まれ得ることにも留意されたい。
【0061】
図3は、本明細書で提案する概念の一実施形態のフローチャート300を示す。流れ
図300は、ローカル・システム、例えばローカル・システム202上で第1のデータ・セットを利用可能にすること(302)から開始する。次いで、プロセス・フローは、分岐に広がる。第1に、第1のデータ・セットのアップロードが開始される(304)。このアクティビティの最初のステップとして、第1のデータ・セットが破損しているかどうかが決定される(306)。動作306は、第1のデータ・セットのアップロードの前に完了するか、またはアップロードと同時に実行され得る。第1のデータ・セットが解析可能かつ読取り可能かどうかを決定するために、CVSLintなどのソフトウェア・ツールが使用され得る。第1のデータ・セットが破損しており、その結果、ローカル・システムからサーバへの伝送が成功しない可能性があるというリスクが存在する場合、アップロードは停止される(310)。第1のデータ・セットが破損していない第2の事例では、アップロードは、完了するまで継続する(308)が、アップロードされるデータが大量であるために、比較的長時間かかる場合がある。
【0062】
第2に、第1のデータ・セットから第2のデータ・セットが抽出される(312)。選択プロセスは、第2のデータ・セット(図ではDSと表示)が第1のデータ・セットの適切な表現となるように実行され得る。例えば、適切な表現を得るために、選択プロセスは、ランダム・サンプリング、系統的サンプリング、階層化サンプリング、クラスタ化サンプリング、またはこれらの技術のうちの2つ以上の組合せを含み得る。非対称データの場合、サンプリング技術は、特定の態様、例えば性別を有するデータの各グループが第2のデータ・セットにおいて等しくまたは比例して表現されるような方法で、第1のデータ・セットをサンプリングし得る。様々な実施形態では、選択プロセスを使用した第2のデータ・セットの抽出(312)は、ローカル・システム202によって実行され得る。次に、第1のデータ・セットのメタデータ(図ではMDと表示)および統計データ(図ではSDと表示)が決定される(314)。様々な実施形態では、MDおよびSDの決定(314)は、ローカル・システム202によって実行され得る。次いで、統計データ、メタデータ、および第2のデータ・セットは、例えばデータ・サイエンティストに対して視覚化され(316)、データ・サイエンティストは、その視覚化されたデータをディスプレイ・デバイス上で評価する。任意選択として、第2のデータ・セットならびに第1のデータ・セットの統計データおよびメタデータは、(破線のボックスに示すように)サーバにアップロードされ(318)、ローカル・システム202のウェブ・ブラウザにおいて視覚化され得る(316)。次に、データ・サイエンティストは、視覚化されたデータの評価に基づいてツールを構成し得る(320)。ツールは、第2のデータ・セットおよび第1のデータ・セットのデータの正規化、クレンジング、修正などを行うことができ、言い換えれば、ツールはデータ・モデリング・ツールであり得る。いくつかの実施形態では、データ・モデリング・ツールはローカル・システム202上で実行され得るが、典型的には、データ・モデリング・ツールは、サーバ214上でのみ実行され、ローカル・システム202のウェブ・ブラウザを介してデータ・サイエンティストによってアクセスされる。サーバ214上で実行されるデータ・モデリング・ツールが使用される場合、第2のデータ・セット210、MD、およびSDをサーバ214にアップロードする必要がある。
【0063】
任意選択的に、データ・モデリング・ツールの構成もまた、サーバにアップロードされ得る(322)。次に、データ・モデリング・ツールが、第1のデータ・セットに適用され得る(324)。したがって、第1のデータ・セットのアップロードが終了した後、データ・サイエンティストは、元の大きな第1のデータ・セットに対して、第2の小さなデータ・セットを準備するために使用されるステップを迅速に実行することができる。データ・モデリング・ツールは、「データ・セットを置き換えて、ノートブックを再実行するか?」などの単一のコマンドに応答して、第1のデータ・セットに対してこれらのステップを実行するように構成され得る。サーバへの伝送が正常に終了した後、第1のデータ・セットを使用して、MLシステムのMLモデルの訓練が開始され得る(326)。様々な実施形態では、MLモデルの訓練は、第1のデータ・セットが伝送された後、および第2のデータ・セットを使用してローカル・システム202で決定された構成パラメータを使用して第1のデータのデータ・クレンジングまたはデータ正規化が実行された後に、開始し得る。MLモデルの訓練が完了した後、プロセスは終了する(332)。
【0064】
図4は、アップロードすべきデータの迅速なデータ探査のためのデータ探査システム400の一実施形態のブロック図を示す。システムは、少なくとも、ローカル・システムから第1のサイズの第1のデータ・セットをアップロードするための手段、具体的には送信機402(例えば、送信機/アップローダ204)と、第1のデータ・セットが破損していないと決定するための手段、具体的には第1の決定ユニット404、例えば、データ・ファイルまたは他のデータ構造が破損しているかどうかを決定するためのテストを実施するソフトウェア・ツールとを含む。例として、CSVLint、およびチェックサムを検証するツールが含まれる。破損している場合、送信機402はアクティブにならない。
【0065】
さらに、データ探査システム400は、第1のデータ・セットから所定の数のレコードを選択し、第2のデータ・セットを構築するための手段、具体的には選択ユニット406を含む。例えば、選択ユニット406は、データのランダム・サンプリング、系統的サンプリング、階層化サンプリング、クラスタ化サンプリング、またはこれらの技術のうちの2つ以上の組合せをサンプリングするソフトウェアを含み得る。データ探査システム400は、第1のデータ・セットに関する統計データおよびメタデータを決定するための手段、具体的には第2の決定ユニット408も含む。例えば、第2の決定ユニット408は、最小値、最大値、中央値、平均値、四分位値、データの度数、欠損データ値の量を含む群からの少なくとも1つの統計データを計算するために必要なソフトウェアと、メタデータを抽出するために必要なソフトウェアとを含み得、メタデータは、行数、列数、列フィールドのタイプを含む群からの少なくとも1つを含む。第1のデータに関する統計データまたはメタデータを決定するためのソフトウェアの一例として、特別仕様または独自の決定ユニット408は、特定の第1のデータ・セットについてJavaScriptで記述され得る。さらに、特別仕様または独自のコードは、ウェブ・ブラウザを使用してファイルのサイズ、名前、最終修正時刻、および種類(メタデータ)を決定するために使用され得る。
【0066】
データ探査システム400は、第2のデータ・セット、統計データ、およびメタデータを視覚化するための手段、具体的には視覚化ユニット410も含む。視覚化ユニット410は、例えば表、チャート、プレーン・テキストとしてデータを視覚化するための任意のソフトウェアであり得る。データを視覚化するためのソフトウェアの例は、独自のツール、オープン・ソースのツール、または市販のツールであり得る。データを視覚化するためのソフトウェアは、JavaScriptで記述され、ウェブ・ブラウザ内でのデータの視覚化を実現し得る。一実施形態では、視覚化ユニット410は、視覚化すべきデータを表形式(行、列、列名)およびパネル形式(データの概要、変数/列の概要)で提示するウェブ・ブラウザなどのシン・クライアントを介してアクセス可能なウェブ・ベースのアプリケーションであり得る。パネル形式は、変数のヒストグラム、変数の平均値、中央値、最頻値、歪度、尖度、最小値、最大値、標準偏差、変数に欠損値があるかどうか(欠損値がある場合はその数)、および箱ひげ図などの個々の変数に関する情報を含み得る。例えば、第2のデータ・セットは、表形式で視覚化され得る。さらに、第1のデータ・セットは、パネル形式で視覚化され得る。これにより、選択するための手段、統計データおよびメタデータを決定するための手段、ならびに視覚化するための手段は、アップロードするための手段と時間的に並行して動作する。
【0067】
データ探査システム400のハードウェア実装可能なユニットまたはモジュール、すなわち送信機402、第1の決定ユニット404、特定の選択ユニット、第2の決定ユニット408、および視覚化ユニット410がデータ交換のために電気的に接続され得ることに留意されたい。代替として、これらはまた、データ交換および信号交換のためにデータ探査システムの内部バス・システムを介して接続され得る。
【0068】
図5に移る前に、
図6には、本発明の概念の少なくとも一部、具体的にはサーバ側構成要素が展開され得るクラウド・コンピューティング環境が示されている。
【0069】
図6は、本発明の概念の少なくとも一部が展開され得るクラウド・コンピューティング環境600を示す。クラウド・コンピューティング環境によって提供される一連の機能的な抽象化層が示されている。
図6に示す構成要素、層、および機能は例示のみを目的としており、本発明の実施形態はこれに限定されないことをあらかじめ理解されたい。図示のように、以下の層および対応する機能が提供される。ハードウェアおよびソフトウェア層602は、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例には、メインフレーム604、サーバ606、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ608、ブレード・サーバ610、ストレージ・デバイス612、ネットワーク614、およびネットワーキング構成要素614が含まれる。いくつかの実施形態では、ソフトウェア構成要素には、ネットワーク・アプリケーション・サーバ・ソフトウェア616もしくはデータベース・ソフトウェア618またはその両方が含まれる。
【0070】
仮想化層620は、抽象化層を提供し、この層から仮想エンティティの以下の例、すなわち、仮想サーバ622、仮想ストレージ624、仮想プライベート・ネットワークを含む仮想ネットワーク626、仮想アプリケーションおよびオペレーティング・システム628、ならびに仮想クライアント630が提供され得る。一例では、管理層632は、以下に記載の機能を提供することができる。リソース・プロビジョニング634は、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。計量および価格決定636は、クラウド・コンピューティング環境内でリソースが利用されるときのコスト追跡、およびこれらのリソースの消費に対する課金または請求を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことがある。セキュリティは、クラウド消費者およびタスクのための本人確認、ならびにデータおよび他のリソースのための保護を提供する。ユーザ・ポータル638は、消費者およびシステム管理者にクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理640は、要求されるサービス・レベルが満たされるようなクラウド・コンピューティング・リソースの割当ておよび管理を提供する。サービス・レベル・アグリーメント(SLA)の計画および履行642は、SLAに従って将来要求されることが予想されるクラウド・コンピューティング・リソースの事前配置および調達を提供する。
【0071】
ワークロード層644は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例には、マッピングおよびナビゲーション646、ソフトウェア開発およびライフサイクル管理648、仮想教室教育配信650、データ分析処理652、トランザクション処理654、ならびに本明細書で提案する解決策のサーバ側構成要素656が含まれる。
【0072】
本発明の実施形態は、プログラム・コードを記憶もしくは実行するかまたはその両方を行うのに好適なプラットフォームに関係なく、事実上あらゆるタイプのコンピュータとともに実装され得る。
図5は、一例として、提案する方法に関連するプログラム・コードを実行するのに好適なコンピューティング・システム400を示す。
【0073】
コンピューティング・システム500は、好適なコンピュータ・システムの一例に過ぎず、コンピュータ・システム500が本明細書で上述した機能のいずれかを実装もしくは実行することまたはその両方を行うことが可能であるかどうかに関係なく、本明細書に記載された本発明の実施形態の使用または機能の範囲に関していかなる限定も示唆することを意図していない。コンピュータ・システム500には、多数の他の汎用もしくは専用のコンピューティング・システム環境またはコンピューティング・システム構成で動作可能な構成要素が存在する。コンピュータ・システム/サーバ500での使用に好適であり得る周知のコンピューティング・システム、コンピューティング環境、もしくはコンピューティング構成、またはそれらの組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能な民生用電子機器、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれるが、これらに限定されない。コンピュータ・システム/サーバ500は、コンピュータ・システム500によって実行されるプログラム・モジュールなどのコンピュータ・システム実行可能命令の一般的なコンテキストで説明され得る。一般に、プログラム・モジュールには、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、ロジック、データ構造などが含まれ得る。コンピュータ・システム/サーバ500は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境において実施され得る。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルとリモートとの両方のコンピュータ・システム記憶媒体内に配置され得る。
【0074】
図に示すように、コンピュータ・システム/サーバ500は、汎用コンピューティング・デバイスの形式で示されている。コンピュータ・システム/サーバ500の構成要素には、1つもしくは複数のプロセッサまたは処理ユニット502、システム・メモリ504、およびシステム・メモリ504を含む様々なシステム構成要素をプロセッサ502に結合するバス506が含まれ得るが、これらに限定されない。バス406は、様々なバス・アーキテクチャのいずれかを使用するメモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたはローカル・バスを含む、いくつかのタイプのバス構造のいずれかの1つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャには、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス・スタンダード・アソシエーション(VESA)ローカル・バス、および周辺機器相互接続(PCI)バスが含まれる。コンピュータ・システム/サーバ500は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ500によってアクセス可能な任意の利用可能な媒体であり得、揮発性媒体と不揮発性媒体との両方、取り外し可能な媒体と取り外し不可能な媒体との両方が含まれる。
【0075】
システム・メモリ504は、ランダム・アクセス・メモリ(RAM)508もしくはキャッシュ・メモリ510またはその両方などの揮発性メモリの形式のコンピュータ・システム可読媒体を含み得る。コンピュータ・システム/サーバ500は、他の取り外し可能/取り外し不可能な、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単に一例として、取り外し不可能な不揮発性磁気媒体(図示せず、通常「ハード・ドライブ」と呼ばれる)との間で読み書きするために、ストレージ・システム512が提供され得る。図示されていないが、取り外し可能な不揮発性磁気ディスク(例えば、「フロッピ・ディスク(登録商標)」)との間で読み書きするための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光学媒体などの取り外し可能な不揮発性光学ディスクとの間で読み書きするための光学ディスク・ドライブが提供され得る。そのような場合、それぞれは、1つまたは複数のデータ媒体インターフェースによってバス506に接続され得る。以下でさらに図示および説明するように、メモリ504は、本発明の実施形態の機能を実行するように構成されたプログラム・モジュールのセット(例えば、少なくとも1つ)を有する少なくとも1つのプログラム製品を含み得る。
【0076】
プログラム・モジュール516のセット(少なくとも1つ)を有するプログラム/ユーティリティは、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データと同様に、限定ではなく例としてメモリ504に記憶され得る。オペレーティング・システム、1つもしくは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはそれらの何らかの組合せのそれぞれは、ネットワーキング環境の実装を含み得る。プログラム・モジュール516は、一般に、本明細書に記載のように、本発明の実施形態の機能もしくは方法論またはその両方を実行する。
【0077】
コンピュータ・システム/サーバ500はまた、キーボード、ポインティング・デバイス、ディスプレイ520などの1つもしくは複数の外部デバイス518、ユーザがコンピュータ・システム/サーバ500と対話することを可能にする1つもしくは複数のデバイス、またはコンピュータ・システム/サーバ500が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、またはそれらの組合せと通信し得る。そのような通信は、入出力(I/O)インターフェース514を介して行うことができる。さらに、コンピュータ・システム/サーバ500は、ネットワーク・アダプタ522を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)、もしくはパブリック・ネットワーク(例えば、インターネット)、またはそれらの組合せなどの1つまたは複数のネットワークと通信し得る。図示のように、ネットワーク・アダプタ522は、バス506を介してコンピュータ・システム/サーバ500の他の構成要素と通信し得る。図示していないが、コンピュータ・システム/サーバ500とともに他のハードウェア構成要素もしくはソフトウェア構成要素またはその両方を使用できることを理解されたい。例として、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
【0078】
さらに、アップロードすべきデータの迅速なデータ探査のためのデータ探査システム400が、バス・システム506に取り付けられ得る。
【0079】
本発明の様々な実施形態の説明は、例示を目的として提示されたものであり、網羅的であること、または開示された実施形態に限定されることを意図したものではない。記載された実施形態の範囲および趣旨から逸脱することなく、当業者には多くの修正形態および変形形態が明らかとなる。本明細書で使用される用語は、実施形態の原理、実際の適用例、または市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示された実施形態を理解できるようにするために選択されたものである。
【0080】
本発明は、システム、方法、もしくはコンピュータ・プログラム製品、またはそれらの組合せとして具現化され得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数のコンピュータ可読記憶媒体)を含み得る。
【0081】
媒体は、伝搬媒体用の電子、磁気、光学、電磁気、赤外線、または半導体システムであり得る。コンピュータ可読媒体の例には、半導体メモリまたはソリッド・ステート・メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、剛性磁気ディスク、および光学ディスクが含まれ得る。光学ディスクの現在の例には、読出し専用メモリ・コンパクト・ディスク(CD-ROM)、読出し/書込み用コンパクト・ディスク(CD-R/W)、DVD、およびブルーレイ・ディスクが含まれる。
【0082】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持および記憶することができる有形デバイスとすることができる。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、または上記の任意の好適な組合せであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには以下のもの、すなわち、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能プログラマブル読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル読出し専用メモリ・コンパクト・ディスク(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチ・カードまたは命令が記録された溝内の隆起構造体などの機械的に符号化されたデバイス、および上記の任意の好適な組合せが含まれる。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝播する電磁波、導波路もしくは他の伝送媒体を介して伝播する電磁波(例えば、光ファイバ・ケーブルを通る光パルス)、または電線を介して伝送される電気信号などの、一過性の信号自体であると解釈されるべきではない。
【0083】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワーク、もしくはワイヤレス・ネットワーク、またはそれらの組合せを介して外部コンピュータまたは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはそれらの組合せを含み得る。各コンピューティング/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、そのコンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0084】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、インストラクション・セット・アーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語もしくは同様のプログラム言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードもしくはオブジェクト・コードのいずれかであり得る。コンピュータ可読プログラム命令は、スタンドアロン・ソフトウェア・パッケージとして全体がユーザのコンピュータ上で、一部がユーザのコンピュータ上で、一部がユーザのコンピュータ上かつ一部がリモート・コンピュータ上で、または全体がリモート・コンピュータ上もしくはサーバ上で実行され得る。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)もしくはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得るか、または(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して接続され得る。いくつかの実施形態では、本発明の態様を実行するために、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路が、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによって、コンピュータ可読プログラム命令を実行し得る。
【0085】
本明細書では、本発明の態様について、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら説明している。フローチャート図もしくはブロック図またはその両方の各ブロック、およびフローチャート図もしくはブロック図またはその両方におけるブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0086】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートもしくはブロック図、またはその両方の1つまたは複数のブロックで指定された機能/作用を実施するための手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて、マシンを作り出すものであり得る。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/作用の態様を実施する命令を含む製造品を含むように、コンピュータ可読媒体に記憶され、コンピュータ、プログラマブル・データ処理装置、もしくは他のデバイス、またはそれらの組合せに対して特定の方式で機能するように指示できるものであり得る。
【0087】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または別のデバイスで実行される命令が、フローチャートもしくはブロック図またはその両方の1つまたは複数のブロックで指定された機能/作用を実施するように、コンピュータ実施プロセスを作り出すべく、コンピュータ、他のプログラマブル・データ処理装置、または別のデバイスにロードされて、コンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させるものであり得る。
【0088】
図中のフローチャートもしくはブロック図またはその両方は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、命令のモジュール、セグメント、または一部を表し得る。いくつかの代替の実装形態では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、関与する機能性に応じて、実質的に同時に実行され得るか、またはそれらのブロックが、場合によっては逆の順序で実行され得る。ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方におけるブロックの組合せは、指定された機能または作用を実行するか、または専用ハードウェアとコンピュータ命令との組合せを実行する専用ハードウェア・ベースのシステムによって実装され得ることにも留意されたい。
【0089】
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明を限定することを意図するものではない。単数形「a」、「an」および「the」は、本明細書で使用される場合、文脈上特に明記されていない限り、複数形も含むことを意図している。「備える(comprises)」もしくは「備える(comprising)」という用語またはその両方は、本明細書で使用される場合、記載された特徴、整数、ステップ、動作、要素、もしくは構成要素、またはそれらの組合せの存在を示すが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、もしくはこれらの群、またはそれらの組合せの存在または追加を除外するものではないことがさらに理解されよう。
【0090】
添付の特許請求の範囲内のすべての手段またはステップおよび機能要素の対応する構造、材料、作用、および均等物は、具体的に特許請求されているように、他の特許請求される要素と組み合わせて機能を実行するための任意の構造、材料、または作用を含むことが意図されている。本発明の説明は、例示および説明の目的で提示されているが、網羅的であること、または開示された形態で本発明に限定されることを意図するものではない。本発明の範囲および思想から逸脱することなく、多くの修正形態および変形形態が当業者には明らかであろう。実施形態は、本発明の原理および実際の適用例を最もよく説明するために、また企図されている特定の使用に適した様々な修正を加えた様々な実施形態の本発明を当業者が理解できるようにするために選択および説明されている。
【0091】
簡潔に言えば、本発明の概念は、以下の項目に要約され得る。
1.
2.アップロードすべきデータの迅速なデータ探査のためのコンピュータ実装方法であって、
-ローカル・システムから第1のサイズの第1のデータ・セットをアップロードすることと、
-第1のデータ・セットが破損していないと決定することと、
-アップロードと並行して、
-第1のデータ・セットから所定の数のレコードを選択し、第2のデータ・セットを構築すること、
-第1のデータ・セットに関する統計データおよびメタデータを決定すること、ならびに
-第2のデータ・セット、統計データ、およびメタデータを視覚化すること
も実行することと
を含む、コンピュータ実装方法。
3.統計データが、最小値、最大値、中央値、平均値、四分位値、データの度数、および欠損データ値の量を含む群からの少なくとも1つを含む、項目1に記載の方法。
4.メタデータが、行数、列数、列フィールドのタイプを含む群からの少なくとも1つを含む、項目1または2に記載の方法。
5.
-第1のデータ・セットのアップロードと並行して、統計データおよびメタデータも送信すること
も含む、先述の項目のいずれかに記載の方法。
6.第1のデータ・セットが破損していないとの決定が、アップロードが開始される前に実行される、先述の項目のいずれかに記載の方法。
7.アップロードの宛先がクラウド・コンピューティング・ベースのサービスである、先述の項目のいずれかに記載の方法。
8.
-アップロードと並行して、統計データ、メタデータ、もしくは第2のデータ・セット、またはそれらの組合せを使用してツールを構成すること
も含む、先述の項目のいずれかに記載の方法。
9.
-構成済みのツールを第1のデータ・セットに対して実行すること
も含む、項目7に記載の方法。
10.第2のデータ・セットのサイズが、第1のデータ・セットのサイズのごく一部である、先述の項目のいずれかに記載の方法。
11.第1のデータ・セットからの選択が、
-第1のデータ・セットからの選択が、第1のデータ・セットから、最初、中間、最後からランダムにまたは所定のアルゴリズムに従って、データを選択すること
を含む、先述の項目のいずれかに記載の方法。
12.アップロードすべきデータの迅速なデータ探査のためのデータ探査システムであって、
-ローカル・システムから第1のサイズの第1のデータ・セットをアップロードするための手段と、
-第1のデータ・セットが破損していないと決定するための手段と、
-第1のデータ・セットから所定の数のレコードを選択し、第2のデータ・セットを構築するための手段と、
-第1のデータ・セットに関する統計データおよびメタデータを決定するための手段と、
-第2のデータ・セット、統計データ、およびメタデータを視覚化するための手段と
を含み、選択するための手段、統計データおよびメタデータを決定するための手段、ならびに視覚化するための手段が、アップロードするための手段と時間的に並行して動作する、データ探査システム。
13.統計データが、最小値、最大値、中央値、平均値、四分位値、データの度数、および欠損データ値の量を含む群からの少なくとも1つを含む、項目11に記載のデータ探査システム。
14.メタデータが、行数、列数、列フィールドのタイプを含む群からの少なくとも1つを含む、項目11または12に記載のデータ探査システム。
15.
-第1のデータ・セットのアップロードと並行して、統計データおよびメタデータもアップロードするための手段
も含む、項目11ないし13のいずれかに記載のデータ探査システム。
16.第1のデータ・セットが破損していないと決定するための手段が、第1のデータ・セットをアップロードする手段が開始される前に実行される、項目11ないし14のいずれかに記載のデータ探査システム。
17.アップロードの宛先が、クラウド・コンピューティング・ベースのサービスである、項目11ないし15のいずれかに記載のデータ探査システム。
18.
-アップロードと並行して、統計データ、メタデータ、もしくは第2のデータ・セット、またはそれらの組合せを使用してツールを構成するための手段
も含む、項目11ないし16のいずれかに記載のデータ探査システム。
19.構成済みのツールが第1のデータ・セットに対して実行される、項目17に記載のデータ探査システム。
20.第2のデータ・セットのサイズが、第1のデータ・セットのサイズのごく一部である、項目11ないし18のいずれかに記載のデータ探査システム。
21.アップロードすべきデータの迅速なデータ探査のためのコンピュータ・プログラム製品であって、プログラム命令が具現化されたコンピュータ可読記憶媒体を備え、プログラム命令が、1つまたは複数のコンピューティング・システムまたはコントローラによって実行可能であり、1つまたは複数のコンピューティング・システムに、
-ローカル・システムから第1のサイズの第1のデータ・セットをアップロードさせ、
-第1のデータ・セットが破損していないと決定させ、
-アップロードと並行して、
-第1のデータ・セットから所定の数のレコードを選択し、第2のデータ・セットを構築すること、
-第1のデータ・セットに関するメタデータを決定すること、ならびに
-第2のデータ・セット、統計データ、およびメタデータの視覚化を視覚化すること
を実行させる、コンピュータ・プログラム製品。