JP4600847B2 - トランザクションの意味規則を用いた連続データストリームのセグメント化および処理 - Google Patents
トランザクションの意味規則を用いた連続データストリームのセグメント化および処理 Download PDFInfo
- Publication number
- JP4600847B2 JP4600847B2 JP2001505311A JP2001505311A JP4600847B2 JP 4600847 B2 JP4600847 B2 JP 4600847B2 JP 2001505311 A JP2001505311 A JP 2001505311A JP 2001505311 A JP2001505311 A JP 2001505311A JP 4600847 B2 JP4600847 B2 JP 4600847B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- continuous stream
- processing
- transaction
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 114
- 230000011218 segmentation Effects 0.000 title description 12
- 238000000034 method Methods 0.000 claims description 94
- 230000008569 process Effects 0.000 claims description 59
- 238000005192 partition Methods 0.000 claims description 17
- 238000001914 filtration Methods 0.000 claims description 10
- 239000003550 marker Substances 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 9
- 230000008676 import Effects 0.000 description 9
- 230000002085 persistent effect Effects 0.000 description 9
- 241000239290 Araneae Species 0.000 description 8
- 239000004020 conductor Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000007689 inspection Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- ZYXYTGQFPZEUFX-UHFFFAOYSA-N benzpyrimoxan Chemical compound O1C(OCCC1)C=1C(=NC=NC=1)OCC1=CC=C(C=C1)C(F)(F)F ZYXYTGQFPZEUFX-UHFFFAOYSA-N 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000012958 reprocessing Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101150012579 ADSL gene Proteins 0.000 description 1
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 1
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 239000007853 buffer solution Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000000746 purification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/149—Adaptation of the text data for streaming purposes, e.g. Efficient XML Interchange [EXI] format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Apparatus For Radiation Diagnosis (AREA)
Description
関連出願
Lawrence A. Bookmanらによる『SEGMENTATION AND PROCESSING OF CONTINUOUS DATA STREAMS USING TRANSACTIONAL SEMANTICS(トランザクションのセマンティクス(以下、意味規則ともいう)を用いた連続データストリームのセグメント化および処理)』と題した1999年6月18日出願の同時係属中の米国特許仮出願番号第60/140,005号。
Lawrence A. Bookmanらによる『SEGMENTATION AND PROCESSING OF CONTINUOUS DATA STREAMS USING TRANSACTIONAL SEMANTICS(トランザクションの意味規則を用いた連続データストリームのセグメント化および処理)』と題した2000年2月29日出願の同時係属中の米国特許仮出願番号第60/185,665号。
【0002】
背景技術
コンピュータに基づくトランザクションシステムは、それらのシステムを用いて実現されるトランザクションに関連するデータを発生する。トランザクションに関連するこのようなデータは、トランザクションの特性を識別するために解析される。このような特性から、トランザクションおよび/または関連マーケティングに対する修正が提案される場合もあれば、または他の経営的意思決定が成される場合もある。
【0003】
トランザクションに関連するデータを解析するためのコンピュータシステムは一般に、データベースに格納されるデータにアクセスする。データが一定の期間収集された後、収集されたデータが、単独のトランザクションにおいてデータベースに追加される。上述したように、データベースに格納されるデータが解析され、結果が与えられる。解析から得られた結果は一般に、データベースに格納されるデータの集合を表す。次に、これらの結果が、たとえば、さまざまな経営的意思決定の基準として用いられ、データベースに格納されることも多い。
【0004】
場合によっては、トランザクションに関連する生データは、処理後、データベースに保持されていない。トランザクションに関連するデータのこのような処理は一般に、バッチ処理の形態である。バッチ処理において、データのすべてが処理されるまで結果は出力されない。たとえば、バッチに関連する各レコードが個々のトランザクションにおいてデータベースに格納されていた場合には、著しい量のオーバーヘッドがデータベースに関連するデータベース管理システムによって生ずるであろう。同様に、データを解析することができるようにするために、大容量のデータが単独のトランザクションにおいてデータベースから読み出される。多くの場合、トランザクションの発生とトランザクションに関するデータを用いた結果の生成との間の時間は、数日または数週間に及ぶ可能性がある。
【0005】
発明の概要
トランザクションに関連するデータが連続的にトランザクションシステムによって生成される場合には、または解析の結果を受信するための望ましい時間フレームがバッチ処理を実行するために必要な時間より短い場合には、このようなバッチ処理技法を用いることはできない。トランザクションの使用者の挙動が頻繁に変化する可能性がある場合には、解析の結果を生じる際の遅延は望ましくないことが多い。たとえば、頻繁な変化を有する実時間におけるシステムアクセス情報を追跡するためのデータベースシステムにおいて、安全性または性能に関する理由から、にアクセス解析の周期的な利用を容認することはできない可能性がある。
【0006】
トランザクションに関連するデータの連続的なソースを仮定すると、トランザクションデータをセグメント化し、任意には並列にデータフロー配列において処理することができる。中間データベースにデータを格納することなく、データを処理することができる。データはセグメント化され、個別に操作されるため、複数のソースからのデータを並列に処理することができる。また、セグメント化は、集合体出力を生じることができる点であってかつチェックポイントを確立する場所を定義することができる。データをセグメントに分割し、セグメント化に基づいてチェックポイントを定義することによって、それぞれ定義されたチェックポイントで処理を再開することができる。このようにすれば、特定のセグメントのためにデータの処理が失敗する可能性があっても、別のセグメントの処理に影響を及ぼすことがない。したがって、特定のセグメントに関するデータの処理が失敗した場合には、問題のセグメントに対応する作業を行うことができなくなるが、他のセグメントで実行される作業ができなくなることはない。たとえば、リレーショナルデータベースシステムでこの点検作業を行うことができる。点検作業は、リレーショナルデータベースシステムを再開可能なクエリーを実行することができるため、データベースの性能を向上させる。これは、成功の可否がシステムの性能に左右されるデータベースベンダおよびユーザに利益をもたらす。一般化するために、データストリームを分割することができることから、チェックポイントの処理および回復を実現することができる。
【0007】
これらおよびその他の利点は、以下に述べられる。
【0008】
一態様によれば、データの連続ストリームを処理するための方法が提案される。この方法は、トランザクションの意味規則の指示を受信するステップと、データの連続ストリームのセグメントを識別するためにトランザクションの意味規則をデータの連続ストリームに適用するステップと、セグメントに関する結果を生成するために、データの連続ストリームの各セグメントにおけるデータを処理するステップと、データの連続ストリームの各セグメントにおけるデータが処理された後、問題のセグメントに関して生成された結果を与えるステップと、を含む。
【0009】
一実施形態によれば、データは複数のレコードを含み、各レコードは複数のフィールドを含み、トランザクションの意味規則は、データの1つ以上のレコードの1つ以上のフィールドの関数によって定義される。別の実施形態によれば、この方法は、識別されたセグメントによるデータの連続ストリームを分割するステップをさらに含む。別の実施形態によれば、分割ステップは、データの連続ストリームに2つのセグメントの間の境界を指すレコードを挿入するステップを含む。別の実施形態によれば、レコードは、境界のみを表すマーカレコードである。別の実施形態によれば、レコードは、トランザクションの意味規則に関連する情報を表す意味レコードである。
【0010】
別の実施形態によれば、データの連続ストリームは、サーバへ送出される要求に関する情報のログであり、適用ステップは、ログから要求に関連する情報を読み出すステップと、トランザクションの意味規則を読み出した情報に適用するステップと、を含む。別の実施形態によれば、トランザクションの意味規則が1つ以上の要求に関連する1つ以上のフィールドの関数によって定義される場合には、各要求に関連する情報は、複数のフィールドを含む。別の実施形態によれば、この情報は、要求がサーバに送出された時間を含み、トランザクションの意味規則が一定の時間を定義する。別の実施形態によれば、この方法は、1つ以上の要求に関連する情報を削除するためにログをフィルタリングするステップをさらに含む。別の実施形態によれば、フィルタリングステップは、トランザクションの意味規則を生じるステップの前に実行される。別の実施形態によれば、フィルタリングステップは、スパイダに関連する要求に関する情報を削除するステップを含む。別の実施形態によれば、この方法は、データの連続ストリームからデータを削除するために、データの連続ストリームのフィルタリングするステップをさらに含む。
【0011】
別の実施形態によれば、この方法は、セグメントに関する結果を生成するために、データの連続ストリームの各セグメントにおいてデータを処理する追加ステップをさらに含み、結果が問題のセグメント用に生成されるのであれば、処理の追加ステップ中に、データの連続ストリームの各セグメントのデータが処理される。別の実施形態によれば、処理ステップは、複数の並列パーティションとして各セグメントにおけるデータを分割するステップと、各パーティションに関する中間結果を生成するために、パーティションのそれぞれを並列に処理するステップと、を含む。別の実施形態によれば、この方法は、セグメントに関する結果を生成するために、各パーティションの中間結果を組合せるステップをさらに含む。別の実施形態によれば、データの連続ストリームにおけるデータは、シーケンスを有し、データの連続ストリームの複数のソースが存在する。この方法は、データの連続ストリームにおけるデータがシーケンスの中にあるかどうかを決定し、データがシーケンス外であると決定された場合には、処理ステップを中断し、トランザクションの意味規則によるセグメントにデータを挿入し、セグメントを再処理し、処理ステップを継続することをさらに含む。別の実施形態によれば、この方法は、データが処理されるべきセグメントの永続的指示を保存し、処理ステップにおける失敗が検出された場合には、被選択セグメントに関する処理ステップによって生成される任意の結果を廃棄し、保存された永続的指示に対応する被選択セグメントを再処理し、処理ステップが失敗することなく終了した場合には、出力として生成された出力を生じ、次のセグメントを選択するステップをさらに含む。
【0012】
別の態様によれば、コンピュータシステムにおける処理エレメントによってデータの連続ストリーム上の動作を点検するためのプロセスが提供される。このプロセスは、トランザクションの意味規則の指示を受信するステップとと、データの連続ストリームを処理エレメントによって処理するためのセグメント分割するためにトランザクションの意味規則をデータの連続ストリームに適用するステップと、セグメントのうちの1つを選択するステップと、被選択セグメントの永続的指示を保存するステップと、結果を生成するために処理エレメントによって被選択セグメントを処理するステップと、処理エレメントの故障が検出された場合には、被選択セグメントに関する処理エレメントによって生成された任意の結果を廃棄するステップと、保存された永続的指示に対応する被選択セグメントを再処理するステップと、処理エレメントによる処理が失敗することなく終了した場合には、出力として処理エレメントによって生成された出力を生じるステップと、処理エレメントによって処理されるべき次のセグメントを選択するステップと、を含む。別の実施形態によれば、適用ステップは、データのセグメント間の境界を示すデータをデータの連続ストリームの中に挿入することを含む。
【0013】
別の態様によれば、コンピュータシステムは、コンピュータシステムにおけるデータの連続ストリーム上の操作を点検するために提供される。このコンピュータシステムは、トランザクションの意味規則の指示を受信するための手段と、データをセグメントに分割するためにトランザクションの意味規則をデータの連続ストリームに適用するための手段と、セグメントのうちの1つを選択するための手段と、被選択セグメントの永続的指示を保存するための手段と、結果を生成するために被選択セグメントを処理する処理エレメントと、処理エレメントの故障が検出された後に動作する被選択セグメントに関する処理エレメントによって生成された任意の結果を廃棄するための手段と、保存された永続的指示に対応する被選択セグメントを再処理するために処理エレメントに命令するための手段と、処理エレメントによる処理が失敗することなく終了した後に動作する出力として処理エレメントによって生成された結果を与えるための手段と、処理エレメントによって処理されるべき次のセグメントを選択するための手段と、を含む。別の実施形態によれば、適用するための手段は、データのセグメント間の境界を示すデータをデータの連続ストリームの中に挿入することを含む。
【0014】
別の態様によれば、データの連続ストリームを処理するための方法が提供される。この方法は、トランザクションの意味規則の指示を受信することと、データの連続ストリームのセグメントを識別するためにトランザクションの意味規則をデータの連続ストリームに適用することと、データの連続ストリームの識別されたセグメント間の境界を示すデータをデータの連続ストリームに挿入することを含む。
【0015】
本発明のさらなる特徴および利点のほか、本発明のさまざまな実施形態の構造および動作は、添付の図面に関連して以下に詳細に説明される。図面において、同様の参照符号は、同様または機能的に類似の構成エレメントを示している。さらに、参照符号の最も左側の1つまたは2つの数字は、参照符号が最初に現れた図面を識別する。
【0016】
詳細な説明
以下の詳細な説明は、添付された図面と共に読まれたい。尚、類似の参照符号は類似の構造物を示している。本願明細書に引用されたすべての参照文献は、参照によって特に本願明細書に引用されるものとする。
【0017】
いま図1を参照すると、連続データソース101は、いくつかのトランザクションの意味規則103による結果108を与えるために、データ処理アプリケーション107によって処理されるデータの連続ストリーム102を生じる。これらのトランザクションの意味規則103は、ストリーム102がどのようにセグメント化されるべきかを決定する情報であってもよい。意味規則103は、たとえば、ストリーム102上で操作するときにシステムの一定の必要条件に左右される場合もあり、データを解析するためのビジネスの必要条件に左右される場合もある。データ処理アプリケーション107において、セグメント化されたデータ105を生じるために、トランザクションの意味規則103に応じてセグメンタ104によってデータをセグメント化する。データ処理オペレータ106は、各セグメントに関する結果108を与えるために、セグメント化されたデータ105の各セグメント内のデータを処理する。これらのプロセスは、たとえば、連続データストリーム102における1つ以上の部分のデータの読み出したり更新したりしてもよい。
【0018】
連続データソース101は、一般に、トランザクションシステムからトランザクションに関連するデータを生じる。トランザクションシステムは一般に、ユーザがトランザクションを形成することができるようにするために、一定の時間動作していることから、このソースは連続している。たとえば、連続データソースは、ウェブサーバに送出される要求に関する情報のログを出力するウェブサーバであってもよい。このような要求は、ウェブサーバによってサーバログの中にログレコードとして格納されてもよい。データの連続ストリームのソースの他の例としては、予約システム、販売時点情報管理システム、現金自動預金支払機、銀行業務システム、クレジットカードシステム、検索エンジン、映像または音声配信システムまたはデータの連続ストリームを生成する他のシステムが挙げられる。また、データの1つ以上の連続ストリームを生じる1つ以上の連続データソースであってもよく、アプリケーション107は、これらのストリームの上で動作するように構成されてもよい。
【0019】
トランザクションに関連するデータは一般に、各トランザクション用のレコードを含み、レコードは、トランザクションを説明する情報の1つ以上のフィールドを含む。レコードは、複数の異なる形式のいずれであってもよい。トランザクションに関連するデータは、たとえば、可変長または固定長のいずれであってもよく、タグ付きまたはタグなしのいずれであってもよく、区切られていても区切られていなくてもよい。トランザクションに関連するデータは、たとえば、SGML、HTML、XMLなどのマークアップ言語形式または他のマークアップ言語に含まれていてもよい。連続データソース101からデータ処理アプリケーション107へのデータの伝送のための構造体の例には、文字列、配列またはファイルに格納された構成体、データベースレコード、名前付き(named)パイプ、ネットワークパケット、フレーム、セルまたは他の形式が含まれる。一態様によれば、データの連続ストリーム102はサーバログであり、トランザクションに関連するデータの例には、ユーザ識別子、クライアントプログラムおよび/またはシステム識別子、タイムスタンプ、ページまたは広告識別子、どのくらいページまたは広告がアクセスされたかを示すインジケータ、レコードタイプおよび/またはトランザクションに関する他の情報を含んでもよい。
【0020】
トランザクションの意味規則103は、データの連続ストリーム102の1つ以上のレコードの1つ以上のフィールドの関数を定義する。たとえば、トランザクションの意味規則103は一定の時間、たとえば1時間を定義し、1時間の期間内にすべてのデータが1つのセグメントに配置されるようにする。トランザクションの意味規則103はまた、時間などの1つのレコードの関数ではなく、たとえば、総売上げ高などの複数のレコードの集合体関数を定義する。そのようなトランザクションの意味規則103はまた、データの解析から得られるべき情報を示すビジネス上のリールから導出されてもよい。トランザクションの意味規則103はまた、一定のシステムの必要条件に左右される場合もある。たとえば、経営的意思決定を行うことができるように、セグメントごとの基準でこのような解析を行う場合もある。
【0021】
トランザクションの意味規則103は、データの連続ストリーム102におけるセグメントを識別するために、データの連続ストリーム102にセグメンタ104によって適用される。これらの識別されたセグメントに基づいて、さまざまな方法でデータの連続ストリーム102を分割することができる。たとえば、データのストリームにおける2つのセグメント間の境界を表すレコードをデータの連続ストリーム102の中に挿入することができる。このレコードは、境界のみを表すマーカレコードであってもよい。たとえば、マーカレコードがタグに関する1つの値を有し、データレコードがタグに関する別の値を有するように、タグは、すべてのレコードに配置されてもよい。あるいは、レコードは、トランザクションの意味規則それ自体などのトランザクションの意味規則に関連する情報または一定の時間の仕様などトランザクションのセグメントをデータに適用することによって得られた一定の情報を含む意味レコードであってもよい。さらに、アプリケーション107は、データに格納されたトランザクションの意味規則に応じて、複数のデータ処理オペレータ106をデータセグメントにアクセスさせることができるようにしてもよい。任意の種類の情報は、データのストリーム102における分割を表すために用いられてもよい。
【0022】
また、異なる処理を実行することができるデータの異なるセグメント化された連続ストリーム105を生成するために、複数のセグメンタ104を用いてもよい。あるいは、セグメント化されたデータの連続ストリーム105に異なる解析を実行するために、複数のデータ処理オペレータ106を並行して用いてもよい。
【0023】
データ処理オペレータ106によって実行されることができる操作にはさまざまな種類がある。たとえば、レコードの総数、レコード内の変数の和、さまざまなデータフィールドの平均値、最大値、最小値などの統計的な値などのデータ集合体を、各データセグメントごとに算出してもよい。データの連続ストリームがサーバログであるアプリケーションにおいて、たとえば、情報の各項目が各セグメントまたはセグメントの組合せにおいてサーバによって提供された有意数のユーザを算出することができる。多種多様な異なる結果108を生成するために、データ処理アプリケーション107からさまざまなデータ処理オペレータ106を追加してもよく、または削除してもよい。
【0024】
Torrent Systems社製のオーケストレート(Orchestrate)並列フレームワークを用いて、データ処理アプリケーション107を実行してもよい。これについては、Michael J.Beckerleらによる「Apparatuses and Methods for Programmable Parallel Computers」と題した1996年3月25日に出願の米国特許出願番号第08/627,801号、Allen M.Razdowらによる「Apparatuses and Methods for Monitoring Performance of Parallel Computing」と題した1997年2月24日出願の米国特許出願番号第08/807,040号、Michael J.Beckerleらによる「Computer System and Process for Checkpointing Operations on Data in a Computer Systerm by Partitioning the Data」と題した1998年6月24日出願の米国特許出願番号第09/104,288号およびAnthony Passeraらによる「A Computer System and Computerized Method for Partitioning Data for Parallel Processing」と題した1999年6月1日公開の米国特許第5,909,681号に記載されている。
【0025】
そのようなシステムにおいて、並列データソースは、複数のプロセッサ上でデータフロー配列に処理される。具体的には、セグメント化またはデータ解析などの図1で実行されるべき各操作をオーケストレート並列処理フレームワークのオペレータとして実現されてもよい。並列アプリケーションフレームワークを用いて、データ処理オペレータによって処理されるデータが、複数の並列パーティションに分割される。これらの並列パーティションのそれぞれはデータ処理オペレータの異なるインスタンスによって並列に処理され、その個別のパーティションに関する中間結果を生じる。集合関数を実行するオペレータによってセグメントに関する集合結果を形成するために、これらの中間結果を組合せてもよい。
【0026】
さらに、オーケストレート並列処理フレームワークを用いる並列データストリームの処理において、さまざまなオペレータがこれらの並列データストリームを処理するために構成されてもよく、複数の入力オペレータが、単一のデータストリームを形成するために、2つのデータストリームを組合せるために用いられる。単一のデータストリームはまた、さまざまなオペレータによって操作、格納、伝送されてもよく、または他のデータ操作がデータストリーム上で実行されてもよい。
【0027】
複数の方法でデータ処理オペレータ106を実現することができる。具体的には、一般に106で表されるデータ処理オペレータは、バッチモードまたは連続モードのいずれかでデータを処理することができる。データ処理オペレータ106がバッチ処理を行う場合には、バッチ入力に関連するデータのすべてを処理するまでデータを出力しない。セグメントごとの基準に基づき、データをオペレータに与える連続ループを実行するプログラムによって、オペレータ106を制御することができる。このプログラムは、データの終りが各セグメントの境界に達したことをオペレータに確認することによって、オペレータ106がセグメントに関する結果を出力する。あるいは、、オペレータ106に各セグメント境界で結果を出力させるステップを含む連続オペレータを用いてもよい。
【0028】
セグメント化されたデータの連続ストリーム105はまた、さまざまな形態のいずれであっても、オーケストレート並列フレームワークにおいて並列データセットとして格納されてもよい。並列データセットは一般に、名前、データが実際に、ハードウェア、ディスク、中央処理装置などの構成情報などの情報を定義し、データが格納される場所を示す永続的なフォーム、スキーマ、メタデータ(データに関連するデータ)に格納される場所に対するポインタを含む。1つのデータセットが複数のセグメントを表すために用いられてもよく、または個々のデータセットが各セグメントのために用いられてもよい。
【0029】
オーケストレート並列アプリケーションフレームワークなどのシステムが、データ処理アプリケーションのために用いられる場合には、記憶装置の形態からアプリケーションフレームワークのデータセットにデータの連続ストリーム102を読み込んでもよく、連続データソース101がデータの連続ストリーム102を生成する。一例として、連続データソース101は、受信される要求に関連するデータを生成するHTTPDサーバであってもよく、このサーバは、このデータをログに保存する。ログマネージャと一般に呼ばれる個々のアプリケーションは、定期的に新たなログファイルを作成し、そのログファイルにHTTPDサーバがデータを書き込む。
【0030】
たとえば、新たなログファイルを毎日作成してもよい。ログマネージャがどの程度ログファイルを作成したかに関する情報は、オーケストレートアプリケーションフレームワークにおいてデータセットをデータの連続ストリームとしてログファイルのセットを読み出すインポートオペレータなどのデータ処理オペレータ106に提供される。1つ以上のインポートオペレータまたは並列に処理する同一の(ログファイルを並列に操作する)オペレータの1つ以上のインスタンスが、存在してもよい。また、インポートオペレータの複数のインスタンスによって並列に処理することができる複数のログファイルのソースが存在してもよい。たとえば、複数のHTTPDサーバは、並列に同一のログファイルに書き込むことができる。すなわち、複数のHTTPDプロセスは、1つ以上の入力オペレータによって処理されるデータの並列ストリームを生成する。追加のオペレータが操作してもよいこれらのデータストリームを単一のデータストリームに組合せるために、複数の入力オペレータを用いてもよい。
【0031】
今度は、データ処理アプリケーション107によって行われるインポートプロセス200の操作を示すフローチャートが、図2に関連して説明される。インポートプロセス200は、ステップ201に受信されるソース識別情報に左右される。この識別情報は、データファイル、名前付きパイプまたはデータの連続ソース101によって用いられる他の構造体のための命名規則を識別する。次に、名前付き構造体が、受信されるソース識別情報に基づいてステップ202において選択される。任意の次のデータレコードが、ステップ203において名前付き構造体から読み出される。検証ステップはまた、構造体が識別情報を含む場合に、正しい名前付き構造体がアクセスされたことを確認するために行われてもよい。ステップ204において決定されるときに、ステップ203において行われた読み出し操作がデータを返す場合には、データはステップ208において次のオペレータに提供される。次のオペレータは、フィルタリング操作、セグメント化または処理にさらに適した別の形式にデータレコードを変換する操作であってもよく、またはセグメントタであってもよい。ステップ203において複数のデータを読み出すことによって、処理が継続する。このように、連続データソースとデータ処理アプリケーションとの間に一定のバッファ方式が存在するのであれば、インポータは、指定された連続データソースからデータを連続的に読み出す。
【0032】
ステップ204において決定されるときに、読み出し操作が行われるときにデータが利用可能でない場合には、サーバがステップ205において作動中であるかどうかがまず決定される。サーバがステップ205において作動中でない場合には、システムは、ステップ209において待機し、待機後、ステップ203において再びデータの読み出しを試みる。待機期間は、たとえば、乱数、所定数またはそれらの組合せであってもよい。サーバが作動中であって、ステップ206において決定されるときにファイル終りラベルに達していない場合には、トランザクションシステムは正常に作動中であると推定されることができ、単にトランザクションに関連するデータを生成するために用いられていないことになる。ステップ206の後、インポータ処理200は、一定の時間待機してもよく、および/またはステップ203で再びデータの読み出しを試みる前に、ステップ210で示されるようにダミーレコードを次のオペレータに送出してもよい。ステップ206で決定されるときに、ファイル終りラベルに達している場合には、次のファイル(または他の名前付き構造体)がステップ207においてソース識別情報に基づいて選択され、その後にステップ203へ処理が戻る。このプロセス200は、データを連続的にデータ処理アプリケーション107に与えるために中断することなく作動するように設計されてもよい。
【0033】
データの連続ストリーム102のセグメント化はまた、操作の点検を一般に行うことができる機能を生じる。具体的には、処理対象のセグメントの永続的指示は、オペレータ106によって保存されることができる。オペレータ106によって行われている処理中に失敗が検出された場合には、被選択セグメントに関してオペレータ106によって生成されたいずれの結果をも廃棄することができる。次に、処理対象であるセグメントの保存されている永続的指示を用いて、セグメントに再処理を施すことができる。オペレータ106が失敗することなく処理を終了する場合には、次のセグメントが処理される前に、オペレータ106によって生成された出力を出力することができる。操作を点検するためにセグメントをこのように用いることによって、データの連続ストリームをセグメントに分割するトランザクションの意味規則を用いて、データの連続ストリーム上の操作を点検することができる。点検用のパーティションを定義するために、セグメント化を用いることができ、1994年12月発行のSigmod RecordによるVol.23,No,4,p.72−83の「Loading Databases Using Dataflow Parallelism」およびMichael J. Beckerleらによる「Computer System and Process for Checkpointing Operations on Data in a Computer Systerm by Partitioning the Data」と題した1998年6月24日出願の米国特許出願第09/104,288号に記載されている方法で行うことができる。また、トランザクションの意味規則に基づくセグメント化以外の異なる分割法を用いて、点検を行ってもよい。
【0034】
オーケストレートアプリケーションフレームワークにおいて、図2に関連して上述したインポート操作およびセグメンタは、データの連続ストリームのインポートから結果の出力まで、データ処理アプリケーション全体を点検することができる複合オペレータとして実現されてもよい。また、トランザクションの意味規則に基づいて、インポートプロセスの点検を行ってもよい。たとえば、時間フィールドが用いられる場合には、1時間、30分などの定期的な基準でステップ全体を点検することができる。
【0035】
一部のアプリケーションでは、たとえば、失敗または他の理由からデータの連続ソースを中断することができ、予期されたシーケンス外のデータを生成することができる。一部のアプリケーションでは、シーケンス外のデータを廃棄することができる。しかし、一部の解析では、シーケンス外のデータが有用である場合もある。そのようなアプリケーションでは、シーケンス外のデータが識別され、適切なセグメントに挿入され、問題のセグメントが再処理される。たとえば、データの連続ソース101の状態を監視することによって、シーケンス外のデータを検出することができる。以前は有効でなかったデータのソース101が有効になっている場合には、別のセグメントの処理が中断され、新たに有効になったソースからのシーケンス外のデータが処理される。次に、データのこのような連続ソースからのデータが、属するデータセットの終りに追加される。次いで、終了後、システムの連続操作が再開される。また、点検と類似の方法で、セグメントからのデータのそのような中断および再処理を行ってもよい。
【0036】
上述したように、データ処理アプリケーション107は、並列の方法で複数の連続データストリーム102を処理するように構成されてもよい。図3は、データ処理アプリケーション107と関数において類似であるデータ処理アプリケーション308を示しており、多数の異なるデータソース302〜304から並列連続データストリーム305〜307を受信する。データ処理アプリケーション308は、これらの個別のストリーム305〜307で作動し、1つ以上の結果310を生成するように構成されている。具体的には、結果310は、たとえば、入力 ストリーム305〜307の関数としてデータの統合されたストリームであってもよい。具体的には、結果310は、データベースに格納することができるレコードの実時間ストリームであってもよい。一実施形態によれば、データベースはリレーショナルデータベースであり、リレーショナルデータベースはデータベースにおいてレコードを並列にアクセスすることができてもよい。
【0037】
図3に示されているようなシステム301は、複数の並列データソースを処理するシステムの一例である。具体的には、これらのソースは、ログファイルデータのストリームを生成するHTTPDサーバであってもよい。このようなアーキテクチャ301が存在しない場合には、複数のソースからログファイル情報を統合し、次いで逐次的な方法で処理しなければならないか、または複数の処理がデータの個々のストリームを個別に処理しなければならない。前者の場合には、逐次ボトルネックに挿入されるため、スループットが減少する。後者の場合には、プログラマが個別のストリームを処理する個々の並列プロセスを十分に管理し、個別のストリームデータを統合する。
【0038】
システム301は、並行処理の複数の次元を支援することができる。具体的には、システム301は、並列にデータストリームのパーティションで操作することができる。さらに、システム301は、並列パイプラインを用いてデータの1つ以上のストリームで操作してもよい。具体的には、図1に示されているように、セグメンタ104は、1つ以上の連続データストリーム102を受け入れることができ、並列にそれらの上で操作することができ、データの個別のストリーム上で動作する多数のデータ処理オペレータ106であってもよい。
【0039】
図4は、データフローを示しており、複数の連続データソースがそれぞれ、複数の連続データストリームを生成する。ステップ401で、プロセス400が開始される。ステップ402〜404で、システム301が複数のログファイルを読み込むことができる。このような読み込みプロセスは、並列に行うことができ、このような読み込みプロセスの結果は、1つ以上のデータ処理オペレータ106に伝送されることができ、ステップ405〜407でログファイルに処理を施す。3つのデータストリームが示されているが、システム301は、任意の数の並列データストリームを処理することができ、任意の数の並列パイプラインを含むことができる。このような読み込みプロセスの結果は、データストリームに再分割することができ、データストリームの異なる部分を異なるデータ処理オペレータ106に再割当てすることができる。
【0040】
ステップ405〜407で、これらのログファイルは、システム301のプロセッサの実行の異なるスレッドによって、並列方式で処理される。行うことができる処理は、入力データストリームのエレメントに整列操作または併合操作を含むことができる。このような整列プロセスおよび併合プロセスは、類似のデータを関連することができる場合もあれば、または別の方法で意味規則103または予め定義された規則に基づいてデータを再編成することができる場合もある。ステップ408〜410で、各ストリームがそれぞれ、たとえばデータ処理オペレータ106によって処理される。このようなデータオペレータは、データ検出、浄化、増加を初めとする関数を実行することができる。入力データストリームは不良データを含む可能性があるため、システム301は、データの検出および拒否を行うことができる場合がある。データストリーム内の有効レコードの始まりを示す特定のバイトパターンまたは当業界で周知であるような他のエラー検出機能および補正機能に基づいて、このような検出を行うことができる。HTTPDプロセスによって経験されるすべてのインターネットトラフィックの3分の1程度がスパイダによって生成されるため、入ってくるデータストリームの1つ以上の部分が、「浄化」(cleansed)されてもよい。具体的には、データストリームにおけるレコードのフィルタリングおよび修正のために汎用構成要素が存在してもよい。このような構成要素は、たとえば、図5に関して以下に説明される管理システム505を通じて、ユーザによって設定された予め定義された規則に基づいて作動してもよい。
【0041】
さらに、データストリームにおける項目は、他の情報と共に増大してもよい。たとえば、ウェブサイトのアクティビティは、1対1マーケティングアプリケーションを構築するために、営業部、商品、顧客支援からなどの他のトランザクションのソースから実時間でデータと併合されることができる。したがって、システム301は、たとえば、インメモリ表索引およびデータベース索引に基づいて、データストリームを増加させることができる場合がある。たとえば、与えられた広告に関連するすべての広告主に関してデータストリームを増加させることによって、ユーザは、広告ごとの広告収益を詳細な解析を行うことができる。別のタイプのデータの増加を行うことも可能である。
【0042】
ステップ411〜413で、複数のストリームに関するデータを集計することができる。具体的には、システム301は、複数のストリームからのデータを解析して統合する複数のグルーピングオペレータを与えることができる。これは、たとえば、複数の独立した次元を横切るデータを効率的にグループ化し、解析することによってウェブアクティビティを解析することができる。さらに詳細には、データの正確な評定を得るために必要な情報は、複数のソースからのデータの解析を必要とする可能性がある。ステップ414〜416で、集計されたストリームデータは、1つ以上の位置に格納される。具体的には、データは、集計されて、リレーショナルデータベースに格納されることができる。一実施形態によれば、システム301は、リレーショナルデータベースに並列な方式で情報を格納することができる。
【0043】
システム301は、たとえば、1つ以上の コンピュータシステムで実行するプログラムとして実現されてもよい。このようなコンピュータシステムは、たとえば当業界で周知であるような汎用コンピュータシステムであってもよい。さらに詳細には、汎用コンピュータは、当業界で公知であるようなプロセッサ、メモリ、記憶装置および入出力装置を含む。汎用コンピュータシステムは、コンピュータプログラミング言語を用いて1つ以上のシステムを設計することができるようなオペレーティングシステムを実行してもよい。オペレーティングシステムの例としては、マイクロソフト社から入手可能なWindows95、98またはWindows NTのオペレーティングシステム、サン・マイクロシステムズ、ヒューレット・パッカード、レッド・ハット・コンピューティングおよびさまざまなプロバイダからそれぞれ入手可能なSolaris、HPUX、Linuxまたは他のUnixに基づくオペレーティングシステムまたは現在または将来周知である任意の他のオペレーティングシステムが挙げられる。
【0044】
図5は、クライアント501およびサーバ503として機能する複数の汎用コンピュータを示している。一実施形態において、データ処理アプリケーション107は、サーバ503で実行する1つ以上のプロセスとして機能してもよい。具体的には、連続データストリーム102上の1つ以上の操作を行うサーバプログラム510であってもよい。一実施形態において、サーバ503は、サーバプログラム510の処理を制御するためにプログラマによって用いられることができるアプリケーションプログラミングインターフェースとして作用するオブジェクトフレームワーク509を含む。クライアント501はオブジェクトフレームワーク509を含むことができ、それによって、ユーザは、サーバプログラム510の管理機能を実現するために、入出力502を行う。管理アプリケーション505は、サーバプログラム510がどのような動作するかを決定する構成データを表示し、受け入れるように構成されたグラフィカルユーザインターフェース506を含むことができる。管理アプリケーション505はまた、ユーザ情報を管理し、ユーザ情報をサーバプログラム510に与える基本的なクライアントプログラム507を含んでもよい。クライアント501とサーバ503との間の通信は、ネットワーク504を通じたクライアント通信508とサーバ通信511によって実現される。クライアント通信508およびサーバ通信511は、たとえば、TCP/IPなどのネットワーキングプロトコルを含んでもよく、ネットワーク504は、イーサネット、ISDN、ADSLまたはシステム間で情報を通信するために用いられる他の任意の種類のネットワークであってもよい。クライアント−サーバネットワーク通信は、コンピュータおよびネットワーク化の当業界では公知である。
【0045】
サーバ503は、たとえば、サーバ503に関連する1つ以上のデータベース512に結果108を格納してもよい。一実施形態において、データベース512は、並列リレーショナルデータベースである。サーバ503はまた、サーバプログラム510がどのように動作されるかを示す複数のユーザ構成ファイル513を格納することができる。
【0046】
説明したように、データ処理アプリケーション107は、クライアント−サーバに基づくアーキテクチャであってもよい。このアーキテクチャは、JAVA、C++および他のプログラミング言語を初めとする1つ以上のプログラミング言語で設計されてもよい。一実施形態によれば、データ処理アプリケーション107はC++でプログラムされ、C++フレームワークはデータストリームのデータを処理するための構成要素またはオブジェクトを含むように定義されている。これらのオブジェクトは、オブジェクトフレームワーク509の一部であってもよい。たとえば、データを分割、併合、結合、フィルタリングおよびコピーするための構成要素であってもよい。サーバプログラム510は、ユーザ構成ファイル513に基づいて、データ処理アプリケーション107の実行を管理する。この構成ファイル513は、処理ノードのネットワーク名などの基本的なコンピュータシステムリソースおよびディスク空間およびメモリなどのコンピュータシステムコンピュータシステムを示す。データベース512は、データレイアウトを示すスキーマ、任意のユーザによって定義された構成要素およびプログラムを初めとするメタデータなどの関連アプリケーション情報を格納するために用いられてもよい。
【0047】
図6は、データ処理アプリケーション107を実行することができるフレームワークのアーキテクチャ601を示している。たとえば、アーキテクチャ601を含む複数の層であってもよい。たとえば、アーキテクチャ601は、単一のプログラム挙動を生成する原因となるコンダクタプロセス602を含んでもよい。具体的には、プロセス602は、データ処理アプリケーション107のインスタンスを確立する。コンダクタプロセス602はまた、セクションリーダプロセス603,604を生じてもよい。一実施形態において、コンダクタプロセス602は、遠隔コマンドを実行する公知のUnixコマンド「rsh」を用いて、異なるシステム中の同じ部分でセクションリーダプロセス603,604を生じる。一実施形態において、セクションリーダプロセスは、物理的なコンピュータシステムごとに1つ生じる。各セクションリーダプロセス603〜604は、プレーヤプロセスを生じ、公知のフォーク()コマンドによってデータフローにおいて各データ処理オペレータ106ごとに1つのプレーヤプロセスを生じる。コンダクタは、たとえば、セクションリーダおよび/またはプレーヤプロセス605〜610として同一または個別のコンピュータで実行されてもよい。
【0048】
コンダクタプロセス602は、制御情報を送信し、接続611,612に沿ってそれぞれ状態メッセージを受信することによって、セクションリーダプロセス603〜604と通信を行う。同様に、セクションリーダプロセス603〜604は、制御情報を送出し、状態およびエラーメッセージを受信することによって、プレーヤプロセス605〜610と通信を行う。一般に、コンダクタプロセス602は、メッセージトラフィックを統合し、円滑なプログラム操作を保証する。プレーヤプロセス605〜610に支障が生じた場合には、セクションリーダプロセス603〜604は、プログラム操作を援助して制御されたプレーヤプロセスを終了し、同様のことを行うために他のセクションリーダに通知する。
【0049】
データ処理アプリケーション107は、フレームワーク全体にわたってデータを管理するための入出力マネージャに関連していてもよい。入出力マネージャは、たとえば、アーキテクチャ全体にわたってデータフローを処理するために、コンダクタプロセス(またはオペレータ)と通信を行うことができ、結果データを格納するために責任を担うデータマネージャに情報を伝送してもよい。
【0050】
入出力マネージャは、1つ以上の以下の機能を提供してもよい。
・フレームワーク全体にわたるデータの移動のためのブロックバッファ付き転送・入出力マネージャはデータマネージャにブロックを渡すといった、データマネージャにブロック入出力サービス
・たとえば、データマネージャによって指定されたファイルのブロックを格納することによるフレームワークのための永続的な記憶サービス
・デッドロック回避のためのバッファ方式およびフロー制御
【0051】
一実施形態において、入出力マネージャは、データマネージャにポートインターフェースを生じることができる。ポートは、論理接続を表すことができる。ポートは、たとえば入力ポート(「インポート」)または出力ポート(「アウトポート」)であってもよく、仮想的または物理的なエンティティであってもよい。アウトポートは、単一のアウトバウンドストリームを表し、永続的なデータセットの各出力パーティションに関して生成される。仮想的なポートの場合には、プロセスマネージャ(コンダクタ)は、プレーヤプロセス間の接続を生成する。一実施形態によれば、特定のプレーヤプロセスの任意の仮想的な出力ポートは、下流のプレーヤプロセスへの単独の接続を備えることができる。同様の方式において、インポートは、単一のインバウンドストリームを表し、1つの入力ポートは、各インバウンドデータストリームに関して生成されてもよい。仮想的なポートに入力するためのインバウンドデータストリームは、決定的ではない方法でデータブロックの単一ストリームに併合されてもよい。データブロックの順序付けは、所与のパーティションに保持されてもよいが、パーティションの中に順序付けを必ず含むというわけではない。パーティションの中に順序付けを必ず含むというわけではないため、デッドロック状態を回避することができる。
【0052】
図7は、2つのノード1,2の間に確立されることができる一連の論理接続を示しており、それぞれのノードは、オペレータA,Bの個別のインスタンスを有する。具体的には、ノード1はプレーヤオペレータ(またはプロセス)A701およびプレーヤオペレータB702を含み、オペレータAは処理のためにオペレータBに逐次的にデータを与える。さらに、ノード2のオペレータA703はまた、ノード1のプレーヤオペレータB702に逐次的に情報を与えることができる。同様に、プレーヤオペレータA701は、ノード2のプレーヤオペレータB704によって処理するためのデータを与えることができる。オペレータ701〜704の間の1つ以上の論理接続設定は、このデータ転送を容易にすることができる。このように、並列パイプライン式プロセス間の通信を行うことができる。
【0053】
ここで、少数の実施形態を示してきたが、上述の事項は単なる例示に過ぎず、限定ではなく、例としてのみ示されたことを当業者は十分に理解すべきである。さまざまな修正および他の実施形態は、当業界の範囲を逸脱することなく行われる。
【0054】
たとえば、データの連続ストリーム102のセグメント化の前に、データの解析を援助しないレコードまたは偏っている可能性があるレコードまたはそれ以外にデータの解析に影響を及ぼすレコードを除去するために、データをフィルタリングしてもよい。たとえば、データの連続ストリームが、サーバに送出される要求に関する情報を除去するための情報のログである場合には、1つ以上の要求に関してログをフィルタリングしてもよい。除去することができる情報の種類は、「スパイダ」(spiders)、「クローラ」(crawlers)または「ロボット」(robots)と呼ばれるコンピュータプログラムを初めとするさまざまなエンティティに関連する要求についての情報を含む。コンピュータネットワーク上のファイルサーバにアクセスするために、このようなプログラムは検索エンジンによって実行され、インデクス化のためにそれからファイルを収集する。スパイダ、クローラ、ロボットによって送出されるこれらの要求はまた、サーバに対する他の要求と同様に記録される。このようなプログラムは、既知である場合もあるホスト名およびエージェント名を有する。フィルタリング操作は、既知のスパイダ、クローラまたはロボットの名前を有するユーザからの任意の要求をフィルタリングすることができる。サーバはまた、スパイダ、クローラおよびロボットによってサーバ上でいずれのファイルをアクセスすることができるかを指定する予め決定された名前のファイルを備えていてもよい。スパイダ、クローラまたはロボットのホストまたはエージェント名を識別するためにこれらのファイルへのアクセスを用いることができ、次にこれらのエンティティからの他のアクセスをフィルタリングするための用いることができる。プログラムは、そのようなスパイダ、クローラおよびロボットを検出するためにたやすく利用することができる。さらに、複製データレコードの除去または他のデータ浄化操作が適している場合もある。そのようなフィルタリングは一般に、トランザクションの意味規則をデータの連続ストリームのセグメントに適用する前に実行されるが、データがセグメント化された後に実行されてもよい。これらおよび他の修正は、本発明の範囲を逸脱することなく考慮される。
【図面の簡単な説明】
【図1】 本発明の一実施形態による連続データを処理するシステムを示しているデータの流れ図である。
【図2】 どのようにデータの連続ソースから並列アプリケーションフレームワークにデータを読み込むことができるかの動作を説明しているフローチャートである。
【図3】 複数のデータストリームを処理するシステムを示している別のデータの流れ図である。
【図4】 複数のパイプラインシステムによってデータをどのように処理することができるかを説明しているフローチャートである。
【図5】 本発明のさまざまな実施形態を実行するのに適したクライアント−サーバシステムのブロック図である。
【図6】 データを処理するために用いられる処理アーキテクチャのブロック図である。
【図7】 並列で通信を行うオペレータを有する2ノードシステムのブロック図である。
Claims (18)
- トランザクション・データの連続ストリーム上の操作を点検するための方法であって、コンピュータが、
前記連続ストリームがどのようにセグメント化されるべきかを決定する情報であるトランザクション・セマンティクスを前記連続ストリームに適用して、当該連続ストリームを複数のセグメントに分割するステップと、
前記分割された複数のセグメントのうちの1つのセグメントを選択するステップと、
前記選択されたセグメントについての指示を保存するステップと、
前記選択されたセグメントについての結果を生成するために、前記選択されたセグメントを処理するステップと、
前記処理するステップにおいて失敗が検出された場合には、前記選択されたセグメントについて生成された結果を廃棄し、前記保存された指示を用いて前記選択されたセグメントを処理するステップと、
前記処理するステップが失敗することなく終了した場合には、出力として前記生成された出力を供給し、次のセグメントを選択するステップと
を実行することを含む、前記方法。 - 前記適用することが、前記トランザクション・データのセグメント間の境界を示すレコードを前記連続ストリーム中に挿入するステップを含む、請求項1に記載の方法。
- 前記連続ストリームが情報のログを含む、請求項2に記載の方法。
- 前記連続ストリームが、サーバログ、又は、予約システム、販売時点情報管理システム、現金自動預金支払機、銀行業務システム、クレジットカードシステム、検索エンジン、映像または音声配信システム若しくはデータの連続ストリームを生成する他のシステムからの連続ストリームを含む、請求項2に記載の方法。
- 前記トランザクション・データが複数のレコードを含み、各レコードが複数のフィールドを含み、前記トランザクション・セマンティクスが当該複数のフィールドのうちの少なく1つの関数によって定義される、請求項1に記載の方法。
- 前記レコードが、前記境界のみを表すマーカー・レコードである、請求項4に記載の方法。
- 前記レコードが、トランザクション・セマンティクスに関連する情報を含むセマンティクス・レコードである、請求項4に記載の方法。
- 前記情報が、前記複数の要求の1つが前記サーバに送出された時間を含み、前記トランザクション・セマンティクスが一定の時間を定義する、請求項1に記載の方法。
- 前記連続ストリームがサーバに送出される要求に関連する情報のログであり、
前記適用するステップが、
前記ログから要求に関連する情報を読み出すステップと、
前記トランザクション・セマンティクスを前記読み出した情報に適用するステップと
を含む、請求項1に記載の方法。 - 前記コンピュータが、
前記連続ストリームからデータを除去するために、前記連続ストリームをフィルタリングするステップを実行することをさらに含む、請求項1に記載の方法。 - 前記処理するステップが、
複数の並列パーティションとして各セグメントにおけるデータを分割するステップと、
前記パーティションのそれぞれを並列に処理して、各パーティションに関する中間結果を生成するステップと
を含む、請求項1に記載の方法。 - 前記コンピュータが、
各パーティションの中間結果を結合して、前記セグメントに関する前記結果を生成するステップを実行することをさらに含む、請求項11に記載の方法。 - 前記連続ストリームの前記データがシーケンスを有し、前記データの連続ストリームの複数のソースが存在し、
前記コンピュータが、
前記トランザクション・データ中の特定の部分がシーケンス中にあるかどうかを決定するステップと、
前記特定の部分がシーケンス外にあると決定された場合には、前記処理するステップを中断し、前記トランザクション・セマンティクスに基づいてセグメント内に前記特定の部分を挿入し、前記特定のセグメントを処理し、前記処理するステップを継続するステップと
を実行することをさらに含む、請求項1に記載の方法。 - 前記トランザクション・セマンティクスが、データの1つ以上のレコードの1つ以上のフィールドの関数によって定義される、請求項1に記載の方法。
- 前記トランザクション・セマンティクスが、一定の期間を定義する、請求項1に記載の方法。
- トランザクション・データの連続ストリーム上の操作を点検するためのコンピュータであって、
前記連続ストリームがどのようにセグメント化されるべきかを決定する情報であるトランザクション・セマンティクスを前記連続ストリームに適用して、前記連続ストリームを複数のセグメントに分割する手段と、
前記分割された複数のセグメントのうちの1つのセグメントを選択する手段と、
前記選択されたセグメントについての指示を保存する手段と、
前記選択されたセグメントについての結果を生成するために、前記選択されたセグメントを処理する手段と、
前記処理するステップにおいて失敗が検出された場合には、前記選択されたセグメントについて生成された結果を廃棄し、前記保存された指示を用いて前記選択されたセグメントを処理する手段と、
前記処理するステップが失敗することなく終了した場合には、出力として前記生成された出力を供給し、次のセグメントを選択する手段と
を備えている、前記コンピュータ。 - 前記適用する手段が、前記トランザクション・データのセグメント間の境界を示すデータを前記連続ストリーム中に挿入する手段を備えている、請求項16に記載のコンピュータ。
- コンピュータに、請求項1〜13のいずれか一項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14000599P | 1999-06-18 | 1999-06-18 | |
US18566500P | 2000-02-29 | 2000-02-29 | |
PCT/US2000/016839 WO2000079415A2 (en) | 1999-06-18 | 2000-06-19 | Segmentation and processing of continuous data streams using transactional semantics |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2004500620A JP2004500620A (ja) | 2004-01-08 |
JP2004500620A5 JP2004500620A5 (ja) | 2007-07-26 |
JP4600847B2 true JP4600847B2 (ja) | 2010-12-22 |
Family
ID=26837781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001505311A Expired - Fee Related JP4600847B2 (ja) | 1999-06-18 | 2000-06-19 | トランザクションの意味規則を用いた連続データストリームのセグメント化および処理 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1314100A2 (ja) |
JP (1) | JP4600847B2 (ja) |
KR (1) | KR20020041337A (ja) |
CN (1) | CN100375088C (ja) |
AU (1) | AU5624700A (ja) |
WO (1) | WO2000079415A2 (ja) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136912B2 (en) | 2001-02-08 | 2006-11-14 | Solid Information Technology Oy | Method and system for data management |
ATE515746T1 (de) | 2003-09-15 | 2011-07-15 | Ab Initio Technology Llc | Datenprofilierung |
US20050097565A1 (en) * | 2003-10-31 | 2005-05-05 | Udo Klein | Gathering message information |
US7571153B2 (en) * | 2005-03-28 | 2009-08-04 | Microsoft Corporation | Systems and methods for performing streaming checks on data format for UDTs |
US7400271B2 (en) * | 2005-06-21 | 2008-07-15 | International Characters, Inc. | Method and apparatus for processing character streams |
US7937344B2 (en) | 2005-07-25 | 2011-05-03 | Splunk Inc. | Machine data web |
CN102831214B (zh) | 2006-10-05 | 2017-05-10 | 斯普兰克公司 | 时间序列搜索引擎 |
US8688622B2 (en) * | 2008-06-02 | 2014-04-01 | The Boeing Company | Methods and systems for loading data into a temporal data warehouse |
CN102004631A (zh) * | 2010-10-19 | 2011-04-06 | 北京红旗中文贰仟软件技术有限公司 | 信息文档的处理方法及装置 |
CN103348598B (zh) | 2011-01-28 | 2017-07-14 | 起元科技有限公司 | 生成数据模式信息 |
CN102306200B (zh) * | 2011-09-22 | 2013-03-27 | 用友软件股份有限公司 | 增量数据操作语句的并发应用装置和方法 |
CN102388385B (zh) * | 2011-09-28 | 2013-08-28 | 华为技术有限公司 | 数据处理的方法和装置 |
US9323748B2 (en) | 2012-10-22 | 2016-04-26 | Ab Initio Technology Llc | Profiling data with location information |
US9892026B2 (en) | 2013-02-01 | 2018-02-13 | Ab Initio Technology Llc | Data records selection |
US11487732B2 (en) | 2014-01-16 | 2022-11-01 | Ab Initio Technology Llc | Database key identification |
EP3114578A1 (en) | 2014-03-07 | 2017-01-11 | AB Initio Technology LLC | Managing data profiling operations related to data type |
US9660930B2 (en) | 2014-03-17 | 2017-05-23 | Splunk Inc. | Dynamic data server nodes |
US9838346B2 (en) | 2014-03-17 | 2017-12-05 | Splunk Inc. | Alerting on dual-queue systems |
US9753818B2 (en) | 2014-09-19 | 2017-09-05 | Splunk Inc. | Data forwarding using multiple data pipelines |
US9922037B2 (en) | 2015-01-30 | 2018-03-20 | Splunk Inc. | Index time, delimiter based extractions and previewing for use in indexing |
WO2017118474A1 (en) * | 2016-01-05 | 2017-07-13 | Huawei Technologies Co., Ltd. | A data processing apparatus and method and a data container structure |
CN106126658B (zh) * | 2016-06-28 | 2019-03-19 | 电子科技大学 | 一种基于虚拟存储器快照的数据库检查点构建方法 |
US11947978B2 (en) | 2017-02-23 | 2024-04-02 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
US10831509B2 (en) | 2017-02-23 | 2020-11-10 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
US11068540B2 (en) | 2018-01-25 | 2021-07-20 | Ab Initio Technology Llc | Techniques for integrating validation results in data profiling and related systems and methods |
CN109918391B (zh) * | 2019-03-12 | 2020-09-22 | 威讯柏睿数据科技(北京)有限公司 | 一种流式事务处理方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3426428B2 (ja) * | 1995-10-27 | 2003-07-14 | 富士通株式会社 | トランザクションのトレース装置 |
US5721918A (en) * | 1996-02-06 | 1998-02-24 | Telefonaktiebolaget Lm Ericsson | Method and system for fast recovery of a primary store database using selective recovery by data type |
US5909681A (en) * | 1996-03-25 | 1999-06-01 | Torrent Systems, Inc. | Computer system and computerized method for partitioning data for parallel processing |
EP0840517A3 (en) * | 1996-10-31 | 2003-09-10 | Matsushita Electric Industrial Co., Ltd. | Video data stream decoding method and apparatus |
KR100198805B1 (ko) * | 1996-11-22 | 1999-06-15 | 정선종 | 분석 단계에서 트랜잭션 테이블 초기화 기법을 이용한 댕글링 트랜잭션 발생 방지 방법 |
-
2000
- 2000-06-19 JP JP2001505311A patent/JP4600847B2/ja not_active Expired - Fee Related
- 2000-06-19 CN CNB008105707A patent/CN100375088C/zh not_active Expired - Lifetime
- 2000-06-19 AU AU56247/00A patent/AU5624700A/en not_active Abandoned
- 2000-06-19 WO PCT/US2000/016839 patent/WO2000079415A2/en not_active Application Discontinuation
- 2000-06-19 EP EP00941551A patent/EP1314100A2/en not_active Withdrawn
- 2000-06-19 KR KR1020017016276A patent/KR20020041337A/ko not_active Application Discontinuation
Also Published As
Publication number | Publication date |
---|---|
CN100375088C (zh) | 2008-03-12 |
WO2000079415A3 (en) | 2003-02-27 |
KR20020041337A (ko) | 2002-06-01 |
CN1575464A (zh) | 2005-02-02 |
JP2004500620A (ja) | 2004-01-08 |
WO2000079415A2 (en) | 2000-12-28 |
WO2000079415A8 (en) | 2001-04-05 |
EP1314100A2 (en) | 2003-05-28 |
WO2000079415A9 (en) | 2002-06-13 |
AU5624700A (en) | 2001-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4600847B2 (ja) | トランザクションの意味規則を用いた連続データストリームのセグメント化および処理 | |
US7392320B2 (en) | Segmentation and processing of continuous data streams using transactional semantics | |
US7752299B2 (en) | Segmentation and processing of continuous data streams using transactional semantics | |
US11544623B2 (en) | Consistent filtering of machine learning data | |
US11500875B2 (en) | Multi-partitioning for combination operations | |
US11386351B2 (en) | Machine learning service | |
US20220335338A1 (en) | Feature processing tradeoff management | |
US20210374610A1 (en) | Efficient duplicate detection for machine learning data sets | |
US7010538B1 (en) | Method for distributed RDSMS | |
US10339465B2 (en) | Optimized decision tree based models | |
US11100420B2 (en) | Input processing for machine learning | |
US11182691B1 (en) | Category-based sampling of machine learning data | |
CA2953969C (en) | Interactive interfaces for machine learning model evaluations | |
US20150379423A1 (en) | Feature processing recipes for machine learning | |
WO2007036932A2 (en) | Data table management system and methods useful therefor | |
Xu et al. | A flexible architecture for statistical learning and data mining from system log streams | |
Schleier-Smith et al. | Restream: Accelerating backtesting and stream replay with serial-equivalent parallel processing | |
Kvet et al. | Enhancing Analytical Select Statements Using Reference Aliases | |
Wang et al. | Fast log replication in highly available data store | |
Antolínez García | Spark Structured Streaming | |
Bünzli | Design and Implementation of Algorithms and Heuristics to Optimize a Data Generation and Preparation System for Credit Card Fraud Detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20070129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070605 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070605 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100702 Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100702 |
|
RD12 | Notification of acceptance of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7432 Effective date: 20100702 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100706 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100818 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100819 Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100819 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100914 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20100915 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20100915 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100917 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131008 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4600847 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |