JPWO2016016944A1 - データベース管理システム及びデータベース管理方法 - Google Patents
データベース管理システム及びデータベース管理方法 Download PDFInfo
- Publication number
- JPWO2016016944A1 JPWO2016016944A1 JP2016537636A JP2016537636A JPWO2016016944A1 JP WO2016016944 A1 JPWO2016016944 A1 JP WO2016016944A1 JP 2016537636 A JP2016537636 A JP 2016537636A JP 2016537636 A JP2016537636 A JP 2016537636A JP WO2016016944 A1 JPWO2016016944 A1 JP WO2016016944A1
- Authority
- JP
- Japan
- Prior art keywords
- database
- record
- time
- data
- file
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims 30
- 238000005259 measurement Methods 0.000 description 121
- 238000012545 processing Methods 0.000 description 53
- 230000006870 function Effects 0.000 description 46
- 230000008676 import Effects 0.000 description 34
- 238000000034 method Methods 0.000 description 13
- 230000015654 memory Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 7
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 101000931108 Mus musculus DNA (cytosine-5)-methyltransferase 1 Proteins 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/122—File system administration, e.g. details of archiving or snapshots using management policies
- G06F16/125—File system administration, e.g. details of archiving or snapshots using management policies characterised by the use of retention policies
-
- 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/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
データベース管理システム(DBMS)は、時刻を示す情報とレコードを対応づけて格納するデータベースから、対応付けられた情報が示す時刻から所定期間が経過したレコードを削除するようになっている。DBMSは、所定期間に関わらずにレコードをデータベースに残す期間を示す残存条件を受け付け、残存条件に基づいて、データベースのレコードを、所定期間が経過した後もデータベースに残すよう制御する。
Description
本発明は、概して、データベースを管理する技術に関する。
アクセス頻度が高いファイル又は新しいファイルをFC(Fibre Channel)ディスクに配置し、アクセス頻度が低いファイル又は古いファイルをSATA(Serial ATA)ディスクに配置する技術が知られている(特許文献1)。
時系列データの分析等において、ユーザ(例えば分析者)が指定する検索条件を満たす時系列データを検索することが行われる。検索条件としては、1つの長い期間が指定されることもあれば、離散した複数の短い期間が指定されることもある。
時系列データは、時々刻々と増加し続けるデータである。時系列データを少なくとも低速の記憶デバイスに格納する際(例えばアーカイブの際)には、一定時間毎の複数の時系列データを1つのファイルとし、ファイル単位で、時系列データを格納することが考えられる。
また、時系列データは時々刻々と増加し続けるので、時系列データの格納においては、新しい時系列データを高速の記憶デバイスに格納しつつ、高速の記憶デバイスにおいて古くなった時系列データを高速記憶デバイスから削除することが短期間で頻繁に行われることも考えられる。
このため、或る時点での検索では、適合する時系列データが高速の記憶デバイスに存在していたが故にその時系列データへのアクセスが速いが、一定時間後の同じ検索では、適合する時系列データが高速の記憶デバイスに無く低速の記憶デバイスにあるが故にその時系列データへのアクセスが遅いことがあり得る。
特許文献1の技術を単に適用しても、上記の問題を解決することは困難である。なぜなら、古いファイルが高速記憶デバイスに残らないことには変わりがなく、また、検索において実際にアクセスされる時系列データがわからない(例えば、連続した多数の時系列データがアクセスされることもあれば、大きく離散した時系列データがアクセスされることもある)ためである。
この種の問題は、検索に限らず、指定された条件を満たす時系列データにアクセスするケースについても発生し得る。また、この種の問題は、時系列データ以外のデータにアクセスするケースについても発生し得る。
データベース管理システム(DBMS)は、時刻を示す情報とレコードを対応づけて格納するデータベースから、対応付けられた情報が示す時刻から所定期間が経過したレコードを削除するようになっている。DBMSは、所定期間に関わらずにレコードをデータベースに残す期間を示す残存条件を受け付け、残存条件に基づいて、データベースのレコードを、所定期間が経過した後もデータベースに残すよう制御する。
データに高速にアクセスできる可能性が向上する。
以下、一実施例を説明する。なお、以下の説明では、「×××管理テーブル」等の表現にて管理される情報を説明することがあるが、これら情報はテーブル以外のデータ構造で管理されてもよい。そのため、データ構造に依存しないことを示すために「×××管理テーブル」を「×××管理情報」と呼ぶことができる。また、各要素の識別情報として、「ID」又は「名前」が使用されるが、他種の識別情報が使用されてよい。また、プログラムは、プロセッサによって実行されることで定められた処理をメモリ及び通信ポート(通信I/F)を用いながら行うため、プログラムを実行することにより行われる処理を、プロセッサを主語とした説明としてもよい。また、プログラムの一部または全ては、専用ハードウェアによって実現されてもよい。また、各種プログラムは、プログラム配布サーバや、計算機が読み取り可能な記憶媒体によって各計算機にインストールされてもよい。
図1は、実施例に係る計算機システムのハードウェア構成の一例を示す。
計算機システム1は、クライアント装置11と、DB(データベース)サーバ12と、ストレージ装置13と、ファイルシステム119とを有する。クライアント装置11とDBサーバ12間、及び、DBサーバ12及びファイルシステム119間は、第1の通信ネットワーク(例えば、LAN(Local Area Network)又はインターネット)で接続されてよい。DBサーバ12とストレージ装置13間は、第1の通信ネットワークより高速の第2の通信ネットワーク(例えばSAN(Storage Area Network))で接続されてよい。DBサーバ12とストレージ装置13間が、DBサーバ12とストレージ装置13の各々の内部において行われる通信のプロトコル(例えばPCIe)と同じプロトコルで通信されてよい。クライアント装置11、DBサーバ12、ストレージ装置13及びファイルシステム119のうちの少なくとも1つが、それぞれ、複数存在し得る。
ストレージ装置13は、複数(又は1つ)の記憶デバイス32と、複数の記憶デバイス32に対するデータのI/O(Input/Output)を制御するストレージコントローラ31とを有する。記憶デバイス32は、典型的には不揮発性の記憶デバイスであり、例えば、HDD(Hard Disk Drive)又はSSD(Solid State Drive)でよい。ストレージコントローラ31は、複数の記憶デバイス32を制御して、DBサーバ12に論理的な記憶領域(論理ボリューム)を提供する。ストレージコントローラ31は、複数の記憶デバイス32を制御して、RAID(Redundant Arrays of Inexpensive (or Independent) Disks)グループを構成してもよい。
DBサーバ12は、計算機(例えば1以上の物理計算機の集合)の一例であり、メモリ22と、記憶デバイス25と、FE−I/F23と、BE−I/F24と、それらに接続されたプロセッサ21とを有する。プロセッサ21は、1以上のプロセッサ(例えばマイクロプロセッサ)であり、メモリ22からコンピュータプログラムを読み出して実行することにより、1又は複数の機能を実現する。メモリ22は、1以上のメモリであり、コンピュータプログラム及びデータを記憶する。メモリは、揮発性又は不揮発性のメモリであり、一例として、DRAM(Dynamic Random Access Memory)、FeRAM(Ferroelectric RAM)及びMRAM(Magnetoresistive RAM)のうちの少なくとも1つがある。記憶デバイス25は、1以上の記憶デバイス(例えば不揮発性の記憶デバイス)であり、記憶デバイスの一例としては、HDD又はSSDでよい。FE−I/F23は、フロントエンドの装置に接続されるインターフェイスデバイスであり、DBサーバ12とクライアント装置11との間のデータ送受信を制御する。BE−I/F24は、バックエンドの装置に接続されるインターフェイスデバイスであり、DBサーバ12とストレージ装置13との間のデータ送受信を制御する。プロセッサ21、メモリ22、FE−I/F23及びBE−I/F24をまとめて「サーバコントローラ」と呼ぶこともできる。
クライアント装置11は、DBサーバ12に対して、クエリ(例えば検索クエリ)を送信し、DBサーバ12からクエリ処理結果を受信してよい。クライアント装置11は、クエリ送信元の一例である。
ファイルシステム119は、DBサーバ12から独立したファイルサーバ(ストレージ)であるが、DBサーバ12に設けられたファイルシステム(例えば、ファイルシステム空間と、ファイルシステム空間に対するファイルのI/Oを制御するファイルシステム制御)でもよい。ファイルシステム119は、1以上のファイルを格納する。
図2は、計算機システム1の機能構成の一例を示す。
まず、図2を参照して、計算機システム1の概要を説明する。
計算機システム1において、DBサーバ12は、センサ101から出力される時系列データを、キャッシュ領域102に一時的に保存し、時系列データ群単位で、時系列データを、DB117及びファイルシステム119の少なくともDB117に格納する。本実施例では、DBサーバ12は、キャッシュ領域102内の時系列データ群をDB117及びファイルシステム119の両方に格納する。DB117には、時系列データ群に対応するレコード群が追加される。ファイルシステム119には、時系列データ群を有するファイルが格納される。時系列データ群は、2以上の時系列データの集合であり、その2以上の時系列データは、例えば、周期の間に蓄積された時系列データである。従って、全ての時系列データ群が同じ数の時系列データを有するわけではない。DBサーバ12は、時系列データ群毎に時刻区間及び配置場所等を配置管理テーブル120に登録する。
DBサーバ12は、レコード時刻から所定期間(例えば2年間)を経過したそのレコードを、DB117から削除するようになっている。「レコード時刻」は、レコードに対応付けられた情報が表す時刻であり、例えば、そのレコードがDB117に格納されたときの時刻、又は、そのレコードに記録されている時刻である。レコードには、そのレコードに対応する時系列データが有する全てのデータ要素(少なくとも時刻及び計測値)が記録される。また、「所定期間」は、予め定められた期間であり、例えば、デフォルトの期間である。
また、DBサーバ12は、クエリ条件(クエリで指定された条件)を満たすデータがDB117に無ければ、ファイルシステム119から、クエリ条件を満たすデータを含んだファイルである対象ファイルに基づく表から、クエリ条件を満たすデータを取得し、取得したデータを、クエリ送信元(例えばアプリケーション107)に返す。「対象ファイルに基づく表」とは、対象ファイルが有する時系列データ群を含んだ一時的な表であってもよいし、その一時的な表を基に更新されたDB117(DB117内の表)でもよい。
時系列データの検索において、ユーザは様々な部分のデータを取得する。この時、DB117のようなデータベースよりも、ファイルシステム119の方が、アクセス性能が低い(例えばレスポンスタイムが長い)。このため、アクセス対象データ(クエリ条件を満たすデータ)は、なるべく、DB117に存在することが望ましい。一方で、上述したように、DB117から、レコードが、そのレコードのレコード時刻から所定期間経過すると削除される。
そこで、DBサーバ12は、レコードの残存条件の指定を受け付ける。残存条件は、時系列データに関する複数の属性であり少なくとも時刻を含んだ複数の属性のうちの1以上の属性と、その1以上の属性の各々についての値とにより定義されてよい。時刻以外の属性は、ユーザ所望の属性とすることができる。残存条件は、例えば、少なくとも残存期間を含んでよい。「残存期間」とは、上記所定期間(例えばデフォルトの期間)に関わらずにレコードをDB117に残す期間である。残存期間は、所定期間より長くても短くてもよい。DBサーバ12は、残存条件を、例えば、GUI(Graphical User Interface)のようなユーザインターフェイスを通じて受け付ける。計算機システム1は、受け付けた残存条件を残存条件管理テーブル128に登録する。DBサーバ12は、レコード時刻から所定期間を経過したレコードが、残存条件を満たすレコードであれば、そのレコードをDB117に残す。例えば、DBサーバ12は、レコード時刻から所定期間を経過しても、そのレコード時刻が対応付けられたレコードをDB117に残す。これにより、アクセス対象のデータ(例えばクエリで指定されている条件を満たすデータ)を含んだレコードがDB117に存在している可能性が高くなり、故に、時系列データに高速にアクセスできる可能性が向上する。
また、DBサーバ12は、所定のデータ単位(例えば、時系列データ群単位、レコード単位)でレコードのアクセス頻度を管理し、アクセス頻度が高い(例えばアクセス頻度が所定の閾値を超えた)レコードも、そのレコード時刻から所定期間を経過してもDB117に残すことができる。これにより、頻繁にアクセスされるデータを含んだレコードがDB117に存在している可能性が高くなり、故に、時系列データに高速にアクセスできる可能性が向上する。
以下、図2を参照して、本実施例を詳細に説明する。
計算機システム1が、キャッシュ領域102、インポート処理部103、ロード機能部104、DB117、ファイルシステム119、DBMS109、SQL I/F108、アプリケーションプログラム(以下、アプリケーション)107、配置管理テーブル120、残存条件管理テーブル128、SQLパーサ111、DBエンジン110、受付部126、データ制御部112、表関数I/F113及び外部データアクセス部114を有する。
本実施例では、DBサーバ12が、キャッシュ領域102、インポート処理部103、ロード機能部104、DBMS109、SQL I/F108、配置管理テーブル120、残存条件管理テーブル128、SQLパーサ111、DBエンジン110、受付部126、データ制御部112、表関数I/F113及び外部データアクセス部114を有する。しかし、それらのうち、キャッシュ領域102、インポート処理部103、ロード機能部104、SQL I/F108、配置管理テーブル120、残存条件管理テーブル128、表関数I/F113及び外部データアクセス部114のうちの少なくとも1つが、DBサーバ12以外の装置に存在してもよい。例えば、配置管理テーブル120及び残存条件管理テーブル128は、いずれも、DBMS109が参照可能であればよい。
また、図示の例によれば、DBMS109が、SQLパーサ111、DBエンジン110、受付部126、データ制御部112、表関数I/F113及び外部データアクセス部114を有する。しかし、受付部126、表関数I/F113及び外部データアクセス部114のうちの少なくとも1つが、DBMS109の外に存在してもよい。
また、インポート処理部103及びロード機能部104は、1つの要素に統合されてもよいし、より多くの要素に分割されてもよい。例えば、格納部の一例が、インポート処理部103及びロード機能部104である。また、SQLパーサ111、DBエンジン110及びデータ制御部112は、1つの要素に統合されてもよいし、より多くの要素に分割されてもよい。例えば、制御部の一例が、SQLパーサ111、DBエンジン110及びデータ制御部112である。制御部は、更に、表関数I/F113及び外部データアクセス部114を含んでもよい。
また、本実施例において、インポート処理部103、ロード機能部104、SQL I/F108、アプリケーション107、SQLパーサ111、DBエンジン110、受付部126、データ制御部112、表関数I/F113及び外部データアクセス部114のうちの少なくとも1つは、プロセッサがコンピュータプログラムを実行することにより実現される機能でよい。
キャッシュ領域102には、複数(又は1つ)のセンサ101のそれぞれから送信されたセンサデータ151が格納される。センサデータ151は、本実施例での時系列データである。センサデータ151は、複数の属性(時刻を含む)にそれぞれ対応した複数の値を含む。属性が、時刻であれば、値は、年月日時分秒のような所定の単位で表現された値(時刻としての値)である。属性が、センサID(センサの識別子)であれば、値は、数字及びアルファベット等で表現された値(センサIDとしての値)である。属性が、メトリック(有効電力、無効電力等)であれば、値は、メトリックに対応した値(計測された有効電力値、無効電力値等)である。センサ101は、時系列データソースの一例であり、電力系統に関する様々な状況を計測するための装置であってよい。センサ101は、電力系統の或る地点における或る時刻(又は時間)の有効電力値、無効電力値、電力位相及び周波数などを計測してよい。各センサ101から、センサデータ151が時々刻々と(ストリーム的に)送信され、送信されたセンサデータがキャッシュ領域102に蓄積される。キャッシュ領域102は、メモリ22上に構成されてもよいし、記憶デバイス25上に構成されてもよいし、DBサーバ12以外の装置に設けられてもよい。
インポート処理部103は、キャッシュ領域102からセンサデータ群を取得し、取得したセンサデータ群を含んだファイルを作成する。例えば、インポート処理部103は、キャッシュ領域102から5分間分のセンサデータの集合としてセンサデータ群を取得し、これらを含む1つの(つまり5分間分のセンサデータを含んだ)ファイルを作成してよい。インポート処理部103は、ファイルとして、DB117にセンサデータを登録するためのベースとなるCSVファイル105(第1種のファイルの一例)と、ファイルシステム119に登録されるセンサデータを含んだ圧縮ファイル106(第2種のファイルの一例)とを含む。圧縮ファイル106は、CSVファイル105の圧縮ファイルでもよい。圧縮方式の一例としては、gzip及びbzip2などがある。インポート処理部103は、CSVファイル105及び圧縮ファイル106を、ロード機能部104へ渡す。なお、インポート処理部103は、センサデータ群を取得した場合、そのセンサデータ群をキャッシュ領域102から削除してよい。これにより、キャッシュ領域102に、新たなセンサデータを蓄積可能な領域を増やすことができる。また、インポート処理部103は、直接的に又は間接的に(例えばデータ制御部112を介して)、配置管理テーブル120に、キャッシュ領域102内のセンサデータ群の配置場所として「キャッシュ領域」を登録してよい。配置管理テーブル120の詳細については後述する。また、以下の説明では、CSVファイル105に含まれているデータであって、1つのセンサデータに対応するデータを、「計測エントリ」と言う。CSVファイル105は、センサデータ群に対応する計測エントリ群(2以上の計測エントリの集合)を含む。
ロード機能部104は、インポート処理部103から渡されたCSVファイル105に含まれる計測エントリ群に対応した計測レコード群をDB117に登録する。「計測レコード」とは、計測エントリが含むデータを含んだレコードである。また、ロード機能部104は、インポート処理部103から渡された圧縮ファイル106をファイルシステム119に格納する。本実施例では、同一のセンサデータ群についてCSVファイル105と圧縮ファイル106の両方が作成され、CSVファイル105に対応した計測レコード群がDB117に登録され、圧縮ファイル106がファイルシステム119に格納される。しかし、格納は、その例に限られない。例えば、センサデータ群に対応したCSVファイル105のみが作成されそのCSVファイル105に対応した計測レコード群がDB117に追加され、計測レコード群がDB117から削除される場合に、削除される計測レコード群がファイル化されてファイルシステム119に移動されてもよい。言い換えれば、格納は、キャッシュ領域102から出力されたセンサデータがDB117とファイルシステム119のうちの少なくとも一方に存在するようになっていればよい。以下、センサデータ群に対応した計測レコード群がDB117に格納されることを、「センサデータ群がDB117に格納される」、のように省略し、センサデータ群に対応した圧縮ファイル106がファイルシステム119に格納されることを、「センサデータ群がファイルシステム119に格納される」、のように省略することがある。ファイルシステム119のファイル管理の一例としては、FAT32及びext3などがある。
ロード機能部104は、センサデータ群をDB117に格納した場合、配置管理テーブル120に、そのセンサデータ群の配置場所として「DB」を登録してよい。ロード機能部104は、センサデータ群をファイルシステム119に格納した場合、配置管理テーブル120に、そのセンサデータ群の配置場所として「ファイルシステム」を登録してよい。なお、同一のセンサデータ群がDB117及びファイルシステム119の両方に格納された場合には、そのセンサデータ群の配置場所として「DB」(つまり、アクセス性能の高い方の格納先)が登録されてよい。
SQL I/F108は、アプリケーション107に対してSQL(Structured Query Language)を利用するためのI/Fを提供する。例えば、アプリケーション107の検索要求は、SQL I/F108によってSQLクエリ(SQLで表現されたクエリ)に変換され、DBMS109に送信されてよい。以下、SQLクエリを、単に「クエリ」ということがある。
DBMS109は、DB117を管理する。DBMS109は、残存条件管理テーブル128、配置管理テーブル120、及び、ファイルシステム119の圧縮ファイルのうちの少なくとも1つを制御してもよい。DBMS109は、DBエンジン110と、データ制御部112と、表関数I/F113と、外部データアクセス部114とを有する。DBエンジン110は、SQLパーサ111を有してよい。
SQLパーサ111は、SQLを構文解析し、DBエンジン110にその解析したSQLクエリを実行させる。SQLパーサ111は、そのSQLクエリに表関数が含まれている場合、その表関数を、データ制御部112に実行させてよい。
DBエンジン110は、SQLパーサ111によって構文解析されたSQLクエリを実行する。例えば、DBエンジン110は、DB117のレコードの検索、追加、削除及び変更などを行う。
データ制御部112は、計測レコードのレコード時刻からの期間が所定期間(例えば2年)経過した場合にその計測レコードをDB117から削除する。時々刻々と増加する全てのセンサデータの計測レコードをDB117に格納しておくことは困難だからである。このとき、データ制御部112は、残存条件を満たす計測レコードについては、その計測レコードのレコード時刻からの期間が所定期間経過しても削除しないでよい。また、データ制御部112は、アクセス頻度の高い(例えば、単位時間当たりのアクセス回数が所定の閾値以上)計測レコードについては、所定期間経過しても削除しないでよい。頻繁にアクセスされる計測レコードは、DB117に残しておいた方が検索速度が向上するためである。
データ制御部112は、配置管理テーブル120を作成したり更新したりする。データ制御部112は、配置管理テーブル120から検索条件を満たす管理レコードを検索してよい。検索条件は、クエリ条件(クエリで指定された条件)の一例である。データ制御部112は、配置管理テーブル120に、管理レコードを追加したり、条件を満たす管理レコードを削除したり、条件を満たす管理レコードにおける指定された値を変更したりしてよい。データ制御部112は、配置管理テーブル120に対して、新たなカラムを追加したり、既存のカラムを削除したりしてよい。データ制御部112は、カラムの追加、削除又は変更の要求を、ユーザからユーザインターフェイスを通じて受け付けることができ、その要求に応答して、カラムの追加、削除又は変更を行うことができる。カラムを追加、削除又は変更するということは、DB117及び配置管理テーブル120での管理対象の計測属性を追加、削除又は変更することと同義である。
データ制御部112は、DB117とファイルシステム119とを連携させることができる。例えば、データ制御部112は、検索条件(検索クエリで指定された検索条件)を満たす計測レコードがDB117に無い場合、例えば、配置管理テーブル120を基に、外部データアクセス部114を通じて、検索条件を満たすデータを含んだ圧縮ファイルをファイルシステム119から取得する。データ制御部112は、取得された圧縮ファイルが有するセンサデータ群に対応したレコード群を格納した一時表を作成する。データ制御部112は、その一時表内のレコード群を、DB117に格納してよい。DBエンジン110は、検索条件を満たす計測レコードをDB117から検索し、該当する計測レコードが無い場合に、データ制御部112を通じて、検索条件を満たすデータを取得することができる。すなわち、データ制御部112よって、DB117及びファイルシステム119をシームレスに検索することができる。データ制御部112は、配置管理テーブル120を基に、検索条件に適合するデータの配置場所(キャッシュ領域102、DB117及びファイルシステム119の何れに存在するか)を知ることができる。データ制御部112は、DB117とファイルシステム119に加えて、キャッシュ領域102も検索範囲としてもよい。
表関数I/F113は、データ制御部112が、外部データアクセス部114を利用するためのI/Fである。データ制御部112は、表関数I/F113を介して外部データアクセス部114の外部関数を呼び出し、ファイルシステム119又はキャッシュ領域102にアクセスしてよい。
外部データアクセス部114は、ファイルシステム119に格納されている圧縮ファイル106、及びキャッシュ領域102に格納されているセンサデータ群に、アクセスする。
配置管理テーブル120は、センサデータ群毎に管理レコードを有する。管理レコードは、その管理レコードに対応したセンサデータ群がDB117、ファイルシステム119及びキャッシュ領域102の何れに配置されているかを表す。配置管理テーブル120の詳細については後述する(図6参照)。
図3は、センサデータの保存期間と配置場所との関係の一例を示す。
キャッシュ領域102には、センサ101から送信されたセンサデータが格納される。インポート処理部103が、5分間ごとに、キャッシュ領域102に蓄積されているセンサデータ群が取得される。言い換えれば、センサデータがキャッシュ領域102に残存できる期間は最大5分である。5分間分のセンサデータの集合であるセンサデータ群が、DB117及びファイルシステム119の両方に格納される。
DB117には、センサデータ群が格納されてから2年経過すると、そのセンサデータ群が削除される。ただし、そのセンサデータ群のうち、所定の条件を満たすセンサデータ(例えば、残存条件を満たすセンサデータ、又は、アクセス頻度が高いセンサデータ)が、DB117に残る。センサデータ(計測レコード)の削除は、センサデータ群単位でもよいし、センサデータ単位でもよい。
ファイルシステム119には、センサデータ群が圧縮ファイル106として格納される。ファイルシステム119には、図示のように、センサデータ群がずっと保存されていてよい。本実施例では、図示の通り、キャッシュ領域102内のセンサデータ群(5分間分のセンサデータ)がDB117及びファイルシステム119の両方に格納されるが、センサデータ群は、まず、DB117に格納され、センサデータ群が格納されてから2年経過後に、そのセンサデータ群のうち所定の条件を満たすセンサデータ以外のセンサデータが、DB117からファイルシステム119に移動されてもよい。また、上述したように、DB117とファイルシステム119の両方に(重複して)格納されているセンサデータについては、配置場所が「DB」とされる。DB117の方がファイルシステム119よりもアクセス性能が高く、故に、DB117を優先的に検索範囲とするためである。
以下の説明では、センサデータがDB117に保存される上記所定期間(2年)を、「DB保存期間」ということがある。
図4は、CSVファイル105の一例を示す。
CSVファイル105は、センサデータ群(5分間分のセンサデータ)に対応した計測エントリ群(2以上の計測エントリ)を有する。CSVファイル105において、1行が1つの計測エントリであってよい。そして、1つの計測エントリを構成する各値は、カンマなどで区切られてよい。
例えば、図4に示すCSVファイル105において、1行目の計測エントリ510の1番目の値は、計測値が計測された時刻(「計測時刻」という)を表す。2番目の値は、計測時刻において計測された有効電力値を表す。3番目の値は、計測時刻において計測された無効電力値を表す。
CSVファイル105のファイル名には、センサデータに関する属性(「計測属性」という)が含まれてよい。計測属性の一例として、センサID及びメトリックIDがあってよい。センサIDは、センサデータを計測したセンサ101を識別するための情報である。メトリックIDは、センサデータのメトリック(計測値の種類)を識別するための情報である。メトリックIDと計測値との関係は、予め設定されてよい。例えば、メトリックID「met1」は、有効電力値及び無効電力値のメトリックを表すものと予め設定されてよい。
図4に示すCSVファイル名「Item1_met1_000.csv」において、「Item1」はセンサIDを表し、「met1」はメトリックIDを表す。また、「000」はファイルの連番を表す。
図5は、DB117の構成例を示す。
DB117には、計測レコード群が2年間保存され、保存期間が2年を超えた計測エントリは順次削除される。計測レコードの構成要素として(言い換えれば、センサデータの構成要素として)、センサデータに関する複数の計測属性にそれぞれ対応した複数の値、例えば、計測時刻601と、センサID602と、有効電力値603と、無効電力値604とを有する。
計測時刻601は、計測値(有効電力値及び無効電力値)が計測された時刻を表す。計測時刻601は、センサデータがキャッシュ領域102に格納された時刻であってもよい。センサID602は、計測レコードに対応したセンサデータを出力した(センサデータ内の計測値を計測した)センサ101を識別する情報である。有効電力値603は、センサID602に対応するセンサ101が計測時刻に計測した有効電力値(kW)である。無効電力値604は、センサID602に対応するセンサ101が計測時刻に計測した無効電力値(kW)である。
なお、DB117は、ストレージ装置13に存在してもよいし、DBサーバ12内のメモリ22に存在してもよい(インメモリ)。
図6は、配置管理テーブル120の構成例を示す。
配置管理テーブル120は、センサデータ群毎に管理レコードを有し、各管理レコードが、先頭の計測時刻901と、最後尾の計測時刻902と、センサID903と、メトリックID904と、ファイル名905と、配置場所906とを有する。
先頭の計測時刻901は、対応するセンサデータ群の先頭のセンサデータが有する計測時刻を表す。最後の計測時刻902は、対応するセンサデータ群の最後尾の計測時刻を表す。センサデータ群は、2以上の時系列データの集合であるので、そのセンサデータ群に対応する圧縮ファイル(ファイル名905の示す圧縮ファイル)には、先頭の計測時刻901から最後尾の計測時刻902までのセンサデータ群が含まれる。
センサID903は、対応するセンサデータ群の各々のセンサデータを出力したセンサ101を識別する情報である。メトリックID904は、対応するセンサデータ群の各々のセンサデータ内の計測値のメトリックを識別するための情報である。ファイル名905は、対応するセンサデータ群の圧縮ファイルのファイル名を表す。
配置場所906は、対応するセンサデータ群が何れの場所に配置されているかを表す。例えば、配置場所906が「ファイルシステム」の場合、センサデータ群は、ファイルシステム119に配置されていることを表す。配置場所906が「DB」の場合、センサデータ群は、少なくともDB117に配置されていることを表す。配置場所906が「キャッシュ領域」の場合、センサデータ群(先頭の計測時刻901が表す時刻のセンサデータ及びその時刻以降のセンサデータ)がキャッシュ領域102に配置されていることを表し、且つ、そのセンサデータ群が未だインポート処理部103によってキャッシュ領域102から取得されていないことも表す。配置場所906を基に、DB117及びファイルシステム119だけでなくキャッシュ領域102からもセンサデータの取得が可能となる。
図3のように、センサデータ群が2年間DB117に保存される場合、最後尾の計測時刻902から2年以下のセンサデータ群に対応した管理レコードの配置場所906は「DB」となり、最後尾の計測時刻902から2年を経過したセンサデータ群に対応した管理レコードの配置場所906は「ファイルシステム」となる。最後尾の計測時刻902から2年を経過したセンサデータ群は、DB117から削除され、ファイルシステム119にのみ存在するためである。
圧縮ファイルに対応したセンサデータ群のうち、センサデータ群の内の一部が、アクセス頻度の高い場合、データ制御部112は、圧縮ファイルを、アクセス頻度の高い一部のセンサデータ群(1以上のセンサデータ)に対応した第1圧縮ファイル(第1ファイルの一例)と、それ以外のセンサデータ群(1以上のセンサデータ)に対応した1以上の第2圧縮ファイル(第2ファイルの一例)とに分割して、第1圧縮ファイル及び1以上の第2圧縮ファイルのそれぞれについて管理レコードを生成してよい。例えば、時刻区間「00:05:00.000〜00:09:59.999」のセンサデータ群に対応した圧縮ファイルが、3つの圧縮ファイルに分割されてよい(3つの圧縮ファイルにそれぞれ対応した管理レコード910b〜910dを参照)。具体的には、例えば、そのセンサデータ群のうち、時刻区間「00:06:00.000〜00:06:59.999」のセンサデータ群のアクセス頻度が高かった場合、データ制御部112は、1つの圧縮ファイルを、時刻区間「00:06:00.000〜00:06:59.999」のセンサデータ群に対応した第1圧縮ファイルと、それ以外のセンサデータ群に対応した2つの第2圧縮ファイル(「00:05:00.000〜00:05:59.999」のセンサデータ群に対応した圧縮ファイルと、「00:07:00.000〜00:09:59.999」のセンサデータ群に対応した圧縮ファイル)とに分割する。そして、データ制御部112は、第1圧縮ファイルに対応したセンサデータ群を、DB117からの削除対象から除外する。これにより、アクセス対象のデータがDB117に存在する可能性が高くなるだけでなく、5分間分のセンサデータ群の全てをDB117に残す場合と比較して、DB117を効率的に使用することができる。データ制御部112は、ファイルシステム119の圧縮ファイルに含まれる或る時刻区間のセンサデータ群のアクセス頻度が高い場合、その時刻区間のセンサデータ群に対応した計測レコード群をDB117に追加してもよい。この場合、データ制御部112は、配置管理テーブル120において、DB117に追加したセンサデータ群(計測レコード群)の配置場所を「DB」に更新する。
なお、所定のデータ単位(例えば、センサデータ群単位、計測レコード単位)で管理されるアクセス頻度は、配置管理テーブル120で管理されてもよいし、配置管理テーブル120とは別の管理テーブル等でデータ制御部112により管理されてもよい。
図14は、受付部126が提供する残存条件指定GUIの一例を示す。
残存条件指定GUI3000は、ユーザインターフェイスの一例であり、受付部126により、DBサーバ12に接続されている表示コンソールに提供される。表示コンソールは、表示デバイス(図示せず)でもよいし、表示デバイスを有する外部の装置(例えば、表示デバイスを有するクライアント装置11、又は、表示デバイスを有する管理計算機(図示せず))でもよい。ユーザは、残存条件指定GUI3000に、残存条件を入力できる。残存条件は、残存期間を含む。本実施例で言うユーザは、クライアント装置11等で実行されるアプリケーション107のユーザでもよいし、DBMS109のユーザ(例えば管理者)でもよい。
残存条件指定GUI3000は、センサデータに関する複数の計測属性の各々について、選択するか否かを指定するための選択ツール(例えばチェックボックス)3001と、属性名称3002と、計測属性についての値の入力ツール3003を有する。入力ツールは、図示のように、テキストの入力欄でもよいし、プルダウンメニューのようなボックスであってもよい。ユーザは、所望の計測属性に対応したチェックボックス3001にチェックマークを記入し(つまり計測属性を選択し)、選択した計測属性についての値を入力ツール3003に入力する。また、残存条件指定GUI3000は、残存期間の入力ツール3005を有する。「残存期間」とは、DB117にセンサデータが残る期間であり、固定値としてのDB保存期間と異なり、可変値である。ユーザは、所望の残存条件を満たすセンサデータの残存期間を入力ツール3005に入力することができる。残存期間の入力は必須でなくてよい。残存期間が入力されなかった場合は、残存期間は、デフォルトの残存期間(例えば、DB保存期間(2年)と所定の期間の合計)になってよい。残存期間の入力は、DB保存期間との差分(例えば、プラス1年、マイナス3か月)の入力でもよい。つまり、残存期間は、DB保存期間との差分で定義されてもよい。
複数の計測属性の各々についてのGUI部品3001、3003及び3005を使用して入力された情報、すなわち、1以上の属性/値セット(選択された計測属性とその計測属性についての値とのセット)と残存期間とが残存条件である。なお、残存条件は、1以上の属性/値セットと残存期間のうちの一方のみ(例えば残存期間のみ)であってもよい。
図15は、残存条件管理テーブル128の構成例を示す。
残存条件管理テーブル128は、入力された残存条件毎に、残存期間4001及び属性条件4002を有する。残存期間4001及び属性条件4002は、受付部126により登録された情報である。
残存期間4001は、図14のUI300に入力された残存期間(又はユーザにより予め指定されたデフォルトの残存期間)である。属性条件4002は、図14のUIに入力された1以上の属性/値セットである。なお、図14に示すように、計測属性の名称3002として、メトリック名/センサ名が表示されるが、メトリック名/センサ名にメトリックID/センサIDがそれぞれ関連付けられていて、属性条件4002には、メトリック名/センサ名に代えて又は加えてメトリックID/センサIDが含まれてよい。
また、図15に示すように、残存期間としてDB保存期間よりも短い期間をユーザは入力することができる。これにより、残存条件を満たすセンサデータに対応したレコードを、DB保存期間が経過するよりも早い段階でDB117から削除することができる。
以上のように、残存条件に関連付けられる残存期間を指定できるので、DB117に残すレコードをよりきめ細かく指定できる。
図7は、インポート処理部103の処理例のフローチャートを示す。
インポート処理部103は、タイマーをリセットする(S301)。インポート処理部103は、タイマーをリセットしてからの経過時間が5分以上か否かを判定する(S302)。
経過時間が5分未満の場合(S302:NO)、インポート処理部103は、現時点でキャッシュ領域102に存在するセンサデータ群に関する計測属性値(計測属性についての値)を取得する(S310)。
インポート処理部103は、その取得したセンサデータの計測属性値をデータ制御部112へ渡す(S311)。例えば、インポート処理部103は、図6の配置管理テーブル120の管理レコード910fに示すように、時刻区間「00:15:00.000〜現時点」、センサID「Item1」及びメトリックID「met1」をデータ制御部112に渡し、データ制御部112が、時刻区間「00:15:00.000〜(Null)」、センサID「Item1」、メトリックID「met1」、ファイル名(Null)及び配置場所「キャッシュ領域」を管理レコード910fに登録する。データ制御部112は、センサデータ群の計測属性値の送付元がインポート処理部103であれば、そのセンサデータ群の配置場所がキャッシュ領域102であると判断できる。インポート処理部103が、配置場所として「キャッシュ領域」をデータ制御部112へ通知してもよい。
経過時間が5分以上の場合(S302:YES)、インポート処理部103は、キャッシュ領域102から、センサデータ群(5分間分のセンサデータ)を取得する(S303)。インポート処理部103は、そのセンサデータ群を表すCSVファイルを生成する(S304)。インポート処理部103は、その生成したCSVファイルから圧縮ファイル(例えば、gzipファイル)を生成する(S305)。インポート処理部103は、ロード機能部104に、生成したCSVファイル及び圧縮ファイルを渡す(S306)。インポート処理部103は、キャッシュ領域102から、S303で取得したセンサデータ群を削除する。
以上の処理により、時刻の経過と共にキャッシュ領域102に蓄積されるセンサデータが、所定の周期で、センサデータ群単位で、ロード機能部104に送られ、且つ、キャッシュ領域102から削除される。
図8は、ロード機能部104の処理例のフローチャートを示す。
ロード機能部104は、インポート処理部103からのファイルがCSVファイルと圧縮ファイルの何れであるかを判定する(S402)。
ファイルがCSVファイルの場合(S402:CSVファイル)、ロード機能部104は、CSVファイルに基づきセンサデータ群に対応する計測レコード群をDB117へ格納する(S403)。ロード機能部104は、DB117に格納した計測レコード群(センサデータ群)の計測属性値を取得する(S404)。ロード機能部104は、データ制御部112に、その取得した計測属性値、配置場所「DB」、及び、対応する圧縮ファイルのファイル名をデータ制御部112に渡す(S405)。データ制御部112により、DB117に格納されたセンサデータ群についての管理レコードが配置管理テーブル120に追加される(例えば図6の管理レコード910e)。なお、データ制御部112は、例えば圧縮ファイルのファイル名と同じファイル名が管理テーブルに登録されていて、配置場所が「ファイルシステム」であれば、その配置場所を「DB」に更新する。
ファイルが圧縮ファイルの場合(S402:圧縮ファイル)、ロード機能部104は、圧縮ファイルをファイルシステム119へ格納する(S406)。ロード機能部104は、その圧縮ファイルに含まれるセンサデータ群の計測属性値を取得する(S407)。ロード機能部104は、データ制御部112に、その取得した計測属性値、配置場所「ファイルシステム」、及び、格納した圧縮ファイルのファイル名をデータ制御部112に渡す(S408)。データ制御部112により、ファイルシステム119に格納されたセンサデータ群についての管理レコードが配置管理テーブル120に追加される。しかし、ここで、例えば圧縮ファイルのファイル名と同じファイル名が管理テーブルに登録されていれば、配置場所が「DB」であれば、管理テーブルの追加はスキップされる。
以上の処理により、センサデータ群が、DB117及びファイルシステム119に格納される。なお、図8において、例えばS407及びS408は無くてもよい。S404及びS405により、キャッシュ領域102からのセンサデータ群に対応し配置管理テーブル120に追加される管理レコードと計測属性値が重複するからである。
図9は、SQLパーサ111の処理例のフローチャートを示す。
SQLパーサ111は、アプリケーション107からSQL I/F108を通じてSQLクエリを受信し(S701)、そのクエリに、外部へのアクセスを必要とする表関数が含まれているか否かを判定する(S702)。表関数が含まれていない場合(S701:NO)、SQLパーサ111は、そのSQLクエリをDBエンジン110に渡し(S703)、表関数が含まれている場合(S701:YES)、そのSQLクエリをデータ制御部112に渡す(S704)。SQLパーサ111は、SQLクエリの実行結果をDBエンジン110又はデータ制御部112から受けて、実行結果をアプリケーション107に返す(S705)。
以上の処理により、表関数を含まないSQLクエリはDBエンジン110で処理され、表関数を含むSQLクエリはデータ制御部112で処理される。
なお、S702では、SQLクエリが表関数を含むか否かに代えて又は加えて、配置管理テーブル120を基に、クエリ条件(SQLクエリで指定されている条件)を満たすデータの配置場所が「DB」であるか否かが判断されてもよい。配置場所が「DB」の場合、S703が行われ、配置場所が「ファイルシステム」又は「キャッシュ領域」の場合、S704が行われる。
また、S702無しに、S703が行われてよい。すなわち、SQLクエリが必ずDBエンジン110に渡されてもよい。DBエンジン110からエラーが戻って来た場合(例えば、SQLクエリの実行結果がエラーを表す場合)、S704が行われてよい。
図10は、DBエンジン110の処理例のフローチャートを示す。
DBエンジン110は、SQLパーサ111又はデータ制御部112から、SQLクエリを受信し(S1101)、DB117に対して、受信したSQLクエリを実行する(S1102)。例えば、クエリが検索クエリの場合、DBエンジン110は、DB117から、そのクエリで指定されている検索条件を満たすデータを抽出する。DBエンジン110は、SQLクエリの実行結果(例えば抽出されたデータを含む)をDBエンジン110の呼び出し元(本実施例ではSQLパーサ111又はデータ制御部112)に返す(S1103)。
以上の処理により、DBエンジン110は、SQLクエリの実行結果(検索結果など)を、DBエンジン110の呼び出し元に返すことができる。
図11は、データ制御部112の処理例のフローチャートを示す。
データ制御部112が、情報ユニットを受ける(S801)。情報ユニットは、インポート処理部103又はロード機能部104からの計測属性値等であることもあれば、SQLパーサ111からのクエリであることもある。
情報ユニットがクエリではない場合(計測属性値等の場合)(S802:NO)、データ制御部112は、受けた計測属性等を配置管理テーブル120の管理レコードに格納する(S860)。ここで、データ制御部112は、配置管理テーブル120に、受信した計測属性値等と重複する管理レコードが存在し、受信した計測属性値等における配置場所が「DB」であり、且つ、その重複する管理レコードにおける配置場所906が「ファイルシステム」の場合、その配置場所906を「ファイルシステム」から「DB」に更新してよい。
以上の処理により、データ制御部112は、インポート処理部103又はロード機能部104からの計測属性値等を配置管理テーブル120に格納する。
情報ユニットがクエリの場合(S802:NO)について説明する。データ制御部112は、クエリが検索クエリであるか否かを判定する(S803)。
クエリが検索クエリ以外の場合(例えば、レコードの更新又は削除等の場合)(S803:NO)、データ制御部112は、そのクエリに基づき処理を実行する(S860)。例えば、クエリが、そのクエリで指定された条件を満たすデータを含んだレコードをDB117から削除するものである場合、データ制御部112は、そのレコードについて、配置場所906を「DB」から「ファイルシステム」に変更し、そのレコードをDB117から削除する。また、例えば、クエリがDB117に新たな計測属性を追加するものであった場合、データ制御部112は、DB117にその新たな計測属性に係るカラムを追加し、配置管理テーブル120にも、その新たな計測属性に係るカラムを追加する。
クエリが検索クエリの場合(S803:YES)、データ制御部112は、配置管理テーブル120から、検索条件の1つとして指定されている時刻を含んだ時刻区間に対応する管理レコードを特定し、その管理レコードにおける配置場所906を参照する(S804)。そして、データ制御部112は、その配置場所906が「DB」であるか否かを判定する(S805)。
配置場所906が「DB」である場合(S805:YES)、データ制御部112は、DBエンジン110にSQLクエリを渡し、実行結果をDBエンジンから受けて、その実行結果をSQLパーサ111に返す(S820)。
配置場所906が「DB」でない場合(S805:NO)、データ制御部112は、S806を行う。例えば、配置場所906が「ファイルシステム」の場合、データ制御部112は、検索条件を満たすセンサデータを含んだセンサデータ群に対応する管理レコードのファイル名905から、圧縮ファイルのファイル名を取得し、取得したファイル名を外部データアクセス部114に渡す。また、例えば、配置場所906が「キャッシュ領域」の場合、データ制御部112は、検索条件を外部データアクセス部114に渡す。データ制御部112は、実行結果(例えば、渡したファイル名又は検索条件に対応するセンサデータを含む)を、外部データアクセス部114から受け、その実行結果を、SQLパーサ111に返す。データ制御部112は、実行結果中のセンサデータ(検索結果としてのセンサデータ)をDB117へ登録する必要があるか否かを判定する(S807)。例えば、そのセンサデータを含んだファイルがファイルシステム119から所定頻度以上取得された場合、データ制御部112は、そのファイルが表すセンサデータ群のうちの少なくとも検索条件を満たすセンサデータをDB117へ登録する必要があると判定してもよい。
S807の判定結果が肯定の場合(S807:YES)、データ制御部112は、一時表内の少なくとも検索条件を満たすセンサデータをDB117に格納する(S808)。そして、データ制御部112は、DB117に登録したセンサデータについて、配置場所906を、「ファイルシステム」から「DB」に変更する(S809)。
以上の処理により、データ制御部112が、データの配置場所に応じて外部データアクセス部114及びDB110を使い分けることができ、このため、SQLパーサ111及びDBエンジン110が、データの配置場所を意識しなくてよい。
図12は、外部データアクセス部114の処理例のフローチャートを示す。
外部データアクセス部114は、取得対象の情報を受信する(S1001)。取得対象の情報は、圧縮ファイルのファイル名、又は、センサデータの検索条件である。外部データアクセス部114は、ファイル名に対応した圧縮ファイルをファイルシステム119から取得する、又は、検索条件を満たすセンサデータをキャッシュ領域102から取得する(S1002)。外部データアクセス部114は、その取得した圧縮ファイルが有するセンサデータ群、又は、取得したセンサデータを、一時表に格納する(S1003)。一時表は、予めデータ制御部112等により生成されてもよいし、S1003において外部データアクセス部114により生成されてもよい。外部データアクセス部114は、データを一時表に格納したことを、外部データアクセス部114の呼び出し元に返すことができる。
以上の処理により、ファイルシステム119又はキャッシュ領域102からファイル又はセンサデータが取得し、そのファイル内のセンサデータ又は取得されたセンサデータを一時表に格納することができる。一時表内のセンサデータは、図11のS808でDB117に格納される。
図16は、データ制御部112の別の処理例のフローチャートを示す。
この処理例は、DB117からのレコードの削除制御であり、例えば、個々の計測レコードについて繰り返し(例えば定期的に)行われる。以下、1つの計測レコードを例に取り、図16に示す処理を説明する。
データ制御部112は、計測レコードのレコード時刻からの経過期間がDB保存期間に達しているか否かを判定する(S1601)。
S1601の判定結果が肯定の場合(S1601:YES)、データ制御部112は、計測レコードが所定条件を満たすか否かを判定する(S1602)。「所定条件」とは、経過期間がDB保存期間に達していてもDB117に計測レコードが残るための条件であり、例えば、残存条件、又は、アクセス頻度が所定閾値以上、である。
S1602の判定結果が否定の場合(S1602:NO)、DB保存期間の満了に伴い計測レコードが削除される。すなわち、データ制御部112は、計測レコードをDB117から削除し、その計測レコードについて、配置場所906を「DB」から「ファイルシステム」に変更する(S1605)。
S1602の判定結果が肯定の場合(S1602:YES)、データ制御部112は、計測レコードのレコード時刻からの経過期間が残存期間に達しているか否かを判定する(S1603)。ここでいう残存期間は、残存条件が示す残存期間(例えば、計測レコードが満たしている属性条件に対応した残存期間)である。
S1603の判定結果が否定の場合(S1603:NO)、データ制御部112は、計測レコードをDB117に残す(つまり、計測レコードをDB117から削除しない)。
S1603の判定結果が肯定の場合(S1603:YES)、残存期間の満了に伴い、計測レコードが削除される。すなわち、S1605が行われる。
S1601の判定結果が否定の場合(S1601:NO)、データ制御部112は、計測レコードがいずれかの残存条件を満たしており、且つ、その残存条件に対応した残存期間に、経過期間が達しているか否かを判定する(S1604)。DB保存期間よりも短い期間が残存期間として指定されていることがあり得るためである。
S1604の判定結果が肯定の場合(S1604:YES)、残存期間の満了に伴い、計測レコードが削除される。すなわち、S1605が行われる。
S1604の判定結果が否定の場合(S1604:NO)、DB保存期間(及び削除期間)が満了していないため、データ制御部112は、計測レコードをDB117に残す(つまり、計測レコードをDB117から削除しない)。
以上の処理により、計測レコードを削除するか残すかが制御される。
図14は、センサデータ監視GUIの一例を示す。
センサデータ監視GUI2000は、センサデータ監視アプリケーションにより表示されるGUIであってセンサデータの監視(例えば分析等)のためのGUIである。センサデータ監視アプリケーションは、上述のアプリケーション107の一例である。GUI2000は、第1選択領域2001と、第2選択領域2002と、計測値表示領域2003とを有する。
第1選択領域2001には、例えば、計測属性のリストが表示される。第2選択領域2002には、第1選択領域2001から選択された計測属性に適合するセンサデータ群が表示される。計測値表示領域2003には、第2選択領域2002から選択されたセンサデータ群に基づく計測値が表示される。例えば、図14に示すように、第1選択領域2001からセンサID「Item2」が選択されると、第2選択領域2002に、センサID「Item2」に対応するセンサデータ群が表示される。そして、第2選択領域2002から、メトリックID「1」に対応するセンサデータが選択されると、計測値表示領域2003に、センサID「Item2」及びメトリックID「1」に対応する計測値が時系列で表示(例えば折れ線グラフで表示)される。このような操作において、適宜、センサデータ監視アプリケーションが、検索要求等の要求を送信し、その要求が、SQLクエリとなってSQLパーサ111に入力される。
上述した実施例は、本発明の説明のための例示であり、本発明の範囲をその実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
例えば、時系列データは、センサデータに限らず、センサデータ以外の種類の時系列データを採用することができる。また、時系列データに代えて、他種のデータについても、本発明が適用されてもよい。
また、例えば、残存期間は、ゼロを示してもよい。つまり、残存条件は、DB117に保存しないレコードの残存条件にもなり得る。この場合、制御部(例えばデータ制御部112)は、残存条件に基づいて、レコード(例えば、残存期間がゼロの属性条件に該当するレコード)をDB117から削除する、又は、レコード(例えば、残存期間がゼロの属性条件に該当するレコード)をDB117に格納しない。後者の場合、例えば、制御部(例えばデータ制御部112)は、CSVファイル105のうち、残存期間がゼロの属性条件に該当する計測エントリについては、その計測エントリ中のデータを含んだ計測レコードをDB117に格納しない(例えばそのようなレコードを生成しない)。
また、例えば、残存条件(例えば残存期間)は、キャッシュ領域にデータが保存される期間を含んでよい。つまり、受付部126は、残存条件(例えば残存期間)として、DB117についての残存条件に加えて、キャッシュ領域102についての残存条件を受け付け、DB117についての残存条件に加えて、キャッシュ領域102についての残存条件も、残存条件管理テーブル128に登録してよい。制御部(例えばデータ制御部112)は、キャッシュ領域102についての残存条件(残存条件管理テーブル128に登録されている残存条件)に基づいて、キャッシュ領域102へ保存されたデータを計測レコードとしてDB117に格納し、DB117に格納されたデータをキャッシュ領域102から削除してよい。つまり、この変形例によれば、5分毎にセンサデータ群が生成されキャッシュ領域102から削除されることに代えて又は加えて、残存条件に基づき5分単位とは異なる時点にセンサデータをDB117に格納しキャッシュ領域102から削除することができる。なお、制御部(例えばデータ制御部112)は、クエリ(アプリケーション107からのアクセス要求の一例)を受け付けたとき、クエリ条件を満たすセンサデータ(アクセス対象レコードに対応するデータの一例)がキャッシュ領域102にある場合、キャッシュ領域102に格納されているアクセス対象データ(クエリ条件を満たすセンサデータ)をアクセスするようアプリケーション107へ指示する、又は、クエリ条件を満たすセンサデータをキャッシュ領域102から取得してアプリケーション107に提供してもよい。前者の場合、制御部は、例えば、アクセス対象データの位置のアドレスをアプリケーション107に提供し、アプリケーション107が、そのアドレスが示す位置にあるアクセス対象データ(つまりキャッシュ領域102内のデータ)をDBMS109非経由(又は経由)で取得してよい。
また、例えば、DBMS109が、格納部(例えばインポート処理部103及びロード機能部104)を有してもよい。
1:計算機システム 12: DBサーバ 109:DBMS 117:DB 119:ファイルシステム 120:配置管理テーブル 128:残存条件管理テーブル
Claims (14)
- 時刻を示す情報とレコードを対応づけて格納するデータベースから、対応付けられた情報が示す時刻から所定期間が経過したレコードを削除するデータベース管理システムにおいて、
前記所定期間に関わらずにレコードを前記データベースに残す期間を示す残存条件を受け付ける受付部と、
受付部が受け付けた残存条件に基づいて、前記データベースのレコードを、前記所定期間が経過した後も前記データベースに残すよう制御する制御部と
を備えることを特徴とするデータベース管理システム。 - 請求項1に記載のデータベース管理システムにおいて、
前記制御部は、実行されたアプリケーションプログラムがアクセスするレコードであるアクセス対象レコードが前記データベースになかったとき、前記データベースに格納されるレコードのうち少なくとも削除されるレコードの内容を含んだファイルが格納されるファイルシステムから、前記アクセス対象レコードに対応するファイルを特定し、前記特定したファイルを基に前記アクセス対象レコードを前記データベースに追加する
ことを特徴とするデータベース管理システム。 - 請求項2に記載のデータベース管理システムにおいて、
前記受付部は、前記アプリケーションプログラムがアクセスしたレコードの残存条件を受け付け、
前記制御部は、前記受け付けた残存条件で指定された期間に基づいて、前記ファイルシステムから前記データベースへ追加されたレコードの削除を行う
ことを特徴とするデータベース管理システム。 - 請求項2に記載のデータベース管理システムにおいて、
前記受付部は、前記データベースに保存しないレコードの残存条件を受け付け、
前記制御部は、前記受け付けた残存条件に基づいて、前記レコードを前記データベースから削除する又は前記レコードを前記データベースに格納しない
ことを特徴とするデータベース管理システム。 - 請求項3に記載のデータベース管理システムにおいて、
前記残存条件で指定された期間は、受け取ったデータが保存されるキャッシュ領域に保存される期間も含み、
前記制御部は、前記残存条件で指定された期間に基づいて、受け取ったデータが保存されるキャッシュ領域へ保存されたデータを、前記データベースのレコードとして前記データベースに保存し、前記データベースに保存されたデータを前記キャッシュ領域から削除する
ことを特徴とするデータベース管理システム。 - 請求項5に記載のデータベース管理システムにおいて、
前記制御部は、前記アプリケーションプログラムから前記アクセス対象レコードのアクセス要求を受け付けたとき、前記アクセス対象レコードに対応するデータが前記キャッシュ領域にある場合、前記キャッシュ領域に格納されたデータをアクセスするよう前記アプリケーションプログラムへ指示する、又は、前記アクセス対象レコードに対応するデータを前記キャッシュ領域から取得して前記アプリケーションプログラムに提供する
ことを特徴とするデータベース管理システム。 - 請求項1に記載のデータベース管理システムにおいて、
前記データベースに格納される複数のレコードは、複数の時系列データに対応した複数のレコードであり、
前記制御部は、クエリで指定された条件であるクエリ条件を満たすデータが前記データベースに無ければ、2以上の時系列データに対応した1以上のファイルを記憶するファイルシステムから取得されたファイルであり前記クエリ条件を満たすデータを含んだファイルである対象ファイルに基づく表から、前記クエリ条件を満たすデータを取得し、
前記残存条件は、時系列データに関する複数の属性であり少なくとも時刻を含んだ複数の属性のうちの1以上の属性と前記1以上の属性の各々についての値である、
ことを特徴とするデータベース管理システム。 - 請求項7に記載のデータベース管理システムにおいて、
前記制御部は、配置管理情報と前記残存条件に基づいて、レコードの時刻から前記所定期間を経過したそのレコードを特定し、特定したレコードを削除するか残すかを制御し、
前記配置管理情報は、時系列データ群の時刻区間と、その時系列データ群に関する1以上の属性の各々についての値と、その時系列データ群が配置されている配置場所とを、時系列データ群毎に保持する情報である
ことを特徴とするデータベース管理システム。 - 請求項8に記載のデータベース管理システムにおいて、
前記制御部は、
前記対象ファイルを、前記クエリ条件を満たすデータを含んだ1以上の時系列データの第1ファイルと、その1以上の時系列データ以外の時系列データのファイルである1以上の第2ファイルとに分割し、
前記対象ファイルが表す2以上の時系列データのうちの、前記第1ファイルが表す前記1以上の時系列データ、に対応した1以上のレコードを前記データベースに追加し、
前記配置管理情報に、前記第1ファイルとしての時系列データ群の配置場所が前記データベースであることを登録する
ことを特徴とするデータベース管理システム。 - 請求項8に記載のデータベース管理システムにおいて、
1以上の時系列データソースからの時系列データがキャッシュ領域に蓄積され前記キャッシュ領域に蓄積された2以上の時系列データに対応した2以上のレコードが格納部により前記データベースに格納されるようになっており、
前記制御部は、
前記キャッシュ領域に蓄積されているが前記データベースにも前記ファイルシステムにも格納されていない2以上の時系列データの集合である時系列データ群について、配置場所が前記キャッシュ領域であることを前記格納部から受け、
前記配置管理情報に、その時系列データ群の配置場所が前記キャッシュ領域であることを登録する
ことを特徴とするデータベース管理システム。 - 請求項1に記載のデータベース管理システムにおいて、
前記制御部は、所定頻度以上の頻度でアクセスされたレコードについては、そのレコードに対応した時刻から前記所定期間を経過しても、前記データベースに残す
ことを特徴とするデータベース管理システム。 - 請求項1に記載のデータベース管理システムにおいて、
前記受付部は、前記残存条件を、ユーザインターフェイスを通じて受け付ける
ことを特徴とするデータベース管理システム。 - 時刻を示す情報とレコードを対応づけて格納するデータベースから、対応付けられた情報が示す時刻から所定期間が経過したレコードを削除する計算機であって、
前記データベースを有するストレージ装置に接続されるインターフェイスデバイスと、
前記インターフェイスデバイスに接続されたプロセッサと
を備え、
前記プロセッサは、
前記所定期間に関わらずにレコードを前記データベースに残す期間を示す残存条件を受け付け、
前記残存条件に基づいて、前記データベースのレコードを、前記所定期間が経過した後も前記データベースに残すよう制御する
ことを特徴とする計算機。 - 時刻を示す情報とレコードを対応づけて格納するデータベースから、対応付けられた情報が示す時刻から所定期間が経過したレコードを削除するデータベース管理方法において、
前記所定期間に関わらずにレコードを前記データベースに残す期間を示す残存条件を受け付け、
前記残存条件に基づいて、前記データベースのレコードを、前記所定期間が経過した後も前記データベースに残すよう制御する
ことを特徴とするデータベース管理方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/069928 WO2016016944A1 (ja) | 2014-07-29 | 2014-07-29 | データベース管理システム及びデータベース管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2016016944A1 true JPWO2016016944A1 (ja) | 2017-04-27 |
Family
ID=55216890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016537636A Pending JPWO2016016944A1 (ja) | 2014-07-29 | 2014-07-29 | データベース管理システム及びデータベース管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170046353A1 (ja) |
JP (1) | JPWO2016016944A1 (ja) |
WO (1) | WO2016016944A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016046929A1 (ja) * | 2014-09-25 | 2016-03-31 | 株式会社日立製作所 | データ集積装置、及び、データ集積方法 |
JP6633937B2 (ja) * | 2016-02-19 | 2020-01-22 | アズビル株式会社 | ヒストリデータ記録装置および方法 |
WO2018100734A1 (ja) * | 2016-12-02 | 2018-06-07 | 株式会社日立製作所 | データ処理システム |
US10628244B1 (en) | 2019-10-29 | 2020-04-21 | Snowflake Inc. | Calling external functions from a data warehouse |
US10715524B1 (en) | 2019-11-14 | 2020-07-14 | Snowflake Inc. | External credential-less stages for data warehouse integrations |
JP7155196B2 (ja) * | 2020-06-03 | 2022-10-18 | ヤフー株式会社 | 情報処理装置、情報処理方法および情報処理プログラム |
CN112332853B (zh) * | 2020-11-02 | 2022-06-03 | 重庆邮电大学 | 一种基于电力系统的时序数据压缩与恢复方法 |
US11138192B1 (en) | 2021-04-30 | 2021-10-05 | Snowflake Inc. | Invoking external table functions from a database system |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002251304A (ja) * | 2001-02-22 | 2002-09-06 | Ricoh Co Ltd | 文書管理システム |
JP2006085321A (ja) * | 2004-09-15 | 2006-03-30 | Hitachi Ltd | データ管理システム及び方法 |
JP2007213489A (ja) * | 2006-02-13 | 2007-08-23 | Fujitsu Ltd | 共有データ管理システム、共有データ管理方法、およびコンピュータプログラム |
JP2009053961A (ja) * | 2007-08-27 | 2009-03-12 | Daiwa Securities Group Inc | ファイル検索システム |
JP2010128765A (ja) * | 2008-11-27 | 2010-06-10 | Kyocera Communication Systems Co Ltd | データベース装置 |
JP2011048788A (ja) * | 2009-08-28 | 2011-03-10 | Fujitsu Ltd | キャッシュ制御装置、キャッシュ制御システム、キャッシュ制御方法及びキャッシュ制御プログラム |
JP2014106655A (ja) * | 2012-11-27 | 2014-06-09 | Hitachi Ltd | 時系列データベースの設定自動生成方法、設定自動生成システム並びに監視サーバ |
JPWO2013088477A1 (ja) * | 2011-12-15 | 2015-04-27 | 株式会社日立製作所 | 監視計算機及び方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08202594A (ja) * | 1995-01-26 | 1996-08-09 | Kawasaki Steel Corp | データ更新装置およびデータ更新方法 |
JP3595073B2 (ja) * | 1995-08-28 | 2004-12-02 | 株式会社東芝 | 計算機システムおよびそのシステムで使用されるファイル管理方法 |
JP4064162B2 (ja) * | 2002-06-12 | 2008-03-19 | 日本電信電話株式会社 | ファイル蓄積装置および方法 |
JP3979226B2 (ja) * | 2002-08-23 | 2007-09-19 | ソニー株式会社 | 記録再生装置、記録管理方法、記録媒体、並びにプログラム |
US8145606B2 (en) * | 2007-04-20 | 2012-03-27 | Sap Ag | System, method, and software for enforcing information retention using uniform retention rules |
JP4224126B1 (ja) * | 2008-06-09 | 2009-02-12 | パナソニック株式会社 | データベース管理サーバ装置、データベース管理システム、データベース管理方法およびデータベース管理プログラム |
US8315995B1 (en) * | 2008-09-09 | 2012-11-20 | Peer Fusion, Inc. | Hybrid storage system |
US20110153603A1 (en) * | 2009-12-17 | 2011-06-23 | Yahoo! Inc. | Time series storage for large-scale monitoring system |
US9015136B2 (en) * | 2010-01-22 | 2015-04-21 | Microsoft Technology Licensing, Llc | Storing temporary state data in separate containers |
US9146927B2 (en) * | 2010-06-18 | 2015-09-29 | Mitsubishi Electric Corporation | Data processing apparatus, data processing method, and program |
JP2013239058A (ja) * | 2012-05-16 | 2013-11-28 | Canon Inc | 情報処理装置、方法及びプログラム |
-
2014
- 2014-07-29 US US15/305,481 patent/US20170046353A1/en not_active Abandoned
- 2014-07-29 JP JP2016537636A patent/JPWO2016016944A1/ja active Pending
- 2014-07-29 WO PCT/JP2014/069928 patent/WO2016016944A1/ja active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002251304A (ja) * | 2001-02-22 | 2002-09-06 | Ricoh Co Ltd | 文書管理システム |
JP2006085321A (ja) * | 2004-09-15 | 2006-03-30 | Hitachi Ltd | データ管理システム及び方法 |
JP2007213489A (ja) * | 2006-02-13 | 2007-08-23 | Fujitsu Ltd | 共有データ管理システム、共有データ管理方法、およびコンピュータプログラム |
JP2009053961A (ja) * | 2007-08-27 | 2009-03-12 | Daiwa Securities Group Inc | ファイル検索システム |
JP2010128765A (ja) * | 2008-11-27 | 2010-06-10 | Kyocera Communication Systems Co Ltd | データベース装置 |
JP2011048788A (ja) * | 2009-08-28 | 2011-03-10 | Fujitsu Ltd | キャッシュ制御装置、キャッシュ制御システム、キャッシュ制御方法及びキャッシュ制御プログラム |
JPWO2013088477A1 (ja) * | 2011-12-15 | 2015-04-27 | 株式会社日立製作所 | 監視計算機及び方法 |
JP2014106655A (ja) * | 2012-11-27 | 2014-06-09 | Hitachi Ltd | 時系列データベースの設定自動生成方法、設定自動生成システム並びに監視サーバ |
Also Published As
Publication number | Publication date |
---|---|
WO2016016944A1 (ja) | 2016-02-04 |
US20170046353A1 (en) | 2017-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2016016944A1 (ja) | データベース管理システム及びデータベース管理方法 | |
JP6697392B2 (ja) | 半構造データスキーマのトランスペアレントディスカバリ | |
US10970280B2 (en) | Query plan based on a data storage relationship | |
US9037677B2 (en) | Update protocol for client-side routing information | |
JP5199003B2 (ja) | 管理装置及び計算機システム | |
JP4733461B2 (ja) | 計算機システム、管理計算機及び論理記憶領域の管理方法 | |
US8700660B2 (en) | Client-side statement routing for partitioned tables | |
US20170031959A1 (en) | Scheduling database compaction in ip drives | |
JP6361199B2 (ja) | 情報記憶システム | |
JP5858308B2 (ja) | データベース管理システム、計算機、データベース管理方法 | |
US20140101158A1 (en) | File Handling in a Hierarchical Storage System | |
JP2015203927A (ja) | 計算機システム、データの検査方法及び計算機 | |
WO2019120226A1 (zh) | 数据访问预测方法和装置 | |
JP5956064B2 (ja) | 計算機システム、データ管理方法、及び計算機 | |
JP6582721B2 (ja) | 制御装置、ストレージシステム、及び制御プログラム | |
WO2018117218A1 (ja) | データ処理システムおよびデータ処理方法 | |
JP6084700B2 (ja) | 検索システム及び検索方法 | |
CN112783711A (zh) | NodeJS上程序内存分析的方法、存储介质 | |
US20180165380A1 (en) | Data processing system and data processing method | |
JP6193491B2 (ja) | 計算機システム | |
WO2020231548A1 (en) | Mailbox management based on user activity | |
JP5818264B2 (ja) | 計算機システム及びジョブネット実行方法 | |
CN102682087A (zh) | 一种缓存结果集的管理方法、装置及系统 | |
WO2017115419A1 (ja) | 出力データの生成方法、計算機システム、及びプログラム | |
JP7141908B2 (ja) | データ管理システムおよびデータ管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161013 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170718 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170913 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20170926 |