JP5337745B2 - データ処理装置 - Google Patents
データ処理装置 Download PDFInfo
- Publication number
- JP5337745B2 JP5337745B2 JP2010050608A JP2010050608A JP5337745B2 JP 5337745 B2 JP5337745 B2 JP 5337745B2 JP 2010050608 A JP2010050608 A JP 2010050608A JP 2010050608 A JP2010050608 A JP 2010050608A JP 5337745 B2 JP5337745 B2 JP 5337745B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- attribute
- processing apparatus
- hierarchical structure
- processing
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Description
本発明は、データ処理装置に関し、特に、階層化された大量のデータに対して、高速にデータ分析処理する技術およびデータ表示する技術に関する。
企業や自治体は業務ログやセンサデータなどのデータを大量に保持しており、これら大量データから有益な情報を抽出したいというニーズがある。IT(Information Technology)技術の発達により、収集されるデータの量が大きくなっており、また実際のデータは、例えばXML(Extensible Markup Language)データのように、階層化されている。そこでこのような階層化された階層構造を持つ大量のデータに対して、複雑なデータ分析処理を高速に行う技術およびそのためのユーザインターフェース技術が求められている。
特許文献1には、データの開始位置などの情報をインデックスファイルに管理することで、木構造型のデータが格納されたCSV(Comma Separated Values)ファイルから、データを高速に検索および抽出する技術が示されている。
特許文献2および特許文献3には、クロス集計に特化したデータ保持方法を用いることで、任意次元でのクロス集計を高速にする技術が示されている。
特許文献4には、属性値の値ごとにその値がファイル中のどこにあるかを記したインデックスを持ち、特定のフィールドが特定の値を持つレコードを高速に検索する技術が示されている。
特許文献5および特許文献6には、フィールドごとに連続してファイルにデータを格納し、特定のフィールドのみが必要な処理を高速に行う技術が示されている。
特許文献7には、XML文書−関係表間スキーママッピング定義を用いて、XML文書の検索を行う技術が示されている。
特許文献8には、データマイニングによって得られる情報を効果的に提示するグラフィックス表示システムおよびその方法が示されている。
特許文献8には、データマイニングによって得られる情報を効果的に提示するグラフィックス表示システムおよびその方法が示されている。
特許文献9には、木構造データで表わされたデータ集合を含むデータベースから、集計対象となる候補パターンを用いて、頻出パターンを検出するシステムが示されている。
しかしながら特許文献1では、特定の複数種のフィールドだけが必要な場合でも、すべてのフィールドのデータを読み込み必要がある。また、特許文献2、3では、クロス集計に特化しており、クロス集計以外の複雑なデータ分析処理を高速に行うことができない。また階層化されたデータ構造を持つデータに対して高速に処理を行うことができない。更に、特許文献4では、それぞれのフィールドの取り得る値の数が少なく、かつレコード検索の目的でのみ高速化が有効である。特に、すべてのレコードの特定のフィールドの値が必要な処理を高速に行うことができない。また階層化されたデータ構造を持つデータに対して高速に処理を行うことができない。同様に、特許文献5,6では、階層化されたデータ構造を持つデータに対しては高速に処理を行うことができない。
一方、特許文献7では表形式でデータを格納するため、大量のデータをすべて使って集計処理をする場合には、Join処理やGroup−by処理が発生するため高速に処理することができない。また、特許文献8では、データマイニングの結果をユーザにわかりやすく提示するための技術であり、ユーザがデータ処理を実行するためのユーザインターフェースを提供するものではない。更に、特許文献9では、データの中に頻出するパターンを抽出する技術に関するものであり、属性の追加等の汎用的なデータ分析処理を行うことはできない。
以上のように、先行技術文献には、階層構造を持つ大量のデータに対して、ユーザが簡単に処理を実行できるユーザインターフェースを提供し、かつ、ユーザがデータの構造・意味・形式を理解するのを助けるようなデータ表示方法を提供するものはない。
XMLのような階層構造を持つデータに対する処理を記述する場合、データの構造が複雑なため、熟練したプログラマでも処理を記述するのに時間がかかり、間違えやすい。またデータに慣れ親しんだ者でも、データの構造が大きくなると、どの階層にどの属性があるか混乱する。そこでユーザが階層構造を持つデータに対し簡単に処理が実行でき、またデータの構造・意味・形式を容易に理解できるようなユーザインターフェースを提供することが課題となる。加えて、大量のデータに対するユーザインターフェースを設計する場合には、バックエンドであるサーバ側の大規模データ処理システムとクライアント側のユーザインターフェースとの間で効率的にデータを送受信する必要がある。
また前述した先行技術文献には、階層構造を持つ大量のデータに対して、複雑なデータ分析処理を高速に行うことができるものはない。大量のデータを処理する場合、データ読み込みおよびデータ書き込みがボトルネックとなって処理速度が低下する。そこで、階層構造を持つデータに対して、データの読み込み量と書き込み量を減らすこと、および1つの処理に利用するデータを連続して読み込むようにデータを格納することが課題となる。
本発明は、上記に鑑みてなされたものであって、階層構造を持つ大量のデータに対して、ユーザが階層構造を持つデータに対し簡単に処理が実行でき、またデータの構造・意味・形式を容易に理解できるようなユーザインターフェースを提供することを目的とする。また、本発明は、複雑なデータ分析処理を高速に行うデータ処理装置を提供することを目的とする。
上記の目的を達成するため、本発明においては、データ処理装置であって、異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる階層構造を持つ階層構造データと、階層構造データを変換した表示用データと、ユーザからの処理命令を受け付け、ユーザに表示用データおよび処理結果を提示するユーザインターフェース部と、階層構造データを管理するデータ管理部と、階層構造データを変換して表示用データを生成する表示用データ生成部と、処理命令を受け取り、分析処理を実行する分析処理部とを備え、ユーザインターフェース部は、階層構造データを、階層名を表示する行とタプルの属性名を表示する行を備える表形式で表示し、表示用データ生成部は、階層ごとに階層構造データをユーザインターフェース部に表示できる量をサンプリングして表示用データに変換するデータ処理装置を提供する。
また、本発明においては、上記の目的を達成するため、データ処理装置であって、異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる階層構造を持つ階層構造データと表示用データとを記憶する記憶部と、階層構造データを管理し、階層構造データを分析処理し、階層構造データから表示用データを生成する処理部と、処理命令が入力され、また表示用データを表示するユーザインターフェース部とを備え、処理部は、階層構造データから表示用データを生成する際に、タプルの階層名を表示する行とタプルの属性名を表示する行と属性名に対応したリストの行を備えた表形式とし、表形式で表示するリストの行の数を制御可能なデータ処理装置を提供する。
また、本発明においては、ユーザインターフェース部は、ユーザの操作により任意の階層のデータを非表示にすることができることを特徴とするデータ処理装置を提供する。
また、本発明においては、ユーザインターフェース部および分析処理部は、全データに対して分析処理を実行する前に、一部のデータに対してのみ分析処理を実行し、結果をすぐさま前記ユーザインターフェース部に表示できることを特徴とするデータ処理装置を提供する。
また、本発明においては、ユーザインターフェース部は、属性追加処理を実行時に、新規に追加された属性の列が自動的に表に挿入されることを特徴とするデータ処理装置を提供する。
また上記の目的を達成するため、本発明においては、データ処理を行うデータ処理装置であって、素データから、この素データを階層化した、異なるデータ型の組合せであるタプルと同じデータ型の並びであるリストからなる階層構造データと、この階層構造データのデータ構造を現すスキーマ情報とを出力する階層化処理部と、階層構造データとスキーマ情報から、属性別に分割された属性別データを出力するデータ分割処理部と、階層化処理部が出力するスキーマ情報とデータ分割処理部が出力する属性別データを記憶する記憶部とを備え、記憶部が記憶する属性別データは、データが格納されているファイル群と、ファイル群のファイル名を管理するファイル名管理テーブルから構成され、ファイル群は、1つのファイルにつき1つの属性のデータのみを格納するデータ処理装置を提供する。
すなわち、上記の目的を達成するため、本発明の好適な態様においては、データを処理するデータ処理装置であって、データ分析処理を記述したデータ分析スクリプトと、再構成される階層構造データのデータ構造を現すスキーマ情報と、属性別に分割された属性別データとから元の階層構造を復元して、再構成された階層構造データを出力する階層構造データ復元処理部と、データ分析スクリプトと、再構成された階層構造データとから分析処理を行う分析処理部とを備え、復元すべき階層構造は、異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストとからなる再帰構造を持ち、スキーマ情報は、復元すべき階層構造の個々の要素のデータ型を保持し、リストの要素のデータ型に関しては、先頭の要素のデータ型のみを保持し、属性別データは、データが格納されているファイル群と、ファイル群のファイル名を管理するファイル名管理テーブルから構成され、このファイル群は、1つのファイルにつき1つの属性のデータのみを格納し、それぞれの属性に関して、スキーマ情報のリストの深さに対応して、データがリスト構造で階層化されており、またこのファイル群は、属性ごとにデータが格納されているファイル群が順序付けされており、任意の2属性に関しファイルを順序付けられた順に開き、適切な区切りごとに読むことにより、復元すべき2属性間の対応が復元でき、上述の階層構造データ復元処理部における階層構造データ復元処理は、データ分析に利用する属性を特定し、データ分析に利用しない属性のファイルは読み込まず、ファイル群から読み込んだリストで階層化されているデータを、深さ指定の転置処理によりデータ構造を変え、再構成された階層構造データは、データ分析処理に利用しない属性値は任意の値となっているデータ処理装置を提供する。
本発明によれば、階層構造を持つ大量のデータに対して、ユーザが簡単に処理を実行できるユーザインターフェースを提供できる。また本発明のユーザインターフェースにおいて、階層構造を持つ大量のデータを、階層名、属性名とともに、見やすくユーザに提示するため、ユーザがデータの構造・意味・形式を容易に理解できる。更に本発明のユーザインターフェースにおいて、ユーザの操作により任意の階層のデータを非表示にすることができるため、データの階層構造を容易に理解することができる。
以下、図面を参照して本発明の実施例を説明する。なお、本明細書において、コンピュータ等のデータ処理装置が、その処理部においてプログラムによって実現する機能を、「処理」、「部」や「手段」と表現する場合がある。たとえば、データの階層化機能を「階層化処理」を「階層化部」、「階層化手段」等と呼ぶ。
[実施例1]
第1の実施例は、複数のコンピュータ上で、階層構造を持つデータに対して、データ分析処理を実行するための好適なユーザインターフェースを備えたデータ処理装置を示す。
第1の実施例は、複数のコンピュータ上で、階層構造を持つデータに対して、データ分析処理を実行するための好適なユーザインターフェースを備えたデータ処理装置を示す。
以下、第1の実施例のデータ処理装置について説明する。なお、本実施例のデータ処理装置で使用するコンピュータは、汎用のコンピュータであり、例えば、図24に示す構成を持つものである。図24を簡単に説明すると、2400はコンピュータを示しており、入力部であるキーボードやマウス等の入力デバイス2401、インターネットなどのネットワークに接続するためのネットワークインターフェース部であるネットワークデバイス2402、処理部である中央処理部(Central Processing Unit:CPU)2403、記憶部である主記憶部2404と補助記憶部2405、出力部である表示装置2407等が内部のバス2406に接続される構成を持つ。入力デバイス2401と表示デバイス2407とは、ユーザインターフェース部を構成している。CPU2403は、記憶部に記憶或いはダウンロードされるプログラムを実行することにより、以下詳述するような各種の処理を行う。
図25は、第1の実施例のデータ処理装置の構成例を示す機能ブロック図である。図25はデータの流れを示した図であり、各機能処理部のデータのやり取りの詳細に関しては、図35、図38、図41を用いて後述する。図25において、ユーザインターフェース部2500と表示用データ生成部2502と分析処理部2504とデータ管理部2505は、その一部或いは全部が、上述したCPU2403におけるプログラム処理として実現される。ユーザインターフェース部2500には、図24で示した入力デバイス2401と表示デバイス2407のハードウェア構成を含んでいる。ユーザインターフェース部2500のそれ以外の部分と、表示用データ生成部2502と分析処理部2504とデータ管理部2505は、同一のコンピュータ上で実施されても良いし、或いは複数のコンピュータ上で分散して実施されても良い。なお、ユーザインターフェース部2500は、その構成の一部として、マウスなどの入力デバイス2401とディスプレイなどの表示デバイス2407を備える以外に、それらのハードウェアに接続される構成を取ることもできることは言うまでもない。
また、表示用データ2501と抽出された一時データ2503と、階層構造を持つ大量データである階層構造データ2506は上述した主記憶部2404や補助記憶部2405などの記憶部に蓄積、保持される。表示用データ2501と抽出された一時データ2503と、階層構造を持つ大量データである階層構造データ2506は、同一のコンピュータ上に蓄積、保持されても良いし、或いは複数のコンピュータ上で分散して蓄積、保持されても良い。
以下、第1の実施例のデータ処理装置で処理および表示するデータの形式について説明する。
なお、本実施例の説明においては、階層構造データ2506として、図4に示すデータ400を例にとって説明する。しかしながら、本実施例は、図4に示すデータ以外のデータにも適用可能であるとは明らかである。図4に示すデータ400は、ユーザが体につけた加速度センサのログを表している。ログには「ユーザID(user-idタグ)」、「行動(actionタグ)」、「日付(dateタグ)」、「時刻(timeタグ)」、「x方向の加速度(xタグ)」、「y方向の加速度(yタグ)、「z方向の加速度(zタグ)」の属性値が記録されている。図4には1ユーザ分しか示されていないが、実際には複数のユーザのデータがある。
図5の500は、図4のXMLデータ400において、XMLタグを括弧に置き換えたデータである。ただし異なるデータの組合せには小括弧“(”と“)”と使っており、一方、同じデータ型の繰り返しには、大括弧“[”と“]”を使って表している。以下では、小括弧で表される異なるデータの組合せをタプルと呼び、大括弧で表される同じデータ型の繰り返しはリストと呼ぶ。図5では、例として小括弧と大括弧でリストとタプルによる階層構造を表現しているが、小括弧と大括弧以外にも、XMLを含む多くの表現により、リストとタプルによる階層構造を表現することが可能である。
図6は、図5に示すデータ500のデータ構造を1ユーザ分だけ600として模式的に表したものである。データ構造600では、タプルはTで表し、リストはLで表している。各ノードの名前は、図4に示すXMLデータ400のXMLタグ名に対応している。リストの要素は、同じデータ型の繰り返しであるので、省略して先頭の要素だけ書くことにする。第1の実施例では、図6に示すようなリストとタプルで階層的(再帰的)に表されるデータ600を対象として、データ処理および表示を行う。
図6の例に示したデータ600には階層が3つある。1番目のuserの階層は、user−idとsessions(sessionのリスト)からなる。2番目のsessionの階層は、actionとdateとlogs(logのリスト)からなる。3番目のlogの階層は、timeとxとyとzからなる。第1の実施例のデータ処理装置では、その処理として属性追加処理と抽出処理と集計処理を実行することができる。
図26は、第1の実施例のデータ処理装置で想定される属性追加処理の例を示している。2600は図5に例として示した階層構造を持つデータであり、2601はそれを属性追加処理した後のデータの例である。図26に示す例においては、図4に示すXMLデータ400におけるlogタグの数をsessionのタグごとにカウントして、sessionの階層に新しい属性値が追加される。図26のデータ2601では、追加された属性値には下線を付して示している。本実施例で実行可能な属性追加処理は図26に示した例のみならず、プログラムにより実行できるあらゆる属性追加処理を実行することが可能である。
図27は、第1の実施例のデータ処理装置で想定される抽出処理の例を示している。2700は図5に例として示した階層構造を持つデータであり、2701はそれを抽出処理した後のデータの例である。図27に示す例においては、図4に示すXMLデータ400における、actionタグの値と、xタグの値のsessionの階層における平均の、ペアが出力される。抽出処理で出力されたデータは記憶装置に一時保存され、表計算ソフトウェア等の別の分析プログラムで利用されたり、別のコンピュータにコピーされて利用されたりする。本実施例で実行可能な抽出処理は図27に示した例のみならず、プログラムにより実行できるあらゆる抽出処理を実行することが可能である。
図28は、第1の実施例のデータ処理装置で想定される集計処理の例を示している。2800は図5に例として示した階層構造を持つデータであり、2801はそれを集計処理した後のデータの例である。図28に示す例においては、図4に示すXMLデータ400における、actionタグの値の出現頻度が計算され出力される。 例えば2801の例では、actionタグの値が「移動」であったsessionは全部で1012342回あったことを示している。本実施例で実行可能な集計処理は図28に示した例のみならず、プログラムにより実行できるあらゆる集計処理を実行することが可能である。
以下、図25に戻って、第1の実施例のデータ処理装置の機能構成を説明する。
ユーザインターフェース部2500は、上述した出力部を使って、階層構造データ2506の一部をユーザに提示し、上述した入力部を使って、ユーザからの分析処理命令を受け付ける。また実行した属性追加処理および抽出処理および集計処理の結果をユーザに出力部から表示する。
蓄積された表示用データ2501は、ユーザインターフェース部2500で表示するためのデータであり、階層構造データ2506の一部を表示用に加工したものである。表示用データ生成部2502は、データ管理部2505から階層構造データ2506の一部を取得し、表示用の形式に変換し、表示用データ2501を生成する。階層構造データ2506は大量にあるため、すべてをユーザインターフェース部2500のディスプレイに表示できない。そのため、ユーザインターフェース部2500に表示できる量のデータのみ、あるいは表示できる位の量を、表示用データに変換しておく。
分析処理部2504は、ユーザインターフェース部2500から入力される分析処理命令を受け取り、表示用データ2501またはデータ管理部2505からデータを取得し、属性追加処理および抽出処理および集計処理などの分析処理を実行する。各処理の詳細は図35、図38、図41を用いて後述する。
分析処理を実行する場合には、まず表示用データ2501を用いてテスト実行をしてから、階層構造データ2506に対して本番実行する。これによりまず少量の表示用データでテスト実行して、ユーザが入力した分析処理命令に間違いがないか確認することができる。
データ管理部2505は、階層構造データ2506のインターフェースとして機能し、階層構造データ2506に対してデータの格納や取り出しを行う。
図29は、図25のユーザインターフェース部2500の出力部であるディスプレイに表示されるウィンドウ画面を示している。図29に示すウィンドウ画面には、階層構造データ2506をユーザに提示するための表が示されている。表の行2901は階層の名称である階層名を表示する行であり、図29の例では、userの階層と、sessionの階層と、logの階層があるデータが示されている。行2904は属性の名称である属性名を表示する行であり、図29の例では、userの階層に、user−idの属性があり、sessionの階層にaction、dateの属性があり、logの階層にtime、x、y、zの属性がある。
図29は、図25のユーザインターフェース部2500の出力部であるディスプレイに表示されるウィンドウ画面を示している。図29に示すウィンドウ画面には、階層構造データ2506をユーザに提示するための表が示されている。表の行2901は階層の名称である階層名を表示する行であり、図29の例では、userの階層と、sessionの階層と、logの階層があるデータが示されている。行2904は属性の名称である属性名を表示する行であり、図29の例では、userの階層に、user−idの属性があり、sessionの階層にaction、dateの属性があり、logの階層にtime、x、y、zの属性がある。
ボタン2900は抽出処理用のウィンドウを表示するときに押すボタンであり、ボタン2903は属性追加処理用のウィンドウを表示するときに押すボタンであり、ボタン2906は集計処理用のウィンドウを表示するときに押すボタンである。ボタン2902はデータを表示している表を折り畳む、または展開するためのボタンである。チェックボックス2905は抽出処理を実行するときに、抽出する対象となる属性を選択するためのチェックボックスである。
本実施例のデータ処理装置では、図4や図5のような階層構造を持つ大量データを、表示部の表示画面に表示できる量のデータだけ、図29に示す表の形式でユーザに提示することで、階層構造を持つ大量のデータに対し、目視により容易にデータの構造・意味・形式を理解することが可能となる。
本実施例のデータ処理装置では、図4や図5のような階層構造を持つ大量データを、表示部の表示画面に表示できる量のデータだけ、図29に示す表の形式でユーザに提示することで、階層構造を持つ大量のデータに対し、目視により容易にデータの構造・意味・形式を理解することが可能となる。
図30は、図29に示したウィンドウ画面において、logの階層のデータを折り畳んだ状態のウィンドウ画面である。画面に表示された表3000が示すように、ボタン2902を押すことにより、logの階層のデータを折り畳むと、sessionの一つにつき、logの階層のデータは1行だけ表示される。
図31は、図29のウィンドウ画面において、画面に表示された表3100が示すように、ボタン2902を押すことにより、sessionの階層のデータを折り畳んだ状態のウィンドウ画面である。sessionの階層のデータを折り畳むと、user1つにつき、sessionの階層のデータは1行だけ表示される。
図32は、階層の折り畳みの状態遷移を表したステートチャート図である。状態3200はすべての階層を表示している状態を表し、図29のウィンドウ画面の状態に相当する。状態3201はlogの階層を折り畳んだ状態を表し、図30のウィンドウ画面の状態に相当する。状態3202はsessionの階層を折り畳んだ状態を表し、図31のウィンドウ画面の状態に相当する。ボタン2902を押すことによって、図32における状態が遷移する。状態3200において、logの階層の折り畳むボタンを押すと状態3201に遷移する。状態3200において、sessionの階層の折り畳むボタン2902を押すと状態3202に遷移する。状態3201において、logの階層の折り畳むボタン2902を押すと状態3200に遷移する。状態3201において、sessionの階層の折り畳むボタン2902を押すと状態3202に遷移する。状態3202において、logの階層の折り畳むボタン2902を押すと状態3200に遷移する。状態3202において、sessionの階層の折り畳むボタン2902を押すと状態3201に遷移する。行を折り畳む際は,対象となる階層のすべての行が同時に折り畳まれる.また行を展開する際は,対象となる階層のすべての行が同時に展開される。
ユーザからの操作により階層を折り畳めるようにすることで、ユーザが階層を折り畳む操作により、データの階層構造を直感的に理解できるようになる。また注目していない階層を折り畳むことにより、ユーザが注目する階層に意識を集中させやすくなる効果がある。
以下、図を用いて、属性追加処理、抽出処理、集計処理の詳細を説明する。
図33は、図29においてボタン2903を押す等により、表示される属性追加処理用のウィンドウ画面である。3300は追加する属性の名前を入力する欄であり、3301は追加する属性が属する階層の名前を入力する欄であり、3302は追加する属性の値を計算するための式およびプログラムを記述する欄である。ボタン3303を押すことにより、属性追加処理が実行される。
図34は属性追加処理のテスト実行が終了したときの、ユーザインターフェース部2500のウィンドウ画面である。3400が新規に追加される属性が表示されている列である。
図35は属性追加処理のシーケンス図である。まずユーザインターフェース部2500において、図33のウィンドウ画面のプログラム記述欄3302で属性追加処理の命令を記述し、属性追加処理のテスト実行を行うため、ボタン3303を押す。すると分析処理部2504に表示用データ2501と分析命令が渡され(図35のaddAttrTest)、分析処理部2504は処理を実行して、表示用データ生成部2502に追加された属性値を渡す。表示用データ生成部は、追加される属性値を表示用データ2501に変換して、ユーザインターフェース部2500のディスプレイに表示する。従ってテスト実行した際に、すぐに結果がユーザインターフェース部2500に表示されることになり、大量データに対する属性追加処理の実行の終了を待つことなくユーザは結果を見ることができる。またこれにより意図した通りに処理命令を記述できているか確認することができる。
属性追加処理の本番実行を行うために、テスト実行が終了したのち、もう一度ボタン3303を押す。すると、分析処理部2504に分析命令が渡され(図35のaddAttr)、分析処理部2504は、データ管理部2505からデータを取得し、処理の実行を開始する。大量データに対し処理を実行するため、すぐには処理が終了しない。そのためユーザインターフェース部2500は定期的に分析処理部2504に処理終了したかどうかを問い合わせる(図35のisFinished)。処理が終了したら、ユーザインターフェース部2500は、表示用データ生成部2502に新規に追加された属性のデータを表示する要求を出し、表示用データ生成部2502はデータ管理部2505からデータを取得し、表示用データ2501に変換して、ユーザインターフェース部2500に表示する。
図36は、図29においてチェックボックス2905にチェックを入れた後に、抽出処理ボタン2900を押す等により、表示される抽出処理用のウィンドウ画面である。3600は抽出処理を実行する階層の名前を入力する欄であり、3601は出力先のディレクトリ名を入力する欄であり、3602は抽出処理の結果として出力されるデータの第1列目を計算するための式およびプログラムを入力する欄であり、3603は抽出処理の結果として出力されるデータの第2列目を計算するための式およびプログラムを入力する欄であり、3604は抽出処理の結果として出力されるデータの第3列目を計算するための式およびプログラムを入力する欄である。ボタン3605を押すことにより、抽出処理が実行される。
図37は属性追加処理のテスト実行が終了したときに、ディスプレイに表示されるウィンドウ画面である。ウィンドウ3700には抽出処理した結果が示される。
図38は抽出処理のシーケンス図である。まずユーザインターフェース部2500において、図36のウィンドウ画面で抽出処理の命令を記述し、抽出処理のテスト実行を行うため、ボタン3605を押す。すると分析処理部2504に表示用データ2501と分析命令が渡され(図38のfilterTest)、分析処理部2504は処理を実行して、結果を図37に示すウィンドウ3700に表示する。従ってテスト実行した際に、すぐに結果がユーザインターフェース部2500に表示されることになり、大量データに対する属性追加処理の実行の終了を待つことなくユーザは結果を見ることができる。またこれにより意図した通りに処理命令を記述できているか確認することができる。
抽出処理の本番実行を行うために、テスト実行が終了したのち、もう一度ボタン3605を押す。すると、分析処理部2504に分析命令が渡され(図38のfilter)、分析処理部2504は、データ管理部2505からデータを取得し、処理の実行を開始する。大量データに対し処理を実行するため、すぐには処理が終了しない。そのためユーザインターフェース部2500は定期的に分析処理部2504に処理終了したかどうかを問い合わせる(図38のisFinished)。処理が終了したら、ユーザインターフェース部は、処理が終了した旨を画面上に表示してユーザに知らせる。処理結果のデータは抽出された、3601に入力したディレクトリに、一時データ2503として一時保存される。一時データ2503は他のプログラム等で実行される分析に利用される。
図39は、図29においてボタン2906を押す等により、表示される集計処理用のウィンドウ画面である。3900は集計処理を実行する対象の属性の名前を入力する欄であり、3901は集計処理の式およびプログラムを記述する欄である。ボタン3902を押すことにより、集計処理が実行される。
図40は集計処理のテスト実行および集計処理の本番実行が終了したときに、表示されるウィンドウ画面である。ウィンドウ4000には集計処理した結果が示される。
図41は集計処理のシーケンス図である。まずユーザインターフェース部2500において、図39のウィンドウ画面で集計処理の命令を記述し、集計処理のテスト実行を行うため、ボタン3902を押す。すると分析処理部2504に表示用データ2501と分析命令が渡され(図41のaggregateTest)、分析処理部2504は処理を実行して、結果を図40に示すウィンドウ画面に表示する。従ってテスト実行した際に、すぐに結果がユーザインターフェース部2500に表示されることになり、意図した通りに処理命令を記述できているか確認することができる。
集計処理の本番実行を行うために、テスト実行が終了したのち、もう一度ボタン3902を押す。すると、分析処理部2504に分析命令が渡され(図41のaggregate)、分析処理部2504は、データ管理部2505からデータを取得し、処理の実行を開始する。大量データに対し処理を実行するため、すぐには処理が終了しない。そのためユーザインターフェース部2500は定期的に分析処理部2504に処理終了したかどうかを問い合わせる(図41のisFinished)。処理が終了したら、結果を図40に示すウィンドウ画面に表示する。
図42は、表示用データ生成部2502のフローチャート図である。表示用データ生成部2502は、ユーザインターフェース部2500の起動時にウィンドウ画面を表示するときと、属性追加処理のテスト実行および本番実行時に新しく追加された属性をウィンドウ画面に表示するときの、2つの場合に利用される。まずS4200で属性追加処理の結果を表示するかどうかで分岐する。属性追加処理のテスト実行の結果を表示するのではない場合、すべてのiに対してL[i]=0と初期化して(S4201)、S4200に進む。ここでL[i]は、すでにウィンドウ画面に表示されているi番目の階層に属する属性の数を表す。例えば、図29に示すウィンドウ画面が表示されている場合、L[0]はuserの階層の属性数を表し、図29の例では1であり、L[1]はsessionの階層の属性数を表し、図29の例では2であり、L[2]はlogの階層の属性数を表し、図29の例では4である。
一方、分岐S4200において属性追加処理のテスト実行の結果を表示する場合には、直接S4200に進む。
次に各階層でデータをサンプリングする(S4202)。データは大量にあるため、すべてのデータをウィンドウ画面上に表示することはできない。そのためサンプリングすることにより画面に表示するデータを抽出する。例えば、階層ごとに表示するデータの数を予め決めておき、データの先頭から対応する個数だけデータを抜き出す。例えば図29の例であれば、userの階層、sessionの階層、logの階層のすべての階層においてデータは2つずつ表示すると決められている。
図43は、userの階層、sessionの階層、logの階層のすべての階層においてデータは2つずつ表示すると予め決めておいた場合の、サンプリング後のデータのウィンドウ画面であり、サンプリング後のデータの一例が表示されたウィンドウ4300を示す。
続いてサンプリング後のデータから属性値を1つ読む(S4203)。読み込んだ属性値が、i番目の階層の中のj番目の属性のk番目に出てくる値とする。i、j、kの値は、例えば図43に示すサンプリング後のデータにおいて、括弧の数をカウントすることにより算出することができる。例えば、属性actionは、2番目の階層の1番目の属性であるので、i=2、j=1である。さらに属性値「会議」は属性actionの中で2番目に出てくるので、k=2である。i、j、kの値を求めたら、attr[i][L[i]+j][k]=vと代入する。L[i]の値を用いることで、属性追加処理のテスト実行を行った際には、新しく追加された属性に関してのみ表示用データ生成処理を実行すればよい。即ち、すべての属性に関してもう一度表示用データの生成処理を実行する必要はなく、高速に属性追加処理の結果を表示することができる。
また実施例2で詳述するように、属性別に分割されファイルされたデータを用いると、階層構造を復元することなく、属性別にファイルされたままのデータを入力して、図42の表示用データ処理を実行することが可能である。これにより実施例2に示す属性別に分割してファイル毎にデータを管理する場合において、階層構造を復元する処理を実行することないため、高速に表示用データを生成することができる。すなわち、記憶部に、属性名に対応する属性別データ各々をファイル毎に記憶しておくことにより、高速に表示用データを生成することが可能となる。さらに、属性名に対応するリストのデータを集計する際にも、対応する属性名の属性別データファイルを用いて高速に集計を行うことも可能となる。
S4205では、まだ読み込んでいない属性値があればS4203に戻り、そうでなければS4206に進む。
最後にL[i]の値を更新する(S4206)。例えば図29のウィンドウの画面を表示した場合、L[0]=1、L[1]=2、L[2]=4と更新する。
分析処理部2504に関しては、一般的なプログラミング言語の処理系と同様の方式で実現可能である。データ管理部2505に関しては実施例2でその詳細を述べる。
[実施例2]
第2の実施例は、1つのコンピュータ上で、上述してきたような階層構造を持つデータに対して、データ分析処理を高速に行うデータ処理装置の構成を示す。
第2の実施例は、1つのコンピュータ上で、上述してきたような階層構造を持つデータに対して、データ分析処理を高速に行うデータ処理装置の構成を示す。
以下、第2の実施例のデータ処理装置について説明する。本実施例のデータ処理装置は、事前にデータを前処理してコンピュータ上で管理する形式に変換する装置と、データ分析のスクリプト、ソースコードを受け取ってデータ分析を実行する装置とからなる。事前にデータを前処理してコンピュータ上で管理する形式に変換する装置に関しては図1を用いて後述する。データ分析のスクリプト、ソースコードを受け取ってデータ分析を実行する装置に関しては、図2を用いて後述する。
さて、図1は、事前にデータを前処理してコンピュータ上で管理する形式に変換する装置の機能構成例を示すブロック図である。図1に示す装置を構成するコンピュータは、図2に示す装置を構成するコンピュータと同一、或いは別個であっても良い。図1において、階層化処理101とデータ分析処理103は、上述した図24の処理部であるCPU2403によるプログラム処理として実現される処理である。図2以降の図面における各処理ブロックも、上述したCPU2403のプログラム処理として実現される処理である。
また、素データ100、階層構造データ102、スキーマ情報105、属性別データ106は上述した図24の主記憶部2404や補助記憶部2405などの記憶部に蓄積、保持される。すなわち、素データ100を受け取り、処理部による階層化処理101により、階層構造データ102とスキーマ情報105が出力される。続いて、階層構造データ102とスキーマ情報105から、処理部によるデータ分割処理103により、属性別データ106が出力される。
第2の実施例では、図1に示す前処理は、素データ100に対し一度だけ実行され、分析対象となるデータはスキーマ情報105と属性別データ106の組104の形式でコンピュータ上に管理される。なお階層構造データ102とスキーマ情報105を入力として受け取った場合には、階層化処理101は行わずに、データ分割処理103のみを行うことも可能である。
以下では素データ100として、図26の処理の対象とした図3に示すデータを例にとって説明する。しかしながら、本実施例は、図3に示すデータ以外のデータにも適用可能であるとは明らかである。図3に示す素データ100は、ユーザが体につけた加速度センサのログを表している。ログには素データ100の上一行目に示す、「ユーザID」、「行動」、「日付」、「時刻」、「x方向の加速度」、「y方向の加速度」、「z方向の加速度」の値が記録されている。図3には1ユーザ分しか示されていないが、実際には複数のユーザのデータがある。
図1の階層化処理101では、図3に示すような表形式の素データ100を、階層構造を持つデータ形式に変換する。階層構造を持つデータとして、例えば上述したXMLが挙げられる。図3に示す素データ100を、ユーザIDと行動と日付をキーとしてグループ化し、XML形式に変換したデータを図4の400として示す。
図3に示すデータから図4に示すXML形式のデータ400を生成するには、まずユーザIDが同一の行をグループ化し、続いてそれぞれのグループごとに、さらに行動と日付が同一の行をグループ化する。階層化処理101の内容は、本実施例のデータ分析処理を実施する実施者が、データ分析目的にあわせて決定する。例えば、データ分析処理の実施者は、XMLのタグ名やグループ化のためのキーとなる属性を決定する。
図5は、図4のXMLデータにおいて、XMLタグを括弧に置き換えたデータである。ただし異なるデータの組合せには小括弧“(”と“)”を使っており、一方、同じデータ型の繰り返しには、大括弧“[”と“]”を使って表している。以下では、小括弧で表される異なるデータの組合せをタプルと呼び、大括弧で表される同じデータ型の繰り返しはリストと呼ぶ。本実施例では、データを、リストとタプルで階層的(再帰的)に表現する。図5では、例として小括弧と大括弧でリストとタプルによる階層構造を表現しているが、小括弧と大括弧以外にも、XMLを含む多くの表現により、リストとタプルによる階層構造を表現することが可能である。
図6は、図5に示すデータのデータ構造を1ユーザ分だけ600として模式的に表したものである。データ構造600では、タプルはTで表し、リストはLで表している。各ノードの名前は、図4に示すXMLデータのXMLタグ名に対応している。リストの要素は、同じデータ型の繰り返しであるので、省略して先頭の要素だけ書くことにする。
図7は、第2の実施例のデータ処理装置において、想定されるデータ分析の例を示している。図7に示す例においては、第1回目の分析では、素データに階層化処理101を施したデータ700に対して、図4に示すXMLデータにおけるlogタグ間で時刻の値の差を計算することにより時間間隔が算出され、時間間隔が追加されたデータ701が出力される。図7の701において、追加された値には下線を引いてある。第2回目の分析では、時間間隔が追加されたデータ701に対し、図4に示すXMLデータにおけるlogsタグごとに、時刻と時間間隔を抽出しクラスタリングを行う。クラスタリングはk−meansなどの公知の方法を用いて行う。第3回目の分析では、時間間隔が追加されたデータ701に対し、図4に示すXMLデータにおけるlogsタグ内のx方向の加速度の平均が算出され、x方向の加速度の平均が追加されたデータ702が出力される。図7の702において、追加された値には下線を引いてある。図7の701と702を比較して分かるように、データは任意の階層に追加され得る。第4回目の分析では、x方向の加速度の平均が追加されたデータ702に対し、行動とx方向の加速度の平均を抽出し相関分析を行う。相関分析は、相関係数の算出など公知の方法を用いて行う。
図7に示すデータ分析の例では、少数の特定の属性の値のみを用いて処理が行われ、算出された値は、新しい属性値として任意の階層に追加されるか、あるいは他の公知の処理に渡される。第2の実施例では、少数の特定の属性のみを利用するデータ分析において、データを前処理して属性値ごとに分割し、属性別のファイルにデータを保持することにより、処理を高速化することが可能となる。
図8は、素データとして図3に示すデータを想定した場合の、スキーマ情報105である。図6で模式的に示したデータ構造を、括弧で表現し、プログラムで扱いやすくしたものである。図8に示すスキーマ情報は、図4に示すXMLデータのタグのみを抜き出したものであり、本実施例の実施者が決定した階層化処理101を実行することにより、自動的に生成することが可能である。
図9は、素データとして図3に示すデータを想定した場合の、階層構造データ102とスキーマ情報105から、データ分割処理103により生成される属性別データ106の例を示している。属性別データ106は、ファイル名管理テーブル900と属性値が格納されている属性別のファイル(901、902、903など)で管理されている。901は、図4に示すXMLデータのuser−idタグの値が格納されているファイル群である。902は、図4に示すXMLデータのtimeタグの値が格納されているファイル群である。903は、図4に示すXMLデータのxタグの値が格納されているファイル群である。ファイル名管理テーブル900には、図4に示すXMLデータのタグの値、すなわち属性名が、どのファイルに格納されているかが管理されている。例えば、ファイル名管理テーブル900を参照することにより、図4に示すXMLデータのtimeタグの値が、file_time_0.txt、file_time_1.txtに順に格納されていることがわかる。
図10は、素データとして図3に示すデータを想定した場合の、属性値が格納されているファイルの内容を示している。同図上段の1000はfile_user−id_0.txtの内容を示している。ユーザIDが、1行に1ユーザの単位で記述されている。同図中段の1001はfile_time_0.txtの内容を示している。時刻が、1行に1ユーザの単位で記述されている。1ユーザにおいて、時刻のデータは図6のlogsとsessionsで、2重にリストで階層化されているので、1行のデータは深さ2のリストになる。同図下段の1002はfile_x_0.txtの内容を示している。x方向の加速度が、1行に1ユーザの単位で記述されている。1ユーザにおいて、x方向の加速度のデータは図6のlogsとsessionsで2重にリストで階層化されているので、1行のデータは深さ2のリストになる。
図11は、CPUで実行される図1のデータ分割処理103のフローチャートである。まずスキーマ情報105に基づき、書き込み用ファイルを開き、ファイル名管理テーブルを初期化する(S1100)。例えば、図8に示すスキーマ情報の場合は、file_user−id_0.txt、file_action_0.txt、file_date_0.txt、file_time_0.txt、file_x_0.txt、file_y_0.txt、file_z_0.txtを書き込み用ファイルとして開く。また、これらのファイル名をファイル管理テーブル900に書き込む。例えば、図8に示すスキーマ情報を読み込むと、1番最初にuser−idという文字列がある。よってfile_user−id.txtを書き込み用ファイルとして開き、ファイル管理テーブル900に、属性フィールドがuser−id、ファイル名フィールドが{file_user−id.txt}であるレコードを追加する。
次に、階層構造データ102から1ユーザ分のデータを読み込む(S1101)。以下では、読み込む階層構造データは、図5に示すように括弧で階層が表現されていると想定する。しかしながら、括弧以外の、例えばXMLなどの任意の階層構造を表現できるデータ形式においても、本実施例の実現が可能であることは明らかである。
続いて、読み込んだ階層構造データ102に対し、構造解析を行い、属性ごとに分解してファイルに書き込む(S1102)。S1102の処理は、読み込んだ階層構造データ102を引数として、再帰関数parseを呼ぶことにより実行する。再帰関数parseに関しては、図12を用いて後述する。
続いて、まだ読み込んでいないデータがあるかどうかで条件分岐する(S1103)。まだ読み込んでいないデータがない場合には、データ分割処理103は終了となる。まだ読み込んでいないデータがある場合には、書き込み用ファイルのいずれかが、予め設定された最大ファイルサイズを超えているかどうかで条件分岐する(S1104)。最大ファイルサイズを超えていない場合には、処理S1101に戻る。最大ファイルサイズを超えた場合には、最大ファイルサイズを超えた属性に関して、書き込み用の新しいファイルを開く(S1105)。例えば、file_date_0.txtが最大ファイルサイズを超えた場合には、新しくfile_date_1.txtを書き込み用ファイルとして開く。続いて、最大ファイルサイズを超えた属性に関して、新しく開いた書き込み用ファイル名を、ファイル名管理テーブル900に追加する(S1106)。
例えば、file_date_0.txtが最大ファイルサイズを超えた場合には、ファイル名管理テーブル900の、属性フィールドがdateのレコードの、ファイル名のフィールドを、{file_date_0.txt、file_date_1.txt}に変更する。ファイル名は左から古い順に並ぶようにする。よって左から順に読めば、階層化データのユーザ順と同じ順になる。また最大ファイルサイズを指定することにより、データが複数のファイルに分割されて保存されるため、データのバックアップ・複製や分散処理が容易になる.S1106の処理が終わったら、S1101の処理に戻る。
図12は、処理S1102で呼ばれる再帰関数parseのフローチャートである。処理S1102において、再帰関数parseは階層構造データ102を引数として呼び出される。まず引数の1番上の階層のデータ型により条件分岐する(S1200)。引数のデータ型が値の場合には、その値自体をタプルに入れて返す(S1201)。parse関数は階層構造のデータに対し、再帰的に呼び出されるため、階層構造の一番下で呼び出されるときには、引数に値のみが入った状態で呼び出される。
条件分岐S1200において、引数のデータ型がリストの場合には、リストの各要素a[i]に対して、parse(a[i])を再帰的に呼び出し、返された値をそれぞれb[i]とする(S1202)。続いて、処理S1202で得られたb[i]を転置して返す(S1203)。例えば、parse([1 2 3])を実行する場合、引数がリストなので、[1 2 3]の要素である1、2、3に対してそれぞれparseを再帰的に呼び出し、parse(1)、parse(2)、parse(3)を計算する。ここでparse(1)は、引数が値なので、分岐S1200により処理S1201に分岐し、値1をタプルに入れたb[0]=(1)が返される。同様に、b[1]=(2)、b[2]=(3)となる。ここでb[i]の転置を取ると、b[i]を行列と見なして、
[(1) (2) (3)] → ([1 2 3])
と変換する。ここで行列と考えると、[(1) (2) (3)]は、3行1列の行列であるのに対し、([1 2 3])は1行3列の行列であり、転置になっている。
[(1) (2) (3)] → ([1 2 3])
と変換する。ここで行列と考えると、[(1) (2) (3)]は、3行1列の行列であるのに対し、([1 2 3])は1行3列の行列であり、転置になっている。
条件分岐S1200において、引数のデータ型がタプルの場合には、リストの各要素a[i]に対して、parse(a[i])を再帰的に呼び出し、返された値をそれぞれb[i]とする(S1204)。続いて、b[i]を連結したタプルを返す。例えば、parse((1 2 3))を実行する場合、引数がタプルなので、(1 2 3)の要素である1、2、3に対してそれぞれparseを再帰的に呼び出し、parse(1)、parse(2)、parse(3)を計算する。ここでparse(1)は、引数が値なので、分岐S1200により処理S1201に分岐し、値1をタプルに入れたb[0]=(1)が返される。同様に、b[1]=(2)、b[2]=(3)となる。ここでb[i]を連結すると、
((1) (2) (3)) → (1 2 3)
となる。
((1) (2) (3)) → (1 2 3)
となる。
図13は、parse関数の作用を示している。図13上段に示すように、スキーマ情報105にparse関数を適用すると、スキーマ情報の中にある属性名(図4のXMLデータのタグ名に対応)が順番に抽出される(1300)。属性名には、リストの深さに対応した数の大括弧が付けられる。例えば、属性timeはスキーマ情報105においてリストの深さ2の場所にあるので、出力されるデータ1300においても大括弧が2つ付けられて出力される。
図13下段に示すように、階層構造データ500にparse関数を適用すると、図10に示したファイルに書き込む形式でデータが出力される。出力されるデータ1301においては、属性ごとにデータが分解されている。また1300と1301では、属性名と属性値の順番が対応しているので、どのデータをどのファイルに書き込めばよいか分かるようになっている。
以下では図14に示すデータ分析ソースコードの例にとって説明する。図14ではプログラム言語LISPでデータ分析ソースコードを書いているが、本実施例はLISP以外のプログラム言語で書いたスクリプト、データ分析ソースコードにも適用可能であることは明らかである。またデータ分析の内容に関しても、本実施例は図14に示す以外の分析処理においても適用可能であることは明らかである。1400はデータ分析の内容を記述したものであり、1400の例では、x方向の加速度の平均を算出する処理を記述している。1401は1400の処理により得られた値をどう扱うかを記述したものであり、1401の例では、1400の処理で得られた値を(2nd (car (4th (user))))に示す位置に、“ave−x”という属性名で追加する処理を記述している。2ndはタプルの中の2番目の要素を返す関数であり、3rdはタプルの中の3番目の要素を返す関数であり、4thはタプルの中の4番目の要素を返す関数である。その他の図14に含まれるプログラムの命令は、LISPでは標準的に利用されるものであるので、個々の命令の詳細の説明は省く。
図15は、プログラム1400の動作例を示している。階層構造データ1500をプログラム1400に入力すると、x方向の平均が計算され、結果がリストになった1501が出力される。
本実施例では、階層構造データは事前に属性ごとに分割され、図9に示したような属性別データ106の形式で管理される。そのため、データ分析プログラムを適用する前に、データ構造を復元する必要がある。
図2は、データ分析のスクリプトであるソースコードを受け取ってデータ分析を実行する装置の構成例を示すブロック図である。データ分析ソースコード200と図1に示した処理で得られたスキーマ情報105と属性別データ106から、階層構造データ復元処理201により再構成された階層構造データ202を得る。続いてデータ分析ソースコード200と再構成された階層構造データ202を用いて、分析処理203を行う。分析処理203の処理結果は、記憶部に記憶、或いは上述した出力部から出力される。分析処理に属性の追加が含まれる場合には、スキーマ情報105と属性別データ106を更新する。
図16は、階層構造データ復元処理201のフローチャートである。まずデータ分析ソースコード200を解析して、必要な属性名を特定する(S1600)。例えば、図14の1400のデータ分析プログラムには、データの階層構造をたどる関数として、階層構造の上から順に2nd、3rd、2ndがある。そこで図8に示したスキーマ情報において、図17に示すように階層構造1700を上から順に2nd、3rd、2ndとたどることで、必要な属性名が特定できる。図14のデータ分析プログラム1400の例では、1つの属性のみ必要であるが、2つ以上の属性が必要な場合でも同様にして必要な属性名を特定できる。
次にファイル名管理テーブル900を参照して、特定した属性名のデータが格納されているファイル名を特定し、各属性に関し1番目(最も左)のファイルを開く(S1601)。続いて各ファイルから1行分のデータを読み込む(S1603)。図10に示した属性別データの例では、1行のデータは1ユーザ分のデータに相当する。ここでデータ分析プログラムに必要な属性しか読み込まないため、1ユーザの全属性を読み込む場合に比べて、データ入力量が低減される。図14に示したデータ分析ソースコードの例であれば、最も深い階層に4つの属性があり、実際にはそのうち1つの属性のデータしか読み込まないため、データ入力量は1/4に低減される。
続いてスキーマ情報にファイルから読み込んだデータを埋め込む(S1603)。続いて階層構造を再構成する(S1604)。図18は、処理S1603と処理1604の例を示している。処理1603により、ファイルfile_time_0.txt(1001)から読み込んだ1ユーザ分のデータを、スキーマ情報105に埋め込んだデータが1800である。スキーマ情報105のxの部分にファイルfile_time_0.txt(1001)の1行分がクオートで囲まれて挿入され、その他の属性のところにはnが挿入されている。処理1604により、階層構造を再構成したデータが1801である。処理1604は、属性のデータをスキーマ情報105に埋め込んだデータを引数として、再帰関数buildを呼ぶことで実行する。再帰関数buildに関しては、図19を用いて後述する。データ1801は、もとのデータ1500の分析処理に利用したい値をnで置き換えたものであるので、データ分析プログラムをデータ1801に適用すれば、データ1500に適用したときと同じ結果が得られる。
図16の階層構造データ復元処理201の説明に戻る。処理1604の次は、ファイルのいずれかが末尾まで読まれたかどうかで条件分岐する(S1605)。ファイルのいずれもまだ末尾まで読まれていない場合は、処理S1602に戻る。ファイルのいずれかが末尾まで読まれた場合には、末尾まで読まれた属性に関して、まだ開いていないファイルがあるかどうかで、さらに条件分岐する(S1606)。末尾まで読まれた属性に関して、まだ開いていないファイルがない場合には終了となる。末尾まで読まれた属性に関して、まだ開いていないファイルがある場合には、その属性に関して、ファイル名管理テーブル900を参照して、次(今開いているファイルの右)のファイルを開き(S1607)、処理S1602に戻る。ファイル名管理テーブル900のファイル名のフィールドのファイルを左から順に開き1行ずつ読めば、階層構造データのユーザ順と同じ順になる。よって読み込む属性が2つ以上の場合でも、ファイルを左から順番に開き1行ずつ読むことにより、処理S1602で読み込む属性データは、同一ユーザのデータとなる。これにより、ファイルの中を連続的に読み込むだけで、同一ユーザの属性間の対応をとることができ、RDBのJOIN相当の処理をすることなく、高速にデータを読み込むことができる。
図19は、処理S1604で呼ばれる再帰関数buildのフローチャートである。処理S1604において、再帰関数buildは属性のデータをスキーマ情報105に埋め込んだデータを引数として呼び出される。まず引数の1番上の階層のデータの方により条件分岐する(S1900)。引数が値またはnまたはクオートで囲まれたリストの場合には、引数自体をそのまま返す(S1901)。build関数は階層構造のデータに対し、再帰的に呼び出されるため、階層構造の一番下で呼び出されるときには、値またはnまたはクオートで囲まれたリストを引数として呼び出される。
条件分岐S1900において、引数のデータ型がクオートで囲まれていないリストの場合には、リストの各要素a[i]に対して、build(a[i])を再帰的に呼び出し、返された値をそれぞれb[i]とする(S1902)。続いて、処理S1202で得られたb[i]をリストの深さの位置で転置して返す(S1903)。 処理1903の詳細については、図20を用いて後述する。
条件分岐S1900において、引数のデータ型がクオートで囲まれていないリストの場合には、リストの各要素a[i]に対して、build(a[i])を再帰的に呼び出し、返された値をそれぞれb[i]とする(S1902)。続いて、処理S1202で得られたb[i]をリストの深さの位置で転置して返す(S1903)。 処理1903の詳細については、図20を用いて後述する。
条件分岐S1900において、引数のデータ型がタプルの場合には、タプルの各要素a[i]に対して、build(a[i])を再帰的に呼び出し、返された値をそれぞれb[i]とする(S1904)。続いて、処理S1904で得られたb[i]を各要素とするリストを返す(S1905)。
図18の1800のデータに対してbuild関数を適用した場合を例として、処理S1903を説明する。build関数は再帰的に呼び出されていき、
build((n “[[8.52 7.25] [0.15 0.11]]” n n))
が呼ばれるときには、1800において、(n “[[8.52 7.25] [0.15 0.11]]” n n)の外側には大括弧が2つあるため、リストの階層は深さ2である。build((n “[[8.52 7.25] [0.15 0.11]]” n n))を実行すると、まず処理S1904により、タプルの各要素に対してbuild関数が実行され、各要素はnかクオートで囲まれたリストなので、処理1901によりそのまま返され、図20上段の2000に示すように、b[0]=n、b[1]=“[[8.52 7.25] [0.15 0.11]]”、b[2]=n、b[3]=nとなる。ここで処理1903を実行すると、前述した通り、リストの階層は深さ2なので、b[i]を深さ2で転置して、図20上段の2001に示すように、
“[[(n 8.52 n n) (n 7.25 n n)]
[(n 0.15 n n) (n 0.11 n n)]]“
が得られる。ここで要素数が不足する場合にはnが自動的に追加される。深さ1で転置した場合は、
“[(n [8.52 7.52] n n)
(n [0.15 0.11] n n)]“
となる。深さ1で転置した場合と、深さ2で転置した場合を比べると、深さ2で転置した場合は、タプルがリストの深さ2の位置まで入り込んでいることがわかる。深さを指定した転置は、公知の方法により行う。例えば、数式処理ソフトMathematicaでは深さを指定して転置する組込み関数が利用できる。
build((n “[[8.52 7.25] [0.15 0.11]]” n n))
が呼ばれるときには、1800において、(n “[[8.52 7.25] [0.15 0.11]]” n n)の外側には大括弧が2つあるため、リストの階層は深さ2である。build((n “[[8.52 7.25] [0.15 0.11]]” n n))を実行すると、まず処理S1904により、タプルの各要素に対してbuild関数が実行され、各要素はnかクオートで囲まれたリストなので、処理1901によりそのまま返され、図20上段の2000に示すように、b[0]=n、b[1]=“[[8.52 7.25] [0.15 0.11]]”、b[2]=n、b[3]=nとなる。ここで処理1903を実行すると、前述した通り、リストの階層は深さ2なので、b[i]を深さ2で転置して、図20上段の2001に示すように、
“[[(n 8.52 n n) (n 7.25 n n)]
[(n 0.15 n n) (n 0.11 n n)]]“
が得られる。ここで要素数が不足する場合にはnが自動的に追加される。深さ1で転置した場合は、
“[(n [8.52 7.52] n n)
(n [0.15 0.11] n n)]“
となる。深さ1で転置した場合と、深さ2で転置した場合を比べると、深さ2で転置した場合は、タプルがリストの深さ2の位置まで入り込んでいることがわかる。深さを指定した転置は、公知の方法により行う。例えば、数式処理ソフトMathematicaでは深さを指定して転置する組込み関数が利用できる。
一方、
build((n n “[[(n 8.52 n n) (n 7.25 n n)] [(n 0.15 n n) (n 0.11 n n)]]“))
が呼ばれるときには、リストの階層は深さ1である。従って、再帰的にbuildを呼び出して得られたb[i](図20下段の2002)に対し、深さ1で転置、図20下段の2003が得られる。
build((n n “[[(n 8.52 n n) (n 7.25 n n)] [(n 0.15 n n) (n 0.11 n n)]]“))
が呼ばれるときには、リストの階層は深さ1である。従って、再帰的にbuildを呼び出して得られたb[i](図20下段の2002)に対し、深さ1で転置、図20下段の2003が得られる。
図21は、図2に示した分析処理203のフローチャートに一例である。まず属性の追加をする分析処理かどうかで条件分岐する(S2100)。属性の追加をしない分析処理の場合は、階層構造データ復元処理201により再構成された階層構造データ202に対し、データ分析ソースコード200を適用することにより、分析結果が得られ(S1601)、続いてそれを出力する(S1602)。
条件分岐S2100において、属性の追加を行う分析処理の場合は、まずスキーマ情報105をたどり、属性を追加するスキーマ上の場所を確定し、スキーマ情報105を更新する(S2103)。例えば、図14に示すデータ分析処理の場合、図22に示すように、1401に記述されている(2nd (car (4th (user))))から、スキーマ構造2200をたどり、追加する属性“ave−x”の場所を確定する。図22では、新しく追加する属性“ave−x”は点線で囲まれた四角形の場所に追加される。これに従い、スキーマ情報105を
(user
[(action date
[(time x y z)]
ave−x)])
と変更する。
(user
[(action date
[(time x y z)]
ave−x)])
と変更する。
次に、ファイル管理テーブル900に追加する属性の情報を追加する(S2104)。例えば属性ave−xを追加する場合には、属性フィールドがave−xで、ファイル名のフィールドが{file_ave−x_0.txt}であるレコードを、ファイル管理テーブル900に追加する。続いて、データ分析ソースコード200を適用することにより、分析結果が得られる(S2105)。
続いて、得られた結果をファイルに出力する(S2106)。ただしデータ分割処理103と同様、ファイルが最大サイズを超えたら、その都度、新しい書き込み用ファイルを開き、ファイル管理テーブル900にそのファイル名を追加する。スキーマ情報105を更新する方法をとることにより、全データをファイルに出力する必要はなく、新たに追加する属性のデータのみをファイルに出力するだけでよい.これによりファイル出力量を低減することができる。
また、条件分岐S2100において、属性の追加を行なわない分析処理の場合は、データ分析ソースコード200を適用することにより、分析結果を得(
S2101)、その結果を図示を省略した上述の出力部に出力(S2102)、或いは記憶部2404、あるいは2405に記憶することは言うまでもない。
S2101)、その結果を図示を省略した上述の出力部に出力(S2102)、或いは記憶部2404、あるいは2405に記憶することは言うまでもない。
[実施例3]
第3の実施例では、コンピュータが複数ある分散計算環境で、階層構造を持つデータに対して、データ分析処理を高速に行う。なお、これらのコンピュータとしては、例えば実施例1で説明した図24のコンピュータなどを用いれば良い。
第3の実施例では、コンピュータが複数ある分散計算環境で、階層構造を持つデータに対して、データ分析処理を高速に行う。なお、これらのコンピュータとしては、例えば実施例1で説明した図24のコンピュータなどを用いれば良い。
以下、第3の実施例のデータ処理装置について説明する。本実施例のデータ処理装置は、各コンピュータ上の記憶部でスキーマ情報105と属性別データ106を保持し、各コンピュータがデータ分析のスクリプトであるソースコードを受け取って、各コンピュータ上のCPUでデータ分析を実行する。
図23は、第3の実施例の構成例を示すブロック図である。2300、2301、2302は、n台のコンピュータから構成される分散計算環境を模式的に表したものであり、例えば2300は1台目のコンピュータ、2301は2台目のコンピュータ、2302はn台目のコンピュータである。これらのコンピュータとしては、実施例1同様、図24に一例を示した汎用のコンピュータが利用できることは言うまでもない。各コンピュータ上で、スキーマ情報105と属性別データ106を保持している。クライアントからデータ分析ソースコード200が各コンピュータに送られると、各コンピュータ上で図2に示した装置によりデータ分析が実行される。本実施例の構成は、公知の多くの分散計算システム上で実施可能であることは明らかである。例えばMapReduce分散計算環境で実施することが可能である。
また図1に示した装置を、分散計算環境の各コンピュータ2300、2301、2302が持ち、階層化処理101とデータ分割処理103を各コンピュータ上で実行することも可能である。この場合、事前に素データ100を分散計算環境の各コンピュータに配置しておき、各コンピュータ上で、階層化処理101とデータ分割処理103を各コンピュータ上で実行する。公知の多くの分散計算システム上で実施可能であることは明らかである。例えばMapReduce分散計算環境で実施することが可能である。
以上詳述してきた本発明の種々の実施例によれば、階層構造を持つ大量のデータに対して、ユーザが簡単に処理を実行できるユーザインターフェースを提供できる。またユーザインターフェースにおいて、階層構造を持つ大量のデータを、階層名、属性名とともに、見やすくユーザに提示するため、ユーザがデータの構造・意味・形式を容易に理解できる。またユーザインターフェースにおいて、ユーザの操作により任意の階層のデータを非表示にすることができるため、データの階層構造を容易に理解することができる。これらにより、複雑な階層構造を持ち、多くの属性を持つデータであっても、ユーザは混乱せずに分析処理を実行することができる。
また、本発明の実施例によれば、全データに対して分析処理を実行する前に、一部のデータに対してのみ分析処理のテスト実行を行い、分析命令がユーザの意図した通りに記述されていることを確認した後、全データに対して分析処理の本番実行を行うことができる。これにより、短い時間で分析命令の間違いを発見することができ、分析作業をスムーズに進めることができる。またテスト実行の結果がすぐに表示されるため、本番実行の計算が終了するのを待っている間、テスト実行の結果を用いた次の分析のやり方を考えることができる。
その一方で、本発明の実施例によれば、階層構造を持つデータに対し、処理に必要なデータのみを連続して読込むことができるため、ファイル読み込み量を低減でき、処理速度が向上する。特にフィールド数が増えても処理速度が極度に低下することがない。
またフィールドの追加処理に関しても、全フィールドを書き込む必要はなく、追加すべきフィールドのみを新しいファイルに出力することができるため、データ書き込み量を低減でき、処理速度が向上する。更に、MapReduceなどの分散計算環境にも構成を変更することなく適用できるため、分散処理によりさらに処理速度を向上させることができる。
以上、本発明の種々の実施例を説明してきたが、本発明はこれらの実施例に限定されるものでないことは言うまでもない。また、特許請求の範囲に掲げた請求項以外の発明も種々内在していることは、本明細書、添付図面に記載・開示された通りである。例えば、以下に示す発明も記載・開示されている。
データ処理装置であって、
異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる階層構造を持つ階層構造データと、前記階層構造データを変換した表示用データを記憶する記憶部と、
ユーザからの処理命令を受け付け、またユーザに前記表示用データおよび処理結果を提示するユーザインターフェース部と、
前記階層構造を持つデータを管理するデータ管理部と、
前記階層構造データを変換して、前記表示用データを生成する表示用データ生成部と、
前記ユーザインターフェース部から処理命令を受け取り、分析処理を実行する分析処理部を備え、
前記ユーザインターフェース部は、前記階層構造データを、階層名を表示する行と、属性名を表示する行を備える表形式で表示し、
前記表示用データ生成部は、階層ごとに前記階層構造データを前記ユーザインターフェース部に表示できる量だけサンプリングしてデータ形式を変換し、
前記データ管理部は、
素データから、前記素データを階層化した、異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる階層化データと、前記階層化データのデータ構造を現すスキーマ情報を出力する階層化処理部と、
前記階層化データと前記スキーマ情報から、属性別に分割された属性別データを出力するデータ分割処理部と、
データ分析処理を記述したデータ分析スクリプトと、前記スキーマ情報と、属性別に分割された前記属性別データとから元の階層構造を復元して、再構成された階層構造データを出力する階層構造データ復元処理部を備え、
前記階層化処理部が出力する前記スキーマ情報と前記データ分割処理部が出力する前記属性別データを前記記憶部に記憶し、
前記記憶部が記憶する前記属性別データは、データが格納されているファイル群と、前記ファイル群のファイル名を管理するファイル名管理テーブルから構成され、前記ファイル群は、1つのファイルにつき1つの属性のデータのみを格納し、
ことを特徴とするデータ処理装置。
異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる階層構造を持つ階層構造データと、前記階層構造データを変換した表示用データを記憶する記憶部と、
ユーザからの処理命令を受け付け、またユーザに前記表示用データおよび処理結果を提示するユーザインターフェース部と、
前記階層構造を持つデータを管理するデータ管理部と、
前記階層構造データを変換して、前記表示用データを生成する表示用データ生成部と、
前記ユーザインターフェース部から処理命令を受け取り、分析処理を実行する分析処理部を備え、
前記ユーザインターフェース部は、前記階層構造データを、階層名を表示する行と、属性名を表示する行を備える表形式で表示し、
前記表示用データ生成部は、階層ごとに前記階層構造データを前記ユーザインターフェース部に表示できる量だけサンプリングしてデータ形式を変換し、
前記データ管理部は、
素データから、前記素データを階層化した、異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる階層化データと、前記階層化データのデータ構造を現すスキーマ情報を出力する階層化処理部と、
前記階層化データと前記スキーマ情報から、属性別に分割された属性別データを出力するデータ分割処理部と、
データ分析処理を記述したデータ分析スクリプトと、前記スキーマ情報と、属性別に分割された前記属性別データとから元の階層構造を復元して、再構成された階層構造データを出力する階層構造データ復元処理部を備え、
前記階層化処理部が出力する前記スキーマ情報と前記データ分割処理部が出力する前記属性別データを前記記憶部に記憶し、
前記記憶部が記憶する前記属性別データは、データが格納されているファイル群と、前記ファイル群のファイル名を管理するファイル名管理テーブルから構成され、前記ファイル群は、1つのファイルにつき1つの属性のデータのみを格納し、
ことを特徴とするデータ処理装置。
上記独立形式に記載のデータ処理装置であって、
前記ファイル群は、それぞれの属性に関して、前記スキーマ情報のリストの深さに対応して、データがリスト構造で階層化されている、
ことを特徴とするデータ処理装置。
前記ファイル群は、それぞれの属性に関して、前記スキーマ情報のリストの深さに対応して、データがリスト構造で階層化されている、
ことを特徴とするデータ処理装置。
上記独立形式に記載のデータ処理装置であって、
前記ファイル群は、属性ごとにデータが格納されているファイルが順序付けされており、任意の二属性に関し、前記ファイルを順序付けられた順に開き、適切な区切りごとに読むことにより、前記階層構造データにおける当該二属性間の対応が復元できる、
ことを特徴とするデータ処理装置。
前記ファイル群は、属性ごとにデータが格納されているファイルが順序付けされており、任意の二属性に関し、前記ファイルを順序付けられた順に開き、適切な区切りごとに読むことにより、前記階層構造データにおける当該二属性間の対応が復元できる、
ことを特徴とするデータ処理装置。
上記独立形式に記載のデータ処理装置であって、
前記スキーマ情報は、前記階層構造データの個々の要素のデータ型を保持し、前記リストの要素のデータ型に関しては、先頭の要素のデータ型のみを保持する、
ことを特徴とするデータ処理装置。
前記スキーマ情報は、前記階層構造データの個々の要素のデータ型を保持し、前記リストの要素のデータ型に関しては、先頭の要素のデータ型のみを保持する、
ことを特徴とするデータ処理装置。
上記独立形式に記載のデータ処理装置であって、
前記ファイル群は、個々のファイルの最大サイズが設定されている、
ことを特徴とするデータ処理装置。
前記ファイル群は、個々のファイルの最大サイズが設定されている、
ことを特徴とするデータ処理装置。
上記独立形式に記載のデータ処理装置であって、
前記分析処理部は、前記スキーマ情報と前記ファイル管理テーブルを更新し、属性の追加処理を行うことができる、
ことを特徴とするデータ処理装置。
前記分析処理部は、前記スキーマ情報と前記ファイル管理テーブルを更新し、属性の追加処理を行うことができる、
ことを特徴とするデータ処理装置。
上記独立形式に記載のデータ処理装置であって、
複数のコンピュータから構成される分散計算環境における前記コンピュータ各々が、前記階層構造データ復元処理部と前記分析処理部とを備える、
ことを特徴とするデータ処理装置。
複数のコンピュータから構成される分散計算環境における前記コンピュータ各々が、前記階層構造データ復元処理部と前記分析処理部とを備える、
ことを特徴とするデータ処理装置。
上記独立形式に記載のデータ処理装置であって、
表示用データ処理部は、属性別に分割された属性別データを用いて、元の階層構造を復元することなく、属性別に分割されたデータを入力として表示用データを生成する、
ことを特徴とするデータ処理装置。
表示用データ処理部は、属性別に分割された属性別データを用いて、元の階層構造を復元することなく、属性別に分割されたデータを入力として表示用データを生成する、
ことを特徴とするデータ処理装置。
以上詳述した本発明は、データ処理装置、特に、階層化された大量の階層構造データを高速にデータ分析処理することができるデータ処理技術として有用である。
100…素データ
101…階層化処理
102…階層構造データ
103…データ分割処理
104…組
105…スキーマ情報
106…属性別データ
200…データ分析ソースコード
201…階層構造データ復元処理
202…再構成された階層構造データ
203…分析処理
2300、2301、2302、2400…コンピュータ
2401…入力デバイス
2402…ネットワークデバイス
2403…CPU
2404…主記憶部
2405…補助記憶部
2406…バス
2500…ユーザインターフェース部
2501…表示用データ
2502…表示用データ生成部
2503…抽出された一時データ
2504…分析処理部
2505…データ管理部
2506…階層構造データ
2900…抽出処理ボタン
2901…階層名を表す行
2902…折り畳みボタン
2903…属性追加ボタン
2904…属性名を表す行2905…チェックボックス
2906…集計ボタン
3000、3100…ウィンドウ画面上の表。
101…階層化処理
102…階層構造データ
103…データ分割処理
104…組
105…スキーマ情報
106…属性別データ
200…データ分析ソースコード
201…階層構造データ復元処理
202…再構成された階層構造データ
203…分析処理
2300、2301、2302、2400…コンピュータ
2401…入力デバイス
2402…ネットワークデバイス
2403…CPU
2404…主記憶部
2405…補助記憶部
2406…バス
2500…ユーザインターフェース部
2501…表示用データ
2502…表示用データ生成部
2503…抽出された一時データ
2504…分析処理部
2505…データ管理部
2506…階層構造データ
2900…抽出処理ボタン
2901…階層名を表す行
2902…折り畳みボタン
2903…属性追加ボタン
2904…属性名を表す行2905…チェックボックス
2906…集計ボタン
3000、3100…ウィンドウ画面上の表。
Claims (20)
- データ処理装置であって、
異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる階層構造を持つ階層構造データと、前記階層構造データを変換した表示用データと、ユーザからの処理命令を受け付け、ユーザに前記表示用データおよび処理結果を提示するユーザインターフェース部と、前記階層構造データを管理するデータ管理部と、前記階層構造データを変換して、前記表示用データを生成する表示用データ生成部と、前記ユーザインターフェース部から前記処理命令を受け取り、分析処理を実行する分析処理部とを備え、
前記ユーザインターフェース部は、前記階層構造データを、階層名を表示する行と前記タプルの属性名を表示する行を備える表形式で表示し、
前記表示用データ生成部は、階層ごとに前記階層構造データを前記ユーザインターフェース部に表示できる量をサンプリングして前記表示用データに変換する、
ことを特徴とするデータ処理装置。 - 請求項1記載のデータ処理装置であって、
前記ユーザインターフェース部は、前記処理命令に従い、任意の階層の前記階層構造データを非表示にする、
ことを特徴とするデータ処理装置。 - 請求項1記載のデータ処理装置であって、
前記分析処理部は、全ての前記階層構造データに対して分析処理を実行する前に、一部に対してのみ分析処理を実行し、結果を前記ユーザインターフェース部に表示する、
ことを特徴とするデータ処理装置。 - 請求項1記載のデータ処理装置であって、
前記表示用データ生成部は、前記ユーザインターフェース部が属性追加処理を受け取った場合、新規に追加された属性の列を前記表形式に挿入する、
ことを特徴とするデータ処理装置。 - 請求項1に記載のデータ処理装置であって、
前記データ管理部は、素データから、前記素データを階層化し、異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる前記階層構造データと、前記階層構造データのデータ構造を現すスキーマ情報とを出力する階層化処理部と、前記階層構造データと前記スキーマ情報から、属性別に分割された属性別データを出力するデータ分割処理部と、前記階層化処理部が出力する前記スキーマ情報と前記データ分割処理部が出力する前記属性別データを記憶する記憶部とを備え、
前記記憶部が記憶する前記属性別データは、データが格納されているファイル群と、前記ファイル群のファイル名を管理するファイル名管理テーブルから構成され、前記ファイル群は、1つのファイルにつき1つの属性のデータのみを格納する、
ことを特徴とするデータ処理装置。 - 請求項5に記載のデータ処理装置であって、
前記ファイル群は、それぞれの属性に関して、前記スキーマ情報のリストの深さに対応して、データがリスト構造で階層化されている、
ことを特徴とするデータ処理装置。 - 請求項6に記載のデータ処理装置であって、
前記ファイル群は、属性ごとにデータが格納されているファイルが順序付けされており、任意の二属性に関し、前記ファイルを順序付けられた順に開き、適切な区切りごとに読むことにより、前記階層構造データにおける当該二属性間の対応が復元できる、
ことを特徴とするデータ処理装置。 - 請求項6に記載のデータ処理装置であって、
前記スキーマ情報は、前記階層構造データの個々の要素のデータ型を保持し、前記リストの要素のデータ型に関しては、先頭の要素のデータ型のみを保持する、
ことを特徴とするデータ処理装置。 - 請求項5に記載のデータ処理装置であって、
前記ファイル群は、個々のファイルの最大サイズが設定されている、
ことを特徴とするデータ処理装置。 - 請求項5に記載のデータ処理装置であって、
複数のコンピュータから構成される分散計算環境における前記コンピュータ各々が前記階層化処理部及び前記データ分割処理部を備える、
ことを特徴とするデータ処理装置。 - データ処理装置であって、
異なるデータ型の組合せであるタプルと、同じデータ型の並びであるリストからなる階層構造を持つ階層構造データと表示用データとを記憶する記憶部と、
前記階層構造データを管理し、前記階層構造データを分析処理し、前記階層構造データから前記表示用データを生成する処理部と、
処理命令が入力され、前記表示用データを表示するユーザインターフェース部とを備え、
前記処理部は、前記階層構造データから前記表示用データを生成する際に、前記タプルの階層名を表示する行と、前記タプルの属性名を表示する行と、前記属性名に対応した前記リストの行を備える表形式とし、前記表形式で表示するリストの行の数を制御可能である、
ことを特徴とするデータ処理装置。 - 請求項11に記載のデータ処理装置であって、
前記処理部は、入力された前記処理命令に従い、前記ユーザインターフェース部の任意の階層の前記階層構造データを非表示にするよう制御する、
ことを特徴とするデータ処理装置。 - 請求項11記載のデータ処理装置であって、
前記処理部は、全ての前記階層構造データに対して分析処理を実行する前に、前記階層構造データの一部に対してのみ分析処理を実行し、分析処理結果を前記ユーザインターフェース部に表示するよう制御する、
ことを特徴とするデータ処理装置。 - 請求項11記載のデータ処理装置であって、
前記処理部は、前記ユーザインターフェース部からの属性追加処理が入力された場合、追加された前記属性の列を前記表形式に挿入するよう制御する、
ことを特徴とするデータ処理装置。 - 請求項11記載のデータ処理装置であって、
前記ユーザインターフェース部は、前記表形式の前記タプルの階層名を表示する前記行に、属性追加するボタンを有する、
ことを特徴とするデータ処理装置。 - 請求項11記載のデータ処理装置であって、
前記ユーザインターフェース部は、前記表形式の前記タプルの階層名を表示する前記行に、前記階層名に対応する前記リストの前記行を削除するボタンを有する、
ことを特徴とするデータ処理装置。 - 請求項11記載のデータ処理装置であって、
前記ユーザインターフェース部は、前記表形式の前記タプルの属性名を表示する前記行に、前記属性名に対応する前記リストの前記行中のデータを集計するボタンを有する、
ことと特徴とするデータ処理装置。 - 請求項11記載のデータ処理装置であって、
前記記憶部は、前記タプルの前記属性名に対応する属性別データ各々をファイル毎に記憶する、
ことを特徴とするデータ処理装置。 - 請求項18記載のデータ処理装置であって、
前記処理部は、前記ファイル毎に記憶された前記属性別データを用いて、前記表示用データを生成する、
ことを特徴とするデータ処理装置。 - 請求項18記載のデータ処理装置であって、
前記ユーザインターフェース部は、前記表形式の前記タプルの前記属性名を表示する前記行の各列に、前記属性名に対応する前記リストの前記行中のデータを集計するボタンを有し、
前記処理部は、前記集計ボタンが押された場合、対応する前記属性別データを用いて集計を行う、
ことを特徴とするデータ処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010050608A JP5337745B2 (ja) | 2010-03-08 | 2010-03-08 | データ処理装置 |
US12/984,073 US8959122B2 (en) | 2010-03-08 | 2011-01-04 | Data processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010050608A JP5337745B2 (ja) | 2010-03-08 | 2010-03-08 | データ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011186729A JP2011186729A (ja) | 2011-09-22 |
JP5337745B2 true JP5337745B2 (ja) | 2013-11-06 |
Family
ID=44532216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010050608A Expired - Fee Related JP5337745B2 (ja) | 2010-03-08 | 2010-03-08 | データ処理装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8959122B2 (ja) |
JP (1) | JP5337745B2 (ja) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104021225B (zh) * | 2014-06-25 | 2017-12-05 | 郑州向心力通信技术股份有限公司 | 分组式数据查找提取方法 |
US9146954B1 (en) * | 2014-10-09 | 2015-09-29 | Splunk, Inc. | Creating entity definition from a search result set |
US9130832B1 (en) * | 2014-10-09 | 2015-09-08 | Splunk, Inc. | Creating entity definition from a file |
US11755559B1 (en) | 2014-10-09 | 2023-09-12 | Splunk Inc. | Automatic entity control in a machine data driven service monitoring system |
US10235638B2 (en) | 2014-10-09 | 2019-03-19 | Splunk Inc. | Adaptive key performance indicator thresholds |
US10505825B1 (en) | 2014-10-09 | 2019-12-10 | Splunk Inc. | Automatic creation of related event groups for IT service monitoring |
US10209956B2 (en) | 2014-10-09 | 2019-02-19 | Splunk Inc. | Automatic event group actions |
US10417108B2 (en) | 2015-09-18 | 2019-09-17 | Splunk Inc. | Portable control modules in a machine data driven service monitoring system |
US9760240B2 (en) | 2014-10-09 | 2017-09-12 | Splunk Inc. | Graphical user interface for static and adaptive thresholds |
US11501238B2 (en) | 2014-10-09 | 2022-11-15 | Splunk Inc. | Per-entity breakdown of key performance indicators |
US11087263B2 (en) | 2014-10-09 | 2021-08-10 | Splunk Inc. | System monitoring with key performance indicators from shared base search of machine data |
US9210056B1 (en) | 2014-10-09 | 2015-12-08 | Splunk Inc. | Service monitoring interface |
US10193775B2 (en) | 2014-10-09 | 2019-01-29 | Splunk Inc. | Automatic event group action interface |
US10305758B1 (en) | 2014-10-09 | 2019-05-28 | Splunk Inc. | Service monitoring interface reflecting by-service mode |
US10474680B2 (en) | 2014-10-09 | 2019-11-12 | Splunk Inc. | Automatic entity definitions |
US10536353B2 (en) | 2014-10-09 | 2020-01-14 | Splunk Inc. | Control interface for dynamic substitution of service monitoring dashboard source data |
US9245057B1 (en) | 2014-10-09 | 2016-01-26 | Splunk Inc. | Presenting a graphical visualization along a time-based graph lane using key performance indicators derived from machine data |
US9146962B1 (en) | 2014-10-09 | 2015-09-29 | Splunk, Inc. | Identifying events using informational fields |
US11455590B2 (en) | 2014-10-09 | 2022-09-27 | Splunk Inc. | Service monitoring adaptation for maintenance downtime |
US10417225B2 (en) | 2015-09-18 | 2019-09-17 | Splunk Inc. | Entity detail monitoring console |
US11200130B2 (en) | 2015-09-18 | 2021-12-14 | Splunk Inc. | Automatic entity control in a machine data driven service monitoring system |
US9491059B2 (en) | 2014-10-09 | 2016-11-08 | Splunk Inc. | Topology navigator for IT services |
US11671312B2 (en) | 2014-10-09 | 2023-06-06 | Splunk Inc. | Service detail monitoring console |
US9158811B1 (en) | 2014-10-09 | 2015-10-13 | Splunk, Inc. | Incident review interface |
US9967351B2 (en) | 2015-01-31 | 2018-05-08 | Splunk Inc. | Automated service discovery in I.T. environments |
US10198155B2 (en) | 2015-01-31 | 2019-02-05 | Splunk Inc. | Interface for automated service discovery in I.T. environments |
US9971581B1 (en) * | 2015-12-28 | 2018-05-15 | Wells Fargo Bank, N.A. | Programming language conversion |
US10664183B1 (en) | 2016-07-25 | 2020-05-26 | Oracle International Corporation | Method and apparatus for storing memory attributes |
US10942960B2 (en) | 2016-09-26 | 2021-03-09 | Splunk Inc. | Automatic triage model execution in machine data driven monitoring automation apparatus with visualization |
US10942946B2 (en) | 2016-09-26 | 2021-03-09 | Splunk, Inc. | Automatic triage model execution in machine data driven monitoring automation apparatus |
WO2018132957A1 (zh) * | 2017-01-18 | 2018-07-26 | 深圳市华第时代科技有限公司 | 一种数据显示方法及装置 |
US11093518B1 (en) | 2017-09-23 | 2021-08-17 | Splunk Inc. | Information technology networked entity monitoring with dynamic metric and threshold selection |
US11106442B1 (en) | 2017-09-23 | 2021-08-31 | Splunk Inc. | Information technology networked entity monitoring with metric selection prior to deployment |
US11159397B2 (en) | 2017-09-25 | 2021-10-26 | Splunk Inc. | Lower-tier application deployment for higher-tier system data monitoring |
JP6932064B2 (ja) * | 2017-11-01 | 2021-09-08 | 株式会社エヌ・ティ・ティ・データ | データベース支援装置、データベース支援方法、及びプログラム |
CN109542878B (zh) * | 2018-11-21 | 2021-03-09 | 广州方硅信息技术有限公司 | 一种列表创建方法及装置 |
US11676072B1 (en) | 2021-01-29 | 2023-06-13 | Splunk Inc. | Interface for incorporating user feedback into training of clustering model |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6873734B1 (en) * | 1994-09-21 | 2005-03-29 | Ricoh Company Ltd | Method and apparatus for compression using reversible wavelet transforms and an embedded codestream |
JP3024619B2 (ja) | 1997-11-20 | 2000-03-21 | 三菱電機株式会社 | ファイル管理方法 |
JP2001022862A (ja) * | 1999-07-05 | 2001-01-26 | Assist System Kenkyusho:Kk | 表形式データの表示装置、及び、表示プログラムを記録した記録媒体 |
JP2001022766A (ja) | 1999-07-06 | 2001-01-26 | Degital Works Kk | 多次元データベースの高速処理方法および装置 |
JP4251726B2 (ja) * | 1999-07-08 | 2009-04-08 | 三菱電機株式会社 | ファイル管理方法 |
JP3318834B2 (ja) | 1999-07-30 | 2002-08-26 | 三菱電機株式会社 | データファイルシステム及びデータ検索方法 |
JP2001134575A (ja) * | 1999-10-29 | 2001-05-18 | Internatl Business Mach Corp <Ibm> | 頻出パターン検出方法およびシステム |
JP2001249834A (ja) * | 2000-03-07 | 2001-09-14 | Nec Corp | 情報格納システム及び情報格納方法並びにプログラムを記録した機械読み取り可能な記録媒体 |
JP2002073624A (ja) * | 2000-06-13 | 2002-03-12 | Hideo Nojiri | 地図及び施設概略情報を連携表示するためのシステム、方法、及びプログラム |
JP4081236B2 (ja) | 2000-12-26 | 2008-04-23 | ディジタル・ワークス株式会社 | データベースの処理方法 |
JP4490012B2 (ja) | 2001-11-26 | 2010-06-23 | 富士通株式会社 | ファイル検索装置、ファイル検索プログラム |
JP2004326583A (ja) * | 2003-04-25 | 2004-11-18 | Toshiba Corp | データ変換装置、データ交換方法およびプログラム |
JP4121125B2 (ja) | 2003-09-10 | 2008-07-23 | インターナショナル・ビジネス・マシーンズ・コーポレーション | グラフィックス・イメージ生成装置及びその方法、データ解析装置及びその方法並びにプログラム |
US7318063B2 (en) * | 2004-02-19 | 2008-01-08 | Microsoft Corporation | Managing XML documents containing hierarchical database information |
EP1759280A4 (en) * | 2004-05-04 | 2009-08-26 | Boston Consulting Group Inc | METHOD AND APPARATUS FOR SELECTING, ANALYZING AND VISUALIZING RELATED DATA BASE FILES AS A NETWORK |
JP2006053724A (ja) | 2004-08-11 | 2006-02-23 | Hitachi Ltd | Xmlデータ管理方法 |
US8296646B2 (en) * | 2005-02-02 | 2012-10-23 | International Business Machines Corporation | Focusing on areas of the display of tabular data through hierarchical collapsing and expanding of cell areas |
US8024353B2 (en) * | 2005-02-11 | 2011-09-20 | Fujitsu Limited | Method and system for sequentially accessing compiled schema |
JP2006236222A (ja) * | 2005-02-28 | 2006-09-07 | Konica Minolta Medical & Graphic Inc | プログラム及び表示制御装置 |
US8010909B1 (en) * | 2006-02-06 | 2011-08-30 | Microsoft Corporation | Derived hierarchy methods and system for definition, visualization and editing of data |
US8468244B2 (en) * | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
JP4990033B2 (ja) * | 2007-06-08 | 2012-08-01 | 京セラドキュメントソリューションズ株式会社 | ファイル送信装置、画像形成装置、ファイル通信プログラム、画像形成プログラム、ファイル通信方法及び画像形成方法 |
US8156149B2 (en) * | 2007-07-24 | 2012-04-10 | Microsoft Corporation | Composite nested streams |
US8825700B2 (en) * | 2008-05-26 | 2014-09-02 | Microsoft Corporation | Paging hierarchical data |
-
2010
- 2010-03-08 JP JP2010050608A patent/JP5337745B2/ja not_active Expired - Fee Related
-
2011
- 2011-01-04 US US12/984,073 patent/US8959122B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2011186729A (ja) | 2011-09-22 |
US20110219045A1 (en) | 2011-09-08 |
US8959122B2 (en) | 2015-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5337745B2 (ja) | データ処理装置 | |
US10817533B2 (en) | Graphical user interface for filtering import data in a data modeling mode of operation | |
US11188556B2 (en) | Correlated incremental loading of multiple data sets for an interactive data prep application | |
AU2017355639B2 (en) | User interface to prepare and curate data for subsequent analysis | |
JP5544118B2 (ja) | データ処理装置、及び処理方法 | |
Kranjc et al. | ClowdFlows: Online workflows for distributed big data mining | |
US9659073B2 (en) | Techniques to extract and flatten hierarchies | |
AU2021281120B2 (en) | Domain-specific language interpreter and interactive visual interface for rapid screening | |
US10089294B2 (en) | Systems and methods for tracking and modifying actions in an action history | |
Nigro et al. | Data mining with ontologies: Implementations, findings, and frameworks: Implementations, findings, and frameworks | |
Narasimha et al. | Liddm: A data mining system for linked data | |
JP2022504205A (ja) | インタラクティブなデータプレップアプリケーションのための複数のデータセットの相関増分ロード | |
US20080059437A1 (en) | Data mining system | |
US9244707B2 (en) | Transforming user interface actions to script commands | |
Almabdy | Comparative analysis of relational and graph databases for social networks | |
Jin et al. | Foofah: A programming-by-example system for synthesizing data transformation programs | |
Patil et al. | A systematic study of data wrangling | |
WO2021240370A1 (en) | Domain-specific language interpreter and interactive visual interface for rapid screening | |
Jiang | Research and practice of big data analysis process based on hadoop framework | |
Shershakov | Multi-perspective process mining with embedding configurations into DB-based event logs | |
Uduwela et al. | An Approach To Automate The Relational Database Design Process | |
Marin et al. | Big Data Analysis with Python: Combine Spark and Python to unlock the powers of parallel computing and machine learning | |
Zahoor et al. | Web application fact extractor (WAFE) | |
Kaur et al. | Data Wrangling Dynamics | |
Rodrigues et al. | Pro SQL server 2012 integration services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120802 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130628 |
|
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: 20130709 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130805 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |