(57)【要約】  データレイクに格納されるデータを用いた処理を実行する計算機システムであって、データレイクを用いた処理に利用されたコマンドである履歴コマンドに関する情報を格納する履歴情報を管理し、ユーザからフィルタリング条件を含むレコメンド要求を受信した場合、フィルタリング条件に基づいて履歴情報を参照することによって候補コマンドを特定し、候補コマンドの重要度を算出し、重要度に基づいてユーザに提示するレコメンドコマンドを選択し、レコメンドコマンドを提示するための第１提示情報を生成し、レコメンドコマンドの実行要求を受け付けた場合、レコメンドコマンドに基づいて処理を実行する。
2020183538.tif 000002
【特許請求の範囲】
【請求項１】
データレイクに格納されるデータを用いた処理を実行する計算機システムであって、
前記データレイクは、少なくとも一つの属性から構成されるデータブロックを格納するデータが、当該データのデータ構造に依存しない形式で格納され、
前記計算機システムは、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
前記データレイクを用いた処理に利用されたコマンドである履歴コマンドに関する情報を格納する履歴情報を管理し、
前記少なくとも一つの計算機は、
第１ユーザからフィルタリング条件を含むレコメンド要求を受信した場合、前記フィルタリング条件に基づいて前記履歴情報を参照することによって候補コマンドを特定し、
前記候補コマンドの実行履歴に基づいて、前記候補コマンドの重要度を算出し、
前記重要度に基づいて、前記第１ユーザに提示するレコメンドコマンドを選択し、
前記選択されたレコメンドコマンドを提示するための第１提示情報を生成し、前記第１提示情報を出力し、
前記レコメンドコマンドの実行要求を受け付けた場合、前記レコメンドコマンドに基づいて処理を実行することを特徴とする計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
前記少なくとも一つの計算機は、前記履歴コマンドの各々の前記計算機システムにおける重要性を示す第１指標を前記重要度として算出することを特徴とする計算機システム。
【請求項３】
請求項１に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記履歴コマンドの各々の前記計算機システムにおける重要性を示す第１指標を算出し、
前記計算機システムを使用する複数のユーザの各々について、前記履歴コマンドの各々の重要性を示す第２指標を算出し、
前記計算機システムを使用する複数のユーザの各々について、前記第１指標及び前記第２指標を用いて第３指標を算出し、
前記第１ユーザの前記第３指標及び他のユーザの前記第３指標に基づいて、前記第１ユーザと類似するユーザを特定し、
前記特定されたユーザの前記履歴コマンドの各々の前記第３指標の平均値を、前記履歴コマンドの各々の前記重要度として算出することを特徴とする計算機システム。
【請求項４】
請求項２又は請求項３に記載の計算機システムであって、
前記少なくとも一つの計算機は、
前記データレイクに格納されるデータの各々に格納される前記データブロックの属性を分析して、
同一種類の属性を識別するためのタグを管理するためのタグ辞書を生成し、
前記レコメンドコマンドとは異なるコマンドの入力を受け付ける場合、処理対象のデータに格納されるデータブロックの属性に付与されたタグ、及び当該タグと同一のタグが付与された属性を含むデータブロックを格納するデータを提示するための第２提示情報を生成し、前記第２提示情報を出力することを特徴とする計算機システム。
【請求項５】
請求項２又は請求項３に記載の計算機システムであって、
前記フィルタリング条件は、ユーザの特性に関する情報、及びコマンドが実行された日時に関する情報の少なくともいずれかを含むことを特徴とする計算機システム。
【請求項６】
計算機システムが実行するデータレイクに格納されたデータを用いた処理方法であって、
前記データレイクは、少なくとも一つの属性から構成されるデータブロックを格納するデータが、当該データのデータ構造に依存しない形式で格納され、
前記計算機システムは、
プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、
前記データレイクを用いた処理に利用されたコマンドである履歴コマンドに関する情報を格納する履歴情報を管理し、
前記処理方法は、
前記少なくとも一つの計算機が、第１ユーザからフィルタリング条件を含むレコメンド要求を受信した場合、前記フィルタリング条件に基づいて前記履歴情報を参照することによって候補コマンドを特定する第１のステップと、
前記少なくとも一つの計算機が、前記候補コマンドの実行履歴に基づいて、前記候補コマンドの重要度を算出する第２のステップと、
前記少なくとも一つの計算機が、前記重要度に基づいて、前記第１ユーザに提示するレコメンドコマンドを選択する第３のステップと、
前記少なくとも一つの計算機が、前記選択されたレコメンドコマンドを提示するための第１提示情報を生成し、前記第１提示情報を出力する第４のステップと、
前記レコメンドコマンドの実行要求を受け付けた場合、前記少なくとも一つの計算機が、前記レコメンドコマンドに基づいて処理を実行する第５のステップと、を含むことを特徴とする処理方法。
【請求項７】
請求項６に記載の処理方法であって、
前記第２のステップは、前記少なくとも一つの計算機が、前記履歴コマンドの各々の前記計算機システムにおける重要性を示す第１指標を前記重要度として算出するステップを含むことを特徴とする処理方法。
【請求項８】
請求項６に記載の処理方法であって、
前記第２のステップは、
前記少なくとも一つの計算機が、前記履歴コマンドの各々の前記計算機システムにおける重要性を示す第１指標を算出するステップと、
前記少なくとも一つの計算機が、前記計算機システムを使用する複数のユーザの各々について、前記履歴コマンドの各々の重要性を示す第２指標を算出するステップと、
前記少なくとも一つの計算機が、前記計算機システムを使用する複数のユーザの各々について、前記第１指標及び前記第２指標を用いて第３指標を算出するステップと、
前記少なくとも一つの計算機が、前記第１ユーザの前記第３指標及び他のユーザの前記第３指標に基づいて、前記第１ユーザと類似するユーザを特定するステップと、
前記少なくとも一つの計算機が、前記特定されたユーザの前記履歴コマンドの各々の前記第３指標の平均値を、前記履歴コマンドの各々の前記重要度として算出するステップと、を含むことを特徴とする処理方法。
【請求項９】
請求項７又は請求項８に記載の処理方法であって、
前記少なくとも一つの計算機が、前記データレイクに格納されるデータの各々に格納される前記データブロックの属性を分析し、同一種類の属性を識別するためのタグを管理するためのタグ辞書を生成するステップと、
前記少なくとも一つの計算機が、前記レコメンドコマンドとは異なるコマンドの入力を受け付ける場合、処理対象のデータに格納されるデータブロックの属性に付与されたタグ、及び当該タグと同一のタグが付与された属性を含むデータブロックを格納するデータを提示するための第２提示情報を生成し、前記第２提示情報を出力するステップを含むことを特徴とする処理方法。
【請求項１０】
請求項７又は請求項８に記載の処理方法であって、
前記フィルタリング条件は、ユーザの特性に関する情報、及びコマンドが実行された日時に関する情報の少なくともいずれかを含むことを特徴とする処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データレイクに格納されるビッグデータの処理に関する。
【背景技術】
【０００２】
ビッグデータ分野では、テーブル形式、ＸＭＬ形式、Ｊｓｏｎ形式、及びＣＳＶ形式等、様々なデータ構造のデータ（ネイティブデータ）を管理するデータレイク方式が知られている。ここで、データレイクは、データの種別及びデータの大きさ等に依存することなく、多種多様なデータを格納するリポジトリを示す。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１７７４８７号公報
【特許文献２】特開２０１４−２２８９６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
データレイクに格納されるデータを用いたリアルタイム分析を実行するためには、できるだけ早く、必要なデータを統合する必要がある。しかし、データレイクに格納されるデータの定義、構造、及び内容等は事前に設定されていないため、把握することが難しく、また、データ間の関連性も把握することが難しい。そのため、データ統合を行うためのコマンドの生成には長い時間を要する。したがって、リアルタイム分析が困難であるという課題がある。【０００５】
前述の課題に対して、レコメンド機能を用いて過去に実行されたコマンドをレコメンドする方法が考えられる。従来のレコメンド技術としては、例えば、特許文献１及び特許文献２に記載の技術が知られている。【０００６】
特許文献１には、「外部の共用端末を使用している第１のユーザの組み合わせである第１の利用状況を、第１の視聴者登録手段によって登録された第１のユーザの第１の識別情報に基づいて識別するユーザ識別手段と、第１の利用状況に基づいて、第１のユーザに共通する関心事項と関係を有する第１のコンテンツの視聴を推奨する第１のレコメンド情報のみを共用端末へ配信するレコメンド情報配信手段とを備える。」レコメンド情報配信装置が記載されている。【０００７】
特許文献２には、「過去の検索クエリと、ユーザが選択したコンテンツとを関連づけた情報であるコンテンツ履歴情報を記憶し、検索要求時の検索クエリとコンテンツ履歴情報とに基づいた関連コンテンツ検索結果を取得し、検索クエリ検索結果を取得し、検索クエリ検索結果の人気度情報を取得し、関連コンテンツ評価値と、検索結果評価値と、人気度評価値とを算出し、関連コンテンツ評価値と検索結果評価値と人気度評価値とに基づいて、検索結果として出力するコンテンツの優先度を決定し、関連コンテンツ検索結果と、検索クエリ検索結果とに基づいた検索結果を出力する」コンテンツ検索結果提供装置が記載されている。【０００８】
従来のレコメンド技術では、ユーザの利用状況又はコンテンツの評価等に基づいて、レコメンドするコンテンツ等が選択されている。【０００９】
特許文献１に記載の技術の場合、初めて使用するユーザに対してコンテンツのレコメンドを行えない。また、分析処理ではコマンドそのものの評価は行われないため、特許文献２のようなコンテンツの評価値に基づくレコメンド方法を採用することができない。【００１０】
本発明は、リアルタイム分析を実現するためのコマンドのレコメンド技術を提供する。
【課題を解決するための手段】
【００１１】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、データレイクに格納されるデータを用いた処理を実行する計算機システムであって、前記データレイクは、少なくとも一つの属性から構成されるデータブロックを格納するデータが、当該データのデータ構造に依存しない形式で格納され、前記計算機システムは、プロセッサ、前記プロセッサに接続されるメモリ、及び前記プロセッサに接続されるネットワークインタフェースを有する少なくとも一つの計算機を備え、前記データレイクを用いた処理に利用されたコマンドである履歴コマンドに関する情報を格納する履歴情報を管理し、前記少なくとも一つの計算機は、第１ユーザからフィルタリング条件を含むレコメンド要求を受信した場合、前記フィルタリング条件に基づいて前記履歴情報を参照することによって候補コマンドを特定し、前記候補コマンドの実行履歴に基づいて、前記候補コマンドの重要度を算出し、前記重要度に基づいて、前記第１ユーザに提示するレコメンドコマンドを選択し、前記選択されたレコメンドコマンドを提示するための第１提示情報を生成し、前記第１提示情報を出力し、前記レコメンドコマンドの実行要求を受け付けた場合、前記レコメンドコマンドに基づいて処理を実行する。
【発明の効果】
【００１２】
本発明の一形態によれば、リアルタイム分析を実現するためのコマンドのレコメンド技術を提供できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【００１３】
【図１】実施例１の計算機システムの構成例を示す図である。
【図２】実施例１のタグ辞書のデータ構造の詳細を示す図である。
【図３】実施例１のユーザプロファイル情報のデータ構造の詳細を示す図である。
【図４Ａ】実施例１のコンテンツプロファイル情報のデータ構造の詳細を示す図である。
【図４Ｂ】実施例１のコンテンツプロファイル情報のデータ構造の詳細を示す図である。
【図４Ｃ】実施例１のコンテンツプロファイル情報のデータ構造の詳細を示す図である。
【図５】実施例１の日時／場所プロファイル情報のデータ構造の詳細を示す図である。
【図６】実施例１のＯＬＡＰキューブのデータ構造の詳細を示す図である。
【図７】実施例１のデータレイク管理サーバが実行するタグ辞書の生成処理を説明するフローチャートである。
【図８】実施例１のデータレイク管理サーバが実行するタグ付与処理を説明するフローチャートである。
【図９Ａ】実施例１のデータレイク管理サーバによって提示されるタグ表示画面の一例を示す図である。
【図９Ｂ】実施例１のデータレイク管理サーバによって提示されるタグ表示画面の一例を示す図である。
【図１０】実施例１のデータレイク管理サーバが実行する分析処理の概要を説明するフローチャートである。
【図１１】実施例１のデータレイク管理サーバによって提示されるレコメンド条件設定画面の一例を示す図である。
【図１２】実施例１のデータレイク管理サーバによって提示されるレコメンドコマンド表示画面の一例を示す図である。
【図１３】実施例１のデータレイク管理サーバが実行するレコメンドコマンド提示処理の一例を説明するフローチャートである。
【図１４Ａ】実施例１のデータレイク管理サーバが実行するレコメンドコマンド選択処理の一例を説明するフローチャートである。
【図１４Ｂ】実施例１のデータレイク管理サーバが実行するレコメンドコマンド選択処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施例を、図面を用いて説明する。ただし、本発明は以下に示す実施の形態の記載内容に限定して解釈されるものではない。本発明の思想ないし趣旨から逸脱しない範囲で、その具体的構成を変更し得ることは当業者であれば容易に理解される。
【００１５】
以下に説明する発明の構成において、同一又は類似する構成又は機能には同一の符号を付し、重複する説明は省略する。
【００１６】
本明細書等における「第１」、「第２」、「第３」等の表記は、構成要素を識別するために付するものであり、必ずしも、数又は順序を限定するものではない。
【００１７】
図面等において示す各構成の位置、大きさ、形状、及び範囲等は、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲等を表していない場合がある。したがって、本発明では、図面等に開示された位置、大きさ、形状、及び範囲等に限定されない。
【実施例１】
【００１８】
図１は、実施例１の計算機システムの構成例を示す図である。【００１９】
計算機システムは、データレイク管理サーバ１００、ＤＢサーバ１０１、及びクライアント端末１０２から構成される。データレイク管理サーバ１００及びＤＢサーバ１０１はネットワーク１０３を介して互いに接続され、データレイク管理サーバ１００及びクライアント端末１０２はネットワーク１０４を介して接続される。【００２０】
ネットワーク１０３、１０４は、例えば、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等である。また、ネットワーク１０３、１０４の接続方式は無線及び有線のいずれでもよい。なお、一つのネットワークを介して、データレイク管理サーバ１００、ＤＢサーバ１０１、及びクライアント端末１０２が接続されてもよい。【００２１】
ＤＢサーバ１０１は、データレイク１３０及びその他情報を管理する計算機である。ＤＢサーバ１０１は、後述するデータレイク管理サーバ１００と同様のハードウェア構成であり、図示しない、プロセッサ、メモリ、記憶装置、及びネットワークインタフェースを有する。【００２２】
ＤＢサーバ１０１は、データレイク１３０、タグ辞書１３１、ユーザプロファイル情報１３２、コンテンツプロファイル情報１３３、日時／場所プロファイル情報１３４、及びＯＬＡＰ（ｏｎｌｉｎｅ  ａｎａｌｙｔｉｃａｌ  ｐｒｏｃｅｓｓｉｎｇ）キューブ１３５を管理する。【００２３】
データレイク１３０は、テーブル形式、ＸＭＬ形式、Ｊｓｏｎ形式、及びＣＳＶ形式等、多種多様なデータ形式のデータ（ネイティブデータ）を格納するリポジトリである。例えば、データレイク１３０には複数の属性（カラム）から構成されるレコードを複数含むテーブル形式のデータが格納される。属性には数値及び文字列が格納される。本発明は、データレイク１３０に格納されるデータのデータ形式及びデータ量に限定されない。【００２４】
実施例１では、一つのＤＢサーバ１０１の記憶領域を用いてデータレイク１３０が実現される。複数のＤＢサーバ１０１を用いてデータレイク１３０を実現する場合、複数のＤＢサーバ１０１は分散クラスタ構成を取り、データが分散して配置される。【００２５】
以下の説明では、データレイク１３０に格納されるデータの最小の管理単位をデータブロックとも記載する。例えば、ＲＤＢに対応するデータの場合、一つのレコードが一つのデータブロックに対応する。以下の説明では、「属性」は、一つのデータブロックを構成するカラム（フィールド）の識別情報を表すものとする。また、以下の説明では、「属性値」は、「属性」の具体的な値を表すものとする。【００２６】
タグ辞書１３１は、カラムの属性を示すタグを管理するための情報である。タグ辞書１３１のデータ構造の詳細は図２を用いて説明する。【００２７】
ユーザプロファイル情報１３２は、ユーザに関する情報を管理するための情報である。ユーザプロファイル情報１３２のデータ構造の詳細は図３を用いて説明する。【００２８】
コンテンツプロファイル情報１３３は、実行されたコマンドに関する情報（履歴情報）を管理するための情報である。コンテンツプロファイル情報１３３のデータ構造の詳細は図４を用いて説明する。【００２９】
日時／場所プロファイル情報１３４は、実行されたコマンドの実行時間及び他のコマンドとの関連性に関する情報を管理するための情報である。日時／場所プロファイル情報１３４のデータ構造の詳細は図５を用いて説明する。【００３０】
ＯＬＡＰキューブ１３５は、ユーザに対するコマンドのレコメンドに使用する多次元データベースである。ＯＬＡＰキューブ１３５のデータ構造の詳細は図６を用いて説明する。【００３１】
データレイク管理サーバ１００は、データレイク１３０へのアクセスを管理し、また、データレイク１３０に格納されるデータを用いた処理を実行する計算機である。データレイク管理サーバ１００は、プロセッサ１１１、メモリ１１２、記憶装置１１３、ネットワークインタフェース１１４、及びＩ／Ｏインタフェース１１５を有する。各ハードウェアはバスを介して接続される。【００３２】
プロセッサ１１１は、メモリ１１２に格納されるプログラムを実行する。プロセッサ１１１がプログラムにしたがって処理を実行することによって、特定の機能を実現する機能部（モジュール）として動作する。以下の説明では、機能部を主語に処理を説明する場合、プロセッサ１１１が当該機能部を実現するプログラムを実行していることを示す。【００３３】
メモリ１１２は、不揮発性の記憶媒体であり、プロセッサ１１１が実行するプログラム及び当該プログラムが使用する情報を格納する。メモリ１１２は、プログラムが一時的に使用するワークエリアを含む。実施例１のメモリ１１２には、データ分析部１２０、タグ管理部１２１、及びレコメンド部１２２を実現するプログラムを格納する。【００３４】
データ分析部１２０は、データレイク１３０に格納されるデータを用いた分析処理を実行する。なお、本発明は、分析処理の内容に限定されない。また、データ分析部１２０は、分析処理以外の処理を実行してもよい。【００３５】
タグ管理部１２１は、データブロックのカラムの属性を示すタグを管理する。【００３６】
レコメンド部１２２は、分析処理の実行時に、ユーザに対してコマンドのレコメンドを行う。実施例１では、分析処理に使用するビッグデータテーブルを生成するための統合処理を実現するコマンドのレコメンドが行われる。【００３７】
なお、データレイク管理サーバ１００が有する各機能部については、複数の機能部を一つの機能部にまとめてもよいし、一つの機能部を機能毎に複数の機能部に分けてもよい。【００３８】
記憶装置１１３は、不揮発性の記憶媒体であり、各種データを永続的に格納する。記憶装置１１３は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）及びＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である。【００３９】
ネットワークインタフェース１１４は、ネットワークを介して他の装置と接続するためのインタフェースである。【００４０】
Ｉ／Ｏインタフェース１１５は、入力装置及び出力装置等の外部装置と接続するためのインタフェースである。入力装置は、キーボード、マウス、及びタッチパネル等を含み、出力装置は、ディスプレイ及びプリンタ等を含む。【００４１】
クライアント端末１０２は、ユーザが操作する計算機である。クライアント端末１０２は、データレイク管理サーバ１００と同様のハードウェア構成である。ユーザは、クライアント端末１０２を用いてデータレイク管理サーバ１００に対する各種操作を行う。【００４２】
図２は、実施例１のタグ辞書１３１のデータ構造の詳細を示す図である。【００４３】
タグ辞書１３１は、タグＩＤ２０１、タグ名２０２、タイムスタンプ２０３、関連データ２０４、パターン２０５、及び選択回数２０６から構成されるレコードを含む。一つのレコードが一つのタグに対応する。なお、タグ辞書１３１に格納されるレコードの構造は一例であってこれに限定されない。例えば、カラムに設定された属性値の種別を格納するカラムを含むレコードでもよい。【００４４】
タグＩＤ２０１は、タグを一意に識別するための識別情報を格納するカラムである。タグＩＤ２０１は、タグ辞書１３１のレコードを識別するための識別情報としても用いられる。【００４５】
タグ名２０２は、タグの名称、すなわち、カラムの属性の名称を格納するカラムである。【００４６】
タイムスタンプ２０３は、タグが生成された日時を格納するカラムである。【００４７】
関連データ２０４は、タグに対応する属性のカラムを含むデータに関する情報を格納するカラムである。関連データ２０４には、データレイク１３０に格納されるデータの識別情報及びタグが付与されるカラムの識別情報の組が一つ以上格納される。【００４８】
パターン２０５は、タグに対応する属性のカラムに格納される属性値のパターンを格納するカラムである。【００４９】
選択回数２０６は、レコードに対応するタグが選択された回数を格納するカラムである。【００５０】
図３は、実施例１のユーザプロファイル情報１３２のデータ構造の詳細を示す図である。【００５１】
ユーザプロファイル情報１３２は、ユーザＩＤ３０１、氏名３０２、ドメイン名３０３、年齢３０４、性別３０５、役職３０６、及び勤務年数３０７から構成されるレコードを含む。一つのレコードが一人のユーザに対応する。なお、ユーザプロファイル情報１３２に格納されるレコードの構造は一例であってこれに限定されない。【００５２】
ユーザＩＤ３０１は、ユーザを一意に識別するための識別情報を格納するカラムである。ユーザＩＤ３０１は、ユーザプロファイル情報１３２のレコードを識別するための識別情報としても用いられる。【００５３】
氏名３０２は、ユーザの氏名を格納するカラムである。ドメイン名３０３は、ユーザが所属するドメインの識別情報を格納するカラムである。年齢３０４は、ユーザの年齢を格納するカラムである。性別３０５は、ユーザの性別を格納するカラムである。役職３０６は、ユーザの役職（地位）を格納するカラムである。勤務年数３０７は、ユーザの勤務年数を格納するカラムである。【００５４】
図４Ａ、図４Ｂ、及び図４Ｃは、実施例１のコンテンツプロファイル情報１３３のデータ構造の詳細を示す図である。【００５５】
コンテンツプロファイル情報１３３は、ユーザＩＤ４０１、コマンドＩＤ４０２、コマンド４０３、タイムスタンプ４０４、データ４０５、タグリスト４０６、ＧＵＦ４０７、及びＷＣＦ４０８から構成されるレコードを含む。一つのレコードが、一つのコマンドの履歴に対応する。なお、コンテンツプロファイル情報１３３に格納されるレコードの構造は一例であってこれに限定されない。【００５６】
ユーザＩＤ４０１は、コマンドを実行したユーザを一意に識別するための識別情報を格納するカラムである。ユーザＩＤ４０１には、ユーザＩＤ３０１に設定された値が格納される。【００５７】
コマンドＩＤ４０２は、実行されたコマンドを一意に識別するための識別情報を格納するカラムである。【００５８】
コマンド４０３は、実行されたコマンドを格納するカラムである。コマンド４０３には、例えば、図４Ｂに示すようなコマンドが格納される。【００５９】
タイムスタンプ４０４は、コマンドが実行された日時を格納するカラムである。【００６０】
データ４０５は、コマンドに基づいて実行される処理に用いられたデータの識別情報を格納するカラムである。【００６１】
タグリスト４０６は、コマンドに含まれるカラムに付与されるタグに関する情報を格納するフィールドである。タグリスト４０６には、図４Ｃに示すような情報が格納される。【００６２】
ＧＵＦ４０７及びＷＣＦ４０８は、ユーザに対してコマンドのレコメンドを行う場合に使用する指標を格納するカラムである。ＧＵＦ４０７は、計算機システムにおけるコマンドの重要度を示す値であるＧＵＦ（Ｇｅｎｅｒａｌ  Ｕｓｅｒ  Ｆｒｅｑｕｅｎｃｙ）を格納するカラムである。ＷＣＦ４０８は、任意のユーザにおけるコマンドの重要度を示す値であるＷＣＦ（Ｗｅｉｇｈｔｅｄ  Ｃｏｍｍａｎｄ  Ｆｒｅｑｕｅｎｃｙ）を格納するカラムである。ＧＵＦ及びＷＣＦの算出方法について後述する。【００６３】
なお、コマンド４０３が同一、かつ、ユーザＩＤ４０１に対応するユーザが所属するドメインが同一であるレコードのＧＵＦ４０７には、同一の値が格納される。また、ユーザＩＤ４０１及びコマンド４０３が同一のレコードのＷＣＦ４０８には、同一の値が格納される。【００６４】
図５は、実施例１の日時／場所プロファイル情報１３４のデータ構造の詳細を示す図である。【００６５】
日時／場所プロファイル情報１３４は、コマンドＩＤ５０１、タイムスタンプ５０２、曜日５０３、時刻５０４、ドメイン名５０５、及び関連ワークプロセス名５０６から構成されるレコードを格納する。なお、日時／場所プロファイル情報１３４に格納されるレコードの構造は一例であってこれに限定されない。【００６６】
コマンドＩＤ５０１は、コマンドＩＤ４０２と同一のカラムである。タイムスタンプ５０２は、タイムスタンプ４０４と同一のカラムである。【００６７】
曜日５０３は、コマンドが実行された曜日を格納するカラムである。時刻５０４は、コマンドが実行された時間帯を格納するカラムである。時刻５０４には、例えば、午前、午後、夜等が格納される。【００６８】
ドメイン名５０５は、コマンドを実行したユーザが所属するドメインの名称を格納するカラムである。ドメイン名５０５には、ドメイン名３０３に設定された値が格納される。【００６９】
関連ワークプロセス名５０６は、コマンドを用いた処理において使用したデータに対応する製造プロセスと関連性がある製造プロセス（工程名）の識別情報を格納するカラムである。【００７０】
図６は、実施例１のＯＬＡＰキューブ１３５のデータ構造の詳細を示す図である。【００７１】
ＯＬＡＰキューブ１３５は、ユーザプロファイル情報１３２、コンテンツプロファイル情報１３３、及び日時／場所プロファイル情報１３４がディメンションとして設定された多次元データベースである。セルには、メジャとしてＷＣＦ又はＧＵＦが格納される。【００７２】
次に、データレイク管理サーバ１００が実行する処理について説明する。まず、タグ辞書１３１の生成処理、及び、タグ付与処理について説明する。【００７３】
図７は、実施例１のデータレイク管理サーバ１００が実行するタグ辞書１３１の生成処理を説明するフローチャートである。【００７４】
データレイク管理サーバ１００は、タグ辞書１３１の生成要求を受信した場合、タグ辞書１３１の生成処理を開始する。タグ辞書１３１の生成要求は、例えば、データレイク管理サーバ１００を管理する管理者又はクライアント端末１０２から入力される。【００７５】
タグ管理部１２１は、データレイク１３０に格納されるデータからサンプルデータを取得する（ステップＳ７０１）。実施例１では、タグ辞書１３１の生成要求にサンプルデータを指定する情報が含まれるものとする。なお、タグ辞書１３１の生成要求にサンプルデータが含まれてもよい。【００７６】
次に、タグ管理部１２１は、各サンプルデータに格納されるデータブロックのカラムの属性を特定するための分析処理を実行する（ステップＳ７０２）。【００７７】
具体的には、タグ管理部１２１は、サンプルデータのデータ構造を定義するメタ情報及びカラムに格納される属性値を分析する。タグ管理部１２１は、分析結果に基づいて、サンプルデータに格納されるデータブロックのカラムの属性及び属性値のパターン等を特定する。なお、カラムの属性は、ユーザがパターン等に基づいて決定してもよい。【００７８】
次に、タグ管理部１２１は、分析結果に基づいてタグ辞書１３１を生成し（ステップＳ７０３）、その後、処理を終了する。【００７９】
具体的には、タグ管理部１２１は、タグ辞書１３１に特定された属性の数だけレコードを追加する。タグ管理部１２１は、各レコードのタグＩＤ２０１に識別情報を設定し、また、タイムスタンプ２０３に現時刻を設定し、また、選択回数２０６に「０」を設定する。タグ管理部１２１は、各レコードのタグ名２０２に特定された属性の名称を格納し、また、関連データ２０４に、レコードに対応する属性に分類されたカラム及び当該カラムを含むデータの識別情報の組を格納する。タグ管理部１２１は、各レコードのパターン２０５に特定されたパターンを格納する。【００８０】
図８は、実施例１のデータレイク管理サーバ１００が実行するタグ付与処理を説明するフローチャートである。図９Ａ及び図９Ｂは、実施例１のデータレイク管理サーバ１００によって提示されるタグ表示画面９００の一例を示す図である。【００８１】
データレイク管理サーバ１００は、タグ付与要求を受信した場合、タグ付与処理を開始する。タグ付与要求には、タグを付与するデータの識別情報が含まれる。図８の説明では、タグを付与するデータをターゲットデータと記載する。【００８２】
タグ管理部１２１は、ターゲットデータに格納されるデータブロックのカラムにタグを付与する（ステップＳ８０１）。具体的には、以下のような処理が実行される。【００８３】
（処理Ａ１）タグ管理部１２１は、ターゲットデータのメタ情報及び各カラムに格納される属性値を分析し、カラムの名称及び属性値のパターン等を特定する。タグ管理部１２１は、カラムの名称及び属性値のパターン等から構成されるレコードを含むテンプレートを生成する。【００８４】
（処理Ａ２）タグ管理部１２１は、テンプレートに基づいてタグ辞書１３１を参照することによって、ターゲットデータに格納されるデータブロックの各カラムのタグを特定する。例えば、タグ管理部１２１は、テンプレートからレコードを選択し、関連データに２０４に格納されるカラムの名称が選択されたレコードに含まれるカラムの名称と類似し、かつ、パターン２０５が選択されたレコードに含まれるパターンと一致するレコードを検索する。なお、名称の類否は、図示しない語彙の辞書を用いて判定すればよい。【００８５】
（処理Ａ３）タグ管理部１２１は、検索されたレコードの関連データ２０４に、選択されたレコードに含まれるカラムの名称を設定する。【００８６】
（処理Ａ４）テンプレートの全てのレコードに対して処理が完了していない場合、タグ管理部１２１は、（処理Ａ２）及び（処理Ａ３）を実行する。テンプレートの全てのレコードに対して処理が完了した場合、タグ管理部１２１は、ステップＳ８０１の処理を終了する。以上がステップＳ８０１の処理の説明である。【００８７】
次に、タグ管理部１２１は結果を提示する（ステップＳ８０２）。その後、タグ管理部１２１は、ユーザからの操作を受け付けるまで待ち状態に移行する。【００８８】
例えば、タグ管理部１２１は、図９Ａ及び図９Ｂに示すようなタグ表示画面９００を表示するための表示情報を生成し、クライアント端末１０２に表示情報を送信する。ここで、タグ表示画面９００について説明する。【００８９】
タグ表示画面９００は、クライアント端末１０２に表示される画面である。タグ表示画面９００は、ターゲットデータ表示欄９０１、プロパティ表示欄９０２、操作ボタン表示欄９０３、及び確認欄９０４を含む。【００９０】
ターゲットデータ表示欄９０１は、ターゲットデータの格納場所を表示する欄であり、ファイルパス９１０を含む。ファイルパス９１０は、ターゲットデータが格納されるパスを表示する欄である。【００９１】
プロパティ表示欄９０２は、ターゲットデータのプロパティの概要を表示する欄であり、ファイルサイズ９２０、カラム数９２１、レコード数９２２、更新日９２３、及びプロファイル日９２４を含む。【００９２】
ファイルサイズ９２０は、ターゲットデータのサイズを表示する欄である。カラム数９２１は、ターゲットデータに格納されるデータブロックに含まれるカラムの数を表示する欄である。レコード数９２２は、ターゲットデータに格納されるデータブロックの数を表示する欄である。更新日９２３は、ターゲットデータが更新された日時を表示する欄である。プロファイル日９２４は、ターゲットデータを用いた処理が実行された日時を表示する欄である。【００９３】
操作ボタン表示欄９０３は、各種操作を行うための操作ボタンを表示する欄であり、カラム９３０、データリネージ９３１、履歴９３２、プロパティ９３３、及び概要９３４を含む。【００９４】
カラム９３０は、カラムに付与されたタグを表示するためのボタンである。データリネージ９３１は、リネージを表示するためのボタンである。履歴９３２は、ターゲットデータの履歴を表示するためのボタンである。プロパティ９３３は、ターゲットデータの詳細なプロパティを表示するためのボタンである。概要９３４は、ターゲットデータの概要を表示するためのボタンである。【００９５】
確認欄９０４は、操作ボタン表示欄９０３に含まれる操作ボタンに応じた情報を表示する欄である。図９Ａ及び図９Ｂでは、カラム９３０が操作された場合の確認欄９０４を示す。確認欄９０４には、タグ表示テーブル９４０及び終了ボタン９５０が表示される。【００９６】
タグ表示テーブル９４０は、カラムに付与されたタグを表示するテーブルであり、名前９４１、タグ９４２、及びレコード数９４３から構成されるレコードを含む。一つのレコードが一つのカラムに対応する。【００９７】
名前９４１は、カラムの名称を格納するカラムである。【００９８】
タグ９４２は、カラムに付与されたタグに関する情報を格納するカラムである。タグ９４２には、タグボタン９４５及び更新ボタン９４６が格納される。タグボタン９４５は、カラムに付与されたタグを示すボタンである。更新ボタン９４６は、タグの情報を更新するためのボタンである。【００９９】
なお、タグが不明なカラムに対応するレコードのタグ９４２には、「ＤＵＲＡＴＩＯＮ」のタグボタン９４５が表示される。【０１００】
レコード数９４３は、カラムに値が設定されているレコードの数を格納するカラムである。【０１０１】
終了ボタン９５０は、確認欄９０４の表示を終了するためのボタンである。終了ボタン９５０が操作された場合、終了要求がデータレイク管理サーバ１００に送信される。【０１０２】
ユーザは、タグボタン９４２をクリックし、タグを修正することができる。修正内容を確定する場合、ユーザは更新ボタン９４６をクリックする。この場合、更新内容を含む更新要求がデータレイク管理サーバ１００に送信される。【０１０３】
タグボタン９４２をダブルクリックした場合、図９Ｂに示すようなボップが表示される。当該ボップには、タグに関する詳細な情報を示すタグ確認テーブル９６０が表示される。タグ確認テーブル９６０は、タグＩＤ９６１、タグ名９６２、タイムスタンプ９６３、関連データ９６４、パターン９６５、及び選択回数９６６から構成されるレコードを含む。【０１０４】
タグＩＤ９６１は、タグボタン９４５に対応するタグの識別情報を格納するカラムである。タグ名９６２は、タグボタン９４５に対応するタグの名称を格納するカラムである。タイムスタンプ９６３は、タグボタン９４５に対応するタグが生成された日時を格納するカラムである。関連データ９６４は、タグボタン９４５に対応するタグに対応する属性のカラムを含むデータに関する情報を格納するカラムである。パターン９６５は、タグボタン９４５に対応するタグに対応する属性のカラムに格納される属性値のパターンを格納するカラムである。選択回数９６６は、タグボタン９４５に対応するタグが選択された回数を格納するカラムである。【０１０５】
以上がタグ表示画面９００の説明である。図８の説明に戻る。【０１０６】
タグ管理部１２１は、クライアント端末１０２から要求を受信した場合、受信した要求が終了要求であるか否かを判定する（ステップＳ８０３）。【０１０７】
クライアント端末１０２から受信した要求が終了要求であると判定された場合、タグ管理部１２１は処理を終了する。【０１０８】
クライアント端末１０２から受信した要求が更新要求であると判定された場合、タグ管理部１２１は、タグ辞書１３１を更新し（ステップＳ８０４）、その後、待ち状態に移行する。【０１０９】
具体的には、タグ管理部１２１は、変更前のタグに対応するレコードの関連データ２０４から名前９４１に対応するカラムを削除する。また、タグ管理部１２１は、タグボタン９４５に設定されたタグに対応するレコードの関連データ２０４に名前９４１に対応するカラムを追加する。【０１１０】
このように、データに格納されるデータブロックのカラムにタグが付与されることによって、データレイク管理サーバ１００は、ユーザに対して、データ間の関連性を視覚的な情報として提示することができる。これによって、ユーザは分析対象のデータを容易かつ迅速に特定することができる。【０１１１】
次に、分析処理について説明する。【０１１２】
図１０は、実施例１のデータレイク管理サーバ１００が実行する分析処理の概要を説明するフローチャートである。図１１は、実施例１のデータレイク管理サーバ１００によって提示されるレコメンド条件設定画面の一例を示す図である。図１２は、実施例１のデータレイク管理サーバ１００によって提示されるレコメンドコマンド表示画面の一例を示す図である。【０１１３】
データレイク管理サーバ１００は、クライアント端末１０２から分析処理を実行するためのアクセス要求を受信した場合、分析処理を開始する。【０１１４】
データレイク管理サーバ１００は、ログイン処理を実行する（ステップＳ１００１）。ログイン処理は公知に処理であるため詳細な説明を省略する。【０１１５】
なお、新規ユーザからアクセス要求を受信した場合、データレイク管理サーバ１００のデータ分析部１２０は、ユーザの各種情報を取得し、ＤＢサーバ１０１のユーザプロファイル情報１３２に取得した情報を格納するレコードを追加する。以下の説明では、分析処理を実行するユーザをターゲットユーザと記載する。【０１１６】
次に、データレイク管理サーバ１００は、レコメンド条件設定画面１１００を提示し、レコメンド要求を受け付ける（ステップＳ１００２）。【０１１７】
ここで、レコメンド条件設定画面１１００について説明する。【０１１８】
レコメンド条件設定画面１１００は、レコメンド方法設定欄１１０１、ドメイン設定欄１１０２、工程名設定欄１１０３、タグヒント設定欄１１０４、勤務年数設定欄１１０５、日付範囲設定欄１１０６、時刻設定欄１１０７、曜日設定欄１１０８、及び設定ボタン１１１０を含む。【０１１９】
レコメンド方法設定欄１１０１は、レコメンド方法を選択するための欄である。実施例１では、「基本」又は「高度」のいずれかが選択される。「基本」が選択された場合、分析業務の初心者を対象としたコマンドのレコメンドが行われる。「高度」が選択された場合、分析業務に精通しているマイスタを対象としたコマンドのレコメンドが行われる。【０１２０】
以下の説明では、レコメンド方法設定欄１１０１に設定された値を含む情報をレコメンド条件情報と記載する。【０１２１】
ドメイン設定欄１１０２、工程名設定欄１１０３、タグヒント設定欄１１０４、勤務年数設定欄１１０５、日付範囲設定欄１１０６、時刻設定欄１１０７、及び曜日設定欄１１０８は、レコメンドするコマンドを絞り込むためのフィルタリング条件を設定する欄である。そのため、ドメイン設定欄１１０２、工程名設定欄１１０３、タグヒント設定欄１１０４、勤務年数設定欄１１０５、日付範囲設定欄１１０６、時刻設定欄１１０７、及び曜日設定欄１１０８は、必ずしも操作されなくてもよい。【０１２２】
以下の説明では、ドメイン設定欄１１０２、工程名設定欄１１０３、タグヒント設定欄１１０４、勤務年数設定欄１１０５、日付範囲設定欄１１０６、時刻設定欄１１０７、及び曜日設定欄１１０８の少なくともいずれかに設定された値を含む情報をフィルタリング条件情報と記載する。【０１２３】
工程名設定欄１１０３は、分析するデータを特定するための工程名を設定する欄である。工程名設定欄１１０３に設定された値は、関連ワークプロセス名として保存される。【０１２４】
ドメイン設定欄１１０２は、ドメインを設定する欄である。タグヒント設定欄１１０４は、タグを特定する場合に使用するヒントを設定する欄である。勤務年数設定欄１１０５は、ユーザの勤務年数を設定する欄である。日付範囲設定欄１１０６は、日時の範囲を設定する欄である。時刻設定欄１１０７は、時間帯を設定する欄である。曜日設定欄１１０８は、曜日を設定する欄である。【０１２５】
設定ボタン１１１０は、レコメンド条件を設定するための操作ボタンである。ターゲットユーザが設定ボタン１１１０を操作した場合、クライアント端末１０２は、レコメンド条件情報及びフィルタリング条件情報を含むレコメンド要求をデータレイク管理サーバ１００に送信する。なお、レコメンド要求には、フィルタリング条件情報が含まれていなくてもよい。【０１２６】
以上がレコメンド条件設定画面１１００の説明である。図１０の説明に戻る。【０１２７】
次に、データレイク管理サーバ１００は、レコメンド要求に含まれるレコメンド条件情報及びフィルタリング条件情報に基づいて、レコメンドコマンド提示処理を実行する（ステップＳ１００３）。【０１２８】
具体的には、データ分析部１２０は、レコメンド部１２２を呼び出し、レコメンドコマンド提示処理の実行を指示する。レコメンドコマンド提示処理の詳細は、図１３、図１４Ａ、及び図１４Ｂを用いて説明する。【０１２９】
次に、データレイク管理サーバ１００は、レコメンドコマンド提示処理の結果に基づいて、レコメンドコマンドを提示する（ステップＳ１００４）。その後、データレイク管理サーバ１００は、ターゲットユーザからの操作を受け付けるまで待ち状態に移行する。【０１３０】
例えば、データ分析部１２０は、クライアント端末１０２に図１２に示すようなレコメンドコマンド表示画面１２００を表示する。ここで、レコメンドコマンド表示画面１２００について説明する。【０１３１】
レコメンドコマンド表示画面１２００は、コマンドリスト１２１０、実行ボタン１２２０、及びコマンド入力ボタン１２２１を含む。【０１３２】
コマンドリスト１２１０は、レコメンドコマンドを表示するリストである。リストは、コマンドボタン１２１１及び追加ボタン１２１２から構成されるレコードを含む。【０１３３】
実行ボタン１２２０は、コマンドリスト１２１０から選択されたレコメンドコマンドの実行を指示するためのボタンである。【０１３４】
コマンド入力ボタン１２２１は、ユーザが手動でコマンドを入力する場合に操作するボタンである。【０１３５】
ユーザがコマンドボタン１２１１をクリックした場合、コマンド表示テーブル１２３０を表示するポップが表示される。【０１３６】
コマンド表示テーブル１２３０は、コマンドボタン１２１１に対応するコマンドの詳細を表示するテーブルであり、コマンドＩＤ１２３１、コマンド１２３２、タイムスタンプ１２３３、データ１２３４、タグリスト１２３５、及び重要度１２３６を含む。【０１３７】
コマンドＩＤ１２３１、コマンド１２３２、タイムスタンプ１２３３、データ１２３４、及びタグリスト１２３５は、コマンドＩＤ４０２、コマンド４０３、タイムスタンプ４０４、データ４０５、及びタグリスト４０６に対応する。【０１３８】
重要度１２３６は、コマンドの重要性を示す重要度を格納するカラムである。【０１３９】
ターゲットユーザが追加ボタン１２１２をクリックし、実行ボタン１２２０を操作した場合、クライアント端末１０２は、データレイク管理サーバ１００にコマンド実行要求を送信する。【０１４０】
ターゲットユーザがコマンド入力ボタン１２２１を操作した場合、クライアント端末１０２は、データレイク管理サーバ１００にコマンド入力要求を送信する。【０１４１】
以上がレコメンドコマンド表示画面１２００の説明である。図１０の説明に戻る。【０１４２】
次に、データレイク管理サーバ１００は、クライアント端末１０２から要求を受信した場合、受信した要求がコマンド実行要求であるか否かを判定する（ステップＳ１００５）。【０１４３】
受信した要求がコマンド実行要求であると判定された場合、データレイク管理サーバ１００は、ターゲットユーザによって選択されたレコメンドコマンドを実行する（ステップＳ１００６）。【０１４４】
具体的には、データ分析部１２０がレコメンドコマンドを実行する。例えば、データ分析部１２０は、ビッグデータテーブルを生成するためのＪｏｉｎコマンドを実行し、ビッグデータテーブルを生成する。【０１４５】
次に、データレイク管理サーバ１００は、コンテンツプロファイル情報１３３及び日時／場所プロファイル情報１３４を更新し（ステップＳ１０１１）、その後、処理を終了する。【０１４６】
具体的には、データ分析部１２０は、コンテンツプロファイル情報１３３にレコードを追加し、追加されたレコードにユーザＩＤ４０１、コマンドＩＤ４０２、コマンド４０３、データ４０５、及びタグリスト４０６に値を設定する。データ分析部１２０は、追加されたレコードのタイムスタンプ４０４に現時刻を設定する。【０１４７】
この時点では、ＧＵＦ４０７及びＷＣＦ４０８は空欄でもよい。なお、ＧＵＦ４０７及びＷＣＦ４０８には、選択されたコマンドに対応するレコード等に基づいて値が設定されてもよい。【０１４８】
ステップＳ１００６において、受信した要求がコマンド入力要求であると判定された場合、データレイク管理サーバ１００は、分析対象のデータの選択を受け付ける（ステップＳ１００７）。【０１４９】
次に、データレイク管理サーバ１００は、選択されたデータに格納されるデータブロックに含まれるカラムのタグを提示する（ステップＳ１００８）。【０１５０】
具体的には、データ分析部１２０は、タグ辞書１３１のデータ４０５及びタグリスト４０６を参照して、選択されたデータに含まれるカラムに付与されるタグを特定する。また、データ分析部１２０は、特定されたタグを提示するための提示情報を生成し、クライアント端末１０２に送信する。【０１５１】
なお、データブロックに含まれるカラムの中に、タグが付与されていないタグが存在する場合、データ分析部１２０は、タグ付与要求をタグ管理部１２１に出力する。この場合、データ分析部１２０は、タグ管理部１２１の処理結果に基づいて提示情報を生成する。提示情報に基づいて、図９Ａに示すようなタグ表示画面９００が表示される。【０１５２】
ターゲットユーザは、タグ表示画面９００を参照することによって、データ間の関連性を把握し、データを連結するためのコマンド等を生成できる。【０１５３】
このように、ユーザは、視覚情報として、データの構造及び内容等を把握でき、また、データ間の関連性を把握できるため、コマンドの生成に要する時間を削減することができる。【０１５４】
次に、データレイク管理サーバ１００は、ターゲットユーザからコマンドの入力を受け付け（ステップＳ１００９）、ターゲットユーザによって生成されたコマンドを実行する（ステップＳ１０１０）。【０１５５】
具体的には、データ分析部１２０がコマンドを実行する。例えば、データ分析部１２０は、ビッグデータテーブルを生成するためのＪｏｉｎコマンドを実行し、ビッグデータテーブルを生成する。【０１５６】
次に、データレイク管理サーバ１００は、コンテンツプロファイル情報１３３及び日時／場所プロファイル情報１３４を更新し（ステップＳ１０１１）、その後、処理を終了する。【０１５７】
図１３は、実施例１のデータレイク管理サーバ１００が実行するレコメンドコマンド提示処理の一例を説明するフローチャートである。【０１５８】
レコメンド部１２２は、ターゲットユーザの各コマンドのＣＦ（Ｃｏｍｍａｎｄ  Ｆｒｅｑｕｅｎｃｙ）を算出する（ステップＳ１３０１）。具体的には、以下のような処理が実行される。【０１５９】
（処理Ｂ１）レコメンド部１２２は、コンテンツプロファイル情報１３３に格納されるコマンドの中からターゲットコマンドを一つ選択する。【０１６０】
（処理Ｂ２）レコメンド部１２２は、コンテンツプロファイル情報１３３を参照して、ターゲットコマンドに対応するレコードの数（第１レコード数）を算出する。また、レコメンド部１２２は、ターゲットユーザが実行したターゲットコマンドに対応するレコードの数（第２レコード数）を算出する。レコメンド部１２２は、第２レコード数を第１レコード数で除算した値をＣＦとして算出する。レコメンド部１２２は、ＣＦをターゲットコマンドと対応づけてワークエリアに格納する。【０１６１】
（処理Ｂ３）全てのコマンドについて処理が完了していない場合、レコメンド部１２２は、（処理Ｂ１）及び（処理Ｂ２）の処理を実行する。全てのコマンドについて処理が完了した場合、レコメンド部１２２はステップＳ１３０１の処理を終了する。以上がステップＳ１３０１の処理の説明である。【０１６２】
次に、レコメンド部１２２は、各コマンドのＧＵＦを算出する（ステップＳ１３０２）。具体的には、以下のような処理が実行される。【０１６３】
（処理Ｃ１）レコメンド部１２２は、コンテンツプロファイル情報１３３に格納されるコマンドの中からターゲットコマンドを一つ選択する。【０１６４】
（処理Ｃ２）レコメンド部１２２は、コンテンツプロファイル情報１３３を参照して、ターゲットコマンドを実行したユーザの数（第１ユーザ数）を算出する。また、レコメンド部１２２は、ユーザプロファイル情報１３２を参照し、ターゲットユーザが所属するドメインに所属する全ユーザ数（第２ユーザ数）を算出する。レコメンド部１２２は、第２ユーザ数を第１ユーザ数で除算した値をＧＵＦとして算出する。【０１６５】
（処理Ｃ３）レコメンド部１２２は、コンテンツプロファイル情報１３３から、ターゲットコマンド及びターゲットユーザが所属するドメインに所属するユーザの組合せに一致するレコードを検索する。レコメンド部１２２は、検索されたレコードのＧＵＦ４０７に算出された値を格納する。【０１６６】
（処理Ｃ４）全てのコマンドについて処理が完了していない場合、レコメンド部１２２は、（処理Ｃ１）、（処理Ｃ２）、及び（処理Ｃ３）の処理を実行する。全てのコマンドについて処理が完了した場合、レコメンド部１２２はステップＳ１３０２の処理を終了する。以上がステップＳ１３０２の処理の説明である。【０１６７】
次に、レコメンド部１２２は、ターゲットユーザの各コマンドのＷＣＦを算出する（ステップＳ１３０３）。具体的には、以下のような処理が実行される。【０１６８】
（処理Ｄ１）レコメンド部１２２は、コンテンツプロファイル情報１３３に格納されるコマンドの中からターゲットコマンドを一つ選択する。【０１６９】
（処理Ｄ２）レコメンド部１２２は、ターゲットコマンドに対応づけられるＣＦをワークエリアから取得する。【０１７０】
（処理Ｄ３）レコメンド部１２２は、コンテンツプロファイル情報１３３を参照して、ターゲットコマンド及びターゲットユーザの組に一致するレコードを検索する。レコメンド部１２２は、検索されたレコードのＧＵＦ４０７から値を取得する。【０１７１】
（処理Ｄ４）レコメンド部１２２は、ＣＦ、ＧＵＦ、及び調整パラメタτを乗算した値をＷＣＦとして算出する。レコメンド部１２２は、（処理Ｄ３）において検索されたレコードのＷＣＦ４０８に算出された値を設定する。なお、調整パラメタτは任意の値に設定できる。【０１７２】
（処理Ｄ５）全てのコマンドについて処理が完了していない場合、レコメンド部１２２は、（処理Ｄ１）、（処理Ｄ２）、（処理Ｄ３）、及び（処理Ｄ４）の処理を実行する。全てのコマンドについて処理が完了した場合、レコメンド部１２２はステップＳ１３０３の処理を終了する。以上がステップＳ１３０３の処理の説明である。【０１７３】
次に、レコメンド部１２２は、レコメンドコマンド選択処理を実行する（ステップＳ１３０４）。レコメンドコマンド選択処理の詳細は図１４Ａ及び図１４Ｂを用いて説明する。【０１７４】
次に、レコメンド部１２２は、レコメンドコマンド選択処理によって選択されたレコメンドコマンドを提示するための提示情報を生成し、クライアント端末１０２に送信する（ステップＳ１３０５）。その後、レコメンド部１２２はレコメンドコマンド提示処理を終了する。【０１７５】
なお、ステップＳ１３０１及びステップＳ１３０２の処理の順番は入れ替えてもよい。【０１７６】
図１４Ａ及び図１４Ｂは、実施例１のデータレイク管理サーバ１００が実行するレコメンドコマンド選択処理の一例を説明するフローチャートである。【０１７７】
レコメンド部１２２は、レコメンド条件情報を参照し、レコメンド方法が「基本」であるか否かを判定する（ステップＳ１４０１）。【０１７８】
レコメンド方法が「基本」であると判定された場合、レコメンド部１２２は、コマンドの絞込みが可能か否かを判定する（ステップＳ１４０２）。【０１７９】
具体的には、レコメンド部１２２は、レコメンド要求にフィルタリング条件情報が含まれるか否かを判定する。レコメンド要求にフィルタリング条件情報が含まれる場合、レコメンド部１２２は、コマンドの絞込みが可能であると判定する。【０１８０】
コマンドの絞込みが不可能であると判定された場合、レコメンド部１２２は、コマンドプロファイルテーブルを生成し（ステップＳ１４０４）、その後、ステップＳ１４０５に進む。【０１８１】
具体的には、レコメンド部１２２は、コンテンツプロファイル情報１３３を参照して、全てのコマンドを取得し、全てのコマンドのレコードを含むコマンドプロファイルテーブルを生成する。なお、コマンドプロファイルテーブルのレコードはコマンド及び重要度から構成される。【０１８２】
コマンドの絞込みが可能であると判定された場合、レコメンド部１２２は、フィルタリング条件情報に基づいてＯＬＡＰキューブ１３５を検索し、コマンドを特定し（ステップＳ１４０３）、コマンドプロファイルテーブルを生成し（ステップＳ１４０４）、その後、ステップＳ１４０５に進む。なお、ＯＬＡＰキューブ１３５を用いたデータ検索は公知の技術であるため詳細な説明は省略する。【０１８３】
具体的には、レコメンド部１２２は、特定されたコマンドのレコードを含むコマンドプロファイルテーブルを生成する。【０１８４】
ステップＳ１４０５では、レコメンド部１２２は、コンテンツプロファイル情報１３３から、コマンドプロファイルテーブルに設定された各コマンドのＧＵＦを取得する（ステップＳ１４０５）。具体的には、以下のような処理が実行される。【０１８５】
（処理Ｅ１）レコメンド部１２２は、コマンドプロファイルテーブルからレコードを選択する。【０１８６】
（処理Ｅ２）レコメンド部１２２は、コンテンツプロファイル情報１３３から、レコードに対応するコマンド及びターゲットユーザが所属するドメインに所属する任意のユーザの組に一致するレコードを検索し、検索されたレコードのＧＵＦ４０７の値を取得する。レコメンド部１２２は、（処理Ｅ１）において選択されたレコードの重要度に取得した値を設定する。【０１８７】
（処理Ｅ３）コマンドプロファイルテーブルの全てのレコードについて処理が完了していない場合、レコメンド部１２２は、（処理Ｅ１）及び（処理Ｅ２）の処理を実行する。コマンドプロファイルテーブルの全てのレコードについて処理が完了した場合、レコメンド部１２２はステップＳ１４０５の処理を終了する。以上が、ステップＳ１４０５の処理の説明である。【０１８８】
次に、レコメンド部１２２は、コマンドプロファイルテーブルに基づいてコマンドリストを生成し（ステップＳ１４０６）、その後、レコメンドコマンド選択処理を終了する。【０１８９】
具体的には、レコメンド部１２２は、重要度の大きい順に所定の数のコマンドを選択し、選択されたコマンドのレコードを含むコマンドリストを生成する。【０１９０】
なお、選択するコマンドの数は任意に設定できる。また、レコメンド条件設定画面１１００にコマンドの数を設定する欄を設けてもよい。【０１９１】
ステップＳ１４０１において、レコメンド方法が「高度」であると判定された場合、レコメンド部１２２は、コマンドの絞込みが可能か否かを判定する（ステップＳ１４１１）。ステップＳ１４１１の処理はステップＳ１４０２の処理と同一である。【０１９２】
コマンドの絞込みが不可能であると判定された場合、レコメンド部１２２は、コマンドプロファイルテーブルを生成し（ステップＳ１４１３）、その後、ステップＳ１４１４に進む。【０１９３】
具体的には、レコメンド部１２２は、コンテンツプロファイル情報１３３を参照して、全てのコマンドを取得し、全てのコマンドのレコードを含むコマンドプロファイルテーブルを生成する。【０１９４】
コマンドの絞込みが可能であると判定された場合、レコメンド部１２２は、フィルタリング条件情報に基づいてＯＬＡＰキューブ１３５を検索し、コマンドを特定し（ステップＳ１４１２）、コマンドプロファイルテーブルを生成し（ステップＳ１４１３）、その後、ステップＳ１４１４に進む。【０１９５】
具体的には、レコメンド部１２２は、特定されたコマンドのレコードを含むコマンドプロファイルテーブルを生成する。【０１９６】
ステップＳ１４１４では、レコメンド部１２２は、ターゲットユーザが新規ユーザであるか否かを判定する（ステップＳ１４１４）。【０１９７】
例えば、レコメンド部１２２は、コンテンツプロファイル情報１３３を参照し、ユーザＩＤ４０１にターゲットユーザの識別情報が格納されるレコードが存在するか否かを判定する。ユーザＩＤ４０１にターゲットユーザの識別情報が格納されるレコードが存在しない場合、レコメンド部１２２は、ターゲットユーザが新規ユーザであると判定する。【０１９８】
ターゲットユーザが新規ユーザであると判定された場合、レコメンド部１２２はステップＳ１４０５に進む。【０１９９】
ターゲットユーザが新規ユーザではないと判定された場合、レコメンド部１２２は、ユーザ毎にコマンドベクトルを生成する（ステップＳ１４１５）。具体的には、以下のような処理が実行される。【０２００】
（処理Ｆ１）レコメンド部１２２は、ユーザプロファイル情報１３２からレコードを選択する。レコメンド部１２２は、コンテンツプロファイル情報１３３を参照し、コマンドの種別の数と同数の要素のコマンドベクトルを生成する。当該コマンドベクトルの各要素の値は０に設定される。【０２０１】
（処理Ｆ２）レコメンド部１２２は、コンテンツプロファイル情報１３３を参照し、ユーザＩＤ４０１が選択されたレコードに対応するユーザと一致するレコードを検索する。レコメンド部１２２は、検索されたレコードをコマンド毎にグループに分類する。レコメンド部１２２は、各グループに含まれるレコードを一つ選択し、選択されたレコードのＷＣＦ４０８から値を取得する。【０２０２】
（処理Ｆ３）レコメンド部１２２は、ベクトルのコマンドに対応する要素に、取得したＷＣＦを設定する。【０２０３】
（処理Ｆ４）ユーザプロファイル情報１３２の全てのレコードについて処理が完了していない場合、レコメンド部１２２は、（処理Ｆ１）、（処理Ｆ２）、及び（処理Ｆ３）の処理を実行する。ユーザプロファイル情報１３２の全てのレコードについて処理が完了した場合、レコメンド部１２２はステップＳ１４１５の処理を終了する。以上がステップＳ１４１５の処理の説明である。【０２０４】
次に、レコメンド部１２２は、コマンドベクトルを用いて、ターゲットユーザと他のユーザとの間の類似度を算出する（ステップＳ１４１６）。【０２０５】
例えば、レコメンド部１２２は下式（１）のようなコサイン類似度を算出する。【０２０６】
【数１】
2020183538.tif 000003
【０２０７】
ここで、ｖＡはターゲットユーザのコマンドベクトルを表し、ｖＢは他のユーザのコマンドベクトルを表す。【０２０８】
次に、レコメンド部１２２は、類似度に基づいてターゲットユーザに類似するユーザを特定する（ステップＳ１４１７）。【０２０９】
例えば、レコメンド部１２２は、類似度が閾値より大きいユーザを、ターゲットユーザに類似するユーザとして特定する。以下の説明では、特定されたユーザを類似ユーザと記載する。【０２１０】
次に、レコメンド部１２２は、類似ユーザのＷＦＣを用いて、各コマンドのＥＣＦ（Ｅｘｐｅｃｔｅｄ  Ｃｏｍｍａｎｄ  Ｆｒｅｑｕｅｎｃｙ）を算出する（ステップＳ１４１８）。具体的には、以下のような処理が実行される。【０２１１】
（処理Ｇ１）レコメンド部１２２は、コマンドプロファイルテーブルからレコードを選択する。【０２１２】
（処理Ｇ２）レコメンド部１２２は、各コマンドに対して、下式（２）を用いてＥＣＦを算出する。【０２１３】
【数２】
2020183538.tif 000004
【０２１４】
ここで、ｎは類似ユーザの数を表す。ｋは類似ユーザの識別情報を表す。また、（ＷＣＦ）Ｋは、類似ユーザのＷＣＦを表す。式（２）に示すＥＣＦは、類似ユーザのＷＣＦの平均値である。【０２１５】
（処理Ｇ３）レコメンド部１２２は、選択されたレコードの重要度に算出されたＥＣＦを設定する。【０２１６】
（処理Ｇ４）コマンドプロファイルテーブルの全てのレコードについて処理が完了していない場合、レコメンド部１２２は、（処理Ｇ１）、（処理Ｇ２）、及び（処理Ｇ３）の処理を実行する。コマンドプロファイルテーブルの全てのレコードについて処理が完了した場合、レコメンド部１２２はステップＳ１４１８の処理を終了する。以上がステップＳ１４１８の処理の説明である。【０２１７】
次に、レコメンド部１２２は、コマンドプロファイルテーブルに基づいてコマンドリストを生成し（ステップＳ１４１９）、その後、レコメンドコマンド選択処理を終了する。【０２１８】
具体的には、レコメンド部１２２は、重要度の大きい順に所定の数のコマンドを選択し、選択されたコマンドのレコードを含むコマンドリストを生成する。【０２１９】
なお、選択するコマンドの数は任意に設定できる。また、レコメンド条件設定画面１１００にコマンドの数を設定する欄を設けてもよい。【０２２０】
レコメンド部１２２は、コマンドの実行履歴に基づいて、観点が異なるコマンドの重要度（ＧＵＦ及びＥＣＦ）を算出し、当該重要度に基づいて、レコメンドコマンドを選択できる。ここで、ＧＵＦは計算機システムにおけるコマンドの重要度を表し、ＥＣＦはユーザにおけるコマンドの重要度を表す。【０２２１】
ユーザが初心者又は新規のマイスタである場合、計算機システムにおいて重要と思われるコマンドが優先的にレコメンドされる。一方、既存のマイスタである場合、当該マイスタと類似する他のマイスタが使用したコマンドの中から重要と思われるコマンドが優先的にレコメンドされる。【０２２２】
実施例１によれば、ユーザ毎に適切なコマンドをレコメンドできるため、分析に要する時間を短縮することができる。すなわち、リアルタイムな分析を実現できる。また、新規ユーザ又は初心者に対しても、適切なコマンドのレコメンド、例えば、マイスタが使用したコマンドをレコメンドできるため、高度な分析を実現できる。【０２２３】
また、データブロックの各カラムにタグを付与し、視覚化することによって、データの定義、構造、内容等を容易かつ迅速に把握することができる。また、タグを用いることによって関連するデータの把握及び抽出が容易になる。これによって、コマンドの生成に要する時間を削減することができる。【０２２４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。【０２２５】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。【０２２６】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｐｙｔｈｏｎ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。【０２２７】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。【０２２８】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【図１】
2020183538.tif 000005
【図２】
2020183538.tif 000006
【図３】
2020183538.tif 000007
【図４Ａ】
2020183538.tif 000008
【図４Ｂ】
2020183538.tif 000009
【図４Ｃ】
2020183538.tif 000010
【図５】
2020183538.tif 000011
【図６】
2020183538.tif 000012
【図７】
2020183538.tif 000013
【図８】
2020183538.tif 000014
【図９Ａ】
2020183538.tif 000015
【図９Ｂ】
2020183538.tif 000016
【図１０】
2020183538.tif 000017
【図１１】
2020183538.tif 000018
【図１２】
2020183538.tif 000019
【図１３】
2020183538.tif 000020
【図１４Ａ】
2020183538.tif 000021
【図１４Ｂ】
2020183538.tif 000022
【国際調査報告】
2020183538.tif 000023
2020183538.tif 000024