(57)【特許請求の範囲】
【請求項１】
データファイル入力、データベース入力、データ変換、データファイル出力およびデータベース出力を含む手続の実行条件を処理順序および処理種別に対応付けて記述した動作仕様と前記手続の実行時におけるデータ保持用の２次元配列の生成条件を記述した配列生成仕様を含むプロパティファイルと、
前記配列生成仕様に基づいて所定数の前記２次元配列を生成する配列領域生成部と、
前記データファイル入力の動作仕様に基づいてデータファイルを入力し、第１の２次元配列に格納するデータファイル入力部と、
前記データベース入力の動作仕様に基づいてデータベースに対する検索クエリを生成する検索クエリ生成部と、
前記生成された検索クエリを実行し、検索結果データを第２の２次元配列に格納するＤＢ入力部と、
前記データ変換の動作仕様に基づいて前記第２の２次元配列のデータを変換し、変換データを第３の２次元配列へ格納するデータ変換部と、
前記データベース出力の動作仕様と前記第３の２次元配列に基づいて保存クエリを生成し、前記第３の２次元配列のデータを前記データベースへ出力するＤＢ出力部と、
前記データファイル出力の動作仕様と前記第３の２次元配列に基づいて前記第３の２次元配列のデータを他のデータファイルへ出力するデータファイル出力部と、
前記動作仕様を読み込み、前記手続を前記処理順序で実行させる制御を行う制御部と、
を備えることを特徴とするデータ処理装置。
【請求項２】
前記データベース入力の動作仕様は、クエリ先頭部、クエリ結合部およびクエリ末尾部からなるクエリ生成用データと、クエリ生成時に参照する第４の２次元配列の指定情報と、前記第２の２次元配列の指定情報とを含み、
前記検索クエリ生成部は、前記第４の２次元配列の最大行数分だけ前記クエリ生成用データの結合を繰り返し、可変長の前記検索クエリを生成すること
を特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記データ変換の仕様は、変換元となる前記第２の２次元配列における開始行番号、開始列番号、行数および列数で定義される変換元矩形領域指定情報と、変換先となる前記第３の２次元配列における開始行番号、開始列番号、変換先繰り返し回数、変換先繰り返し間隔で定義される変換先矩形領域指定情報とを含むこと
を特徴とする請求項１または請求項２記載のデータ処理装置。
【請求項４】
前記プロパティファイルは、ＸＭＬ形式、ＪＳＯＮ形式またはＣＳＶ形式で記述されていること
を特徴とする請求項１乃至請求項３のいずれか一項記載のデータ処理装置。
【請求項５】
データファイル入力、データベース入力、データ変換、データファイル出力およびデータベース出力を含む手続の実行条件を処理順序および処理種別に対応付けて記述した動作仕様と前記手続の実行時におけるデータ保持用の２次元配列の生成条件を記述した配列生成仕様を含むプロパティファイルを読み込むプロパティファイル読み込みステップと、
前記動作仕様を読み込み、前記手続を前記処理順序で実行させる制御を行う制御ステップと、
前記配列生成仕様に基づいて所定数の前記２次元配列を生成する配列領域生成ステップと、
前記データファイル入力の動作仕様に基づいてデータファイルを入力し、第１の２次元配列に格納するデータファイル入力ステップと、
前記データベース入力の動作仕様に基づいてデータベースに対する検索クエリを生成する検索クエリ生成ステップと、
前記生成された検索クエリを実行し、検索結果データを第２の２次元配列に格納するＤＢ入力ステップと、
前記データ変換の動作仕様に基づいて前記第２の２次元配列のデータを変換し、変換データを第３の２次元配列へ格納するデータ変換ステップと、
前記データベース出力の動作仕様と前記第３の２次元配列に基づいて保存クエリを生成して実行し、前記第３の２次元配列のデータを前記データベースへ出力するＤＢ出力ステップと、
前記データファイル出力の動作仕様と前記第３の２次元配列に基づいて前記第３の２次元配列のデータを他のデータファイルへ出力するデータファイル出力ステップと、
を有することを特徴とする、データ処理装置が実行するデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、データ処理装置およびデータ処理方法に関する。
【背景技術】
【０００２】
近年、スマートグリッドやホームエネルギーマネジメントシステム（ＨＥＭＳ）による消費エネルギーの最適化をはじめとして、公共交通システムや公共サービスなどの社会的インフラシステムを統合的に管理・制御するスマートコミュニティの実用化が進められている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−２７３５４４号公報
【特許文献２】特開２００６−２７７６４２号公報
【特許文献３】特開平９−３３０２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
スマートコミュニティでは、個別に構築されている複数のシステムが各々に管理しているデータを横断的に活用する必要がある。しかし、個々のシステムでは互いに異なるデータベースが使われている。異なるデータベースを併用する場合には、個別にＳＱＬ文を実行し、複数の検索結果データに対して結合、並べ替えおよび集計などの処理をアプリケーション側で行わなければならず、システム開発者は、データベースの仕組みや実装方法の違いを考慮した上でプログラムを作成する必要がある。
【０００５】
また、スマートコミュニティは、クラウド上で実現されるが、クラウドではリレーショナルデータベースの他にＫＶＳ（ｋｅｙ ｖａｌｕｅ ｓｔｏｒｅ）型などのデータベースを組み合わせた複合データベースが使われることが多い。更に、ＣＳＶ(ｃｏｍｍａ ｓｅｐａｒａｔｅｄ ｖａｌｕｅｓ)形式のデータファイルも使われることもある。このため、複数のデータ形式やデータアクセス方式が共存するクラウド環境における開発効率の更なる向上が求められている。
【０００６】
そこで、本発明は、上記従来技術の問題に鑑み、スマートコミュニティをクラウド上で実現する際のコーディングの作業の負担を軽減でき、複合データベースに対するデータ検索およびデータ保存を柔軟に行うことができるデータ処理装置およびデータ処理方法を提供する。
【課題を解決するための手段】
【０００７】
本実施形態のデータ処理装置は、データファイル入力、データベース入力、データ変換、データファイル出力およびデータベース出力を含む手続の実行条件を処理順序および処理種別に対応付けて記述した動作仕様と前記手続の実行時におけるデータ保持用の２次元配列の生成条件を記述した配列生成仕様を含むプロパティファイルと、前記配列生成仕様に基づいて所定数の前記２次元配列を生成する配列領域生成部と、前記データファイル入力の動作仕様に基づいてデータファイルを入力し、第１の２次元配列に格納するデータファイル入力部と、前記データベース入力の動作仕様に基づいてデータベースに対する検索クエリを生成する検索クエリ生成部と、前記生成された検索クエリを実行し、検索結果データを第２の２次元配列に格納するＤＢ入力部と、前記データ変換の動作仕様に基づいて前記第２の２次元配列のデータを変換し、変換データを第３の２次元配列へ格納するデータ変換部と、前記データベース出力の動作仕様と前記第３の２次元配列に基づいて保存クエリを生成し、前記第３の２次元配列のデータを前記データベースへ出力するＤＢ出力部と、前記データファイル出力の動作仕様と前記第３の２次元配列に基づいて前記第３の２次元配列のデータを他のデータファイルへ出力するデータファイル出力部と、前記動作仕様を読み込み、前記手続を前記処理順序で実行させる制御を行う制御部と、を備えることを特徴とする。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態に係るデータ処理装置が適用されるスマートコミュニティシステムの全体構成例を示すブロック図。
【図２】気象情報サーバからデータ処理装置へ送信される気象情報ＣＳＶファイルの具体例を示す図。
【図３】ＫＶＳに保存されるパルス信号の具体例を示す図。
【図４】ＲＤＢに記憶されているパルスと電力量の変換表の具体例を示す図。
【図５】プロパティファイルに記述される配列生成の仕様の具体例を示す図。
【図６】プロパティファイルに記述される手続き（入力、変換、出力）の仕様の具体例を示す図。
【図７】データ処理装置のハードウェア構成例を示すブロック図。
【図８】データ処理装置の入出力フレームワークの処理の具体例を示すフローチャート。
【図９】配列領域生成処理の具体例を示すフローチャート。
【図１０】ＣＳＶファイル入力処理の具体例を示すフローチャート。
【図１１】プロパティファイルとＣＳＶファイルに基づいて生成された２次元配列の具体例を示す図。
【図１２】クエリ生成処理の具体例を示すフローチャート。
【図１３】ＲＤＢに予め記憶されているテーブルの具体例を示す図。
【図１４】図１３に示すテーブルから生成された２次元配列の具体例を示す図。
【図１５】検索クエリの生成方法を説明する図。
【図１６】図６に示すプロパティファイルの順序３について生成・実行される検索クエリを示す図。
【図１７】ＤＢ入力処理の具体例を示すフローチャート。
【図１８】図１６に示す検索クエリの実行結果を格納する２次元配列“ｃｏｎｓｕｍｐｔｉｏｎ”の値の具体例を示す図。
【図１９】データ変換処理の具体例を示すフローチャート。
【図２０】行・列変換指定無しの時の領域コピーの方法を説明する図。
【図２１】行・列変換指定時の領域コピーの方法を説明する図。
【図２２】繰り返し回数を指定した時の領域コピーの方法を説明する図。
【図２３】図６に示すプロパティファイルの順序４の処理が終了した時点での２次元配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値の具体例を示す図。
【図２４】図６に示すプロパティファイルの順序５の処理が終了した時点での２次元配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値の具体例を示す図。
【図２５】図６に示すプロパティファイルの順序６の処理が終了した時点での２次元配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値の具体例を示す図。
【図２６】図６に示すプロパティファイルの順序７の処理が終了した時点での２次元配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値の具体例を示す図。
【図２７】ＤＢ出力処理の具体例を示すフローチャート。
【図２８】図６に示すプロパティファイルの順序８で生成・実行される保存クエリを示す図。
【図２９】図６に示すプロパティファイルの順序８の処理が終了した時点でのＲＤＢ上のｒｅｓｕｌｔ＿ｄａｔａテーブルの値の具体例を示す図。
【図３０】ＣＳＶ出力処理の具体例を示すフローチャート。
【図３１】図６に示すプロパティファイルの順序９の処理が終了した後のＣＳＶファイルの具体例を示す図。
【発明を実施するための形態】
【０００９】
以下、本実施形態に係るデータ処理装置について図面を参照して詳細に説明する。図１は、本実施形態に係るデータ処理装置１が適用されるスマートコミュニティシステムの全体構成例を示すブロック図である。ここでは、データ処理装置１に対して、気象情報サーバ２と電力計３がネットワーク（図示省略する）を介して接続されることでシステムが構築されている。
【００１０】
データ処理装置１は、本システムの中核をなすサーバコンピュータであり、データストア１１、プロパティファイル１２および入出力フレームワーク１３を備えている。データストア１１は、リレーショナルデータベース（以下、ＲＤＢ（ｒｅｌａｔｉｏｎａｌ ｄａｔａｂａｓｅ）という。）１１１とキー・バリュー・ストア型データベース（以下、ＫＶＳ（ｋｅｙ ｖａｌｕｅ ｓｔｏｒｅ）という。）１１２を含む複合データベースである。
【００１１】
気象情報サーバ２は、観測地点の気温などを定期的に計測した値をＣＳＶ形式の気象情報として送信する外部サーバである。図２は、気象情報サーバ２からデータ処理装置１へ送信される気象情報ＣＳＶファイルの具体例を示す図である。ここでは、日時と気温（℃）の関係が行単位で記録されている。
【００１２】
電力計３は、固有の電力計ＩＤが割当てられており、一定の電力量を使用する度にパルス信号を発生するセンサである。データ処理装置１は、電力計３からのパルス信号を受信すると、電力計ＩＤとパルス信号の発生時刻の組み合わせをＫＶＳ１１２内に保存する。図３は、ＫＶＳ１１２に保存されるデータの具体例を示す図であり、パルス日時（ｐｕｌｓｅ＿ｔｉｍｅ）と電力計ＩＤ（ｍｅｔｅｒ＿ｉｄ）をデータ項目に含んでいる。以下、このデータテーブルをｐｕｌｓｅ＿ｔｉｍｅテーブルという。
【００１３】
図４は、ＲＤＢ１１１に記憶されているパルスレートと電力量の変換表の具体例を示す図である。同図に示されるように、パルス信号１回が示す電力量の値は予めＲＤＢ１１１側に保存されている。例えば、電力計ＩＤが“１５２”の場合、１パルス当たりの電力量は０．１８６ｋｗｈである。以下、このテーブルをｐｕｌｓｅ＿ｒａｔｅテーブルという。
【００１４】
本システムでは、データ処理装置１が上記のデータを入力として、入出力フレームワーク１３によって実績値を算出して接続先のクライアントマシン（図示省略する）の画面上に表示、あるいは帳票ファイル（例えばＣＳＶファイル）の出力を行う。このとき、入出力フレームワーク１３はプロパティファイル１２を参照する。
【００１５】
プロパティファイル１２は、データファイル入力、データベース入力、データ変換、データファイル出力およびデータベース出力を含む手続の実行条件を処理順序および処理種別に対応付けて記述した動作仕様と手続の実行時におけるデータ保持用の２次元配列の生成条件を記述した配列生成仕様を含んでいる。プロパティファイル１２はＸＭＬ形式、ＪＳＯＮ形式、ＣＳＶ形式、その他様々なもので実装可能である。例えば上記の表をＣＳＶファイルとして実装することができる。
【００１６】
図５は、プロパティファイル１２に記述される配列生成の仕様の具体例を示す図である。ここでは、２次元配列の配列名称に対して列数が定義されているが、行数については定義されていない。また、図６は、プロパティファイル１２に記述される手続き（入力、変換、出力）の仕様の具体例を示す図である。ここでは、図中の１行が１つの手続きの仕様を示している。各行の動作仕様の詳細については後述する。
【００１７】
図１に示すように、入出力フレームワーク１３は、制御部１３０、配列領域生成部１３１、ＣＳＶファイル入力部１３２、検索クエリ生成部１３３、ＤＢ入力部１３４、データ変換部１３５、ＤＢ出力部１３６およびＣＳＶファイル出力部１３７を含むプログラム群である。
【００１８】
制御部１３０は、プロパティファイル１２に記述されている動作仕様を読み込み、ＣＳＶファイル入力部１３２、検索クエリ生成部１３３、ＤＢ入力部１３４、データ変換部１３５、ＤＢ出力部１３６およびＣＳＶファイル出力部１３７をそれぞれ呼び出して、手続を処理順序で実行させる制御を行う。また、制御部１３０は、プロパティファイル１２に記述されている配列生成仕様を読込み、配列領域生成部１３１を呼び出す制御も行う。
【００１９】
配列領域生成部１３１は、配列生成仕様に基づいて所定数の２次元配列を生成する。
【００２０】
ＣＳＶファイル入力部１３２は、データファイル入力の動作仕様に基づいてデータファイルとしてＣＳＶファイルを入力し、第１の２次元配列に格納する。ＣＳＶファイル入力部１３２は、データファイル入力手段の一例であり、データファイルの形式はＣＳＶファイルだけに限られない。図６の例では、順序１の行がデータファイル入力の動作仕様であり、配列“ｗｅａｔｈｅｒ”が第１の２次元配列に相当する。
【００２１】
検索クエリ生成部１３３は、データベース入力の動作仕様に基づいてデータストア１１（複合データベース）に対する検索クエリを生成する。図６の例では、順序２および順序３の行がデータベース入力の動作仕様であり、３列目がＤＢ接続情報、４列目がクエリ生成時に参照する参照用配列、６列目が検索用クエリ、７列目がクエリ生成用データである。
【００２２】
クエリ生成用データは、クエリ先頭部（“ｓｅｌｅｃｔ  ［項目名］ｆｒｏｍ ［テーブル名］”の部分)と、クエリ結合部（“ｕｎｉｏｎ  ａｌｌ”の部分）およびクエリ末尾部（“ｇｒｏｕｐ  ｂｙ”の部分）から構成されている。
【００２３】
ＤＢ入力部１３４は、検索クエリ生成部１３３で生成された検索クエリを実行し、検索結果データを第２の２次元配列に格納する。図６の順序３では、配列“ｃｏｎｓｕｍｐｔｉｏｎ”が第２の２次元配列に相当する。尚、ＤＢ入力部１３４には、ＲＤＢ１１１とＫＶＳ１１２双方を単一の問合せできるデータベース統合エンジンが組み込まれているものとする。データベース統合エンジンの具体例としては、http://www.toshiba.co.jp/tech/review/2013/09/68_09pdf/r01.pdf
等がある。
【００２４】
データ変換部１３５は、データ変換の動作仕様に基づいて第２の２次元配列のデータを変換し、変換データを第３の２次元配列へ格納する。図６の例では、順序４〜７の行がデータ変換の動作仕様であり、３列目が変換種別（領域のコピー／書き込み）、４列目が変換元配列名、５列目が変換元矩形領域情報、６列目が変換先矩形領域情報、６列目が行・列変換指定（ｙｅｓ／ｎｏ）、７列目が変換先配列名である。また、順序４〜７の動作仕様では、配列“ｒｅｓｕｌｔ＿ｄａｔａ”が第３の２次元配列に相当する。変換元矩形領域指定情報は、変換元となる第２の２次元配列における開始行番号、開始列番号、行数および列数で定義されている。他方、変換先矩形領域指定情報は、変換先となる第３の２次元配列における開始行番号、開始列番号、変換先繰り返し回数、変換先繰り返し間隔で定義されている。
【００２５】
ＤＢ出力部１３６は、データベース出力の動作仕様と第３の２次元配列に基づいて保存クエリを生成し、第３の２次元配列のデータをデータストア１１へ出力する。図６の例では、順序８の行がデータ変換の動作仕様であり、３列目がＤＢ接続情報、４列目が登録対象となる値を格納するデータ元配列名、５列目が保存用クエリである。ＤＢ出力部１３６は、保存用クエリのｖａｌｕｅ部分に配列“ｒｅｓｕｌｔ＿ｄａｔａ”のデータを順次格納することで保存クエリを生成する。
【００２６】
ＣＳＶファイル出力部１３７は、データファイル出力の動作仕様と第３の２次元配列に基づいて第３の２次元配列のデータをＣＳＶファイルへ出力する。ＣＳＶファイル出力部１３７は、データファイル出力手段の一例であり、データファイルの形式はＣＳＶファイルだけに限られない。
【００２７】
図７は、データ処理装置１のハードウェア構成例を示すブロック図である。同図に示されるように、データ処理装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）３１、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）３２、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）３３、入出力インターフェース３４、システムバス３５、入力装置３６、表示装置３７、補助記憶装置３８および通信装置３９から構成されたサーバコンピュータである。
【００２８】
ＣＰＵ３１は、ＲＯＭ３２やＲＡＭ３３に格納されたプログラムやデータなどを用いて各種の演算処理を実行する処理装置である。ＲＯＭ３２は、コンピュータを機能させるための基本プログラムや環境ファイルなどを記憶する読み取り専用の記憶装置である。ＲＡＭ３３は、ＣＰＵ３１が実行するプログラムおよび各プログラムの実行に必要なデータを記憶する記憶装置であり、高速な読み出しと書き込みが可能である。入出力インターフェース３４は、各種のハードウェアとシステムバス３５との接続を仲介する装置である。システムバス３５は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３および入出力インターフェース３４で共有される情報伝達路である。
【００２９】
また、入出力インターフェース３４には、入力装置３６、表示装置３７、補助記憶装置３８、および通信装置３９などのハードウェアが接続されている。入力装置３６は、ユーザからの入力を処理する装置である。表示装置３７は、ユーザに対して演算結果や作成画面などを表示する装置である。補助記憶装置３８は、プログラムやデータを蓄積する大容量の記憶装置である。
【００３０】
以下、上記のように構成されたデータ処理装置１の動作を図面に基づいて詳細に説明する。図８は、データ処理装置１の入出力フレームワーク１３の処理の具体例を示すフローチャートであり、制御部１３０において実行される。
【００３１】
Ｓ１０１において、制御部２０は、配列生成仕様および動作仕様がそれぞれ記述されているプロパティファイル１２を読み込む。  
Ｓ１０２において、制御部１３０は、プロパティファイル１２の配列生成仕様に基づいて配列領域生成部１３１を呼び出し、配列領域生成処理を実行する。
【００３２】
Ｓ１０３において、制御部１３０は、処理の順序を表す変数Ｎに初期値１を設定し、プロパティファイル１２の動作仕様に応じた処理の実行制御を開始する。  
Ｓ１０４において、制御部１３０は、Ｓ１０１で読込んだプロパティファイル１２の中から順序Ｎの動作仕様を選択する。
【００３３】
Ｓ１０５において、制御部１３０は、順序Ｎの動作仕様の処理種別がＣＳＶ入力（ＣＳＶ＿Ｉｎ）であるか否かを判定する。ここで、処理種別がＣＳＶ入力であると判定された場合は、Ｓ１０６へ進む。これに対し、処理種別がＣＳＶ入力ではないと判定された場合は、Ｓ１０７へ進む。
【００３４】
Ｓ１０６において、制御部１３０は、ＣＳＶファイル入力部１３２を呼び出し、ＣＳＶ入力処理を実行後、Ｓ１１５へ進む。  
Ｓ１０７において、順序Ｎの動作仕様の処理種別がデータベース入力（ＤＢ＿Ｉｎ）であるか否かを判定する。ここで、処理種別がデータベース入力であると判定された場合は、Ｓ１０８へ進む。これに対し、処理種別がデータベース入力ではないと判定された場合は、Ｓ１１０へ進む。
【００３５】
Ｓ１０８において、制御部１３０は、検索クエリ生成部１３３を呼び出し、クエリ生成処理を行う。  
Ｓ１０９において、制御部１３０は、ＤＢ入力部１３４を呼び出し、ＤＢ入力処理を実行後、Ｓ１１５へ進む。
【００３６】
Ｓ１１０において、制御部１３０は、順序Ｎの動作仕様の処理種別がデータ変換（Ｄａｔａ＿Ｃｏｎｖ）であるか否かを判定する。ここで、処理種別がデータ変換であると判定された場合は、Ｓ１１１へ進む。これに対し、処理種別がデータ変換ではないと判定された場合は、Ｓ１１２へ進む。
【００３７】
Ｓ１１１において、制御部１３０は、データ変換部１３５を呼び出し、データ変換処理を実行後、Ｓ１１５へ進む。  
Ｓ１１２において、制御部１３０は、順序Ｎの動作仕様の処理種別がデータベース出力（ＤＢ＿Ｏｕｔ）であるか否かを判定する。ここで、処理種別がデータベース出力であると判定された場合は、Ｓ１１３へ進む。これに対し、処理種別がデータベース出力ではないと判定された場合は、ＣＳＶファイル出力（ＣＳＶ＿Ｏｕｔ）とみなし、Ｓ１１４へ進む。
【００３８】
Ｓ１１３において、制御部１３０は、ＤＢ出力部１３６を呼び出し、ＤＢ出力処理を実行後、Ｓ１１５へ進む。  
Ｓ１１４において、制御部１３０は、ＣＳＶファイル出力部１３７を呼び出し、ＣＳＶ出力処理を実行後、Ｓ１１５へ進む。  
Ｓ１１５において、制御部１３０は、変数Ｎを１加算し、Ｓ１１６へ進む。
【００３９】
Ｓ１１６において、制御部１３０は、変数Ｎがプロパティファイル１２の処理順序の最大値、すなわち、最終処理順序番号を超えた否かを判定する。ここで、処理順序の最大値を超えたと判定された場合には、処理を終了する。これに対し、処理順序の最大値を超えていないと判定された場合には、Ｓ１０５へ戻り、処理を繰り返す。
【００４０】
上記のような処理により、プロパティファイル１２に予め定義されている処理順序の通りに所望の処理を実行させることが可能となる。例えば、図６に示すプロパティファイル１２の場合には、処理順序が順序１〜９まで記載されているため、ＣＳＶファイル入力（順序１）、ＤＢ入力（順序２）、ＤＢ入力（順序３）、データ変換（順序４）、データ変換（順序５）、データ変換（順序６）、データ変換（順序７）、ＤＢ出力（順序８）、ＣＳＶ出力（順序９）の順に処理を実行させることができる。
【００４１】
図９は、配列領域生成処理の具体例を示すフローチャートであり、図８のＳ１０２の処理を詳細に説明するものである。  
Ｓ２０１において、配列領域生成部１３１は、プロパティファイル１２内の配列生成の仕様に基づいて生成対象の２次元配列の名称の指定入力を行う。
【００４２】
Ｓ２０２において、配列領域生成部１３１は、２次元配列の列数の指定入力を行う。  
Ｓ２０３において、配列領域生成部１３１は、Ｓ２０１およびＳ２０２で指定された形式の２次元配列を生成し、処理を終了する。
【００４３】
図１０は、ＣＳＶファイル入力処理の具体例を示すフローチャートであり、図６のＳ１０６の処理を詳細に説明するものである。  
Ｓ３０１において、ＣＳＶファイル入力部１３２は、プロパティファイル１２内のＣＳＶ入力に係る動作仕様に基づいてＣＳＶファイルのファイル名を入力する。
【００４４】
Ｓ３０２において、ＣＳＶファイル入力部１３２は、動作仕様に基づいてＣＳＶファイルの文字セットの指定入力を行う。  
Ｓ３０３において、ＣＳＶファイル入力部１３２は、動作仕様に基づいてデータの保存先になる２次元配列名を入力する。
【００４５】
Ｓ３０４において、ＣＳＶファイル入力部１３２は、Ｓ３０１で指定されたＣＳＶファイルのデータを行・列を保ったままＳ３０３で指定した２次元配列に出力し、処理を終了する。  
例えば、図６に示したＣＳＶ入力に係る動作仕様（順序１）の場合には、文字セットＵＴＦ−８で作成されたファイル“ｗｅａｔｈｅｒ＿ｉｎｆｏ.ＣＳＶ”を読み込み、配列“ｗｅａｔｈｅｒ”に読み込みデータを保存する。図１１は、プロパティファイル１２とＣＳＶファイルに基づいて生成された２次元配列の具体例を示す図である。
【００４６】
図１２は、クエリ生成処理の具体例を示すフローチャートであり、図６のＳ１０８の処理を詳細に説明するものである。  
Ｓ４０１において、検索クエリ生成部１３３は、プロパティファイル１２内のＤＢ入力に係る動作仕様に基づいて検索用クエリを入力する。
【００４７】
Ｓ４０２において、検索クエリ生成部１３３は、動作仕様にクエリ生成用データが入力されているか否かを判定する。ここで、クエリ生成用データの入力有りと判定された場合には、Ｓ４０３へ進む。これに対し、クエリ生成用データの入力無しと判定された場合は、ＳＳ４１４へ進む。
【００４８】
Ｓ４０３において、検索クエリ生成部１３３は、動作仕様に記述されているクエリ生成用データを入力する。  
Ｓ４０４において、検索クエリ生成部１３３は、動作仕様に記述されている参照用２次元配列名指定を入力する。
【００４９】
Ｓ４０５において、検索クエリ生成部１３３は、クエリ先頭部に対応する文字列をクエリ断片に対応する変数へ格納する。  
Ｓ４０６において、検索クエリ生成部１３３は、変数Ｎに初期値１を設定し、ループ処理を開始する。
【００５０】
Ｓ４０７において、検索クエリ生成部１３３は、変数Ｎの値が１か否かを判定する。ここで、変数Ｎが１であると判定された場合は、Ｓ４０８へ進む。これに対し、変数Ｎが１ではないと判定された場合は、Ｓ４０９へ進む。  
Ｓ４０８において、検索クエリ生成部１３３は、クエリ断片の文字列に続けてクエリ結合部の文字列を連結し、新たなクエリ断片とする。  
Ｓ４０９において、検索クエリ生成部１３３は、クエリ断片の文字列に続けて検索用クエリと２次元配列の該当行から生成した文字列を連結し、新たなクエリ断片とする。  
Ｓ４１０において、検索クエリ生成部１３３は、変数Ｎを１加算する。
【００５１】
Ｓ４１１において、検索クエリ生成部１３３は、変数Ｎの値が参照用２次元配列の最大行数Ｒｏｗ＿Ｍａｘの値を超えたか否かを判定する。ここで、最大行数Ｒｏｗ＿Ｍａｘの値を超えたと判定された場合には、ループ処理を終了し、Ｓ４１２へ進む。これに対し、最大行数Ｒｏｗ＿Ｍａｘの値を超えていないと判定された場合には、Ｓ４０７へ戻る。
【００５２】
Ｓ４１２において、検索クエリ生成部１３３は、クエリ断片に続けてクエリ末尾部の文字列を連結し、新たなクエリ断片とする。  
Ｓ４１３において、検索クエリ生成部１３３は、Ｓ４１２で生成したクエリ断片を生成クエリ（検索クエリ）としてＤＢ入力部１３４へ出力し、処理を終了する。  
Ｓ４１４において、検索クエリ生成部１３３は、検索用クエリを生成クエリ（検索クエリ）としてＤＢ入力部１３４へ出力し、処理を終了する。
【００５３】
図６に示したＤＢ入力に係る動作仕様（順序２）の場合には、指定のドライバによりＤＢに接続をして、以下のクエリ“ｓｅｌｅｃｔ ＊ ｆｒｏｍ ｈｏｕｒ＿ｏｆ＿ｄａｙ”を実行した結果を配列“ｈｏｕｒ＿ｏｆ＿ｄａｙ”に保存する。この配列は順序３のＤＢ入力に係る動作仕様で参照用配列として使用される。尚、ＲＤＢ１１１上には、予め“ｈｏｕｒ＿ｏｆ＿ｄａｙ”テーブルが準備されているものとする。図１３は、ＲＤＢ１１１に予め記憶されているテーブルの具体例を示す図であり、図１４は、図１３に示すテーブルから生成された２次元配列の具体例を示す図である。
【００５４】
また、ＤＢ入力に係る動作仕様（順序３）の場合には、指定のドライバによりＤＢに接続し、生成した検索クエリを実行した結果は配列“ｃｏｎｓｕｍｐｔｉｏｎ”に保存する。図１５は、検索クエリの生成方法を説明する図である。ここでは、生成する検索クエリが、配列“ｈｏｕｒ＿ｏｆ＿ｄａｙ”の内容、検索用クエリとして指定された文字列（以下、Ａとする。）、クエリ生成用の３つの指定文字列（以下、順番にＢ,Ｃ,Ｄとする。）によって組み立てられることが示されている。具体的には、配列“ｈｏｕｒ＿ｏｆ＿ｄａｙ”の行数と同じ数だけＡを並べ、Ａの間をＣで繋ぐ。また、Ａの中に指定された“｛数値｝”の箇所には配列“ｈｏｕｒ＿ｏｆ＿ｄａｙ”の対応する行の数値によって指定される値を格納する。図１６は、図６に示すプロパティファイル１２の順序３について生成・実行される検索クエリを示す図であり、ＳＱＬ文の“ｈｏｕｒｓ ｍｅａｓｕｒｅ＿ｔｉｍｅ”の前には参照用配列“ｈｏｕｒ＿ｏｆ＿ｄａｙ”で指定される列の値（０〜２３）が格納されている。
【００５５】
図１７は、ＤＢ入力処理の具体例を示すフローチャートであり、図６のＳ１０９の処理を詳細に説明するものである。  
Ｓ５０１において、ＤＢ入力部１３４は、プロパティファイル１２内のＤＢ入力に係る動作仕様に基づいてＤＢ接続情報を入力する。
【００５６】
Ｓ５０２において、ＤＢ入力部１３４は、同一の動作仕様に記述されているデータ保存先の２次元配列名を入力する。  
Ｓ５０３において、ＤＢ入力部１３４は、検索クエリ生成部１３３が生成した検索クエリを実行し、処理を終了する。図１８は、図１６に示すクエリの実行結果を格納する２次元配列“ｃｏｎｓｕｍｐｔｉｏｎ”の値の具体例を示す図であり、計測時刻、電力計ＩＤおよび使用電力量の対応関係が格納されている。
【００５７】
図１９は、データ変換処理の具体例を示すフローチャートであり、図６のＳ１１１の処理を詳細に説明するものである。  
Ｓ６０１において、データ変換部１３５は、プロパティファイル１２内のＤＢ入力に係る動作仕様を参照し、変換種別が領域のコピーか否かを判定する。ここで、変換種別が領域のコピーと判定された場合は、Ｓ６０２へ進む。これに対し、変換種別が領域の書き込みと判定された場合は、Ｓ６０９へ進む。
【００５８】
Ｓ６０２において、データ変換部１３５は、ＤＢ入力に係る動作仕様に記述されている変換元２次元配列名を入力する。  
Ｓ６０３において、データ変換部１３５は、同一の動作仕様に記述されているコピー元データの開始行・列番号とコピーする行数・列数を入力する。
【００５９】
Ｓ６０４において、データ変換部１３５は、同一の動作仕様に記述されている変換先２次元配列名を入力する。  
Ｓ６０５において、データ変換部１３５は、同一の動作仕様に記述されているコピー先領域の開始行・列番号を入力する。
【００６０】
Ｓ６０６において、データ変換部１３５は、同一の動作仕様に記述されているコピー時の行・列変換指定を入力する。  
Ｓ６０７において、データ変換部１３５は、同一の動作仕様に記述されている繰り返し回数・コピー元繰り返し間隔・コピー先繰り返し間隔を入力する。
【００６１】
Ｓ６０８において、データ変換部１３５は、コピー元領域の指定の行数・列数の値を指定の繰り返し回数、繰り返し間隔および行・列変換指定に基づいて指定のコピー先領域へコピーし、処理を終了する。
【００６２】
他方、Ｓ６０９において、データ変換部１３５は、同一の動作仕様に記述されている変換先配列名を入力する。  
Ｓ６１０において、データ変換部１３５は、同一の動作仕様に記述されている書き込み先の行番号・列番号を入力する。
【００６３】
Ｓ６１１において、データ変換部１３５は、同一の動作仕様に記述されている繰り返し回数・繰り返し間隔を入力する。  
Ｓ６１２において、データ変換部１３５は、同一の動作仕様に記述されている書き込み値を入力する。  
Ｓ６１３において、データ変換部１３５は、指定の書き込み値を指定の行・列の位置から指定の繰り返し回数・繰り返し間隔に基づいて書き込み、処理を終了する。
【００６４】
図２０は、行・列変換指定無しの時の領域コピーの方法を説明する図である。ここでは、上欄の変換元２次元配列においてコピー元開始行番号、コピー元開始列番号、コピー行数、コピー列数で定まる矩形領域がコピー元領域であることが示されている。また、下欄の変換先２次元配列においても同様に、コピー先開始行番号、コピー先開始列番号、コピー行数、コピー列数で定まる矩形領域がコピー先領域であることが示されている。
【００６５】
図２１は、行・列変換指定時の領域コピーの方法を説明する図である。ここでは、上欄の変換元２次元配列については上記図２０の場合と同様であるが、下欄の変換先２次元配列については、コピー行数とコピー列数が逆になることでコピー先領域の範囲が変更されることが示されている。
【００６６】
図２２は、繰り返し回数を指定した時の領域コピーの方法を説明する図である。ここでは、上欄の変換元２次元配列においてコピー元繰り返し間隔でコピー元領域がＡからＢへ移動するとともに、下欄の変換先２次元配列においてコピー先繰り返し間隔でコピー先領域がＡ′からＢ′へ移動し、領域Ａの値が領域Ａ′、領域Ｂの値が領域Ｂ′にそれぞれコピーされることが示されている。
【００６７】
以下、図６に示した順序４〜順序７のデータ変換の動作仕様に基づく処理について順番に説明する。  
先ず、順序４の処理を行った場合は、配列“ｃｏｎｓｕｍｐｔｉｏｎ”の値を使用して配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値を設定する。配列“ｃｏｎｓｕｍｐｔｉｏｎ”の１行１列目から開始して、全行全列の値を配列“ｒｅｓｕｌｔ＿ｄａｔａ”の１行１列目にコピーする処理を１回繰り返し、繰り返し時にはコピー元は１行１列ずつ、コピー先は１行１列ずつ移動しながらコピーを行う。図２３は、図６に示すプロパティファイルの順序４の処理が終了した時点での２次元配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値の具体例を示す図である。ここでは、気温は空欄である
続いて、順序５の処理を行った場合は、配列“ｗｅａｔｈｅｒ”の値を使用して配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値を設定する。配列“ｗｅａｔｈｅｒ”の１行１列目から初めて１行１列の値を配列“ｒｅｓｕｌｔ＿ｄａｔａ”aの１行４列目にコピーする処理を可能な限り繰り返して、繰り返し時にはコピー元は１行０列ずつ、コピー先は３行０列ずつ移動しながらコピーを行う。図２４は、図６に示すプロパティファイルの順序５の処理が終了した時点での２次元配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値の具体例を示す図である。ここでは、電力計ＩＤが“１５２”のもの気温が格納されている。
【００６８】
続いて、順序６の処理を行った場合には、配列“ｗｅａｔｈｅｒ”の値を使用して配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値を設定する。配列“ｗｅａｔｈｅｒ”の１行１列目から初めて１行１列の値を配列“ｒｅｓｕｌｔ＿ｄａｔａ”の２行４列目にコピーする処理を同一ファイル内で可能な限り繰り返して、繰り返し時にはコピー元は１行０列ずつ、コピー先は３行０列ずつ移動しながらコピーを行う。図２５は、図６に示すプロパティファイルの順序６の処理が終了した時点での２次元配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値の具体例を示す図である。ここでは、電力計ＩＤが“３８６２”のものについて気温が格納されることが示されている。
【００６９】
続いて、順序７の処理を行った場合は、配列“ｗｅａｔｈｅｒ”の値を使用して配列“ｒｅｓｕｌｔ＿ｄａｔａの値を設定する。配列“ｗｅａｔｈｅｒ”の１行１列目から開始して、１行１列の値を配列“ｒｅｓｕｌｔ＿ｄａｔａ”の３行４列目にコピーする処理を可能な限り繰り返して、繰り返し時にはコピー元は１行０列ずつ、コピー先は３行０列ずつ移動しながらコピーを行う。図２６は、図６に示すプロパティファイルの順序７の処理が終了した時点での２次元配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値の具体例を示す図である。ここでは、電力計ＩＤが“９４１７”のものについて気温が格納されることが示されている。
【００７０】
図２７は、ＤＢ出力処理の具体例を示すフローチャートであり、図６のＳ１１３の処理を詳細に説明するものである。  
Ｓ７０１において、ＤＢ出力部１３６は、プロパティファイル１２のＤＢ出力に係る動作仕様に記述されているＤＢ接続情報を入力する。
【００７１】
Ｓ７０２において、ＤＢ出力部１３６は、同一の動作仕様に記述されているデータ元の２次元配列名を入力する。  
Ｓ７０３において、ＤＢ出力部１３６は、同一の動作仕様に記述されている保存用クエリを入力する。
【００７２】
Ｓ７０４において、ＤＢ出力部１３６は、保存用クエリの実行パラメータをＳ７０２で指定した２次元配列の値で埋め、保存クエリを生成する。  
Ｓ７０５において、ＤＢ出力部１３６は、Ｓ７０４で生成した保存クエリを実行し、処理を終了する。
【００７３】
例えば、図６に示した順序８の処理を行った場合は、配列“ｒｅｓｕｌｔ＿ｄａｔａ”の値を使用してデータストア１１への保存処理を行う。指定のクエリは配列“ｒｅｓｕｌｔ＿ｄａｔａ”の１行につき１回発行し、クエリの“{数値}”の箇所は配列“ｒｅｓｕｌｔ＿ｄａｔａ”の対応する行について指定の列の値を参照するものである。図２８は、図６に示すプロパティファイルの順序８で生成・実行される保存クエリを示す図である。ここでは、ＳＱＬ文中のｖａｌｕｅｓの中に配列“ｒｅｓｕｌｔ＿ｄａｔａ”が仕様通りに格納されることが示されている。図２９は、図６に示すプロパティファイルの順序８の処理が終了した時点でのＲＤＢ１１１上のｒｅｓｕｌｔ＿ｄａｔａテーブルの値の具体例を示す図である。
【００７４】
図３０は、ＣＳＶ出力処理の具体例を示すフローチャートであり、図６のＳ１１４の処理を詳細に説明するものである。  
Ｓ８０１において、ＣＳＶファイル出力部１３７は、ＣＳＶ出力に係る動作仕様に基づいてＣＳＶファイルのファイル名を入力する。
【００７５】
Ｓ８０２において、ＣＳＶファイル出力部１３７は、同一の動作仕様に記述されているＣＳＶファイルの文字セット指定を入力する。  
Ｓ８０３において、ＣＳＶファイル出力部１３７は、同一の動作仕様に記述されているデータ元の２次元配列名を入力する。
【００７６】
Ｓ８０４において、ＣＳＶファイル出力部１３７は、Ｓ８０１〜８０３において指定入力された２次元配列のデータを行・列を保ったままファイルに出力する。
【００７７】
例えば、図６に示す順序９の処理を行った場合は、配列“ｒｅｓｕｌｔ＿ｄａｔａ”の内容をＵＴＦ−８でファイル“ｒｅｓｕｌｔ＿ｄａｔａ.ＣＳＶ”に書き込む。図３１は、図６に示すプロパティファイルの順序９の処理が終了した後のＣＳＶファイルの具体例を示す図である。ここでは、図２７に示した処理によってＲＤＢ１１１に登録された配列のデータと共通のデータがＣＳＶファイルとして出力されることが示されている。
【００７８】
このように、本実施形態に係るデータ処理装置１によれば、以下のような効果を奏する。
【００７９】
（１）ＲＤＢ、ＫＶＳ、ＣＳＶなどデータ形式が混在するクラウド環境下において、プロパティファイル１２を利用する同一の仕組みによりデータベース間あるいはデータベースとデータファイル間でのデータ入出力が可能になる。このため、スマートコミュニティの開発工数を大幅に低減することができる。
【００８０】
（２）コーディングすることなく、データベース問合せのクエリを動的に生成・発行することができる。すなわち、新たなクエリを生成する場合にはＣＳＶファイルの内容や別のＤＢ検索結果を用いることができ、クエリ内にパラメータを含めることもできる。
【００８１】
以上、本発明の実施形態を説明したが、本実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。本実施形態およびその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８２】
１…スマートコミュニティサーバ、
２…気象情報サーバ、
３…電力計、
１１…データストア、
１２…プロパティファイル、
１３…入出力フレームワーク、
１１１…ＲＤＢ、
１１２…ＫＶＳ、
１３０…制御部、
１３１…配列領域生成部、
１３２…ＣＳＶファイル入力部、
１３３…検索クエリ生成部、
１３４…ＤＢ入力部、
１３５…データ変換部、
１３６…ＤＢ出力部、
１３７…ＣＳＶファイル出力部。
【図１】
0006415877.tif 000002
【図２】
0006415877.tif 000003
【図３】
0006415877.tif 000004
【図４】
0006415877.tif 000005
【図５】
0006415877.tif 000006
【図６】
0006415877.tif 000007
【図７】
0006415877.tif 000008
【図８】
0006415877.tif 000009
【図９】
0006415877.tif 000010
【図１０】
0006415877.tif 000011
【図１１】
0006415877.tif 000012
【図１２】
0006415877.tif 000013
【図１３】
0006415877.tif 000014
【図１４】
0006415877.tif 000015
【図１５】
0006415877.tif 000016
【図１６】
0006415877.tif 000017
【図１７】
0006415877.tif 000018
【図１８】
0006415877.tif 000019
【図１９】
0006415877.tif 000020
【図２０】
0006415877.tif 000021
【図２１】
0006415877.tif 000022
【図２２】
0006415877.tif 000023
【図２３】
0006415877.tif 000024
【図２４】
0006415877.tif 000025
【図２５】
0006415877.tif 000026
【図２６】
0006415877.tif 000027
【図２７】
0006415877.tif 000028
【図２８】
0006415877.tif 000029
【図２９】
0006415877.tif 000030
【図３０】
0006415877.tif 000031
【図３１】
0006415877.tif 000032