(57)【要約】      （修正有）【課題】データ項目を結合する命令文のうち、負荷が高い命令文の負荷を軽減する。【解決手段】データを保存するデータベース装置２００，３００に対して発行された複数の命令文の分析を行う分析支援装置１００であって、データベース装置から、複数の命令文、及び複数の命令文のそれぞれに対応する実行負荷を示す負荷情報を取得する取得部１０１と、構文解析により、複数の命令文のうち第１のデータ項目と第２のデータ項目とを結合する命令を含む第１の命令文を抽出する解析部１０２と、第１の命令文に対応する実行負荷を集計した集計負荷を求める演算部１０３と、集計負荷に基づいて、第１のデータ項目と第２のデータ項目とを結合する第２の命令文を生成する生成部１０５と、第２の命令文をデータベース装置に出力する出力部１０６と、を有し、データ項目を予め結合した状態でデータベースのテーブルに保存する。【選択図】図１
2020060953.tif 000002
【特許請求の範囲】
【請求項１】
データを保存するデータベース装置（２００，３００）に対して発行された複数の命令文の分析を行う分析支援装置（１００）であって、
前記データベース装置から、前記複数の命令文、及び前記複数の命令文のそれぞれに対応する実行負荷を示す負荷情報を取得する取得部（１０１）と、
構文解析により、前記複数の命令文のうち第１のデータ項目と第２のデータ項目とを結合する命令を含む第１の命令文を抽出する解析部（１０２）と、
前記第１の命令文に対応する前記実行負荷を集計した集計負荷を求める演算部（１０３）と、
前記集計負荷に基づいて、前記第１のデータ項目と前記第２のデータ項目とを結合する第２の命令文を生成する生成部（１０５）と、
前記第２の命令文を前記データベース装置に出力する出力部（１０６）と、
を有する、分析支援装置（１００）。
【請求項２】
負荷閾値を記憶する記憶部（１０４）をさらに備え、
前記生成部は、前記集計負荷と前記負荷閾値とを比較し、前記集計負荷が前記負荷閾値よりも高い場合に、前記第２の命令文を生成する、
請求項１記載の分析支援装置。
【請求項３】
前記集計負荷に基づいて、当該分析支援装置のユーザに対して、前記第１のデータ項目と前記第２のデータ項目とを結合した結合データを前記データベース装置に保存することを推奨するメッセージを生成して表示するメッセージ制御部（１０７，１０８）と、
前記ユーザによる、前記結合データを前記データベース装置に保存する指示を取得するユーザ指示取得部（１０９）と、
を備え、
前記生成部は、前記指示を取得した場合に、前記第２の命令文を生成する、
請求項１記載の分析支援装置。
【請求項４】
前記取得部はさらに、前記データベース装置に対して前記複数の命令文のそれぞれを発行したユーザの情報を取得し、
前記演算部は、前記ユーザの情報に応じて前記実行負荷に重み付けをして前記集計負荷を求める、
請求項１記載の分析支援装置。
【請求項５】
前記生成部はさらに、前記第１のデータ項目と前記第２のデータ項目とを結合した結合データを保存する結合テーブルを生成する第３の命令文を生成し、
前記出力部は、前記第３の命令文を前記データベース装置に出力する、
請求項１記載の分析支援装置。
【請求項６】
データを保存するデータベース装置に対して発行された複数の命令文の分析を行う分析支援プログラムであって、
前記データベース装置から、前記複数の命令文、及び前記複数の命令文のそれぞれに対応する実行負荷を示す負荷情報を取得するステップと、
構文解析により、前記複数の命令文のうち第１のデータ項目と第２のデータ項目とを結合する命令を含む第１の命令文を抽出するステップと、
前記第１の命令文に対応する前記実行負荷を集計した集計負荷を求めるステップと、
前記集計負荷に基づいて、前記第１のデータ項目と前記第２のデータ項目とを結合する第２の命令文を生成するステップと、
前記第２の命令文を前記データベース装置に出力するステップと、
を含む、分析支援プログラム。
【請求項７】
データを保存するデータベース装置（２００，３００）と、前記データベース装置に対して発行された複数の命令文の分析を行う分析支援装置（１００）と、を有する結合データ生成システム（１０）であって、
前記分析支援装置は、
前記データベース装置から、前記複数の命令文、及び前記複数の命令文のそれぞれに対応する実行負荷を示す負荷情報を取得する取得部（１０１）と、
構文解析により、前記複数の命令文のうち第１のデータ項目と第２のデータ項目とを結合する命令を含む第１の命令文を抽出する解析部（１０２）と、
前記第１の命令文に対応する前記実行負荷を集計した集計負荷を求める演算部（１０３）と、
前記集計負荷に基づいて、前記第１のデータ項目と前記第２のデータ項目とを結合する第２の命令文を生成する生成部（１０５）と、
前記第２の命令文を前記データベース装置に出力する出力部（１０６）と、
を有し、
前記データベース装置（２００，３００）は、
前記データを受信する受信部（２０１）と、
前記第２の命令文に基づいて、前記データのうち、前記第１のデータ項目に該当する第１のデータ、及び前記第２のデータ項目に該当する第２のデータを結合した結合データを保存する保存部（３０１）と、
を有する、結合データ生成システム（１０）。
【請求項８】
データを保存するデータベース装置（２００，３００）と、前記データベース装置に対して発行された複数の命令文の分析を行う分析支援装置（１００）と、を有する結合データ生成システムで実行される結合データ生成方法（１０）であって、
前記分析支援装置において、
前記データベース装置から、前記複数の命令文、及び前記複数の命令文のそれぞれに対応する実行負荷を示す負荷情報を取得するステップと、
構文解析により、前記複数の命令文のうち第１のデータ項目と第２のデータ項目とを結合する命令を含む第１の命令文を抽出するステップと、
前記第１の命令文に対応する前記実行負荷を集計した集計負荷を求めるステップと、
前記集計負荷に基づいて、前記第１のデータ項目と前記第２のデータ項目とを結合する第２の命令文を生成するステップと、
前記第２の命令文を前記データベース装置に出力するステップと、
前記データベース装置において、
前記データを受信するステップと、
前記第２の命令文に基づいて、前記データのうち、前記第１のデータ項目に該当する第１のデータ、及び前記第２のデータ項目に該当する第２のデータを結合した結合データを保存するステップと、
を含む、結合データ生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースに保存されたデータの分析を支援する装置及びプログラムに関するものである。本発明はさらに、データベースに保存されたデータの分析を支援する装置を用いて、複数のデータ項目が結合されたデータを生成するシステム及び方法に関するものである。
【背景技術】
【０００２】
近年、情報技術の発展に伴い、ネットワークを介して様々なデータが収集され、蓄積されている。特に、ＩｏＴ(Internet of Things)の発展により、収集されるデータの種類及びデータ量は益々増加している。収集されたデータはデータベース内のテーブルにそれぞれ保存される。保存されたデータは、所定の目的に応じて利用される。
【０００３】
データベースは、このような利用に供される他、データ分析者による分析にも供される。そして、収集されるデータ量の増大に伴い、データ分析者による分析を容易かつ効率化できる技術が益々重要になってきている。
【０００４】
例えば、特許文献１には、複数の業務システムが保有する業務情報がデータテーブルに保存されており、異なるデータテーブルに共通するデータ項目があれば、データテーブル間をリンクさせるとともに、各データテーブルのデータ項目間に関係がある場合には、当該データ項目を用いて分析用のデータテーブルを作成して、分析対象となるデータ項目の組み合わせを蓄積する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−７２９６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術によれば、組み合わせてデータ分析が可能なデータ項目をデータモデルとして生成し、生成したデータモデルをデータ分析者に表示することにより、データ分析者が分析対象項目を選択するのを支援することができる。しかしながら、特許文献１に記載の技術では、データ項目名、あるいは、データ項目の種類の類似性によってデータ項目を組み合わせているため、データ分析者が、全く異なるデータ項目同士を組み合わせて分析を行うような場合、分析用のデータテーブルを利用することはできない。また、データ項目名やデータ項目の種類が類似しているデータ項目の組み合わせが、必ずしもデータ分析に有用な組み合わせであるとは限らない。
【０００７】
そこで、本発明の目的は、結合処理によって発生する負荷が大きく、ひいては、結合処理に時間がかかるデータ項目の組み合わせについて、データ分析に要する時間を短縮することである。
本発明のさらなる目的は、データ分析者が着目しているデータ項目と結合される頻度が高いデータ項目をデータ分析者に表示することにより、データ項目間の関連性をデータ分析者に知らしめることを通じて、データ分析を支援することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の分析支援装置は、
データを保存するデータベース装置（２００，３００）に対して発行された複数の命令文の分析を行う分析支援装置（１００）であって、
前記データベース装置から、前記複数の命令文、及び前記複数の命令文のそれぞれに対応する実行負荷を示す負荷情報を取得する取得部（１０１）と、
構文解析により、前記複数の命令文のうち第１のデータ項目と第２のデータ項目とを結合する命令を含む第１の命令文を抽出する解析部（１０２）と、
前記第１の命令文に対応する前記実行負荷を集計した集計負荷を求める演算部（１０３）と、
前記集計負荷に基づいて、前記第１のデータ項目と前記第２のデータ項目とを結合する第２の命令文を生成する生成部（１０５）と、
前記第２の命令文を前記データベース装置に出力する出力部（１０６）と、
を有する。
【０００９】
なお、特許請求の範囲、及び本項に記載した発明の構成要件に付した括弧内の番号は、本発明と後述の実施形態との対応関係を示すものであり、本発明を限定する趣旨ではない。
【発明の効果】
【００１０】
本発明の分析支援装置によれば、複数のデータ項目を結合したデータをデータベース内の結合テーブルに保存することにより、複数のデータ項目を結合するデータ分析に要する時間を短縮することが可能となる。
さらに、本発明の分析支援装置によれば、データ分析者が着目しているデータ項目と結合がされる頻度が高いデータ項目をデータ分析者に表示することにより、データ項目間の関連性をデータ分析者に知らせることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態１の結合データ生成システムの構成を説明する図
【図２】本発明の実施形態１の結合データ生成システムの動作を説明するブロック図
【図３】本発明の実施形態１の結合データ生成システムの動作を説明するブロック図
【図４】本発明の実施形態１の結合データ生成システムの動作を説明するブロック図
【図５】本発明の実施形態１の変形例１の結合データ生成システムの構成を説明する図
【図６】本発明の実施形態２の分析支援システムの構成を説明する図
【図７】本発明の実施形態２の分析支援システムの動作を説明するブロック図
【図８】本発明の実施形態２の分析支援システムの動作を説明するブロック図
【図９】本発明の実施形態２の分析支援装置の表示部を説明する図
【図１０】本発明の実施形態２の分析支援装置の表示部を説明する図
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照して説明する。
なお、本発明とは、特許請求の範囲又は課題を解決するための手段の項に記載された発明を意味するものであり、以下の実施形態に限定されるものではない。また、少なくともかぎ括弧内の語句は、特許請求の範囲又は課題を解決するための手段の項に記載された語句を意味し、同じく以下の実施形態に限定されるものではない。
特許請求の範囲の従属項に記載の構成及び方法、従属項に記載の構成及び方法に対応する実施形態の構成及び方法、並びに特許請求の範囲に記載がなく実施形態のみに記載の構成及び方法は、本発明においては任意の構成及び方法である。特許請求の範囲の記載が実施形態の記載よりも広い場合における実施形態に記載の構成及び方法も、本発明の構成及び方法の例示であるという意味で、本発明においては任意の構成及び方法である。いずれの場合も、特許請求の範囲の独立項に記載することで、本発明の必須の構成及び方法となる。
実施形態に記載した効果は、本発明の例示としての実施形態の構成を有する場合の効果であり、必ずしも本発明が有する効果ではない。
複数の実施形態がある場合、各実施形態に開示の構成は各実施形態のみで閉じるものではなく、実施形態をまたいで組み合わせることが可能である。例えば一の実施形態に開示の構成を、他の実施形態に組み合わせても良い。また、複数の実施形態それぞれに開示の構成を集めて組み合わせても良い。
発明が解決しようとする課題に記載した課題は公知の課題ではなく、本発明者が独自に知見したものであり、本発明の構成及び方法と共に発明の進歩性を肯定する事実である。
【００１３】
（実施形態１）
図１は、結合データ生成システム１０を示している。以下の説明では、結合データ生成システムが取り扱うデータは自動車に関するデータを想定している。しかしながら、本発明の結合データ生成システムは、いかなる種類のデータの分析にも利用することができる。
【００１４】
車両には複数のセンサ等が搭載され、様々なデータが取得されている。取得された自動車に関するデータを分析することにより、例えば、自動車部品の開発、渋滞予測などに活用することが可能となる。例えば、ＧＰＳにより取得した車両の位置データを分析することにより、車両の移動を分析することができる。しかしながら、ＧＰＳにより取得した位置データは、車両が停止しているにも関わらず変動することがあるため、ＧＰＳによる位置データのみを利用した車両の移動を分析した場合、分析結果の精度が低くなるおそれがある。そのため、車両の移動を分析する場合には、ＧＰＳにより取得した位置データと併せて車輪の速度データ（以下、車輪速データ）を用いてデータ分析を行うことが望ましい。つまり、位置データと車輪速データとは関連性が高いといえ、これらのデータ項目を利用して分析するニーズは高いといえる。そこで、以下の例では、車両の位置データと、車輪速データとを結合する場合を例示して説明する。
【００１５】
図１に示す結合データ生成システム１０は、分析支援装置１００、データ収集装置２００、及びデータべース装置３００を有する。
分析支援装置１００は、データ分析者がデータベース装置３００に保存されたデータの分析を行う場合に、データ分析を支援する装置であり、データベース装置３００にネットワークを介して接続される。分析支援装置１００は、専用のハードであってもよく、あるいは、以下に説明する分析支援装置１００の機能を実現するプログラムを実行する専用又は汎用ＣＰＵ及びメモリ等を有するマイクロコンピュータであってもよい。
データ収集装置２００は、様々な製品に搭載されたセンサ等によって取得されたデータを、ネットワークを介して収集する。図１の例では、データ収集装置２００は自動車に関するデータを収集している。データ収集装置２００はさらに、取集したデータをネットワークを介してデータベース装置に出力する。
データベース装置３００は、データ収集装置２００にて収集されたデータを保存し、蓄積する装置である。なお、図１に示す結合データ生成システム１０では、データ収集装置２００とデータベース装置３００とは別個の独立した装置として構成されている。しかしながら、データ収集装置２００とデータベース装置３００とは一体的な装置として構成されてもよい。データ収集装置２００及びデータベース装置３００は、まとめて本発明の「データベース装置」に相当する。
【００１６】
１．分析支援装置
まず、結合データ生成システム１０が有する分析支援装置１００について説明する。分析支援装置１００は、取得部１０１、解析部１０２、演算部１０３、記憶部１０４、生成部１０５、及び出力部１０６を有する。解析部１０２、演算部１０３、生成部１０５は、機能的には別であるが、１つの装置、例えば、ＣＰＵで実現してもよい。
【００１７】
取得部１０１は、後述するデータベース装置３００のログファイル保存部３０３から、ログファイルを取得する。このログファイルは、データ分析者によって、データを保存するデータベース装置に対して発行された複数のＳＱＬ（本発明の「命令文」に相当）と、複数のＳＱＬのそれぞれに対応する「実行負荷」を示す負荷情報を有している。以下の例では、負荷情報が、実行負荷としてＳＱＬの処理時間を示している場合を説明する。取得部１０１は、ログファイル保存部３０３に自らアクセスしてログファイルを取得してもよく、あるいは、ログファイル保存部３０３から自動的に送信されるログファイルを受信することによって取得してもよい。また、取得部１０１は、ログファイルを定期的に取得してもよく、あるいは、一定の条件を満たした場合、例えば、所定量のログがログファイル保存部３０３に保存された場合にログファイルを取得してもよい。
なお、本明細書では、データベース言語としてＳＱＬを使用しているが、本発明は任意のデータベース言語に適用することが可能である。
【００１８】
ここで、本発明の「実行負荷」とは、命令文を実行することによって発生する負荷を示すものであり、例えば、ＣＰＵの使用量（例えば、使用時間、使用コア数等）、メモリの使用量、命令文の実行を開始してから終了するまでの処理時間等が挙げられる。
【００１９】
解析部１０２は、取得部１０１で取得した複数のログファイルに含まれる複数のＳＱＬの構文解析を実行する。解析部１０２で実行される構文解析では、既存の構文解析ライブラリを使用することができる。解析部１０２はさらに、構文解析を実行した複数のＳＱＬのうち、特定のデータ項目を結合する命令（ＪＯＩＮ命令）を含む単数若しくは複数のＳＱＬ（本発明の「第１の命令文」に相当）を抽出する。以下の例では、特定のデータ項目として、車両の位置データ（本発明の「第１のデータ項目」に相当）と、車両の車輪速データ（本発明の「第２のデータ項目」に相当）とを結合する命令を含むＳＱＬ１を抽出する場合を説明する。
なお、本明細書では、特定の２つのデータ項目を結合する命令を含むＳＱＬ１を抽出する場合のみに着目して説明しているが、当然のことながら、解析部１０２は、２以上の任意のデータ項目を結合する命令を含む、任意のＳＱＬを抽出することができる。
【００２０】
なお、取得部１０１が取得したログファイルには、データ分析者によってＳＱＬが発行されたが、命令処理が適切に実行されなかったＳＱＬが含まれている可能性がある。このような場合、解析部１０２は、命令処理が実行されなかったＳＱＬは抽出せず、以降の演算部１０３で実行負荷を集計しないようにしてもよい。
【００２１】
演算部１０３は、解析部１０２で抽出されたＳＱＬ１に対応する「実行負荷を集計」して、集計負荷を求める。本実施形態では、抽出した各ＳＱＬ１の実行負荷である処理時間を合計し、集計処理時間を求めることを想定している。ここで、後述する記憶部１０４に、既にＳＱＬ１に対応する集計処理時間が保存されている場合には、取得部１０１で新たに取得され、解析部１０２で抽出されたＳＱＬ１に対応する処理時間と、記憶部１０４に既に保存されている集計処理時間とを合計することにより、演算部１０３は新たな集計処理時間を求める。
【００２２】
ここで、本発明の「実行負荷を集計」する、とは、分析支援装置が起動してから集計時点までに取得した全ての負荷を合計することはもちろん、特定の期間に取得した負荷のみを合計してもよく、また、取得部で取得した負荷情報が示す負荷の値を合計することの他、負荷に対して特定の演算を加えた値を合計することをも含む。さらに、「集計」する、とは、複数の実行負荷の値を合計することには限定されず、実行負荷の値が１つの場合に、当該値を集計負荷とする場合をも含む。
【００２３】
記憶部１０４は、演算部１０３で求めたＳＱＬ１に対応する集計処理時間を保存する。この際、集計処理時間が、車両の位置データと車輪速データとを特定の結合条件を示す条件句を用いて結合するＳＱＬの集計処理時間であることを特定して保存する。
なお、記憶部１０４が既にＳＱＬ１に対応する集計処理時間を保存している場合には、演算部１０３で求めた新たな集計処理時間の値に更新して保存する。
【００２４】
生成部１０５は、記憶部１０４に保存された集計処理時間に「基づいて」、車両の位置データと車輪速データとを結合した結合データをデータベース装置に保存するか否かを決定する。例えば、生成部１０５は、記憶部１０４に予め「負荷閾値」、つまり、処理時間閾値を保存しておくとともに、演算部１０３にて集計した集計処理時間と処理時間閾値とを比較する。そして、集計処理時間が処理時間閾値「よりも」高いと判定した場合には、結合データをデータベース装置に保存することを決定する。
そして、結合データをデータベース装置に保存することを決定した場合には、生成部１０５は、車両の位置データと車輪速データとを結合し、結合したデータを後述する結合テーブルに保存する命令（ＩＮＳＥＲＴ命令）を含むＳＱＬ２（本発明の「第２の命令文」に相当）を生成する。生成部１０５はさらに、車両の位置データと車輪速データとを結合した結合データを保存する結合テーブルを生成する命令（ＣＲＥＡＴＥ  ＴＡＢＬＥ命令）を含むＳＱＬ３（本発明の「第３の命令文」）を生成する。なお、ＳＱＬ２は、データ項目を結合し、結合したデータを結合テーブルに保存する命令を含んでいればよく、その他の命令や条件句をさらに含んでいてもよい。ＳＱＬ３も同様である。
【００２５】
ここで、本発明の「基づいて」とは、集計負荷を反映して、結合テーブルをデータベース装置に保存するか否かを決定していれば足り、集計負荷の値を直接的に用いる場合の他、集計負荷以外の要素も考慮する場合も含む。
また、本発明の「負荷閾値」とは、特定の負荷を示す値の場合の他、条件に応じて所定の演算により求まる負荷を示す値も含む。本発明の「よりも」高い、とは、比較対象となる負荷閾値と同じ値を含む場合及び含まない場合の両方が含まれる。
【００２６】
出力部１０６は、生成部１０５で生成されたＳＱＬ２を、データ収集装置２００のＳＱＬ登録部２０２に出力し、ＳＱＬ３をデータベース装置３００のデータベースエンジン３０２に出力する。
【００２７】
２．データ収集装置
次に、データ収集装置２００について説明する。データ収集装置２００は、データ受信部２０１と、ＳＱＬ登録部２０２を有する。
【００２８】
データ受信部２０１（本発明の「受信部」に相当）は、センサ等を用いて測定又は取得されたデータをネットワークを介して受信する。図１では、データ受信部は、例えば、自動車の車載センサが測定した車輪速データ、操舵角データ、方向指示器のＯＮ／ＯＦＦを示す方向指示器データ、ＧＰＳ装置が取得した車両の位置データといったデータを、複数の自動車から受信する。データ受信部２０１は、周期的に、あるいは、任意のタイミングで、受信したデータをデータベース装置３００のデータベースエンジン３０２に出力する。
【００２９】
ＳＱＬ登録部２０２には、分析支援装置１００から出力されたＳＱＬ２の情報が登録される。ＳＱＬ登録部２０２は、周期的に、あるいは、任意のタイミングで、登録されたＳＱＬ２をデータベース装置３００のデータベースエンジン３０２に出力する。
【００３０】
３．データベース装置
データベース装置３００は、データベース３０１、データベースエンジン３０２、及びログファイル保存部３０３を備える。
【００３１】
データベース（本発明の「保存部」に相当）３０１は複数のテーブルを有し、各テーブルには、予め設定されたデータ項目に該当するデータが保存される。テーブルは、１つのデータ項目に該当する１種類のデータ、及び、複数のデータ項目に該当する複数種類のデータのいずれも保存することができる。
【００３２】
データベースエンジン（本発明の「生成部」に相当）３０２は、データべース３０１に対するデータの挿入、抽出、及び、データを格納するテーブルの生成を行う。
具体的には、データベースエンジン３０２は、データ受信部２０１から出力されたデータを取得するとともに、取得したデータを、当該データのデータ項目に対応するテーブルに挿入して保存する。
データベースエンジン３０２はさらに、データ分析者が、インタフェース等の入力部（図示せず）を介してデータベース装置３００に対してＳＱＬを発行すると、データベース３０１内のテーブルから、発行されたＳＱＬに含まれるデータ項目のデータを抽出する。抽出されたデータは、データ分析者のインタフェースに出力される。
さらに、データベースエンジン３０２は、分析支援装置１００の出力部１０６からＳＱＬ３が入力されると、ＳＱＬ３に基づいて、車両の位置データと車輪速データとを結合した結合テーブルをデータベース３０１内に生成する。
また、データベースエンジン３０２は、ＳＱＬ登録部２０２から、ＳＱＬ２が入力されると、ＳＱＬ２が結合するデータ項目に該当するデータをデータベース３０１から抽出して結合するとともに、結合したデータをＳＱＬ３に基づいて生成した結合テーブルに挿入して保存する。
【００３３】
ログファイル保存部３０３は、データベース装置３００に対して発行されたＳＱＬ、及び当該ＳＱＬを実行する処理時間を実行負荷としてログファイルとして保存する。
【００３４】
４．結合データ生成システムの動作
以下、図２−４を用いて、実施形態１の結合データ生成システム１０の動作を説明する。結合データ生成システム１０の動作は、大きく分けて、データ分析者によってＳＱＬが発行されてから、分析支援装置１００の記憶部１０４にＳＱＬに対応する集計負荷として集計処理時間を保存するまでの動作（図２）、記憶部１０４に保存された集計処理時間に基づいて、データベース３０１に結合テーブルを生成する動作（図３）、データベース３０１の結合テーブルに結合データを格納する動作（図４）に分けられる。
【００３５】
まず、図２を用いて、分析支援装置１００の記憶部１０４にＳＱＬに対応する集計処理時間を保存するまでの動作を説明する。
まず、データ分析者は、所望の分析結果を得るために、データベース装置３００に対してＳＱＬを発行する（Ｓ１０１）。Ｓ１０１にて発行されたＳＱＬ、及び当該ＳＱＬを実行するのに要した処理時間を示す負荷情報は、ログファイルとしてデータベース装置３００のログファイル保存部３０３に保存される（Ｓ１０２）。
【００３６】
分析支援装置１００の取得部１０１は、ログファイル保存部３０３に保存されたログファイルを取得する（Ｓ１０３）。解析部１０２は、Ｓ１０３において取得部１０１が取得したログファイルに含まれるＳＱＬの構文解析を実行する（Ｓ１０４）。そして、車両の位置データと車輪速データとを結合する命令を含むＳＱＬ１を抽出する（Ｓ１０５）。
【００３７】
次いで、演算部１０３は、ログファイルに含まれる負荷情報のうち、ＳＱＬ１に対応する負荷情報が示す処理時間を集計して、集計処理時間を求める（Ｓ１０６）。Ｓ１０６にて求めた集計処理時間は、車両の位置データ及び車輪速データのデータ項目及びこれらのデータ項目を結合する結合条件を示す条件句に対応付けて記憶部１０４に保存される（Ｓ１０７）。位置データと車輪速データ以外のデータ項目を結合する命令を含むＳＱＬに対応する処理時間を集計し保存する場合には、Ｓ１０５−Ｓ１０７のステップを同様に実行する。したがって、記憶部１０４には、結合されるデータ項目の組み合わせ毎に集計処理時間が保存されることになる。
【００３８】
次に、図３を用いて、記憶部１０４に保存された集計処理時間に基づいて、データベース３０１に結合テーブルを生成する動作を説明する。
分析支援装置１００の生成部１０５は、記憶部１０４に保存された集計処理時間をモニタし、集計処理時間と、記憶部１０４に保存されている処理時間閾値とを比較する（Ｓ２０１）。ここで、集計処理時間が処理時間閾値よりも低いと判定した場合には、生成部１０５は集計処理時間のモニタを継続する。これに対し、集計処理時間が処理時間閾値よりも高いと判定した場合には、車両の位置データと車輪速データとを結合した結合データをデータベース装置３００のデータベース３０１に保存することを決定する（Ｓ２０２）。そして、車両の位置データと車輪速データとを結合し、特定のテーブルに保存する命令を含むＳＱＬ２を生成する（Ｓ２０３）。さらに、車両の位置データと車輪速データとを結合した結合データを保存する結合テーブルを生成する命令を含むＳＱＬ３を生成する（Ｓ２０４）。Ｓ２０３、２０４において生成されたＳＱＬ２、３は、出力部１０６を介して、データ収集装置２００のＳＱＬ登録部２０２、及びデータベース装置３００のデータベースエンジン３０２にそれぞれ出力される（Ｓ２０５）。
【００３９】
ＳＱＬ登録部２０２は、Ｓ２０５にて出力されたＳＱＬ２を登録する（Ｓ２０６）。また、データベースエンジン３０２は、Ｓ２０５にて出力されたＳＱＬ３に基づいて、車両の位置データと車輪速データとを結合した結合テーブルをデータベース３０１内に生成する（Ｓ２０７）。
【００４０】
次に、図４を用いて、データベース３０１の結合テーブルに結合データを保存する動作を説明する。
データ収集装置２００のデータ受信部２０１が、自動車から車両に関する複数のデータを受信する（Ｓ３０１）。データ受信部２０１が受信したデータは、データベースエンジン３０２に出力され（Ｓ３０２）、その後、当該データのデータ項目に該当するデータベース内のテーブルにそれぞれ挿入して保存される（Ｓ３０３）。ＳＱＬ登録部２０２は、図３のＳ２０６にて登録されたＳＱＬ２をデータベースエンジン３０２に出力する（Ｓ３０４）。なお、データ受信部２０１及びＳＱＬ登録部２０２は、周期的又は任意のタイミングで、受信したデータ及びＳＱＬ２をデータベースエンジン３０２にそれぞれ出力することができる。
【００４１】
次いで、データベースエンジン３０２は、ＳＱＬ登録部２０２から出力されたＳＱＬ２が結合するデータ項目に該当するデータをデータベース３０１から抽出するとともに、抽出したデータをＳＱＬ２に基づいて結合する（Ｓ３０５）。そして、データベースエンジン３０２は、ＳＱＬ２に基づいて結合したデータを図３のＳ２０７において生成した結合テーブルに挿入し、保存する（Ｓ３０６）。
【００４２】
図４に示す一連の動作では、例えば、データ受信部２０１は、２０１８年１月１日に複数のデータを自動車から受信する（Ｓ３０１）と、受信日の翌日（２０１８年１月２日）に、受信したデータをまとめてデータベースエンジン３０２に出力する（Ｓ３０２）。そして、データ受信部２０１から出力されたデータがデータベース内のテーブルに保存（Ｓ３０３）されると、ＳＱＬ登録部２０２は、車両の位置データ及び車輪速データを結合した結合データを生成して、結合テーブルに保存する命令を含むＳＱＬ２をデータベースエンジン３０２に出力する（Ｓ３０５）。ここで、ＳＱＬ２は、データ取得日時を２０１８年１月１日に限定する条件句を含むことにより、２０１８年１月１日に取得されたデータのみについて結合データを生成する命令文とすることができる。そして、データベースエンジン３０２は、データベース３０１内のテーブルから、データ取得日時が２０１８年１月１日である車両の位置データ及び車輪速データを抽出するとともに、これらのデータを結合した結合データを結合テーブルに保存する。これにより、過去の結合データに追加して、新たに取得されたデータの結合データを結合テーブルに蓄積することができる。
【００４３】
以上のとおり、実施形態１によれば、データ項目を結合する命令文のうち集計負荷が高い命令文については、当該命令文によって結合されるデータ項目を予め結合した状態で、データベースのテーブルに保存することができる。その結果、データ分析者がデータを結合して分析する際、テーブルに保存された結合データを取得することにより、データの結合に要する時間を大幅に短縮することが可能となる。
【００４４】
（変形例１）
上記実施形態１では、生成部１０５が記憶部１０４に保存された集計処理時間の値をモニタし、集計処理時間が処理時間閾値よりも高くなると自動的に、結合データをデータベース装置３００に保存することを決定した。しかしながら、生成部１０５は、集計処理時間に加えて、データ分析者の指示に基づいて、結合データをデータベース装置３００に保存してもよい。
【００４５】
本変形例１を図５に示す。図１と同じ構成については同じ符号を付し、説明は省略する。本変形例１の分析支援装置１００は、図１に示す構成に加えて、メッセージ生成部１０７、表示部１０８、ユーザ指示取得部１０９とを備えている。なお、メッセージ生成部１０７、表示部１０８は、まとめて本発明の「メッセージ制御部」に相当する。
【００４６】
メッセージ生成部１０７は、集計処理時間に基づいて、データ分析者（本発明の「ユーザ」に相当）に対して、結合データをデータベース装置３００に保存することを推奨するメッセージを生成し、表示部１０８は生成されたメッセージをデータ分析者に対して表示する。例えば、実施形態１と同様、生成部１０５は集計処理時間と処理時間閾値とを比較して、集計処理時間が処理時間閾値よりも高いと判定した場合に、メッセージ生成部１０７がメッセージを生成する。
【００４７】
ユーザ指示取得部１０９は、表示部１０８に表示されたメッセージを見たデータ分析者による指示、すなわち、結合データをデータベース装置３００に保存する指示を取得する。
【００４８】
ユーザ指示取得部１０９が、結合データをデータベース装置に保存する指示を取得した場合、生成部１０５は、結合データをデータベース装置３００に保存することを決定する。この後の処理は、実施形態１と同様である。
【００４９】
本変形例１によれば、データ分析者が必要とする結合テーブル及び結合データのみをデータベース装置に生成することが可能となるため、データベース内に不要な結合テーブルや結合データが生成及び保存されるのを抑制し、データベースの容量を有効に活用することが可能となる。
【００５０】
（変形例２）
上記実施形態１では、ＳＱＬの処理時間を集計した集計処理時間に基づいて、結合データをデータベース装置に保存するか否かを決定した。しかしながら、同じデータ項目を結合する命令を含むＳＱＬであっても、当該ＳＱＬを発行したデータ分析者によって、そのＳＱＬの重み、すなわち、情報の価値は異なる。
【００５１】
そこで、本変形例２では、ＳＱＬを発行したデータ分析者に応じて実行負荷である処理時間に重み付けをして集計し、当該データ分析者を考慮した集計負荷を求めることにより、有用なＳＱＬによって結合されるデータ項目を結合する結合テーブルをデータベース装置に保存する。
【００５２】
本変形例２では、データベース装置３００のログファイル保存部３０３は、ログファイルとして、データ分析者（本発明の「ユーザ」に相当）が発行したＳＱＬ及び当該ＳＱＬの処理時間に加えて、データベース装置３００に対してＳＱＬを発行した「データ分析者の情報」を保存する。そして、分析支援装置１００の取得部１０１は、ＳＱＬ及び当該ＳＱＬの処理時間に加えて、「データ分析者の情報」を取得する。本明細書では、「データ分析者の情報」として、データ分析者のＩＤ情報を取得する例を説明する。
ここで、本発明の「データ分析者（ユーザ）の情報」とは、各ユーザを識別する情報はもちろん、ユーザの属性や、ユーザのデータ分析にかかる経験を示す情報であってもよい。
【００５３】
本変形例２の記憶部１０４は、データ分析者のＩＤ情報と、当該データ分析者のデータ分析にかかる経験年数とを対応付けて予め保存しておく。記憶部１０４はさらに、データ分析者の経験年数に応じて重み付けをするウエイト量の情報を予め保存しておく。例えば、分析経験５年以上の経験を有するデータ分析者に対するウエイト量ｎ１、及び、分析経験５年未満の経験を有するデータ分析者に対するウエイト量ｎ２を、それぞれ保存しておく。
【００５４】
演算部１０３は、データ分析者の情報に応じて処理時間に重み付けをして、集計処理時間を求める。
【００５５】
例えば、取得部１０１が取得したログファイルに、車両の位置データと車輪速データとを結合する命令を含むＳＱＬ１に対応するログが２つ存在（ＳＱＬ１−１、ＳＱＬ１−２）し、ＳＱＬ１−１が、データの分析経験が５年以上のデータ分析者によって発行され、処理時間がｘ時間のＳＱＬであり、ＳＱＬ１−２は、データの分析経験が５年未満のデータ分析者によって発行され、処理時間がｙ時間のＳＱＬであるとする。このとき、実施形態１による集計負荷は（ｘ＋ｙ）時間となる。
これに対し、本変形例２では、演算部１０３は、データ分析者の各ＩＤ情報に基づいて記憶部に保存されたデータ分析者の経験年数を参照するとともに、経験年数に基づくウエイト量を抽出する。そして、ＳＱＬ１−１の処理時間ｘにはウエイト量ｎ１を、ＳＱＬ１−２の処理時間ｙにはウエイト量ｎ２をそれぞれ重み付けして、集計処理時間（ｎ１×ｘ＋ｎ２×ｙ）を求める。そして、重み付けをして求めた集計処理時間に基づいて、生成部１０６は、結合データをデータベース装置３００に保存するか否かを決定する。
【００５６】
本変形例２によれば、データ分析者に応じて重み付けをした集計負荷に基づいて、結合テーブルの生成要否を決定することが可能となる。そして、より価値の高い結合テーブルのみをデータベース装置３００に生成することにより、データベースの容量を有効に活用することが可能となる。
【００５７】
なお、上述した各変形例は、単独で用いることはもちろん、これらを組み合わせて用いることもできる。
【００５８】
（実施形態２）
実施形態２では、データ分析者によって発行されたＳＱＬに関するログファイルを利用して、データ分析者を支援する分析支援装置を説明する。
【００５９】
図６は、実施形態２による分析支援装置４００、及び、データ収集システム２００、データベース装置３００を有する分析支援システム２０を示している。以下に、分析支援装置４００の構成について説明する。なお、データ収集装置２００、データベース装置３００の各構成は実質的に実施形態１と同じであるため、詳しい説明は省略する。当然のことながら、本実施形態２の分析支援装置４００は、実施形態１及び各変形例の結合データ生成システムに適用することが可能である。
【００６０】
１．分析支援装置
本実施形態２の分析支援装置４００は、取得部４０１、解析部４０２、演算部４０３、記憶部４０４、入力部４０５、決定部４０６、及び表示部４０７を備える。解析部４０２、演算部４０３、決定部４０６は、機能的には別であるが、１つの装置、例えば、ＣＰＵで実現してもよい。
【００６１】
取得部４０１は、データベース装置３００のログファイル保存部３０３に保存されたログファイルを取得する。ログファイルは、データ分析者からデータベース装置３００に対して発行された複数のＳＱＬ（本発明の「命令文」に相当）を有している。
なお、実施形態１のログファイルには、ＳＱＬとともに、ＳＱＬの処理時間を有していたが、本実施形態２のログファイルは、発行されたＳＱＬの情報のみを有していれば足りる。しかしながら、ログファイルは、当然のことながら、ＳＱＬ以外の情報を有していてもよい。
【００６２】
解析部４０２は、取得部４０１で取得したログファイルに含まれる複数のＳＱＬの構文解析を実行する。解析部４０２はさらに、構文解析を実行した複数のＳＱＬのうち、特定のデータ項目を結合する命令を含む単数若しくは複数のＳＱＬ（本発明の「第１の命令文」に相当）を抽出する。実施形態１と同様、本明細書では、特定のデータ項目として、車両の位置データ（本発明の「第１のデータ項目」に相当）と、車両の車輪速データ（本発明の「第２のデータ項目」に相当）とを結合する命令を含むＳＱＬ１を抽出する場合を説明する。
【００６３】
演算部４０３は、解析部４０２で抽出されたＳＱＬ１の「実行頻度」を求める。以下では、ＳＱＬ１が発行された回数（以下、実行回数）を実行頻度として求める例を説明する。ここで、後述する記憶部４０４に、既にＳＱＬ１に対応する実行回数が保存されている場合には、取得部４０１で新たに取得され、解析部で抽出されたＳＱＬ１の実行回数と、記憶部に既に保存されているＳＱＬ１の実行回数とを演算することにより、実行回数を求める。
【００６４】
ここで、「実行頻度」とは、命令文が実行された回数を直接的又は間接的に示すものであれば足り、命令文の命令処理が完了したかを問わず命令文が実行された回数の他、命令文が実行されて命令処理が完了した回数、命令文の実行回数の変化率等であってもよい。
【００６５】
記憶部４０４は、演算部４０３で求めたＳＱＬ１の実行回数を保存する。この際、実行回数が、車両の位置データと車輪速データとを特定の結合条件を示す条件句を用いて結合するＳＱＬの実行回数であることを特定して保存する。なお、記憶部４０４が既にＳＱＬ１の実行回数を保存している場合には、演算部４０３で求めた新たな実行回数の値に更新して保存する。記憶部はさらに、取得部４０１で取得したＳＱＬを記憶してもよい。
【００６６】
入力部４０５には、分析支援装置を使用するデータ分析者（本発明の「ユーザ」に相当）によって、分析対象として着目しているデータ項目である分析対象データ項目（本発明の「第１のデータ項目」に相当）が入力される。例えば、車両の位置データの項目が、分析対象データ項目として入力部４０５に入力される。
入力部（本発明の「第２の入力部」に相当）４０５にはさらに、後述する表示部４０７に表示されるデータ項目のうち、データ分析者が選択したデータ項目が入力される。
【００６７】
決定部４０６は、記憶部４０４に保存されたＳＱＬ１の実行回数に「基づいて」、過去に発行されたＳＱＬにおいて分析対象データ項目と結合されたデータ項目（以下、結合実績データ項目）（本発明の「第２のデータ項目」に相当）、例えば、車両の車輪速データの項目をデータ分析者に表示するか否かを決定する。具体的には、決定部４０６は、記憶部４０４に保存された実行回数のうち、分析対象データ項目と他のデータ項目とを結合するＳＱＬの実行回数を抽出し、その中から実行回数が高いＳＱＬ（例えば、実行回数が高い順に５つのＳＱＬ）において、分析対象データ項目と結合されたデータ項目を結合実績データ項目として、データ分析者に表示することを決定する。
あるいは、決定部４０６は、記憶部４０４に保存された実行回数のうち、分析対象データ項目と他のデータ項目とを結合するＳＱＬの実行回数を抽出するとともに、抽出した実行回数と、記憶部４０４に保存されている回数閾値とを比較する。そして、実行回数が回数閾値「よりも」高いと判定した場合には、そのＳＱＬにおいて分析対象データ項目と結合されたデータ項目を結合実績データ項目として、データ分析者に表示することを決定してもよい。
【００６８】
ここで、本発明の「基づいて」とは、実行頻度を反映して、第２のデータ項目をユーザに表示するか否かを決定していれば足り、実行頻度の値を直接的に用いる場合の他、実行頻度以外の要素も考慮する場合も含む。
【００６９】
表示部４０７は、決定部４０６において決定された結合実績データ項目をデータ分析者に表示する。なお、データ分析者に表示する結合実績データ項目は単数または複数のいずれであってもよい。また、表示部４０７は、結合実績データ項目と共に、分析対象データ項目と結合実績データ項目とを結合する命令を含むＳＱＬの実行回数を表示してもよい。表示部４０７はさらに、分析対象データ項目と、データ分析者によって選択された結合実績データ項目とを結合するＳＱＬを表示してもよい。
【００７０】
２．分析支援システムの動作
図７、８を用いて、実施形態２の分析支援システム２０の動作を説明する。
【００７１】
図７は、分析支援装置４００の記憶部４０４にデータ項目の組み合わせ毎に実行回数を保存する動作を示している。図７のＳ４０１乃至Ｓ４０５は図２のＳ１０１乃至Ｓ１０５に対応しているため、詳しい説明は省略する。Ｓ４０６において、演算部４０３は、Ｓ４０５において抽出したＳＱＬ、例えば、車両の位置データと車輪速データとを結合する命令を含むＳＱＬの実行回数を求める。Ｓ４０６にて求めた実行回数は、車両の位置データと車輪速データとを結合するＳＱＬの実行回数であることを特定して保存される（Ｓ４０７）。
実施形態１と同様、位置データと車輪速データ以外のデータ項目を結合する命令を含むＳＱＬの実行回数を求めて保存する場合には、Ｓ４０５−Ｓ４０７のステップを同様に実行する。したがって、記憶部４０４には、結合されるデータ項目の組み合わせ毎の実行回数が保存されることになる。
【００７２】
図８は、記憶部４０４に保存された実行回数に基づいて、データ分析者に結合実績データ項目を表示する動作を示している。まず、データ分析者によって、入力部４０５に分析対象データ項目が入力される（Ｓ５０１）。次いで、決定部４０６は、記憶部４０４に保存された実行回数のうち、Ｓ５０１にて入力された分析対象データ項目と他のデータ項目とを結合するＳＱＬの実行回数を抽出する（Ｓ５０２）。
【００７３】
図８に示す例では、決定部４０６は、分析対象データ項目と他のデータ項目とを結合するＳＱＬの実行回数のうち、実行回数が高い上位５位のものを抽出する（Ｓ５０３）。そして、Ｓ５０３にて抽出した実行回数のＳＱＬにおいて、分析対象データ項目と結合されたデータ項目を、結合実績データ項目としてデータ分析者に表示することを決定する（Ｓ５０４）。結合実績データ項目として決定されたデータ項目は、表示部４０７に表示される（Ｓ５０５）。なお、段落００６７にて上述したとおり、データ分析者に表示される結合実績データ項目は実行回数に基づいて決定されていればよく、Ｓ５０３、Ｓ５０４における表示する結合実績データ項目の決定方法は、図８の例に限定されるものではない。
【００７４】
さらに、データ分析者によって、表示部４０７に表示された結合実績データ項目の中から１以上の結合実績データ項目が選択される（Ｓ５０６）。そして、入力部において選択された結合実績データ項目が入力された場合、分析対象データ項目と、データ分析者によって選択された結合実績データ項目とを結合するＳＱＬを表示部に表示する（Ｓ５０７）。
【００７５】
以上のとおり、実施形態２によれば、データ分析者の分析対象データ項目と結合される頻度が高いデータ項目を、結合実績データ項目としてデータ分析者に表示することにより、データ分析者が、過去の実績に基づいて、分析対象データ項目が他のいかなるデータ項目と結合されていたかを知るのを補助し、データ分析を支援することが可能となる。
【００７６】
なお、実施形態１の変形例２と同様、演算部４０３は、データベース装置３００に対してＳＱＬを発行したデータ分析者の情報に応じて、実行回数に重み付けをしてもよい。例えば、データの分析経験が豊富なデータ分析者によって発行されたＳＱＬに対し、データの分析経験が未熟なデータ分析者によって発行されたＳＱＬよりも重いウエイト量を設定して実行回数を算出する。その結果、有用な結合実績データ項目を表示することが可能となる。
【００７７】
（変形例１）
上記実施形態２では、過去に分析対象データ項目と結合された頻度が高いデータ項目を結合実績データ項目としてデータ分析者に表示しているが、結合実績データ項目に代えて、あるいは、結合実績データ項目に加えて、分析対象データ項目と結合される頻度が高いデータ項目が保存されているデータベース内のテーブルをデータ分析者に表示してもよい。
【００７８】
本変形例１では、決定部４０６は、記憶部４０４に保存されたＳＱＬ１の実行回数に基づいて、過去に発行されたＳＱＬ１において分析対象データ項目と結合されたデータ項目が属するテーブルＴを表示部４０７に表示するか否かを決定する。
【００７９】
なお、１つのテーブルに複数のデータ項目が保存されている場合には、分析対象データ項目と、テーブルに保存されたデータ項目それぞれとを結合するＳＱＬの実行回数を合計するとともに、合計した実行回数に基づいて、テーブルを表示部４０７に表示するか否かを決定してもよい。
【００８０】
（変形例２）
実施形態２では、表示部４０７に結合実績データ項目を表示して、データ分析者によるデータ項目の選択を支援する構成を説明した。本変形例では、結合実績データ項目に加えて、あるいは、結合実績データ項目に代えて、それ以外の情報をデータ分析者に表示することにより、データ分析をより一層支援する構成を説明する。実施形態２と同様、図６を用いて本変形例を説明する。
【００８１】
解析部４０２は、取得部４０１で取得したログファイルに含まれる複数のＳＱＬの構文解析を実行し、特定のデータ項目と共に使用される特定の「条件句」を含む単数若しくは複数のＳＱＬ（本発明の「第２の命令文」に相当）を抽出する。以下の説明では、データ項目として車両の位置データと、特定の条件句として論理和（ＯＲ）とを含むＳＱＬ１を抽出する場合を説明する。
【００８２】
ここで、本発明の「条件句」とは、命令文において条件を指定するために使用されるものであり、論理演算子（例えば、論理和（ＯＲ）、論理積（ＡＮＤ）、否定（ＮＯＴ）等）や比較演算子（例えば、等号（＝）、不等号（＜，＞）等）はもちろん、これらの論理演算子や比較演算子と共に使用される条件や集合も含まれる。
【００８３】
演算部４０３は、解析部４０２で抽出されたＳＱＬ１の実行回数（本発明の「第２の実行頻度」に相当）を求める。実施形態２と同様、記憶部４０４に、既にＳＱＬ１の実行回数が保存されている場合には、取得部４０１で新たに取得され、解析部４０２で抽出されたＳＱＬ１の実行回数と、記憶部４０４に既に保存されているＳＱＬ１の実行回数とを演算することにより、実行回数を求める。
【００８４】
記憶部４０４は、演算部４０３で求めたＳＱＬ１の実行回数を保存する。この実行回数は、車両の位置データと論理和（ＯＲ）とを含むＳＱＬの実行回数であることを特定して保存される。
【００８５】
決定部４０６は、記憶部４０４に保存されたＳＱＬ１の実行回数に基づいて、過去に発行されたＳＱＬにおいて分析対象データ項目と共に使用された条件句、例えば、論理和の条件句をデータ分析者に表示するか否かを決定する。具体的には、決定部４０６は、記憶部４０４に保存された実行回数のうち、条件句による条件の下で分析対象データ項目と他のデータ項目とを結合するＳＱＬの実行回数を抽出し、その中から実行回数が高いＳＱＬにおいて使用される条件句を表示部４０７に表示することを決定する。実施形態２と同様、実行回数と回数閾値とを比較し、比較結果に基づいて、条件句をデータ分析者に表示することを決定してもよい。
【００８６】
表示部４０７は、決定部４０６において決定された条件句を表示する。入力部４０５には、表示部４０７に表示される条件句のうち、データ分析者によって選択された条件句が入力される。そして、入力部４０５に、選択された条件句が入力された場合、表示部４０７はさらに、分析対象データ項目と、データ分析者によって選択された条件句とを含むＳＱＬを表示する。
【００８７】
図９は、データ分析者によって分析対象データ項目が入力され、さらに、結合実績テーブル、結合実績データ項目、及び条件句が表示された画面の一例を示している。
図９の例では、データ分析者は、分析対象データ項目として「データ列Ｃ＿１」を入力している。その結果、「データ列Ｃ＿１」と結合される頻度が高いデータ項目が保存されたテーブルとして、「テーブルＡ」「テーブルＭ」「テーブルＪ」が表示され、「データ列Ｃ＿１」と結合される頻度が高いデータ項目として、「データ列Ａ＿１」「データ列Ａ＿９」「データ列Ｍ＿６」が表示されている。さらに、「データ列Ｃ＿１」と共に使用される頻度が高い条件句として、「内部」「左外部」「完全外部」が表示され、データを集約する条件句として、データ収集の「時期（Ｍｏｎｔｈ）」や「地域（Ａｒｅａ）」が表示されている。なお、各項目の右側の棒グラフは、各項目の実行頻度を示している。例えば、集約条件句として、データ収集の「時期」は「地域」の約２倍の頻度で使用されていることを示している。
【００８８】
なお、図９に示す条件句のうち、「内部（INNER JOIN）」とは、積集合のことであり、ＳＱＬにおいて先に記載したテーブル名をＬ、後に記載したテーブル名をＲとすると、Ｌ∩Ｒである。「両テーブルで識別子と時刻が同じである」といった結合条件に基づき両テーブルの行同士を結合したものを出力する。結合条件を適用した結果、テーブルＲ側に結合対象行がなかったテーブルＬの行と、テーブルＬ側に結合対象行がなかったテーブルＲの行は出力されない。
「左外部（LEFT OUTER JOIN）」とは、差集合Ｌ−Ｒに積集合Ｌ∩Ｒを加えたものである。積集合に加えて、結合条件を適用した結果、結合対象行がなかったテーブルＬの行もテーブルＲの行と結合しない形で出力される。
また、「完全外部（FULL OUTER JOIN）」とは、和集合Ｌ∪Ｒである。結合条件に合致した両テーブルの行は結合された条件で出力され、加えて結合条件に合致しなかったテーブルＬおよびテーブルＲの行も他方と結合しない形で出力される。
当然のことながら、条件句は、これらの例に限定されるものではない。
【００８９】
データ分析者は、図９に示す画面に表示された結合実績テーブル、結合実績データ項目、及び条件句から、データ分析に使用する項目をそれぞれ選択する。図１０は、データ分析者が、図９に示す画面を用いて、データ分析に使用する項目を選択した後の画面を示す一例である。図１０では、結合実績テーブルから「テーブルＡ」、結合実績データ項目から「Ａ＿１」「Ａ＿９」、条件句として「地域（Ａｒｅａ）」が選択されており、これらを全て含むＳＱＬが画面下部に表示されている。
【００９０】
以上の変形例１、２によれば、データ分析者の分析対象データ項目と結合される頻度が高いテーブルや条件句をデータ分析者に表示することにより、データ分析者は、過去の実績に基づいて、分析対象データ項目が他のいかなるテーブルや条件句と結合されていたかを知るのを補助し、データ分析を支援することが可能となる。
【００９１】
本実施形態２による分析支援装置の発明の部分は、以下の通りである。
（発明１）
データを保存するデータベース装置に対して発行された複数の命令文の分析を行う分析支援装置（４００）であって、
前記データベース装置から、前記複数の命令文を取得する取得部（４０１）と、
構文解析により、前記複数の命令文のうち第１のデータ項目と第２のデータ項目とを結合する命令を含む第１の命令文を抽出する解析部（４０２）と、
前記第１の命令文の第１の実行頻度を求める演算部（４０３）と、
当該分析支援装置を使用するユーザにより前記第１のデータ項目が入力される入力部（４０５）と、
前記第１の実行頻度に基づいて、前記第２のデータ項目を表示することを決定する決定部（４０６）と、
前記第２のデータ項目を表示する表示部（４０７）と、
を備える、分析支援装置（４００）。
（発明２）
前記決定部は、前記第２のデータ項目が属するテーブルを表示することを決定し、
前記表示部は、前記テーブルを表示する、
発明１記載の分析支援装置。
（発明３）
前記解析部はさらに、前記複数の命令文のうち、前記第１のデータ項目と条件句を含む第２の命令文を抽出し、
前記演算部は、前記第２の命令文の第２の実行頻度を求め、
前記決定部は、前記第２の実行頻度に基づいて、前記条件句を表示することを決定し、
前記表示部は、前記条件句を表示する、
発明１記載の分析支援装置。
（発明４）
前記表示部に表示されるとともに前記ユーザにより選択された前記第２のデータ項目が入力される第２の入力部（４０５）をさらに備え、
前記第２の入力部に前記第２のデータ項目が入力された場合、前記表示部は前記第１の命令文を表示する、
発明１記載の分析支援装置。
（発明５）
前記表示部に表示されるとともに前記ユーザにより選択された前記条件句が入力される第２の入力部（４０５）をさらに備え、
前記第２の入力部に前記条件句が入力された場合、前記表示部は前記第２の命令文を表示する、
発明３の分析支援装置。
（発明６）
データを保存するデータベース装置に対して発行された複数の命令文の分析を行う分析プログラムであって、
前記データベース装置から、前記複数の命令文を取得するステップと、
構文解析により、前記複数の命令文のうち第１のデータ項目と第２のデータ項目とを結合する命令を含む第１の命令文を抽出するステップと、
前記第１の命令文の第１の実行頻度を求めるステップと、
当該分析支援装置を使用するユーザにより前記第１のデータ項目が入力されるステップと、
前記第１の実行頻度に基づいて、前記第２のデータ項目を表示することを決定するステップと、
前記第２のデータ項目を表示するステップと、
を含む、分析支援プログラム。
【００９２】
（総括）
以上、本発明の各実施形態における結合データ生成システム、分析支援装置の特徴について説明した。
【００９３】
上記実施形態で使用した用語は例示であるので、同義の用語、あるいは同義の機能を含む用語に置き換えてもよい。
【００９４】
実施形態の説明に用いたブロック図は、装置等の構成を機能毎に分類及び整理したものである。これらの機能ブロックは、ハードウェア又はソフトウェアの任意の組み合わせで実現される。また、機能を示したものであることから、かかるブロック図は方法の発明、及び当該方法を実現するプログラムの発明の開示としても把握できるものである。
【００９５】
なお、本発明の結合データ生成方法は、製造方法の発明であるため、結合データの生成方法についてはもちろん、当該方法によって生成された結合データに対しても権利範囲が及ぶことに留意されたい。
【００９６】
各実施形態に記載した処理、フロー、及び方法として把握できる機能ブロックについては、一のステップで他のステップの結果を利用する関係にある等の制約がない限り、順序を入れ替えても良い。
【００９７】
各実施形態、及び本発明で使用する「第１」「第２」の用語は、同種の２以上の構成や方法を区別するために使用しており、順序や優劣を限定するものではない。
【００９８】
本発明は、各実施形態で説明した構成及び機能を有する専用のハードウェアで実現できるだけでなく、メモリやハードディスク等の記憶媒体に記憶した本発明を実現するためのプログラム、及びこれを実行可能な専用又は汎用ＣＰＵ及びメモリ等を有する汎用のハードウェアとの組み合わせとしても実現できる。
【００９９】
専用や汎用のハードウェアの記憶媒体（外部記憶装置（ハードディスク、ＵＳＢメモリ、ＣＤ／ＢＤ等）、内部記憶装置（ＲＡＭ、ＲＯＭ等））に格納されるプログラムは、記憶媒体を介して、あるいは記憶媒体を介さずにサーバから通信回線を経由して、専用又は汎用のハードウェアに提供することもできる。これにより、プログラムのアップグレードを通じて常に最新の機能を提供することができる。
【産業上の利用可能性】
【０１００】
本明細書においては、主として自動車に関するデータの結合データ生成システム及び分析支援装置を説明したが、任意のデータを結合するシステム及び分析支援装置に適用することが可能である。
【符号の説明】
【０１０１】
１０  結合データ生成システム、１００  分析支援装置、２００  データ収集装置、３００  データベース装置、１０１  取得部、１０２  解析部、１０３  演算部、１０４  記憶部、１０５  生成部、１０６  出力部、１０７  メッセージ生成部、１０８  表示部、１０９  ユーザ指示取得部、２０１  データ受信部、３０１  データベース
【図１】
2020060953.tif 000003
【図２】
2020060953.tif 000004
【図３】
2020060953.tif 000005
【図４】
2020060953.tif 000006
【図５】
2020060953.tif 000007
【図６】
2020060953.tif 000008
【図７】
2020060953.tif 000009
【図８】
2020060953.tif 000010
【図９】
2020060953.tif 000011
【図１０】
2020060953.tif 000012