(57)【特許請求の範囲】
【請求項１】
スレーブサーバまたは子スレッドモジュールによって実行されるデータ解析の方法であって、
１または複数のデータ識別子（ＩＤ）と、各々がプリセットキーおよびプリセット値を含む１または複数のプリセットキー−値ペアと、を含む解析対象を特定するためのデータをマスタサーバまたはメインスレッドモジュールから受信する工程と、
前記データＩＤに少なくとも部分的に基づいて、データソースから解析対象のデータを取得する工程と、
前記取得されたデータを１または複数のデータ要素に分割する工程と、
前記１または複数のプリセットキー−値ペアの１つのプリセットキーに少なくとも部分的に基づいて、分割された前記１または複数のデータ要素を分類する工程と、
前記１または複数のプリセットキー−値ペアの１つのプリセット値に少なくとも部分的に基づいて、前記分類済みの１または複数のデータ要素を解析する工程と、
を備える、方法。
【請求項２】
請求項１に記載の方法であって、前記プリセットキーは、少なくとも部分的に、前記解析対象のデータの分類方法を示す、方法。
【請求項３】
請求項１に記載の方法であって、前記プリセット値は、少なくとも部分的に、分類済みのデータの解析方法を示す、方法。
【請求項４】
請求項１に記載の方法であって、前記データＩＤは、前記解析対象のデータに関連する記憶装置におけるデータアドレス情報を示す、方法。
【請求項５】
請求項１に記載の方法であって、前記取得されたデータは、１または複数のデータ要素を含み、データ要素はパーティションＩＤによって別のデータ要素から分離されている、方法。
【請求項６】
請求項５に記載の方法であって、前記パーティションＩＤは、カンマ、セミコロン、および、コロンの内の１または複数を含む、方法。
【請求項７】
請求項１に記載の方法であって、前記取得されたデータを１または複数のデータ要素に分割する工程は、１または複数のパーティションＩＤに少なくとも部分的に基づく、方法。
【請求項８】
請求項１に記載の方法であって、前記取得されたデータは、１または複数のデータセットを含み、前記１または複数のデータセットの各々は、１または複数のデータ要素を含む、方法。
【請求項９】
請求項１に記載の方法であって、さらに、第１のプリセットフィルタ条件を満たさない１または複数の分類済みのデータ要素を放棄する工程を備える、方法。
【請求項１０】
請求項１に記載の方法であって、前記残った分類済みの１または複数のデータ要素を解析する工程は、１または複数の解析結果を生成し、第２のプリセットフィルタ条件を満たさない前記１または複数の解析結果セットの内の少なくとも１つを放棄する、方法。
【請求項１１】
請求項１に記載の方法であって、前記プリセットキーは、データ要素に関連付けられたエイリアスに対応する、方法。
【請求項１２】
データ解析のためのシステムであって、
解析対象のデータを少なくとも１つのスレーブサーバに送信し、前記少なくとも１つのスレーブサーバから解析結果を受信するように構成されている第１のプロセッサを備えるマスタサーバと、
１または複数のデータ識別子（ＩＤ）と、各々がプリセットキーおよびプリセット値を含む１または複数のプリセットキー−値ペアとを含む解析対象を特定するためのデータを前記マスタサーバから受信し、前記データＩＤに少なくとも部分的に基づいて、解析対象のデータを取得し、前記取得されたデータを１または複数のデータ要素に分割し、前記１または複数のプリセットキー−値ペアの１つのプリセットキーに少なくとも部分的に基づいて、分割された前記１または複数のデータ要素を分類し、前記１または複数のプリセットキー−値ペアの１つのプリセット値に少なくとも部分的に基づいて、前記分類された１または複数のデータ要素を解析するように構成されている第２のプロセッサを備えるスレーブサーバと、
前記第１のプロセッサに接続され、前記第１のプロセッサに命令を提供するよう構成されている第１のメモリと、
前記第２のプロセッサに接続され、前記第２のプロセッサに命令を提供するよう構成されている第２のメモリと、
を備える、システム。
【請求項１３】
請求項１２に記載のシステムであって、前記プリセットキーは、少なくとも部分的に、前記解析対象のデータの分類方法を示す、システム。
【請求項１４】
請求項１２に記載のシステムであって、前記プリセット値は、少なくとも部分的に、分類されたデータの解析方法を示す、システム。
【請求項１５】
請求項１２に記載のシステムであって、前記取得されたデータは、１または複数のデータセットを含み、前記１または複数のデータセットの各々は、１または複数のデータ要素を含む、システム。
【請求項１６】
請求項１２に記載のシステムであって、前記第２のプロセッサは、さらに、第１のプリセットフィルタ条件を満たさない１または複数の分類済みのデータ要素を放棄するよう構成されている、システム。
【請求項１７】
請求項１２に記載のシステムであって、前記残った分類済みの１または複数のデータ要素を解析するよう構成されている前記第２のプロセッサは、１または複数の解析結果を生成し、第２のプリセットフィルタ条件を満たさない前記１または複数の解析結果セットの内の少なくとも１つを放棄するよう構成されていることを含む、システム。
【請求項１８】
請求項１７に記載のシステムであって、前記第２プロセッサは、さらに、少なくとも１つの解析結果セットを前記マスタサーバに送信するよう構成されている、システム。
【請求項１９】
データ解析のためのコンピュータプログラムであって、
１または複数のデータ識別子（ＩＤ）と、各々がプリセットキーおよびプリセット値を含む１または複数のプリセットキー−値ペアとを含む解析対象を特定するためのデータをマスタサーバから受信するための機能と、
前記データＩＤに少なくとも部分的に基づいて、データソースから解析対象のデータを取得するための機能と、
前記取得されたデータを１または複数のデータ要素に分割するための機能と、
前記１または複数のプリセットキー−値ペアの１つのプリセットキーに少なくとも部分的に基づいて、分割された前記１または複数のデータ要素を分類するための機能と、
前記１または複数のプリセットキー−値ペアの１つのプリセット値に少なくとも部分的に基づいて、前記分類済みの１または複数のデータ要素を解析するための機能と、
をスレーブサーバによって実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
他の出願の相互参照
本願は、すべての目的のために参照により本明細書に組み込まれる、発明の名称を「ＭＥＴＨＯＤ，ＳＹＳＴＥＭ  ＡＮＤ  ＳＥＲＶＥＲ  ＦＯＲ  ＤＡＴＡ  ＡＮＡＬＹＳＩＳ（データ解析のための方法、システムおよびサーバ）」とする、２０１０年７月７日出願の中国特許出願第２０１０１０２２２６０２．３  号に基づく優先権を主張する。
【０００２】
本発明は、コンピュータデータ処理の分野に関する。
【背景技術】
【０００３】
Ｗｅｂ２．０技術が開発されたため、インターネットプラットフォームにおけるインターネットアプリケーションおよびオペレーショナルデータ（例えば、サブスクライバアクションデータおよびプラットフォームシステムデータ）の量が甚だしく増加した。大量のオペレーショナルデータの処理を容易にするために、通例、並列データ処理アーキテクチャが用いられる。すなわち、大量のデータの処理は、複数の分散型コンピュータの協働によって達成される。
【０００４】
一般的に、大規模なインターネットウェブサイトプラットフォームにおいて最も広く用いられている並列データ処理アーキテクチャは、Ｈａｄｏｏｐシステムアーキテクチャである。Ｈａｄｏｏｐシステムアーキテクチャは、マスタサーバおよび複数のスレーブサーバで構成されたシステムのクラスタを備える。マスタサーバは、大量のデータを複数のデータブロックに分割し、次いで、分割したデータブロックを並列動作する複数のスレーブサーバに割り当てる。各スレーブサーバは、自身のデータブロックを処理し、処理結果をマスタサーバに送信する。処理結果をマージした後、マスタサーバは、マージ済みの処理結果を出力する。さらに、ある処理ステージでマスタサーバから出力されたマージ済みの結果は、次のステージでマージされた結果を取得するための次のステージでのデータ処理の入力としても機能しうる。並列および順次処理のかかる組み合わせにより、並列データ処理システムは高効率で大量のデータを処理することができる。
【０００５】
かかる従来のデータ解析技術は、主に、リレーショナルデータベースに基づいている。しかしながら、並列データ処理アーキテクチャで大量のデータを解析するためにリレーショナルデータベースを用いるのは非常に困難である。分類およびレポート生成などの複雑なデータ解析を実行する必要がある場合、要求を満たすのは特に困難である。
【図面の簡単な説明】
【０００６】
以下の詳細な説明と添付の図面において、本発明の様々な実施形態を開示する。
【０００７】
現行の技術および本発明の実施形態における技術スキームをより明確に説明するために、実施形態または現行技術の説明に必要な図面について、以下で簡単に説明する。明らかに、以下で説明する図面は、本願のいくつかの実施形態にすぎない。当業者であれば、発明の努力を費やすことなく、これらの図面に基づいて他の図面を得ることができる。
【０００８】
【図１Ａ】マスタサーバと少なくとも２つのスレーブサーバとを備えるデータ解析システムの一実施形態を示す図。
【０００９】
【図１Ｂ】メインスレッドモジュールと、少なくとも２つの子スレッドモジュールとを備えるデータ解析システムの一実施形態を示す図。
【００１０】
【図２】データ解析のための処理の一実施形態を示すフローチャート。
【００１１】
【図３】データ解析のための処理の一実施形態を示すフローチャート。
【００１２】
【図４】マスタサーバと少なくとも１つのスレーブサーバとを備えるデータ解析システムにおけるスレーブサーバの一実施形態を示す図。
【００１３】
【図５】マスタサーバと少なくとも１つのスレーブサーバとを備えるデータ解析システムにおけるスレーブサーバの一実施形態を示す図。
【００１４】
【図６】マスタサーバと少なくとも１つのスレーブサーバとを備えるデータ解析システムにおけるスレーブサーバの一実施形態を示す図。
【００１５】
【図７】メインスレッドモジュールと１または複数の子スレッドモジュールとを備えるシステムにおける子スレッドモジュールの一実施形態を示す図。
【発明を実施するための形態】
【００１６】
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および／または、プロセッサ（プロセッサに接続されたメモリに格納および／またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ）を含め、様々な形態で実装されうる。本明細書では、これらの実装または本発明が取りうる任意の他の形態を、技術と呼ぶ。一般に、開示された処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されているものとして記載されたプロセッサまたはメモリなどの構成要素は、ある時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、１または複数のデバイス、回路、および／または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
【００１７】
以下では、本発明の原理を示す図面を参照しつつ、本発明の１または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
【００１８】
並列データ処理アーキテクチャにおける大量のデータの解析が開示されている。様々な実施形態において、並列データ処理アーキテクチャは、Ｈａｄｏｏｐシステムアーキテクチャを含む。
【００１９】
図１Ａは、マスタサーバと少なくとも２つのスレーブサーバとを備えるデータ解析システムの一実施形態を示す図である。この例において、システム１００は、マスタサーバ１０２と、少なくとも２つのスレーブサーバ１０４および１０６とを備える。この例では、２つのスレーブサーバのみが図示されているが、システム１００は、３以上のスレーブサーバを備えてもよい。様々な実施形態において、マスタサーバ１０２は、例えば、高速データネットワークおよび／または遠隔通信ネットワークを含みうるネットワーク（図示せず）を通して、スレーブサーバ１０４および１０６の一方または両方に接続される。
【００２０】
マスタサーバ１０２は、解析対象のデータ（例えば、ファイル）をスレーブサーバ１０４および１０６に送信するよう構成されている。マスタサーバ１０２は、データセットの異なる部分を複数のスレーブサーバ（例えば、１０４および１０６）に割り当てる。しかしながら、いくつかの実施形態では、マスタサーバ１０２は、各スレーブサーバが、受信したデータを用いて異なる関数を実行できるように、データセットの同一部分の内の少なくとも一部を複数のスレーブサーバに割り当てる。いくつかの実施形態において、解析対象のデータは、１または複数のデータ識別子（ＩＤ）と、１または複数のプリセットされたキー−値ペアとを含んでおり、プリセットされた各キー−値ペアは、プリセットキーおよびプリセット値を含む。いくつかの実施形態において、プリセットキーは、スレーブサーバが、解析対象のデータを分類する方法を定義する。いくつかの実施形態において、プリセット値は、スレーブサーバが、分類されたデータを解析および処理する方法を定義する。また、マスタサーバ１０２は、スレーブサーバ１０４および１０６から解析結果を受信してマージするよう構成されている。いくつかの実施形態において、マスタサーバ１０２は、１または複数のスレーブサーバから受信した解析結果をマージした後、マージされた解析結果を過去のマージされた解析結果と比較し、比較結果が条件を満たす場合に、警告を生成するよう構成されている。
【００２１】
スレーブサーバ１０４および１０６は、解析対象のデータをマスタサーバ１０２から受信するように構成されている。スレーブサーバ１０４および１０６は、生データを取得して分類し、分類された生データを解析するために、データＩＤおよびプリセットキー−値ペアを用いるよう構成されている。スレーブサーバ１０４および１０６は、解析結果をマスタサーバ１０２に送信するよう構成されている。スレーブサーバの関数に関する詳細を以下に述べる。
【００２２】
図１Ｂは、メインスレッドモジュールと、少なくとも２つの子スレッドモジュールとを備えるデータ解析システムの一実施形態を示す図である。この例において、システム１５０は、メインスレッドモジュール１０８と、少なくとも２つの子スレッドモジュール１１０および１１２とを備える。この例では、２つの子スレッドモジュールのみが図示されているが、システム１５０は、３以上の子スレッドモジュールを備えてもよい。
【００２３】
いくつかの実施形態において、メインスレッドモジュール１０８、子スレッドモジュール１１０、および、子スレッドモジュール１１２は、１つのデバイス上に実装されうる。メインスレッドモジュール１０８ならびに子スレッドモジュール１１０および１１２が１つのデバイス上に実装される場合、子スレッドモジュール１１０および１１２は、メインスレッドモジュール１０８と通信するためにネットワークを用いる必要がなく、その代わり、デバイス内部の通信プロセスを用いるだけでよい。いくつかの実施形態において、メインスレッドモジュール１０８は、マスタサーバ１０２と同様の関数を実行し、子スレッドモジュール１１０および１１２は、スレーブサーバ１０４および１０６と同様の関数を実行する。
【００２４】
図２は、データ解析のための処理の一実施形態を示すフローチャートである。いくつかの実施形態において、処理２００は、少なくとも部分的にシステム１００を用いて実施されうる。
【００２５】
工程２０１：解析対象のデータがマスタサーバから受信される。ここで、解析対象のデータは、１または複数のデータ識別子（ＩＤ）と、１または複数のプリセットされたキー−値ペアとを含んでおり、プリセットされた各キー−値ペアは、プリセットキーおよびプリセット値を含む。様々な実施形態において、解析対象のデータは、スレーブサーバで受信される。いくつかの実施形態において、データはファイルを含む。いくつかの実施形態において、プリセットキーは、スレーブサーバが、解析対象のデータを分類する方法を定義する。いくつかの実施形態において、プリセット値は、スレーブサーバが、分類されたデータを解析および処理する方法を定義する。
【００２６】
例えば、並列データ処理アーキテクチャにおいて、マスタサーバは、関連付けられた各スレーブサーバに１セットの（例えば、異なる）ファイルを送信する。ファイルは、データＩＤと、１または複数のプリセットキー−値ペアを含む。ファイル内のデータＩＤは、受信側のスレーブサーバが（例えば、ある形態の記憶装置から）取得する必要のある解析前の生データを示す。例えば、データアドレス情報（例えば、関連付けられた記憶装置に関するもの）が、受信側のスレーブサーバによって取得および解析される生データを特定するデータＩＤとして機能しうる。プリセットキー−値ペアは、プリセットキーおよびプリセット値を含む。プリセットキーは、解析することになっている生データをスレーブサーバが分類する方法を定義する。プリセット値は、プリセットキーを用いて分類された後の生データをスレーブサーバが解析する方法を定義する。
【００２７】
例えば、プリセットキー−値ペアが、以下の通りであるとする。「key=1,2,3」（ここで、１、２、および、３は、データ要素の配列内の値の最初の３つの位置を表す）、および、「value=max($a$+$b$+$c$)」。この例において、プリセットキーの定義は、受信側のスレーブサーバが、データ配列（データセットとも呼ばれる）の最初の３つの位置のデータ要素に対応する値が同じである解析前データを１つのグループに分類することを求める。次いで、プリセット値の定義に基づいて、スレーブサーバは、分類されたグループ内の各データ配列について位置ａ、ｂ、および、ｃに対応する値を足すことによって、グループに分類されたデータを解析し、その後、最大の合計値を選択する。選択された値が解析結果である。
【００２８】
いくつかの実施形態において、プリセット値の定義は、プリセットキーに基づいて分類されたデータに対して実行される関数を示す。いくつかの実施形態において、プリセット値の定義は、以下の内の１または複数を含みうる。最小値の探索（min）、最大値の探索（max）、平均値の算出（average）、カウント（count）、合計（sum）、および、直接表示（plain）。いくつかの実施形態では、直接表示（plain）は、値を表示するために用いられる。上述の関数だけでなく、プリセット値の定義によって、他の関数が示されてもよい。
【００２９】
工程２０２：解析対象のデータが、１または複数のデータＩＤに少なくとも部分的に基づいて取得される。いくつかの実施形態において、スレーブサーバは、受信されたデータＩＤに基づいてデータソースから解析対象の生データを取得する。いくつかの実施形態において、取得されたデータに含まれるデータ要素は、パーティションＩＤによって分離されている。
【００３０】
例えば、各スレーブサーバは、データＩＤによって示された解析前の生データをデータソースから取得する。例えば、データソースは、ＦＴＰサーバ、データベース（ＤＢ）、または、ファイルシステムであってよい。具体的なデータフォーマットは、例えば、データテーブル、レコード、ログなどであってよい。さらに、生データ内のデータ要素は、パーティションＩＤによって分離すなわち区切られている。パーティションＩＤは、例えば、カンマ、セミコロン、コロンなどであってよい。例示のために、本明細書では、データ要素間のパーティションＩＤとしてカンマを用いる。
【００３１】
例えば、以下は、データソースから取得された２セット（または配列）の生データである。この例において、生データは、ログタイプのデータフォーマットから抽出された。ログ抽出（log extract）内では、どのデータ要素も、カンマによって別のデータ要素から分離されている。さらに、このログ抽出は、合計２セットの生データを含んでおり、キャリッジリターンが、各データセットの終わりを示している。
【００３２】
0,203.171.227.117,null,xml,12005554,taobao.user.get,0,0,0,172.24.14.65,Xiao Guo cc,1.0,null,3,null,0,1274803197776,0,0,0,1,0,0,0,0,8,0,0,0,9
【００３３】
0,97.74.215.111,null,xml,12028711,taobao.taobaoke.items.detail.get,0,0,null,172.24.14.65,null,2.0,md5,4,null,221000,1274803197765,0,2,-1,1,0,0,0,0,23,0,0,0,26
【００３４】
工程２０３：取得されたデータは、１または複数のデータ要素に分割される。いくつかの実施形態において、スレーブサーバは、取得した生データをパーティションＩＤに基づいてデータ要素に分割する。
【００３５】
前の例を用いると、データ要素がカンマのパーティションＩＤによって分離されている場合、第１のデータセットは、カンマの位置で分割されて、合計３０のデータ要素を形成しうる。第１のデータ要素は「0」、第２のデータ要素は「203.171.227.117」、第３のデータ要素は「null」、第４のデータ要素は「xml」、第５のデータ要素は「12005554」、第６のデータ要素は「taobao.user.get」、・・・、３０番目のデータ要素は「9」である。
【００３６】
第２のデータセットは、上述した方法と同様の方法で３０のデータ要素に分割されうる。
【００３７】
工程２０４：１または複数のデータ要素は、１または複数のプリセットキー−値ペアの１つのプリセットキーに少なくとも部分的に基づいて分類される。
【００３８】
例えば、プリセットキー−値ペアの１つに含まれるプリセットキーが、「key=1,2,3」である場合、プリセットキーによって参照されるデータ要素は、（データセットがパーティションＩＤの位置で分割された後の）データセットの最初の３つの位置にあるデータ要素である。先の例を用いると、分割されたデータ要素は、位置１〜３のデータ要素である、「0」、「203.171.227.117」、および、「null」。
【００３９】
例えば、プリセットキーが、「key=1,2,3」であり、プリセット値が、「value=max($a$+$b$+$c$)」であると仮定する。この例において、解析前の生データが１０セットあると仮定する。プリセットキー「key=1,2,3」に基づいて１０セットの生データを分類する工程は、位置１、２、および、３に同じデータ要素を有するデータセットを１つのグループに分類する工程を備える。分類後、１０セットの解析前データの内の７セットが、位置１〜３に同じデータ要素を共有しており（例えば、これらの７セットのデータは１つのグループに分類される）、他の３セットの生データが、位置１〜３に同じデータ要素を共有している（例えば、これらの３セットのデータは第２のグループに分類される）ことがわかった。したがって、位置ａ、ｂ、および、ｃ（位置ａ、ｂ、および、ｃは、位置１、２、および、３と同じであってもよいし同じでなくてもよい）のデータ要素の合計が、上述の１つのグループに含まれる７つの生データセットの各々について計算され、次いで、計算された合計値の中の最大値が返される。同様に、第２のグループの３つの生データセットの各々について、位置ａ、ｂ、および、ｃのデータ要素の合計が計算され、次いで、計算された合計値の中の最大値が返される。
【００４０】
しかしながら、レコードが大量のデータを含む場合、または、生データ内のデータ要素の配列が変化する場合には、データ要素の処理が不正確になりやすくなる。生データセット内のデータ要素の配列は、例えば、新たなデータ要素（例えば、「responseMappingTime」のエイリアスに対応するデータ要素）が配列に追加された時に変化しうる。新たなデータ要素は、配列内の任意の位置に挿入されうるため、すでに配列の一部であったデータ要素の少なくとも一部の順序を変更しうる。いくつかの実施形態において、生データセット内のデータ要素の配列が変化した場合、対応するプリセットキーの定義は、それに応じて変化する必要がある。対応するプリセットキーの定義が・・・・・・・・・"である（例えば、プリセットキー「1」は生データ配列内の１番目の位置を示す）データ要素「0」を例にとると、そのデータ要素が、生データ配列内で１つ右の位置に移動された場合、それに対応するプリセットキーの定義は、・・・・・・・・・"になる。この時点で、データ要素「0」を参照したい場合、プリセットキー−値ペア内のプリセットキーの定義を修正する必要がある。すなわち、「key=1」は、「key=2」に修正されることが好ましい。修正されなかった場合、誤ったデータ要素がスレーブサーバによって参照されることになる。いくつかの実施形態において、データ要素がデータ要素配列内の新たな位置に移動された時に、プリセットキー−値ペア内のプリセットキーの定義を修正する必要がないようにするために、各データ要素のためのエイリアス（alias）を確立する。以下は、配列内の各データ要素の定義およびそれに対応するエイリアスの一例である。
【００４１】
<aliases>
【００４２】
<alias name="appStatus" key="1"/>
【００４３】
<alias name="remoteIp" key="2"/>
【００４４】
<alias name="partnerId" key="3"/>
【００４５】
<alias name="format" key="4"/>
【００４６】
<alias name="appKey" key="5"/>
【００４７】
<alias name="apiName" key="6"/>
【００４８】
<alias name="readBytes" key="7"/>
【００４９】
<alias name="errorCode" key="8"/>
【００５０】
<alias name="subErrorCode" key="9"/>
【００５１】
<alias name="localIp" key="10"/>
【００５２】
<alias name="nick" key="11"/>
【００５３】
<alias name="version" key="12"/>
【００５４】
<alias name="signMethod" key="13"/>
【００５５】
<alias name="tag" key="14"/>
【００５６】
<alias name="id" key="15"/>
【００５７】
<alias name="responseMappingTime" key="16"/>
【００５８】
<alias name="timestamp0" key="17"/>
【００５９】
<alias name="timestamp1" key="18"/>
【００６０】
<alias name="timestamp2" key="19"/>
【００６１】
<alias name="timestamp3" key="20"/>
【００６２】
<alias name="timestamp4" key="21"/>
【００６３】
<alias name="timestamp5" key="22"/>
【００６４】
<alias name="timestamp6" key="23"/>
【００６５】
<alias name="timestamp7" key="24"/>
【００６６】
<alias name="timestamp8" key="25"/>
【００６７】
<alias name="timestamp9" key="26"/>
【００６８】
<alias name="timestamp10" key="27"/>
【００６９】
<alias name="timestamp11" key="28"/>
【００７０】
<alias name="timestamp12" key="29"/>
【００７１】
<alias name="timestamp13" key="30"/>
【００７２】
</aliases>
【００７３】
上記の例に示すように、データセット内の第１のデータ要素のエイリアスは「appStatus」、第２のデータ要素のエイリアスは「remoteIp」、などである。いくつかの実施形態において、エイリアス定義が用いられると、それに応じて、上記のプリセットキー−値ペア内に定義されたプリセットキーは、適切に定義されたエイリアス：key=“appStatus,remoteIp,partnerId”によって置き換えられる。したがって、第１のデータ要素“0”が１つ右の位置に移動されても、レコード配列内での位置は変化するが、そのエイリアスは“appStatus”のままである（エイリアスが用いられなかった場合、対応するプリセットキー“1”は移動後に不正確になる）。したがって、エイリアス定義を利用すれば、対応するデータ要素がデータ配列内で移動された場合に、プリセットキー−値ペア内のプリセットキーの定義を修正する必要がなくなる。
【００７４】
工程２０５：分類された１または複数のデータ要素は、１または複数のプリセットキー−値ペアの１つのプリセット値に少なくとも部分的に基づいて解析される。いくつかの実施形態において、分類された１または複数のデータ要素は、スレーブサーバによって解析される。いくつかの実施形態において、解析の結果は、マスタサーバに送信される。いくつかの実施形態において、マスタサーバは、２以上のスレーブサーバから解析結果を収集する。いくつかの実施形態において、マスタサーバは、１または複数のスレーブサーバから収集した解析結果をマージする、および／または、収集した解析結果にさらなる解析を実行することができる。
【００７５】
例えば、プリセットキー−値ペア内で定義された（エイリアス定義を用いる）プリセットキーが「key=version，apiName，format」であり、定義されたプリセット値が「value=average($responseMappingTime$)」であると仮定する。スレーブサーバは、プリセットキーの定義に基づいて、データ要素「version」、「apiName」、および、「format」に対応する値が同じである取得済みの生データセットのサブセットを１つのグループに分類する。スレーブサーバは、プリセット値の定義に基づいて、グループ内のデータセットからデータ要素「responseMappingTime」に対応する値の平均値を見つける。
【００７６】
以下は、プリセットキー−値ペアの定義の例であり、各々のペアがプリセットキーおよび対応するプリセット値を含む：
【００７７】
<entryList>
【００７８】
<entry name="サービス名" key="version,apiName,format" value="plain($apiName$)"/>
【００７９】
<entry name="バージョン番号" key="version,apiName,format" value="plain($version$)"/>
【００８０】
<entry name="リターンフォーマット" key="version,apiName,format" value="plain($format$)"/>
【００８１】
<entry name="マッピング時間" key="version,apiName,format" value="average($responseMappingTime$)"/>
【００８２】
<entry name="最大マッピング時間" key="version,apiName,format" value="max($responseMappingTime$)"/>
【００８３】
<entry name="平均消費タスク時間(ms)" key="version,apiName,format" value="average ($timestamp9$)"/>
【００８４】
<entry name="処理総数" key="version,apiName,format" value="count()"/>
【００８５】
</entryList>
【００８６】
第１の例のプリセットキー−値ペアにおいて、プリセットキーの定義は、スレーブサーバが、「version」、「apiName」、および、「format」というデータ要素について同じ値を含む生データセットを１つのグループに分類することを示す。プリセット値の定義は、スレーブサーバが、グループに含まれる各データセットについてデータ要素「apiName」の値を表示することを示す。
【００８７】
第２の例のプリセットキー−値ペアにおいて、プリセットキーの定義は、スレーブサーバが、「version」、「apiName」、および、「format」というデータ要素について同じ値を含む生データセットを１つのグループに分類することを示す。プリセット値の定義は、スレーブサーバが、グループに含まれる各データセットについてデータ要素「version」の値を表示することを示す。
【００８８】
第３の例のキー−値ペアにおいて、プリセットキーの定義は、スレーブサーバが、「version」、「apiName」、および、「format」というデータ要素について同じ値を含む生データセットを１つのグループに分類することを示す。プリセット値の定義は、スレーブサーバが、グループに含まれる各データセットについてデータ要素「format」の値を表示することを示す。
【００８９】
第４の例のプリセットキー−値ペアにおいて、プリセットキーの定義は、スレーブサーバが、「version」、「apiName」、および、「format」というデータ要素について同じ値を含む生データセットを１つのグループに分類することを示す。プリセット値の定義は、スレーブサーバが、グループに含まれるデータセットについてデータ要素「responseMappingTime」に対応する値の平均値を計算することを示す。
【００９０】
第５の例のプリセットキー−値ペアにおいて、プリセットキーの定義は、スレーブサーバが、「version」、「apiName」、および、「format」というデータ要素について同じ値を含む生データセットを１つのグループに分類することを示す。プリセット値の定義は、スレーブサーバが、グループに含まれるデータセットについてデータ要素「responseMappingTime」に対応する値の最大値を計算することを示す。
【００９１】
第６の例のプリセットキー−値ペアにおいて、プリセットキーの定義は、スレーブサーバが、「version」、「apiName」、および、「format」というデータ要素について同じ値を含む生データセットを１つのグループに分類することを示す。プリセット値の定義は、スレーブサーバが、グループに含まれるデータセットについてデータ要素「timestamp9」に対応する値の平均値を計算することを示す。
【００９２】
第７の例のプリセットキー−値ペアにおいて、プリセットキーの定義は、スレーブサーバが、「version」、「apiName」、および、「format」というデータ要素について同じ値を含む生データセットを１つのグループに分類することを示す。プリセット値の定義は、スレーブサーバが、グループに含まれる分類済みの生データセットの数をカウントすることを示す。
【００９３】
さらに、上述の第７の例のキー−値ペアは、例えば、「サービス名」、「バージョン番号」、「リターンフォーマット」、「マッピング時間」、「最大マッピング時間」、「平均消費タスク時間（ｍｓ）」、および、「処理総数」など、解析結果の表示名（例えば、「エントリ名」）も示す。
【００９４】
以下は、上述のようにプリセットキー−値ペアを用いたデータ解析から返されたデータの一例である。
【表１】
0005635691.tif 000002
【００９５】
上記の例において、第１行のデータ（例えば、「taobao.areas.get」で始まる行）は、データ要素「version」、「apiName」、および、「format」を含むプリセットキーに基づいて分類が行われることを示す。データセットは、（「apiName」、「version」、および、「return format」に対応する）「サービス名」、「バージョン番号」、および、「リターンフォーマット」が、それぞれ、「taobao.areas.get」、「1」、および、「xml」であるという事実に基づいて１つのグループに分類される。このグループに含まれるデータセットの処理総数（「count()」のプリセット値）は、１５である。このグループのデータセットのマッピング時間および最大マッピング時間（「max($responseMappingTime$)」のプリセット値）は両方とも、０である。このグループに含まれる１５のデータセットに費やされた平均タスク時間（「average($timestamp9$)」のプリセット値）は、８８．７３３３３ｍｓである。
【００９６】
いくつかの実施形態において、各スレーブサーバは、生データを解析および処理した後、解析データをマスタサーバに送信する。マスタサーバは、１または複数のスレーブサーバから受信した解析結果をマージする。いくつかの実施形態において、マスタサーバは、プリセットキー−値ペア内のプリセットキーの定義を用いて、複数のスレーブサーバから受信した解析結果を分類することができる（例えば、各スレーブサーバは、異なるリモートの物理的位置に配置されうる）。いくつかの実施形態では、次に、マスタサーバは、分類された解析結果をマージする。例えば、プリセットキー（例えば、マスタサーバのシステム管理者によって構成されたもの）は、マスタサーバが解析結果を分類および処理する方法を示すことができ、プリセット値（マスタサーバのシステム管理者によって構成されたもの）は、マスタサーバが解析結果をマージする方法を示すことができる。例えば、マスタサーバは、５つのスレーブサーバから合計１０の解析結果を受信する。プリセットキーの定義を用いて、解析結果の内の７セットが１つのグループに分類され（７つのデータセットが、プリセットキー内で指定されたデータ要素に対応する値が同じであるため）、解析結果の内の他の３セットが第２のグループに分類されうる。したがって、マスタサーバは、プリセット値の定義を用いて、分類済みの解析結果の内の７セットを解析し、プリセット値の定義を用いて、分類済みの解析結果の内の３セットを解析することができる。
【００９７】
いくつかの実施形態において、上述の技術は、メインスレッドモジュールと１または複数の子スレッドモジュールとを備える設定（例えば、システム１５０）に適用可能である。かかる設定において、メインスレッドモジュールは、マスタサーバの機能を実現でき、子スレッドモジュールは、スレーブサーバの機能を実現できる。
【００９８】
図３は、データ解析のための処理の一実施形態を示すフローチャートである。処理３００は、少なくとも、特定のデータが分類された後にそのデータをフィルタリングするさらなる技術を備える点で、処理２００と異なる。いくつかの実施形態において、（例えば、データ解析システムの）管理者が、どのデータをフィルタアウトするのかを設定する。いくつかの実施形態において、処理３００は、処理２００の代わりに利用可能である。
【００９９】
この例において、工程３０１から３０４は、工程２０１から２０４に対応する。
【０１００】
工程３０１：解析対象のデータがマスタサーバから受信される。ここで、解析対象のデータは、１または複数のデータ識別子（ＩＤ）と、１または複数のプリセットされたキー−値ペアとを含んでおり、プリセットされた各キー−値ペアは、プリセットキーおよびプリセット値を含む。様々な実施形態において、解析対象のデータは、スレーブサーバで受信される。いくつかの実施形態において、データはファイルを含む。いくつかの実施形態において、プリセットキーは、スレーブサーバが、解析対象のデータを分類する方法を定義する。いくつかの実施形態において、プリセット値は、スレーブサーバが、分類されたデータを解析および処理する方法を定義する。
【０１０１】
工程３０２：解析対象のデータが、少なくとも部分的にデータＩＤに基づいて取得される。いくつかの実施形態において、スレーブサーバは、受信されたデータＩＤに基づいてデータソースから解析対象の生データを取得する。いくつかの実施形態において、取得されたデータに含まれるデータ要素は、パーティションＩＤによって分離されている。
【０１０２】
工程３０３：取得されたデータは、１または複数のデータ要素に分割される。いくつかの実施形態において、スレーブサーバは、取得した生データをパーティションＩＤに基づいてデータ要素に分割する。
【０１０３】
工程３０４：１または複数のデータ要素は、１または複数のプリセットキー−値ペアの１つのプリセットキーに少なくとも部分的に基づいて分類される。
【０１０４】
工程３０５：第１のプリセットフィルタ条件を満たさない１または複数の分類済みのデータ要素が放棄される。
【０１０５】
例えば、プリセットキーに基づいて１０のデータセットを分類した後、スレーブサーバは、データセットの内の７つを１つのグループに分類し、他の３つのデータセットを第２のグループに分類する。この例では、フィルタ条件は、（例えば管理者によって）設定されている。プリセットされたフィルタの存在により、フィルタ条件を満たさない第１のグループの７データセットの内の２つが、フィルタアウト（例えば、放棄）される。結果として、（フィルタ条件を満たすので放棄されない）残りの５つのデータセットが、プリセット値に基づいてスレーブサーバによって処理される。
【０１０６】
例えば、第１のプリセットフィルタ条件は、所定の値よりも大きい、所定の値よりも小さい、所定の値と等しくない、所定の値以上である、または、所定の値以下である、などの条件式を含みうる。第１のフィルタ条件は、データセット内の１つの特定のデータ要素のための条件式を指定しうる。第１のフィルタ条件は、記載のものに限定されず、システムの管理者の受容に合わせて任意の形で実現されうる。
【０１０７】
工程３０６：残った分類済みの１または複数のデータ要素が、１または複数のプリセットキー−値ペアの１つのプリセット値に少なくとも部分的に基づいて解析される。いくつかの実施形態において、分類された１または複数のデータ要素は、スレーブサーバによって解析される。いくつかの実施形態において、第２のプリセットフィルタ条件を満たさない解析結果の少なくともサブセットがフィルタアウト（例えば、放棄）される。いくつかの実施形態において、解析の結果は、マスタサーバに送信される。いくつかの実施形態において、マスタサーバは、２以上のスレーブサーバから解析結果を収集する。いくつかの実施形態において、マスタサーバは、１または複数のスレーブサーバから収集した解析結果をマージする、および／または、収集した解析結果にさらなる解析を実行することができる。
【０１０８】
いくつかの実施形態では、ユーザが設定した条件を満たさない一部の解析結果も放棄される。例えば、システムの管理者は、第２のプリセットフィルタ条件を設定することが可能であり、第２のプリセットフィルタ条件は、解析結果に適用される。残った解析結果（第２のプリセットフィルタ条件を満たすので放棄されない解析結果）は、さらなる処理がある場合には、そのためにマスタサーバへ送信される。
【０１０９】
例えば、第２のプリセットフィルタ条件は、所定の値よりも大きい、所定の値よりも小さい、所定の値と等しくない、所定の値以上である、または、所定の値以下である、などの条件式を含みうる。第２のプリセットフィルタ条件は、解析結果のセット内の１つの特定の要素のための条件式を指定しうる。第２のプリセットフィルタ条件は、記載のものに限定されず、システムの管理者の受容に合わせて任意の形で実現されうる。
【０１１０】
いくつかの実施形態において、データに対して解析を実行することに加えて、必要に応じて、１つのデータセットおよび別のデータセットに対して比較解析を行って、いくつかの警告を生成することができる。比較解析の実行によって、大量のデータに関連するいくつかの問題を避けることができる。いくつかの実施形態において、マスタサーバは、１または複数のスレーブサーバから受信した解析結果をマージした後、最近マージされた結果と過去にマージされた結果との間の比較解析を実行し、警告条件が満たされた場合に比較解析の結果に基づいて警告信号を生成する。例えば、システム管理者は、自身の利用要件に基づいて様々な警告条件を設定してよい。
【０１１１】
以下は、マスタサーバによって実行できる比較解析のいくつかの例である：
【０１１２】
比較解析の一例は、今日マージされたデータを、前日のマージ済みのデータ（または、いくつかの実施形態では、今マージされる前日のデータ）と比較することを含む。例えば、警告条件は、今日マージされたデータが前日のマージ済みのデータよりも小さい場合に満たされる（そして、警告信号が生成される）。
【０１１３】
比較解析の別の例は、今日マージされたデータを先週マージされたデータと比較することを含む。例えば、警告条件は、今日マージされたデータと先週マージされたデータとの間の比較に基づきうる。
【０１１４】
比較解析の別の例は、今日マージされたデータを先月マージされたデータと比較することを含む。例えば、警告条件は、今日マージされたデータと先月マージされたデータとの間の比較に基づきうる。
【０１１５】
比較解析の別の例は、今日マージされたデータを、規定された日にマージされたデータと比較することを含む。例えば、警告条件は、今日マージされたデータと規定された日にマージされたデータとの間の比較に基づきうる。
【０１１６】
ここに記載した比較解析は、例にすぎない。任意の他の形態の比較解析が用いられてもよい。
【０１１７】
いくつかの実施形態において、処理３００について上述した技術は、メインスレッドモジュールと１または複数の子スレッドモジュールとを備える設定（例えば、システム１５０）に適用可能である。かかる設定において、メインスレッドモジュールは、マスタサーバの機能を実現でき、子スレッドモジュールは、スレーブサーバの機能を実現できる。例えば、子スレッドモジュールは、プリセットキーに基づいて取得済みの生データを分類した後、第１のプリセットフィルタ条件を満たさないデータをフィルタアウトすることができる。次いで、子スレッドモジュールは、プリセット値に基づいて、（フィルタアウトされていない）残りのデータを解析できる。いくつかの実施形態において、子スレッドモジュールは、さらに、第２のプリセットフィルタ条件を解析結果に適用して、条件を満たさない結果をフィルタアウト（例えば、放棄）することができる。第２のプリセットフィルタ条件を満たす解析結果（放棄されない解析結果）は、必要に応じて、さらなる処理に向けてメインスレッドモジュールに送信される。メインスレッドモジュールは、受信した解析結果をマージした後、マージした結果といくつかの過去のマージ済み結果との間の比較解析を実行して、比較解析結果に基づいて警告信号を生成できる。
【０１１８】
図４は、マスタサーバと少なくとも１つのスレーブサーバとを備えるデータ解析システムにおけるスレーブサーバの一実施形態を示す図である。この例において、スレーブサーバ４００は、第１のファイル受信モジュール４０２と、第１のデータ取得モジュール４０２と、第１のデータ分割モジュール４０６と、第１のデータ分類モジュール４０８と、データ計算モジュール４１０とを備える。
【０１１９】
これらのモジュールは、１または複数のプロセッサ上で実行されるソフトウェアコンポーネントとして、特定の機能を実行するよう設計されたプログラム可能論理デバイスおよび／または特定用途向け集積回路などのハードウェアとして、もしくは、それらの組み合わせとして実装することができる。いくつかの実施形態において、モジュールは、コンピュータデバイス（パーソナルコンピュータ、サーバ、ネットワーク装置など）に本発明の実施形態に記載された方法を実行させるための複数の命令など、不揮発性記憶媒体（光学ディスク、フラッシュ記憶装置、携帯用ハードディスクなど）に格納することができるソフトウェア製品の形態で具現化されてよい。モジュールは、単一のデバイス上に実装されてもよいし、複数のデバイスにわたって分散されてもよい。
【０１２０】
第１のファイル受信モジュール４０２は、マスタサーバによって送信された解析対象のデータ（例えば、ファイル）を受信するよう構成されている。いくつかの実施形態において、解析対象のデータは、１または複数のデータ識別子（ＩＤ）と、１または複数のプリセットキー−値ペアとを含む。
【０１２１】
第１のデータ取得モジュール４０４は、受信されたデータＩＤに基づいて、データソースから解析対象の生データを取得するよう構成されている。いくつかの実施形態において、取得されたデータに含まれるデータ要素は、パーティションＩＤによって分離されている。
【０１２２】
第１のデータ分割モジュール４０６は、取得されたデータを１または複数のデータ要素に分割するよう構成されている。いくつかの実施形態において、分割は、パーティションＩＤに基づいて行われる。
【０１２３】
第１のデータ分類モジュール４０８は、取得された生データをプリセットキーに基づいて分類するよう構成されている。
【０１２４】
第１のデータ計算モジュール４１０は、分類された生データをプリセット値に基づいて解析するよう構成されている。いくつかの実施形態において、第１のデータ計算モジュール４１０は、さらに、解析結果をマスタサーバに送信するよう構成されている。
【０１２５】
図５は、マスタサーバと少なくとも１つのスレーブサーバとを備えるデータ解析システムにおけるスレーブサーバの一実施形態を示す図である。この例において、スレーブサーバ５００は、第１のフィルタモジュール４０９が追加されていることを除いて、スレーブサーバ４００と同様である。
【０１２６】
第１のフィルタモジュール４０９は、第１のプリセットフィルタ条件を満たさない分類済みの生データをフィルタアウト（例えば、放棄）するよう構成されている。この例において、第１のデータ計算モジュール４１０は、プリセットキーに基づいて、残った分類済みの生データ（例えば、第１のプリセットフィルタ条件を満たすので放棄されないデータ）を解析するよう構成されている。いくつかの実施形態において、第１のデータ計算モジュール４１０は、さらに、解析結果をマスタサーバに送信するよう構成されている。
【０１２７】
図６は、マスタサーバと少なくとも１つのスレーブサーバとを備えるデータ解析システムにおけるスレーブサーバの一実施形態を示す図である。この例において、スレーブサーバ６００は、第２のフィルタモジュール４１２が追加されていることを除いて、スレーブサーバ４００と同様である。
【０１２８】
第２のフィルタモジュール４１２は、第２のプリセットフィルタ条件を満たさない解析結果をフィルタアウト（例えば、放棄）するよう構成されている。いくつかの実施形態において、第１のデータ計算モジュール４１０は、残った解析結果（例えば、第２のプリセットフィルタ条件を満たすので放棄されない解析結果）をマスタサーバに送信するよう構成されている。
【０１２９】
図７は、メインスレッドモジュールと１または複数の子スレッドモジュールとを備えるシステムにおける子スレッドモジュールの一実施形態を示す図である。この例において、子スレッドモジュール７００は、第２のファイル受信モジュール７０２と、第１のデータ取得モジュール７０４と、第１のデータ分割モジュール７０６と、第１のデータ分類モジュール７０８と、データ計算モジュール７１０とを備える。いくつかの実施形態において、子スレッドモジュールに関連するモジュールは、１つのデバイス上に実装される。上述のように、いくつかの実施形態において、メインスレッドモジュールは、マスタサーバの機能を実行でき、各子スレッドモジュールは、スレーブサーバの機能を実行できる。
【０１３０】
第２のファイル受信モジュール７０２は、メインスレッドモジュールによって送信された解析対象のデータ（例えば、ファイル）を受信するよう構成されている。いくつかの実施形態において、解析対象のデータは、１または複数のデータ識別子（ＩＤ）と、１または複数のプリセットキー−値ペアとを含む。
【０１３１】
第２のデータ取得モジュール７０４は、受信されたデータＩＤに基づいて、データソースから解析対象の生データを取得するよう構成されている。いくつかの実施形態において、取得されたデータに含まれるデータ要素は、パーティションＩＤによって分離されている。
【０１３２】
第２のデータ分割モジュール７０６は、取得されたデータを１または複数のデータ要素に分割するよう構成されている。いくつかの実施形態において、分割は、パーティションＩＤに基づいて行われる。
【０１３３】
第２のデータ分類モジュール７０８は、取得された生データをプリセットキーに基づいて分類するよう構成されている。
【０１３４】
第２のデータ計算モジュール７１０は、分類された生データをプリセット値に基づいて解析するよう構成されている。いくつかの実施形態において、第１のデータ計算モジュール４１０は、さらに、解析結果をメインスレッドモジュールに送信するよう構成されている。
【０１３５】
いくつかの実施形態において、子スレッドモジュール７００は、さらに、分類済みの生データから、第１のプリセットフィルタ条件を満たさない分類済みの生データをフィルタアウトするよう構成された第３のフィルタモジュールを備える。第３のフィルタモジュールが子スレッドモジュール７００に備えられる場合、第２のデータ計算モジュール７１０は、残った分類済みの生データ（プリセットフィルタ条件を満たすのでフィルタアウトされないデータ）をプリセット値に基づいて解析するよう構成されている。
【０１３６】
いくつかの実施形態において、子スレッドモジュール７００は、さらに、第２のプリセットフィルタ条件を満たさない解析結果をフィルタアウトするよう構成された第４のフィルタモジュールを備える。第４のフィルタモジュールが子スレッドモジュール７００に備えられる場合、第２のデータ計算モジュール７１０は、残った解析結果（第２のプリセットフィルタ条件を満たすのでフィルタアウトされない解析結果）をメインスレッドモジュールに送信するよう構成されている。
【０１３７】
当業者が上述の実施形態の方法に含まれる処理の全部または一部を実施する方法を理解できることを説明する必要がある。当業者は、かかる処理を実行するよう関連のハードウェアに命令するコンピュータプログラムを利用することができる。それらのプログラムは、コンピュータの読み取り可能な記憶媒体に格納できる。プログラムは、実行時に、上述したすべての方法の実施形態を含みうる。上述の記憶媒体は、磁気ディスク、光学ディスク、読み出し専用メモリ（ＲＯＭ）、または、ランダムアクセスメモリ（ＲＡＭ）であってよい。
【０１３８】
以上、本願によって提供されるデータ解析方法、システム、および、サーバについて、詳細に説明した。本明細書は、具体的な実施形態を用いて、本願の実施例の原理および形態を説明している。上記の実施形態の説明は、単に、本願の方法およびその中心概念の理解を助けるよう意図されたものである。さらに、当業者は、本願の概念に基づいて、具体的な応用例および応用例の範囲に対して修正を加えることができる。要するに、本記載の内容は、本願を限定するものとして理解されるべきではない。
【０１３９】
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供された詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示された実施形態は、例示であり、限定を意図するものではない。
適用例１：データ解析の方法であって、１または複数のデータ識別子（ＩＤ）と、各々がプリセットキーおよびプリセット値を含む１または複数のプリセットキー−値ペアと、を含む解析対象のデータを受信する工程と、前記データＩＤに少なくとも部分的に基づいて、解析対象のデータを取得する工程と、前記取得されたデータを１または複数のデータ要素に分割する工程と、前記１または複数のプリセットキー−値ペアの１つのプリセットキーに少なくとも部分的に基づいて、前記１または複数のデータ要素を分類する工程と、前記１または複数のプリセットキー−値ペアの１つのプリセット値に少なくとも部分的に基づいて、前記分類済みの１または複数のデータ要素を解析する工程と、を備える、方法。
適用例２：適用例１に記載の方法であって、前記プリセットキーは、少なくとも部分的に、前記解析対象のデータの分類方法を示す、方法。
適用例３：適用例１に記載の方法であって、前記プリセット値は、少なくとも部分的に、分類済みのデータの解析方法を示す、方法。
適用例４：適用例１に記載の方法であって、前記データＩＤは、前記解析対象のデータに関連する記憶装置におけるデータアドレス情報を示す、方法。
適用例５：適用例１に記載の方法であって、前記取得されたデータは、１または複数のデータ要素を含み、データ要素はパーティションＩＤによって別のデータ要素から分離されている、方法。
適用例６：適用例５に記載の方法であって、前記パーティションＩＤは、カンマ、セミコロン、および、コロンの内の１または複数を含む、方法。
適用例７：適用例１に記載の方法であって、前記取得されたデータを１または複数のデータ要素に分割する工程は、１または複数のパーティションＩＤに少なくとも部分的に基づく、方法。
適用例８：適用例１に記載の方法であって、前記取得されたデータは、１または複数のデータセットを含み、前記１または複数のデータセットの各々は、１または複数のデータ要素を含む、方法。
適用例９：適用例１に記載の方法であって、さらに、第１のプリセットフィルタ条件を満たさない１または複数の分類済みのデータ要素を放棄する工程を備える、方法。
適用例１０：適用例１に記載の方法であって、前記残った分類済みの１または複数のデータ要素を解析する工程は、１または複数の解析結果を生成し、第２のプリセットフィルタ条件を満たさない前記１または複数の解析結果セットの内の少なくとも１つを放棄する、方法。
適用例１１：適用例１に記載の方法であって、前記プリセットキーは、データ要素に関連付けられたエイリアスに対応する、方法。
適用例１２：適用例１に記載の方法であって、前記解析対象のデータは、マスタサーバから受信される、方法。
適用例１３：適用例１に記載の方法であって、前記解析対象のデータは、メインスレッドモジュールから受信される、方法。
適用例１４：データ解析のためのシステムであって、解析対象のデータを少なくとも１つのスレーブサーバに送信し、前記少なくとも１つのスレーブサーバから解析結果を受信するように構成されている第１のプロセッサを備えるマスタサーバと、１または複数のデータ識別子（ＩＤ）と、各々がプリセットキーおよびプリセット値を含む１または複数のプリセットキー−値ペアとを含む解析対象のデータを前記マスタサーバから受信し、前記データＩＤに少なくとも部分的に基づいて、解析対象のデータを取得し、前記取得されたデータを１または複数のデータ要素に分割し、前記１または複数のプリセットキー−値ペアの１つのプリセットキーに少なくとも部分的に基づいて、前記１または複数のデータ要素を分類し、前記１または複数のプリセットキー−値ペアの１つのプリセット値に少なくとも部分的に基づいて、前記分類された１または複数のデータ要素を解析するように構成されている第２のプロセッサを備えるスレーブサーバと、前記第１のプロセッサに接続され、前記第１のプロセッサに命令を提供するよう構成されている第１のメモリと、前記第２のプロセッサに接続され、前記第２のプロセッサに命令を提供するよう構成されている第２のメモリと、を備える、システム。
適用例１５：適用例１４に記載のシステムであって、前記プリセットキーは、少なくとも部分的に、前記解析対象のデータの分類方法を示す、システム。
適用例１６：適用例１４に記載のシステムであって、前記プリセット値は、少なくとも部分的に、分類されたデータの解析方法を示す、システム。
適用例１７：適用例１４に記載のシステムであって、前記取得されたデータは、１または複数のデータセットを含み、前記１または複数のデータセットの各々は、１または複数のデータ要素を含む、システム。
適用例１８：適用例１４に記載のシステムであって、前記第２のプロセッサは、さらに、第１のプリセットフィルタ条件を満たさない１または複数の分類済みのデータ要素を放棄するよう構成されている、システム。
適用例１９：適用例１４に記載のシステムであって、前記残った分類済みの１または複数のデータ要素を解析するよう構成されている前記第２のプロセッサは、１または複数の解析結果を生成し、第２のプリセットフィルタ条件を満たさない前記１または複数の解析結果セットの内の少なくとも１つを放棄するよう構成されていることを含む、システム。
適用例２０：適用例１９に記載のシステムであって、前記第２プロセッサは、さらに、少なくとも１つの解析結果セットを前記マスタサーバに送信するよう構成されている、システム。
適用例２１：データ解析のためのコンピュータプログラム製品であって、コンピュータ読み取り可能な媒体内に具現化され、１または複数のデータ識別子（ＩＤ）と、各々がプリセットキーおよびプリセット値を含む１または複数のプリセットキー−値ペアとを含む解析対象のデータを受信するためのコンピュータ命令と、前記データＩＤに少なくとも部分的に基づいて、解析対象のデータを取得するためのコンピュータ命令と、前記取得されたデータを１または複数のデータ要素に分割するためのコンピュータ命令と、前記１または複数のプリセットキー−値ペアの１つのプリセットキーに少なくとも部分的に基づいて、前記１または複数のデータ要素を分類するためのコンピュータ命令と、前記１または複数のプリセットキー−値ペアの１つのプリセット値に少なくとも部分的に基づいて、前記分類済みの１または複数のデータ要素を解析するためのコンピュータ命令と、を備える、コンピュータプログラム製品。
【図１Ａ】
0005635691.tif 000003
【図１Ｂ】
0005635691.tif 000004
【図２】
0005635691.tif 000005
【図３】
0005635691.tif 000006
【図４】
0005635691.tif 000007
【図５】
0005635691.tif 000008
【図６】
0005635691.tif 000009
【図７】
0005635691.tif 000010