JP2022089629A - データ処理システム及びキャッシュ更新制御方法 - Google Patents

データ処理システム及びキャッシュ更新制御方法 Download PDF

Info

Publication number
JP2022089629A
JP2022089629A JP2020202171A JP2020202171A JP2022089629A JP 2022089629 A JP2022089629 A JP 2022089629A JP 2020202171 A JP2020202171 A JP 2020202171A JP 2020202171 A JP2020202171 A JP 2020202171A JP 2022089629 A JP2022089629 A JP 2022089629A
Authority
JP
Japan
Prior art keywords
cache
update
data
analysis
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020202171A
Other languages
English (en)
Inventor
泰地 久恒
Taiji Hisatsune
信一郎 齊藤
Shinichiro Saito
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020202171A priority Critical patent/JP2022089629A/ja
Priority to US17/541,970 priority patent/US11681682B2/en
Publication of JP2022089629A publication Critical patent/JP2022089629A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2358Change logging, detection, and notification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】計画された制約下でのみデータベースのキャッシュを更新可能にし、データベースへのアクセスによる負荷を低減する。【解決手段】データ処理システム1において、データ処理装置は、データベース210のデータをキャッシュする分析箇所キャッシュ150と、開発者3によって使用され、データ分析のための分析処理を開発するデータ処理開発モジュール130と、開発者3によって使用され、分析処理の実行によってデータ分析を行うデータ処理モジュール140と、分析箇所キャッシュにおけるデータベースからのキャッシュ更新に関して、DB管理者から入力される更新制約を設定するキャッシュ管理モジュール110と、更新制約に基づいてキャッシュ更新の可否を判断する更新判断モジュール120と、を備える。キャッシュ更新が要求されたとき、更新判断モジュール1は、上記判断でキャッシュ更新を可とした場合に、要求されたキャッシュ更新を実行する。【選択図】図1

Description

本発明は、データ処理システム及びキャッシュ更新制御方法に関し、データベース分析に利用されるキャッシュの更新を管理するデータ処理システム及びキャッシュ更新制御方法に適用して好適なものである。
近年、製造業の工場では、基幹系データベースに保存されたセンサデータやログデータ等のデータを分析することによって新しい価値を生み出す、データ分析利活用が進んでいる。このデータ分析においては、データアナリストが、基幹系データベースのデータを参照し分析を行うことにより、生産効率化や可視化が図られる。
一般的なデータ分析の実装では、まず分析対象のデータの取捨選択を行い、データ分析を効率化する開発フェーズを経て、定期的なデータベースの参照及び分析によるデータ分析を行う運用フェーズへ移行する。このうち開発フェーズでは、トライアンドエラーによるデータベース上の各種データ精査をするため、データベースへの頻繁なアクセスによる負荷が発生する。一方で、基幹系データベースの主の役割は稼動ログデータの保存であるため、稼働ログデータの保存処理に支障をきたすような不用意なデータアクセスは低減されることが望ましい。
なお、従来のデータ分析の開発フェーズでは、ウォーターフォール型の管理監視のもと、専門のデータアナリストによるデータベースへのアクセスがされていたため、アクセスは計画化され不用意な負荷は存在しなかった。しかし近年、アナリティクスの民主化の流れによって、多くの専門外のユーザがデータ分析を気軽に扱える環境が構築された結果、管理監視されないデータ分析によって、不用意なデータベースへのアクセス負荷が多く発生している。
ところで、一般的にデータベースへの負荷を低減するためには、キャッシュが有効であることが知られている。これは、データ分析で必要なデータをキャッシュとして一時保存し、分析時にキャッシュを参照することで分析の度データベースへアクセスすることを防ぐものである。
そして、キャッシュデータの更新に関して、例えば特許文献1には、マスターのデータベースへのアクセスを低減する技術が開示されている。具体的には、特許文献1では、「更新期間が経過したキャッシュデータに対する送信要求があった場合、当該キャッシュデータに関連付けられた更新フラグの状態を判定する」こと、及び「更新フラグがオフである場合、当該更新フラグをオンにして、更新期間が経過したキャッシュデータに対応する更新データを取得する」ことが開示されている。
特開2012-146076号公報
ところで、基幹系データベースにおいては、本来は更新すべき古いキャッシュデータであっても、更新によって基幹系データベースに負荷をかけたくないタイミングが存在する。また、データ分析の開発フェーズでは、分析途中で異なるデータのキャッシュに変更されることは、正しい分析結果を得られなくなることに繋がるため、避けなければならない。
しかしながら、上述した特許文献1に記載された手法では、キャッシュデータに更新フラグを付与することによって、期間が経過したキャッシュが参照された際は、そのタイミングでデータベースにアクセスが発生し、キャッシュが更新されてしまう。すなわち、特許文献1に記載された手法では、キャッシュの更新は時間経過に依存した自動的な処理となり、更新タイミングの制御及び自発的なキャッシュの更新ができない、という点で、上述した基幹系データベースにおけるキャッシュ管理に関する要求を満足できないという課題があった。
本発明は以上の点を考慮してなされたもので、計画された制約下でのみデータベースのキャッシュを更新可能にし、データベースへのアクセスによる負荷を低減することが可能なデータ処理システム及びキャッシュ更新制御方法を提案しようとするものである。
かかる課題を解決するため本発明においては、データベースに接続し、前記データベースのデータ分析を行うデータ処理システムであって、前記データ分析の開発フェーズにおいて参照される前記データベースのデータをキャッシュする分析箇所キャッシュと、前記データ分析の開発者によって使用され、前記データ分析のための分析処理を開発するデータ処理開発モジュールと、前記開発者によって使用され、前記データ処理開発モジュールで開発された前記分析処理の実行によってデータ分析を行うデータ処理モジュールと、前記分析箇所キャッシュにおける前記データベースからのキャッシュ更新に関して、前記データベースの管理者から入力される更新制約を設定するキャッシュ管理モジュールと、前記キャッシュ管理モジュールによって設定された前記更新制約に基づいて前記分析箇所キャッシュのキャッシュ更新の可否を判断する更新判断モジュールと、を備え、前記データ処理開発モジュールから前記キャッシュ更新が要求されたとき、前記更新判断モジュールは、前記判断でキャッシュ更新を可とした場合に、前記要求されたキャッシュ更新を実行するデータ処理システムが提供される。
また、かかる課題を解決するため本発明においては、データベースのデータ分析を行うデータ処理システムによるキャッシュ更新制御方法であって、前記データ処理システムは、前記データ分析の開発フェーズにおいて参照される前記データベースのデータをキャッシュする分析箇所キャッシュと、前記データ分析の開発者によって使用され、前記データ分析のための分析処理を開発するデータ処理開発モジュールと、前記開発者によって使用され、前記データ処理開発モジュールで開発された前記分析処理の実行によってデータ分析を行うデータ処理モジュールと、前記分析箇所キャッシュにおける前記データベースからのキャッシュ更新に関して、前記データベースの管理者から入力される更新制約を設定するキャッシュ管理モジュールと、前記キャッシュ管理モジュールによって設定された前記更新制約に基づいて前記分析箇所キャッシュのキャッシュ更新の可否を判断する更新判断モジュールと、を有し、前記データ処理開発モジュールから前記キャッシュ更新が要求されたとき、前記更新判断モジュールは、前記判断でキャッシュ更新を可とした場合に、前記要求されたキャッシュ更新を実行するキャッシュ更新制御方法が提供される。
本発明によれば、計画された制約下でのみデータベースのキャッシュを更新可能にし、データベースへのアクセスによる負荷を低減することができる。
本発明の第1の実施形態に係るデータ処理システム1の構成例を示すブロック図である。 データ処理システム1とユーザとの関係性を説明するための図である。 キャッシュ更新制約登録処理の手順例を示すシーケンス図である。 任意キャッシュ更新処理の手順例を示すシーケンス図である。 DB情報入力機能112による処理の処理手順例を示すフローチャートである。 DB情報101の一例を示す図である。 更新制約入力機能111による処理の処理手順例を示すフローチャートである。 キャッシュ更新制約102の一例を示す図である。 更新判断モジュール120による処理の処理手順例を示すフローチャートである。 更新判定を行うコードの一例である。 接続クエリのコード例である。 更新ログ163の一例を示す図である。 分析フロー設計機能131による処理の処理手順例を示すフローチャートである。 DB情報閲覧機能132による処理の処理手順例を示すフローチャートである。 描画部170による処理の処理手順例を示すフローチャート(その1)である。 描画部170による処理の処理手順例を示すフローチャート(その2)である。 登録DB一覧画面の一例を示す図である。 DB情報入力画面の一例を示す図である。 キャッシュ更新制約入力画面の一例を示す図である。 分析フロー設計画面の一例を示す図である。 DB指定画面の一例を示す図である。 DBデータ表示画面の一例を示す図である。 本発明の第2の実施形態に係るデータ処理システム4の構成例を示すブロック図である。 キャッシュ更新制約入力画面の一例を示す図である。 キャッシュ更新制約102の一例を示す図である。 適時キャッシュ更新処理の手順例を示すシーケンス図である。 DB情報閲覧機能132による処理の処理手順例を示すフローチャートである。 更新判断モジュール120による処理の処理手順例を示すフローチャートである。 管理描画部510による処理の処理手順例を示すフローチャートである。 分析描画部620による処理の処理手順例を示すフローチャートである。 第1または第2の実施形態に係るデータ処理システム1,4を構成する各装置(コンピュータ装置10)のハードウェア構成例を示すブロック図である。 キャッシュデータ入替処理を説明するためのイメージ図である。
以下、図面を参照して、本発明の実施形態を詳述する。
(1)第1の実施形態
(1-1)構成
図1は、本発明の第1の実施形態に係るデータ処理システム1の構成例を示すブロック図である。
図1に示したように、本実施形態に係るデータ処理システム1は、データ分析の開発者(後述する図2の開発者3)が使用する1以上のデータ処理装置100が、データベース管理者(後述する図2のDB管理者2)が管理するデータベース装置200に接続されて構成される。なお、データ処理システム1とDB管理者2及び開発者3との詳しい関係については、図2を参照して後述する。
また、図1において、DB情報101は、DB管理者2がデータ処理装置100に対して付与するデータベース210の情報であり、キャッシュ更新制約102は、キャッシュ更新の際に課す制約をDB管理者2が記述したものである。DB情報101及びキャッシュ更新制約102は、DB管理者2によってデータ処理装置100に入力される。
データ処理装置100は、キャッシュ管理モジュール110、更新判断モジュール120、データ処理開発モジュール130、データ処理モジュール140、分析箇所キャッシュ150、データ記憶部160、及び描画部170を備える。
キャッシュ管理モジュール110は、DB管理者2からデータ処理装置100に対する情報の入力を受け付ける機能として、キャッシュを更新する際の制約であるキャッシュ更新制約102を受け付ける更新制約入力機能111と、データベース210に接続するためのDB情報101を受け付けるDB情報入力機能112と、を有する。
更新判断モジュール120は、キャッシュ管理モジュール110が受け付けたキャッシュ更新制約102をまとめたキャッシュ更新制約情報162を参照し、分析箇所キャッシュ150への更新要求があった際に、更新が可能であるか判断する機能を有する。
データ処理開発モジュール130は、分析フロー設計機能131及びDB情報閲覧機能132を有する。分析フロー設計機能131は、データ分析を行う際のデータベース参照メソッドや、データの結合、分離、分析処理等のメソッド、分析結果を出力するメソッド等を持ち、開発者3はこれらのメソッドを使用することでデータ分析が可能となる。DB情報閲覧機能132は、データベース210への接続を含むメソッドが分析フロー設計機能131で呼び出された場合に、データベース210の情報(DB情報101)を表示し、データベースクエリの記入欄を提供する機能を持つ。
データ処理モジュール140は、開発者3がデータ処理開発モジュール130で開発した分析処理を実際に実行する機能を有する。
分析箇所キャッシュ150は、データ分析において必要となるデータを格納するキャッシュである。一例として、リレーショナルデータベースでは、スキーマ名やテーブル名、カラム名等のメタデータ151や、テーブルの中身のカラムデータ152を保存する。
データ記憶部160は、登録DB情報161、キャッシュ更新制約情報162、及び更新ログ163を格納する。登録DB情報161は、キャッシュ管理モジュール110のDB情報入力機能112によって受け付けられたDB情報101をまとめた情報であり、キャッシュ更新制約情報162は、キャッシュ管理モジュール110の更新制約入力機能111によって受け付けられたキャッシュ更新制約102をまとめた情報である。また、更新ログ163は、キャッシュの更新処理のログを保存する情報である。
描画部170は、ユーザ操作を受け付け、キャッシュ管理モジュール110及びデータ処理開発モジュール130の機能や情報を表示する。また、描画部170による表示画面には、後述する更新ボタン171を表示することができる。更新ボタン171は、必要に応じてユーザが押下操作を行うことによって、分析箇所キャッシュ150の対象キャッシュが更新される。
データベース装置200は、データベース210及びデータベースマネジメントシステム220を保有する。データベース210には、センサデータ(後述する図2のセンサデータ201)やログデータ(後述する図2のログデータ202)等の工場稼働データが、メタデータ211及びカラムデータ212として保存される。データベース210へのアクセス等は、データベースマネジメントシステム220によって管理される。
本実施形態では、上記のように構成されたデータ処理システム1を用いて、DB管理者2がデータ処理装置100の分析箇所キャッシュ150に対してキャッシュ更新の制約を課し、開発者3が上記制約のもとで更新ボタン171を操作することにより、上記制約下で任意に分析箇所キャッシュ150を更新できることを説明する。但し、本発明は、このような実施形態に限定されるものではなく、また、本発明の思想ないし趣旨から逸脱しない範囲で、その具体的な構成を変更し得る。
本実施形態において、図1に示したデータ処理システム1は、例えば基幹系データベースの管理者(または管理部門)とデータ分析の開発者とを、ユーザとして想定することができる。
図2は、データ処理システム1とユーザとの関係性を説明するための図である。本実施形態に係るデータ処理システム1のユーザとしては、データベースの管理者(DB管理者2)と、データ分析の開発者(開発者3)とが想定される。なお、図2では、図1に示したデータ処理システム1の構成の一部について図示を省略している。
図2に示すように、DB管理者2は、センサデータ201やログデータ202を格納するデータベース装置200内のデータベース210を管理する。開発者3は、データ処理装置100内のデータ処理開発モジュール130を、描画部170を通じて操作し、データ処理フローを設計する。開発者3によって設計された処理フローは、データ処理モジュール140によって実際に処理される。また、データ処理装置100とデータベース装置200の間では、分析箇所キャッシュ150の更新や、データ参照のアクセスが発生する。ここで、開発者3がデータ処理装置100上でデータベース210にアクセスするためには、DB管理者2から、データ処理装置100へのアクセス権限の付与及びDB情報101(具体的には、ホスト、ポート番号、ユーザ、パスワード等)の提供が必要であり、開発者3は、DB管理者2による許可なしにデータベース210にアクセスして参照を行う行為はできないとする。
(1-2)全体処理
以下では、データ処理システム1で実行される全体処理として、キャッシュ更新制約登録処理及び任意キャッシュ更新処理を説明する。
図3は、キャッシュ更新制約登録処理の手順例を示すシーケンス図である。図3に示す一連の処理は、開発者3がデータ処理装置100上でデータベース210にアクセスできるようにするために、DB管理者2からデータ処理装置100に対して、データベース210のDB情報101及びキャッシュ更新制約102を付与する際に、データ処理システム1で実行される処理である。なお、図3に示す一連の処理は、開発者3によるデータ分析よりも前に実行されるとする。
また、図3のシーケンス図では、同一の機能部またはモジュール等によって連続的に実行される一連の処理に対して、それぞれステップ番号を付しており、これは後述する他のシーケンス図でも同様である。
図3に示したステップS101は、描画部170による処理である。ステップS101において、描画部170はまず、DB管理者2からキャッシュ管理モジュール110へのアクセスが行われるとき、DB情報入力機能112にアクセス通知を行う。そして描画部170は、登録済みのデータベースに関するデータ(少なくとも登録DB情報161及びキャッシュ更新制約情報162)をDB情報入力機能112から受信し、当該データを表示する。その後、描画部170は、DB管理者2から新規登録するデータベースの情報(新規登録のDB情報101)が入力された場合、当該情報をDB情報入力機能112に渡す。その後、描画部170は、DB情報入力機能112から、先に渡した新規登録のDB情報101が追加された登録DB情報161を受信し、当該データを表示する。次いで、DB管理者2からキャッシュ更新制約102を登録する入力がなされた場合には、描画部170は、当該キャッシュ更新制約102を更新制約入力機能111に渡す。その後、更新制約入力機能111から、更新されたキャッシュ更新制約情報162を受信し、これを表示する。
図3に示したステップS102は、DB情報入力機能112による処理である。ステップS102において、DB情報入力機能112は、描画部170からアクセス通知を受け取ったとき、データ記憶部160の登録DB情報161から現在のデータベース210の情報を取得し、データ記憶部160のキャッシュ更新制約情報162から現在登録されているキャッシュ更新制約を取得し、データ記憶部160の更新ログ163からキャッシュ更新のログを取得し、取得したこれらの情報に基づいて登録済みのデータベース210の情報を描画部170に送信する。また、描画部170から新規登録するDB情報101を受信すると、DB情報入力機能112は、当該DB情報101を更新制約入力機能111に渡し、登録DB情報161に保存する。さらにDB情報入力機能112は、更新された登録済みのデータベース210の情報を描画部170に送信する。
図3に示したステップS103は、更新制約入力機能111による処理である。ステップS103において、更新制約入力機能111は、DB情報入力機能112から新規登録するDB情報101を受け取った場合、描画部170からのキャッシュ更新制約102の送信を待つ。そしてキャッシュ更新制約102が入力されると、更新制約入力機能111は、更新判断モジュール120に、DB情報101、キャッシュ更新制約102、及び登録時フラグを渡す。登録時フラグは、当該送信データが登録時に送信されていることを示すフラグである。そして、更新制約入力機能111は、入力されたキャッシュ更新制約102をキャッシュ更新制約情報162に保存し、更新されたキャッシュ更新制約情報162を描画部170に送信する。
図3に示したステップS104は、更新判断モジュール120による処理である。ステップS104において、更新判断モジュール120は、更新制約入力機能111から受信したDB情報101、キャッシュ更新制約102、及び登録フラグに基づいて、データベース210へのアクセスが可能でキャッシュ更新が可能であるか否かを判定する。受信データに登録フラグが含まれ(更新判断モジュール120が有する更新フラグがON)、キャッシュ更新が可能と判定した場合、更新判断モジュール120は、データベース210に対してメタデータ取得クエリを送信し、データベース210から受け取ったメタデータ211を、分析箇所キャッシュ150のキャッシュに保存する(メタデータ151)。
以上のように図3の各処理が行われることにより、DB管理者2から入力されたデータベース210に接続するためのDB情報101及びキャッシュ更新制約102がデータ処理装置100に付与されるため、以降は、開発者3がデータ処理装置100上でデータベース210にアクセスできるようになる。
図4は、任意キャッシュ更新処理の手順例を示すシーケンス図である。図4に示す一連の処理は、開発者3が分析フロー設計機能131の使用中に分析箇所キャッシュ150のキャッシュ更新を行う際に、データ処理システム1で実行される処理である。
図4に示したステップS201は、描画部170による処理である。ステップS201において、描画部170は、開発者3から分析フロー設計機能131へのアクセスが行われるとき、分析フロー設計機能131にアクセス通知を行う。そして描画部170は、分析フロー設計機能131から設計中の分析フローに関する情報を受信し、これを表示する。そして、開発者3からフロー設計作成を入力された場合には、描画部170は、分析フロー設計機能131へフロー設計作成を依頼する。また、開発者3からデータベースの指定(入力DB指定)が入力された場合には、描画部170は、分析フロー設計機能131へ入力DB指定を送信する。また、DB情報閲覧機能132からキャッシュ更新ボタン表示の指示を受信した場合には、描画部170は、開発者3に対して更新ボタン171を表示する。そして、開発者3によって更新ボタン171の押下操作が行われると、描画部170は、更新ボタン171が押下操作されたことをDB情報閲覧機能132に渡す。その後、描画部170は、DB情報閲覧機能132から、キャッシュ更新された後のデータベース210の情報を受信し、これを表示する。
図4に示したステップS202は、分析フロー設計機能131による処理であり、描画部170からデータ処理開発モジュール130へのアクセスが発生したときに処理が開始される。このとき、分析フロー設計機能131は、既に登録されているデータベース210の接続情報を登録DB情報161から取得し、描画部170に送信する。ステップS202では続いて、描画部170から入力DB指定を受信したとき、分析フロー設計機能131は、DB情報閲覧機能132に、入力されたデータベースを送信する。入力DB指定の際、開発者3は、入力DBとして具体的には、データベースのホスト名、データベース名、スキーマ名、テーブル名、ユーザ、及びパスワードを記載する。
図4に示したステップS203は、DB情報閲覧機能132による処理である。ステップS203において、DB情報閲覧機能132は、分析フロー設計機能131から入力DBに関する接続情報を受け取った場合に、キャッシュ更新制約情報162に入力DBを送信し、対象のデータベース210に対して設定されているキャッシュ更新制約を取得する。また、DB情報閲覧機能132は、分析箇所キャッシュ150において対象のデータベース210のキャッシュが存在するか否かを、分析箇所キャッシュ150に入力DBを送信することによって確認する。その後、DB情報閲覧機能132は、入力DBとキャッシュ更新制約とを更新判断モジュール120に送信し、開発者3がキャッシュの更新を可能であるか否かの結果を取得する。ここで、キャッシュの更新が可能であった場合には、DB情報閲覧機能132は、描画部170にキャッシュ更新ボタン(更新ボタン171)の表示を通知する。また、描画部170から更新ボタン171が押下された旨の通知を受け取った場合には、DB情報閲覧機能132は、更新判断モジュール120にキャッシュ更新クエリを発行する。そして、キャッシュ更新が行われて更新判断モジュール120から更新後のデータベース210のデータを受信したときは、DB情報閲覧機能132は、受信したデータを描画部170に送信する。
図4に示したステップS204は、更新判断モジュール120による処理であり、開発者3から入力DB指定が行われた場合に実行される処理である。ステップS204において、更新判断モジュール120は、DB情報閲覧機能132から入力DB及びキャッシュ更新制約を受信した場合に、当該入力DBが示すデータベース210に対してキャッシュの更新が可能であるかを、当該キャッシュ更新制約に基づいて判断し、その判断結果(更新判断結果)をDB情報閲覧機能132に送信する。その後、更新判断モジュール120は、更新判断結果に拘わらず、更新ログ163に上記更新の結果を書き込む。なお、ステップ204の時点では、更新判断モジュール120は、更新制約入力機能111から登録時フラグを受信していないため(図3のステップS103参照)、データベース210へのメタデータ211の取得(図3のステップS104参照)は行わない。
図4に示したステップS205は、更新判断モジュール120による処理であり、開発者3によって更新ボタン171の押下操作が行われた場合に実行される処理である。ステップS205において、更新判断モジュール120は、DB情報閲覧機能132からキャッシュ更新クエリを受信した場合に、入力DBが示すデータベース210に対して当該クエリを発行し、その結果を受信して分析箇所キャッシュ150の更新を行う。その後、更新判断モジュール120は、更新結果を更新ログ163に書き込む。
(1-3)個別処理
以下では、図3及び図4を参照しながら前述したデータ処理システム1による全体処理において各機能やモジュール等が実行する個別処理について、それぞれ詳述する。
(1-3-1)DB情報入力機能112
図5は、DB情報入力機能112による処理の処理手順例を示すフローチャートである。図5に示す処理は、図3のステップS102の処理に相当する。
図5によればまず、DB情報入力機能112は、キャッシュ管理モジュール110へのアクセスがあったことを描画部170から受け取る(ステップS301)。
次に、DB情報入力機能112は、データ記憶部160に格納されている登録済みの登録DB情報161、キャッシュ更新制約情報162、及び更新ログ163を取得し、描画部170に送信する(ステップS302)。
次に、DB情報入力機能112は、描画部170から、DB管理者2が入力した新規登録するDB情報101を受信し(ステップS303)、受信したDB情報101を更新制約入力機能111に送信する(ステップS304)。
そして、DB情報入力機能112は、登録DB情報161にステップS303で受信したDB情報101を格納する(ステップS305)。
図6は、DB情報101の一例を示す図である。図6に示したDB情報300は、登録DB情報161に格納される際のDB情報101のコードの一例を示したものであり、JSON形式によってデータベースの情報が記述されている。図6に示したDB情報300の記述内容は、後述する図18のDB情報入力画面360における入力内容に対応している。このようなDB情報が登録DB情報161に保存されることによって、開発者3は当該データベースにアクセスすることが可能となる。なお、DB情報101の記述形式はJSON形式に限定されるものではなく、例えばデータベース形式等であってもよい。
そして最後に、DB情報入力機能112は、新たに登録されたDB情報101を含む登録済みのデータベース210の情報(すなわち、ステップS305による更新後の登録DB情報161)を描画部170に送信し(ステップS306)、一連の処理を終了する。
(1-3-2)更新制約入力機能111
図7は、更新制約入力機能111による処理の処理手順例を示すフローチャートである。図7に示す処理は、図3のステップS103の処理に相当する。
図7によればまず、更新制約入力機能111は、DB管理者2が入力したDB情報101をDB情報入力機能112から受信する(ステップS401)。ステップS401の後、更新制約入力機能111は、ステップS401で受信したDB情報101のデータベースに対するキャッシュ更新制約102が描画部170上で入力されるまで待機する(ステップS402)。
そして更新制約入力機能111は、入力されたキャッシュ更新制約102を描画部170から受信すると(ステップS403)、ステップS401で受信したDB情報101とステップS403で受信したキャッシュ更新制約102とを更新判断モジュール120に送信する(ステップS404)。この際、更新制約入力機能111は登録時フラグを添えて送信する。
次に、更新制約入力機能111は、キャッシュ更新制約102をキャッシュ更新制約情報162に保存する(ステップS405)。
図8は、キャッシュ更新制約102の一例を示す図である。図8に示したキャッシュ更新制約310は、キャッシュ更新制約情報162に格納される際のキャッシュ更新制約102のコードの一例を示したものであり、JSON形式によってキャッシュ更新の制約が記述されている。図8に示したキャッシュ更新制約310の記述内容は、後述する図19に示すキャッシュ更新制約入力画面370における入力内容に対応している。具体的には、キャッシュ更新制約310には、制約対象となるスキーマが「public」であり(コード311)、制約の内容として、「8時から12時は更新禁止であること」(コード312)、及び「12時から17時は1時間に1回の更新が可能であること」(コード313)が記述されている。なお、キャッシュ更新制約102の記述形式はJSON形式に限定されるものではなく、例えばデータベース形式等であってもよい。
そして最後に、更新制約入力機能111は、新たに入力されたキャッシュ更新制約102を含むキャッシュ更新制約情報162(すなわち、ステップS405で更新したキャッシュ更新制約情報162)を描画部170に送信し(ステップS406)、一連の処理を終了する。
(1-3-3)更新判断モジュール120
図9は、更新判断モジュール120による処理の処理手順例を示すフローチャートである。図9に示す処理は、図3のステップS104、及び図4のステップS204,S205の処理に相当する。更新判断モジュール120は、更新制約入力機能111から何らかの入力がなされるまでは待機状態であり、更新制約入力機能111からの入力を契機として、図9の処理を開始する。
図9によればまず、更新判断モジュール120は、DB情報101及びキャッシュ更新制約102が入力されたか否かを判定する(ステップS501)。当該入力があった場合は(ステップS501のYES)、ステップS502に移行し、他の入力であった場合は(ステップS501のNO)、後述するステップS510に移行する。
ステップS502において、更新判断モジュール120は、ステップS501で確認されたDB情報101及びキャッシュ更新制約102に加えて、更新フラグがONになっているか否かを判定する。更新フラグは、更新制約入力機能111から登録時フラグを受信したときにONとなるフラグである。したがって、ステップS502の処理は、更新制約入力機能111から登録時フラグが入力されたか否かを判定する処理とも言える。ステップS502において更新フラグがONである場合は(ステップS502のYES)、DB管理者2がDB情報101及びキャッシュ更新制約102を入力した状況の処理とみなし、ステップS503に移行する。一方、ステップS502において更新フラグがONでない(OFFである)場合は(ステップS502のNO)、開発者3がデータベース210を指定した際に当該データベース210に対応する分析箇所キャッシュ150の更新判断をする状況の処理とみなし、ステップS506に移行する。
まず、ステップS502からステップS503に移行する場合の処理について説明する。ステップS503~S505の処理は、図3のステップS104の処理に相当する。
ステップS503において、更新判断モジュール120は、入力されたキャッシュ更新制約102に基づいて、分析箇所キャッシュ150の更新が可能であるか否かを判定する。分析箇所キャッシュ150を更新可能である場合は(ステップS503のYES)、ステップS504に移行し、分析箇所キャッシュ150を更新できない場合は(ステップS503のNO)、更新判断モジュール120は処理を終了する。
図10は、更新判定を行うコードの一例である。図10に示した更新判断モジュール320では、時間による制約に対して更新の可否を判定している。具体的には、コード321において、現在の日時と制約とを照らし合わせ、適合していた場合はデータベースに対してクエリを送信する処理を記述している。また、コード322では、現在日時が制約日時の間にあり、かつ制約のスキーマと入力されたデータベースのスキーマとが正しく一致した場合に「1」を返す処理を記述している。
分析箇所キャッシュ150が更新可能であるとき、ステップS504において、更新判断モジュール120は、メタデータ取得クエリをデータベース210に対して送信する。このメタデータ取得処理は、開発者3が分析フロー設計機能131において指定できるデータベースのスキーマやテーブル名を取得するために行う。また、メタデータはデータ分析において参照される頻度が高く、事前にキャッシュに格納した方が、開発時の更新頻度を低減できるためでもある。
図11は、接続クエリのコード例である。図11に示した接続クエリ330は、メタデータ取得クエリを送信するために更新判断モジュール120において実行されるクエリであって、まず、送信先のデータベースを規定し(データベースへの疎通を確認し)、その後のコード331において、クエリを送信する処理を記述している。
そして、ステップS504の終了後、更新判断モジュール120は、ステップS504でデータベース210から受信した結果(メタデータ211)を分析箇所キャッシュ150にメタデータ151として保存し(ステップS505)、処理を終了する。
次に、ステップS502からステップS506に移行する場合の処理について説明する。ステップS506~S509の処理は、図4のステップS204の処理に相当する。
ステップS506において、更新判断モジュール120は、ステップS503と同様に、入力されたキャッシュ更新制約102に基づいて、分析箇所キャッシュ150の更新が可能であるか否かを判定する。
ステップS506において分析箇所キャッシュ150を更新可能である場合は(ステップS506のYES)、更新判断モジュール120は、更新可能である旨をDB情報閲覧機能132に送信し(ステップS507)、更新ログ163に更新結果を書き込み(ステップS509)、処理を終了する。一方、ステップS506において分析箇所キャッシュ150を更新できない場合は(ステップS506のNO)、更新判断モジュール120は、更新不可能である旨をDB情報閲覧機能132に送信し(ステップS508)、更新ログ163に更新結果を書き込み(ステップS509)、処理を終了する。
次に、ステップS501からステップS510に移行する場合の処理について説明する。ステップS510~S513,S509の処理は、図4のステップS205の処理に相当する。
ステップS510において、更新判断モジュール120は、更新制約入力機能111からキャッシュ更新クエリが入力されたか否かを判定する。入力がキャッシュ更新クエリであった場合(ステップS510のYES)、開発者3によって更新ボタン171が押されたものとみなし、分析箇所キャッシュ150の更新を実行するためにステップS511に移行する。入力がキャッシュ更新クエリ以外であった場合には(ステップS510のNO)、更新判断モジュール120は処理を終了する。
ステップS511において、更新判断モジュール120は、データベース210に対して、入力されたキャッシュ更新クエリを送信し、その結果を受信する。そして、更新判断モジュール120は、ステップS511で受信した結果によって分析箇所キャッシュ150を更新する(ステップS512)。
その後、更新判断モジュール120は、ステップS512における更新結果(キャッシュ更新が完了した旨)をDB情報閲覧機能132に送信し(ステップS513)、更新ログ163に更新結果を書き込み(ステップS509)、処理を終了する。
図12は、更新ログ163の一例を示す図である。図12に示した更新ログ340は、更新ごとにログを記録した更新ログ163の具体例であり、更新の成否、更新が実行された日時情報、及び更新内容が記載されている。具体的には例えば、ログ341の場合、2020年9月15日の14時15分に、データベース名「Factory-C」のスキーマ「public」へのSELECTクエリが実行され、キャッシュが更新されたことが示されている。
(1-3-4)分析フロー設計機能131
図13は、分析フロー設計機能131による処理の処理手順例を示すフローチャートである。図13に示す処理は、図4のステップS202の処理に相当し、描画部170からデータ処理開発モジュール130へのアクセスが発生したときに処理が開始される。
図13によればまず、分析フロー設計機能131は、データ処理開発モジュール130へのアクセスがあったことを描画部170から受信する(ステップS601)。これに対し分析フロー設計機能131は、分析フロー設計機能の表示を描画部170に指示する(ステップS602)。
次に、分析フロー設計機能131は、描画部170上でフロー設計機能における作成操作が行われたことを描画部170から受信すると(ステップS603)、登録DB情報161から、DB管理者2によって登録された全てのデータベース210の情報を取得し(ステップS604)、描画部170からの次の入力まで待機する(ステップS605)。
その後、描画部170上で入力DBが指定されると(入力DB指定)、分析フロー設計機能131は、描画部170からデータベース、スキーマ、テーブル情報等を受信する(ステップS606)。この場合、分析フロー設計機能131は、ステップS606で受信した情報をDB情報閲覧機能132に送信し(ステップS607)、その後は再びステップS605の待機状態に戻る。
(1-3-5)DB情報閲覧機能132
図14は、DB情報閲覧機能132による処理の処理手順例を示すフローチャートである。図14に示す処理は、図4のステップS203の処理に相当する。DB情報閲覧機能132は、描画部170の更新ボタン171(より具体的には、後述する図21に示されるDB指定画面390におけるスキーマ更新ボタン395及びテーブル更新ボタン396)の表示/非表示の管理、及び分析箇所キャッシュ150内のデータ(例えばメタデータ151やカラムデータ152)を管理する機能を有する。
図14によれば、通常、DB情報閲覧機能132は待機状態となっている(ステップS701)。そして、開発者3から描画部170上でデータベース、スキーマ、及びテーブル情報が入力されると、図13のステップS607で説明したように、これらの入力情報は分析フロー設計機能131によって転送され、DB情報閲覧機能132が受信する(ステップS702)。
次に、DB情報閲覧機能132は、ステップS702で受信した入力情報に基づいて、対象のデータベース210に対して設定されているキャッシュ更新制約を、キャッシュ更新制約情報162から取得する(ステップS703)。また、DB情報閲覧機能132は、ステップS702で受信した入力情報に基づいて、分析箇所キャッシュ150に対象のデータベース210のキャッシュが存在するか否かを確認する(ステップS704)。
次に、DB情報閲覧機能132は、ステップS702で受信した入力情報(DB情報)とステップS703で取得したキャッシュ更新制約を、更新判断モジュール120に送信する(ステップS705)。これらを受信した更新判断モジュール120は、図9のステップS506~S508で説明したように、分析箇所キャッシュ150が更新可能であるか否かを判定し、その結果をDB情報閲覧機能132に送信する。
次に、DB情報閲覧機能132は、更新判断モジュール120から受信した情報(分析箇所キャッシュ150の更新判定結果)が、更新可能であるか否かを判定する(ステップS706)。更新可能である場合は(ステップS706のYES)、ステップS707に移行し、更新不可能である場合は(ステップS706のNO)、後述するステップS710に移行する。
ステップS707においてDB情報閲覧機能132は、分析箇所キャッシュ150が更新可能であることから、更新ボタン171を表示する通知を描画部170に送信する。なお、更新ボタン171の表示/非表示という表現に関して、本説明では、開発者3からの操作を受付可能な表示態様を「表示」と称し、開発者3からの操作を受け付けない表示態様を「非表示」と称する。したがって、例えば後述する図21に示すテーブル更新ボタン396のように、開発者3から操作不能な形態で表示された場合も「非表示」に相当する。
その後、DB情報閲覧機能132は、開発者3による更新ボタン171の押下操作(キャッシュ更新ボタン押下)が描画部170から通知されたか否かを判定する(ステップS708)。ステップS708において、当該通知を受信した場合は(ステップS708のYES)、ステップS709に移行し、当該通知を受信しなかった場合は(ステップS709のNO)、ステップS710に移行する。
ステップS709において、DB情報閲覧機能132は、更新判断モジュール120にキャッシュ更新クエリを発行する。そして、更新判断モジュール120からキャッシュ更新の完了通知を受信した段階で、ステップS710に移行する。当該完了通知の際は、キャッシュ更新後のデータベース210のデータも受信する。
ステップS710では、DB情報閲覧機能132は、分析箇所キャッシュ150内の指定されたテーブルデータを表示するために、描画部170にデータベース210のデータを送信する。その後はステップS701に戻って待機する。
(1-3-6)描画部170
図15及び図16は、描画部170による処理の処理手順例を示すフローチャート(その1、その2)である。図15に示す処理は、主に図3のステップS101の処理に相当し、図16に示す処理は、図4のステップS201の処理に相当する。
図15によればまず、描画部170は、DB管理者2または開発者3からアクセスがあった場合に、そのアクセス先に応じて、キャッシュ管理モジュール110の表示を行うか、データ処理開発モジュール130の表示を行うかを切り分ける(ステップS801)。アクセス先がキャッシュ管理モジュール110の場合はステップS802に移行し、アクセス先がデータ処理開発モジュール130の場合は、図16のステップS810に移行する。
まず、ステップS801からステップS802に移行した場合の処理を説明する。前述したように、ステップS802~S809の処理は、キャッシュ更新制約登録処理における描画部170による処理(図3のステップS101)の処理に相当する。
アクセス先がキャッシュ管理モジュール110であった場合、描画部170は、既に登録されている登録DB情報161を表示するために、DB情報入力機能112に登録DB情報161の取得を依頼する(ステップS802)。
そして描画部170は、現在登録済みのデータベース210に関するデータ(少なくとも登録DB情報161及びキャッシュ更新制約情報162)をDB情報入力機能112から受信し、受信したデータを登録DB一覧画面に表示する(ステップS803)。
図17は、登録DB一覧画面の一例を示す図である。図17に示した登録DB一覧画面350は、登録済みのそれぞれのデータベース210に関するデータを表示する画面であって、登録DB情報161及びキャッシュ更新制約情報162の他、更新ログ163による情報も表示している。具体的には、図17の登録DB一覧画面350では、ホスト名を示すホスト351、ポート番号を示すポート352、データベース名を示すDB名353、ユーザ名を示すユーザ354、パスワードを示すパス355、キャッシュ更新制約を示す制約356、及び更新ログを示すログ357を、登録済みのデータベースごとに表示している。
次に、描画部170は、DB管理者2がDB情報101またはキャッシュ更新制約102を入力するための入力画面(DB情報入力画面、キャッシュ更新制約入力画面)を表示し、入力されるまで待機する(ステップS804)。
図18は、DB情報入力画面の一例を示す図である。図18に示したDB情報入力画面360は、登録するデータベース210に接続するために必要となるDB情報101を入力するための画面であり、具体的には、ホスト名の入力欄361、ポート番号の入力欄362、データベース名の入力欄363、ユーザ名の入力欄364、及びパスワードの入力欄365を有する。なお、DB情報入力画面に設けられる入力欄の種類は、図18の例示に限定されず、データベースの種類に応じて適宜必要な情報をデータベース情報として記載する必要がある。そして、OKボタン366の押下操作が行われたときに、入力が確定される。
図19は、キャッシュ更新制約入力画面の一例を示す図である。図19に示したキャッシュ更新制約入力画面370は、登録するデータベース210に課するキャッシュ更新制約102を入力するための画面であり、具体的には、入力欄371に、制約が必要な対象のスキーマまたはテーブルを入力し、入力欄373に、詳細な制約の内容を入力する。図19の場合は、時間別に細かな更新制限ができる形態で入力欄373が実装されている。また、制約の登録が必要ない場合には、即時にキャッシュの更新が可能であるため、チェック欄372をチェックすればよい。そして、OKボタン374の押下操作が行われたときに、入力が確定される。
更新制約の具体的な内容としては、例えば図19の場合、0時から8時までの間は、制限なく直ちにキャッシュの更新が可能であり、8時から12時までの間は、キャッシュの更新ができない制約があり、12時から17時までの間は、キャッシュの更新は1時間あたり1回までに制限され、17時から24時までの間は、メタデータの更新のみが可能であることを制約として課している(入力欄373参照)。なお、キャッシュ更新制約入力画面に設けられる入力欄の形式は、図19の形式に限定されず、上記した時間別の制約の他にも、更新頻度や、更新に掛かるデータサイズ等によって制限できるようにしてもよい。
次に、描画部170は、DB情報入力画面またはキャッシュ更新制約入力画面の何れにおいて入力が確定されたか(DB情報101またはキャッシュ更新制約102の何れが入力されたか)を判定し(ステップS805)、DB情報101が入力された場合はステップS806に移行し、キャッシュ更新制約102が入力された場合はステップS808に移行する。
DB情報101が入力された場合、描画部170は、入力されたDB情報101をDB情報入力機能112に送信する(ステップS806)。DB情報入力機能112では、ステップS806で送信されたDB情報101を登録DB情報161に格納する処理が行われる。そして描画部170は、DB情報入力機能112から、入力されたDB情報101が反映された登録DB情報161を受信し(ステップS807)、再びステップS803の処理に戻る。なお、ステップS807で受信した情報は、ステップS803に移行した際に、登録DB一覧画面の表示内容に反映される。
一方、キャッシュ更新制約102が入力された場合、描画部170は、入力されたキャッシュ更新制約102を更新制約入力機能111に送信する(ステップS808)。更新制約入力機能111では、ステップS808で送信されたキャッシュ更新制約102をキャッシュ更新制約情報162に格納する処理が行われる。そして描画部170は、更新制約入力機能111から、入力されたキャッシュ更新制約102が反映されたキャッシュ更新制約情報162を受信し(ステップS809)、再びステップS803の処理に戻る。なお、ステップS809で受信した情報は、ステップS803に移行した際に、登録DB一覧画面の表示内容に反映される。
次に、ステップS801からステップS810に移行した場合の処理を説明する。前述したように、ステップS810~S821の処理は、任意キャッシュ更新処理における描画部170による処理(図4のステップS201)の処理に相当する。
アクセス先がデータ処理開発モジュール130であった場合、描画部170は、開発者3が現在設計中の分析フローの情報を分析フロー設計機能131に受け取りにいく(ステップS810)。具体的には、描画部170は、分析フロー設計機能131にアクセス通知を行い、その応答として分析フローの情報を受信する。
そして、描画部170は、ステップS810で分析フロー設計機能131から受信した情報を分析フロー設計画面に表示する(ステップS811)。
図20は、分析フロー設計画面の一例を示す図である。図20に示した分析フロー設計画面380では、各手順が1つのノードとして表示され、ノードを矢印で繋ぐことによって、処理の順序を設計できる画面を表示している。例えば図20に例示した処理手順は、テーブル入力ノード381で指定したデータベースのテーブルに対して、結合ノード382によって結合処理が実行され、その後CSV出力ノード383で指定する出力箇所へCSV出力を行うものである。また、分析フロー設計画面380において、ボタン384は新規に分析フローを作成するためのボタンであり、ボタン385は表示中の分析フローを削除するためのボタンである。なお、分析フロー設計画面の表示形態は、図20の例示に限定されず、各データ分析処理を手順を含めて設計できる機能を有する場合は、分析フロー設計機能131に該当する。
次に、描画部170は、開発者3からデータベースの指定(設定)を入力可能な画面(DB指定画面)を表示し、開発者3からの入力、またはDB情報閲覧機能132からのキャッシュ更新ボタンの表示通知を受けるまで待機する(ステップS812)。
図21は、DB指定画面の一例を示す図である。図20の分析フロー設計画面380において開発者3がテーブル入力ノード381を配置したときに、図21に示すようなDB指定画面390が表示される。図21に示したDB指定画面390では、データベースの指定(設定)を行うことができる。具体的には、選択欄391では、接続先のデータベースを選択することができ、入力欄392では、データ取得のためのクエリを指定でき、選択欄393では、対象のスキーマを選択することができ、選択欄394では、対象のテーブルを選択することができる。また、スキーマ更新ボタン395及びテーブル更新ボタン396は、分析箇所キャッシュ150のキャッシュを更新可能な場合に表示される更新ボタン171がスキーマ別及びテーブル別に表示されたものである。
図21の例示においては、スキーマ更新ボタン395が操作可能に表示されているため、対象データベースのスキーマを更新可能である。一方、テーブル更新ボタン396は操作不可能な表示(広義には非表示)のため、対象データベースのテーブルは更新することができない。そして、図21のDB指定画面390において、接続DB(選択欄391)、スキーマ(選択欄393)、及びテーブル(選択欄394)が指定されることを、後述するステップS813におけるデータベース指定操作とする。
ステップS812の待機状態において開発者3からの入力、またはDB情報閲覧機能132からのキャッシュ更新ボタンの表示通知を受けると、描画部170はどのような入力であるかを判定し、その内容に応じて移行先を振り分ける(ステップS813)。具体的には、開発者3からフロー設計作成操作(分析フロー設計画面380におけるボタン384の操作)があった場合には、ステップS814に移行し、データベース指定操作(DB指定画面390における上述した操作)があった場合には、ステップS815に移行し、キャッシュの更新ボタン171の押下操作(DB指定画面390におけるスキーマ更新ボタン395またはテーブル更新ボタン396の操作)が行われた場合には、ステップS818に移行する。また、DB情報閲覧機能132から更新ボタン171の表示通知が入力された場合には、ステップS816に移行する。なお、フロー設計作成操作及びデータベース指定操作は、描画部170によって表示された画面上のボタンまたは入力欄等をユーザが操作することによって入力される。
ステップS814に移行した場合、描画部170は、分析フロー設計機能131にフロー設計の作成を通知(依頼)し、その後、ステップS812に戻る。
ステップS815に移行した場合、描画部170は、指定されたデータベース名を分析フロー設計機能131に送信し、その後、ステップS812に戻る。
ステップS816に移行した場合、描画部170は、更新可能な対象キャッシュの更新ボタン171(スキーマ更新ボタン395,テーブル更新ボタン396)の表示通知をDB情報閲覧機能132から受信する。なお、更新ボタン171としてスキーマ更新ボタン395及びテーブル更新ボタン396が設けられる場合、各更新ボタンの対象となるキャッシュは、データベース210のそれぞれのメタデータ211及びカラムデータ212であり、データ別にキャッシュの更新ボタン171を表示することができる。
次いで、描画部170は、ステップS816で受信した表示通知に応じて、例えば図21に例示したスキーマ更新ボタン395及びテーブル更新ボタン396のように、接続画面上で更新ボタン171を表示し(ステップS817)、その後、ステップS812に戻る。
ステップS818に移行した場合、描画部170は、開発者3から更新ボタン171が押下操作されたことを検出する。次に、描画部170は、DB情報閲覧機能132に、更新ボタン171が押下された旨を通知する(ステップS819)。このとき、当該通知には、対象のキャッシュを示す情報が含まれる。図4、図9、及び図13で説明したように、更新ボタン171が押下された通知を受け取ったDB情報閲覧機能132は、更新判断モジュール120にキャッシュ更新クエリを送信して、分析箇所キャッシュ150の対象のキャッシュを更新させる。
次いで、描画部170は、DB情報閲覧機能132から、更新後のデータベース210のデータまたはメタデータを受信する(ステップS820)。そして、描画部170は、ステップS820で受信したデータに基づいて、更新後のデータベースのデータまたはメタデータをDBデータ表示画面に表示し(ステップS821)、その後、ステップS812に戻る。
図22は、DBデータ表示画面の一例を示す図である。例えば、図22のDBデータ表示画面400では、テーブル401によって、データベース、スキーマ、及びテーブル内のデータを表形式で列挙されている。DBデータ表示画面400の表示は、開発者3がデータ分析を行う際にキャッシュの内部データを容易に確認できるようにするための補助的な役割を持つ。
以上のように、本実施形態に係るデータ処理システム1は、開発者3がデータ分析を行うデータ処理装置100に対して、キャッシュの更新を制約するキャッシュ更新制約をDB管理者2から付与できる機能を有する。また、本実施形態に係るデータ処理システム1は、データ分析の開発フェーズにおいて開発者3がデータ処理装置100におけるキャッシュの更新を自発的に実行可能な機能を有し、当該機能が実行された際は、DB管理者2から付与されたキャッシュ更新制約に基づく更新可否の判定が行われ、更新が可能な場合に限り(すなわち、キャッシュ更新制約の制約下で)キャッシュ更新が実行される。
このようなデータ処理システム1によれば、キャッシュの更新はDB管理者2が計画した制約下でのみ実行され、データ分析の開発フェーズにおいて開発者3は、上記制約下の任意のタイミングでキャッシュ更新を行うことが可能となる。その結果、キャッシュ更新によるデータベース210へのアクセスは、データ分析者(開発者3)が必要とし、かつデータベース管理者(DB管理者2)が許可する範囲内でのみ発生することになるため、データベース210に対するアクセス頻度を低減させ、当該アクセスによる負荷を低減することができる。
また、ユーザ視点で見れば、本実施形態に係るデータ処理システム1では、データ分析の開発フェーズで使用される分析箇所キャッシュ150のキャッシュ更新に対して、DB管理者2がキャッシュ更新制約を課することができる機能が実装されるとともに、開発者3は、キャッシュ更新を自発的に実行可能な機能(更新ボタン171)が実装される。そして開発者3がキャッシュ更新の実行を要求した際は、キャッシュ更新制約に基づく更新判断のもとで、更新が可能な場合に限りキャッシュ更新がなされる。すなわち、キャッシュ更新制約を満たす条件下であれば、開発者3は任意のタイミングでキャッシュ更新を行うことができる。
(2)第2の実施形態
上述した第1の実施形態では、図2に示したように、データ処理システム1が1つのデータ処理装置100を備える構成を中心に説明した。しかし、実際のデータ分析の開発フェーズでは、複数の開発者3が同時にデータ分析を行うことが一般的であり、このような需要に応えるためには、複数のデータ処理装置100を備える構成とすればよいが、その場合、データ処理装置100ごとに分析箇所キャッシュ150が必要になってしまう。しかし、それぞれのデータ処理装置100が分析箇所キャッシュ150を持つ構成だと、キャッシュの更新のためにデータベース210へのアクセスが増加するおそれがあり、また、キャッシュ更新のタイミングが異なるとデータ分析の対象データの整合性がとれなくなるといった問題も想定される。
そこで、以下に説明する第2の実施形態に係るデータ処理システム4では、第1の実施形態に係るデータ処理システム1におけるキャッシュ管理部分(主に、分析箇所キャッシュ150やキャッシュ管理モジュール110)を、データ分析部分(主に、データ処理開発モジュール130やデータ処理モジュール140)から分離させ、独立したキャッシュDB管理装置500として実装する。このように構成されたデータ処理システム4では、分析箇所キャッシュ150をデータ分析側の装置(データ分析装置600)に持つことなく、キャッシュDB管理装置500側で1つに統一することが可能となる。
なお、第2の実施形態の説明では、第1の実施形態における構成や処理等と共通する点については、同一の符号を用いてその説明を省略する。
(2-1)構成
図23は、本発明の第2の実施形態に係るデータ処理システム4の構成例を示すブロック図である。図23に示したように、データ処理システム4は、第1の実施形態に係るデータ処理システム1(図1や図2参照)におけるデータ処理装置100の代わりに、キャッシュDB管理装置500及びデータ分析装置600を備える構成となっている。データ分析装置600は、データ分析の開発者3が使用するデータ分析側の複数の装置であり、キャッシュDB管理装置500に接続される。キャッシュDB管理装置500は、1つの装置で複数のデータ分析装置600に対するキャッシュ(分析箇所キャッシュ150)を提供する、DB管理者2によって管理されるキャッシュ管理側の装置であり、各データ分析装置600及びデータベース210に接続される。なお、第2の実施形態において好適なデータベース210は、例えば基幹系データベースである。
また、図23に示す構成例では、第2の実施形態を説明する際に重要ではない構成については、図示を省略しているが、データ処理システム4は適宜、第1の実施形態で説明したデータ処理システム1の構成を備えていてもよい。具体的には例えば、データ処理システム4は、キャッシュ管理モジュール110内に更新制約入力機能111及びDB情報入力機能112を有すると考えてよく、また、データベース210はデータベース装置200内に配置される等と考えてもよい。
キャッシュDB管理装置500は、分析箇所キャッシュ150、更新判断モジュール120、登録DB情報161、キャッシュ更新制約情報162、更新ログ163、キャッシュ管理モジュール110、要求回数情報501、及び管理描画部510を備える。このうち、第1の実施形態に係るデータ処理システム1のデータ処理装置100にはない新たな構成は、要求回数情報501及び管理描画部510である。
管理描画部510は、第1の実施形態における描画部170が有する機能のうち、キャッシュDB管理装置500に関する描画(キャッシュ管理側の描画)のみを行う。
要求回数情報501は、データベース210に保持される各データについて、全てのデータ分析装置600からキャッシュ(分析箇所キャッシュ150)の更新が要求された回数を記録するデータである。詳細は図26や図28の説明において後述するが、本実施形態では、各開発者3がデータ分析装置600上でデータベース210の指定を行った行為をデータ更新要求と見なし、DB管理者2によって制約された一定回数以上のデータ更新要求が行われた場合に(要求回数情報501に保持された要求回数が制約以上となった場合に)、キャッシュ更新処理が実行される。
本実施形態において、DB管理者2は、キャッシュDB管理装置500に対して、DB情報101(図23では図示省略)及びキャッシュ更新制約102を登録することができる。そして、前述したようにキャッシュDB管理装置500は、データベース210に接続されている。
データ分析装置600は、データ処理開発モジュール130、データ処理モジュール610、及び分析描画部620を備える。
データ処理モジュール610は、データ処理開発モジュール130の分析フロー設計機能131によって設計された分析フローを用いてデータ分析用の処理を実行する分析処理実行機能611を有する。
分析描画部620は、第1の実施形態における描画部170が有する機能のうち、データ分析装置600に関する描画(データ分析側の描画)のみを行う。
以上のように構成されたデータ処理システム4において、複数の開発者3は、それぞれ別のデータ分析装置600を使用して、データ分析を実行することができる。この際、全てのデータ分析装置600が参照する分析箇所キャッシュは、キャッシュDB管理装置500の分析箇所キャッシュ150であり、当該キャッシュの更新判断は、キャッシュ更新制約情報162に依存する。
(2-2)全体処理
第2の実施形態に係るデータ処理システム4で実行される全体処理について、第1の実施形態における全体処理との相違点を中心に説明する。第2の実施形態では、全体処理として、キャッシュ更新制約処理及び適時キャッシュ更新処理を実行することができる。
第2の実施形態におけるキャッシュ更新制約登録処理は、開発者3がデータ分析装置600上でデータベース210にアクセスできるようにするために、DB管理者2がキャッシュDB管理装置500に対して、データベース210のDB情報101及びキャッシュ更新制約102を付与する際に、データ処理システム4で実行される処理である。第2の実施形態におけるキャッシュ更新制約登録処理の処理手順は、描画部170が管理描画部510に置き換えられる以外は、第1の実施形態において図3に示した処理と同様と考えてよい。但し、第2の実施形態におけるキャッシュ更新制約登録処理では、キャッシュ更新制約102に要求回数に関する制約を追加することができる。
図24は、キャッシュ更新制約入力画面の一例を示す図である。図24に示したキャッシュ更新制約入力画面700は、第2の実施形態において、登録するデータベース210に課するキャッシュ更新制約102を入力するための画面であり、図19に例示した第1の実施形態におけるキャッシュ更新制約入力画面370と比較すると、要求回数制限の入力欄701が追加されている。DB管理者2は、入力欄701に所望の規定回数を入力してOKボタン374の押下操作を行うことにより、開発者3からのデータ更新要求(言い換えればデータ分析装置600からのキャッシュの更新要求)が何回行われたときにキャッシュ更新処理を実行するかを規定することができる。
図25は、キャッシュ更新制約102の一例を示す図である。図25に示したキャッシュ更新制約710は、第2の実施形態においてキャッシュ更新制約情報162に格納される際のキャッシュ更新制約102のコードの一例を示したものであり、図8に例示した第1の実施形態におけるキャッシュ更新制約310と同様、JSON形式によってキャッシュ更新の制約が記述されている。キャッシュ更新制約710の具体的なコードを確認すると、コード311,312,313は図8のキャッシュ更新制約310と同様であり説明を省略する。さらに、図25のキャッシュ更新制約710では、更新要求回数に関するコード711において、「10回」の更新要求があった場合にキャッシュ更新処理を実行することが制約として記述されている。
第2の実施形態における適時キャッシュ更新処理は、データ分析装置600上で分析フロー設計機能131の使用中に、開発者3が入力データベース(データベース210)を指定した場合に、データ処理システム4で実行される処理であって、入力DBの指定によるデータ更新要求によって分析箇所キャッシュ150のキャッシュ更新が要求される。
図26は、適時キャッシュ更新処理の手順例を示すシーケンス図である。前述したように第2の実施形態においてはキャッシュ更新制約102で更新要求回数が既定されるため、第1の実施の形態における任意キャッシュ更新処理(図4参照)とは異なり、図26に示す適時キャッシュ更新処理では、更新要求回数も含めたキャッシュ更新制約の制約下でのみ、分析箇所キャッシュ150のキャッシュ更新が実行可能とされる。
図4との相違点として、図26では、処理主体として、描画部170が分析描画部620に置き換えられ、参照先として要求回数情報501が追加されている。また、図26では、各処理主体による処理として、分析描画部620がステップS901の処理を実行し、分析フロー設計機能131がステップS902の処理を実行し、DB情報閲覧機能132がステップS903の処理を実行し、更新判断モジュール120がステップS904の処理を実行する。但し、ステップS902の処理は、図4のステップS202の処理と同様であり、詳細な説明は省略する。
図26に示したステップS901は、分析描画部620による処理である。図4の描画部170によるステップS201の処理との差異として、ステップS901において分析描画部620は、DB情報閲覧機能132から更新ボタン表示の情報を受信せず、更新ボタンの表示を行わない。このため、分析描画部620は、開発者3によって更新ボタン171が押下操作されたことを検出することがなく、キャッシュ更新対象をDB情報閲覧機能132に渡すこともない。その他の処理は、図4のステップS201の処理と同様である。
図26に示したステップS902は、分析フロー設計機能131による処理である。ステップS902の処理は、図4のステップS202の処理と同様であり、説明を省略する。
図26に示したステップS903は、DB情報閲覧機能132による処理である。ステップS903において、DB情報閲覧機能132は、分析フロー設計機能131から入力DBに関する接続情報を受け取った場合に、キャッシュ更新制約情報162に入力DBを送信し、対象のデータベース210に対して設定されているキャッシュ更新制約を取得する。このとき取得するキャッシュ更新制約には、更新要求回数も含まれる。その後、DB情報閲覧機能132は、入力DBを分析箇所キャッシュ150に送信することによって、分析箇所キャッシュ150において対象のデータベース210のキャッシュが存在するか否かを確認し、更新判断モジュール120へ入力DBのDB情報及びキャッシュ更新制約を送信する。その後、DB情報閲覧機能132は、キャッシュ更新が行われて更新判断モジュール120から更新後のデータベース210のデータを受信したときは、受信したデータを分析描画部620に送信する。
図26に示したステップS904は、更新判断モジュール120による処理である。ステップS904において、更新判断モジュール120は、DB情報閲覧機能132からデータベースの情報(入力DB及びキャッシュ更新制約)を受信した場合に、入力DBが示すデータベース210に対してキャッシュの更新が可能であるかを、キャッシュ更新制約に基づいて判断し、その判断結果(更新判断結果)を更新ログ163に書込み、要求回数情報501に保持する現在の要求回数を「1」増加させる。その後、更新判断モジュール120は、要求回数情報501から、増加後の要求回数を取得し、キャッシュ更新制約に基づいて、更新が可能で、かつ要求回数が規定された要求回数制限以上であった場合に、対象のデータベース210の取得及び分析箇所キャッシュ150の更新を行う。そして、更新判断モジュール120は、これらの更新結果を更新ログ163に書き込み、更新後のキャッシュデータをDB情報閲覧機能132に送信する。
(2-3)個別処理
以下では、第2の実施形態における全体処理において各機能やモジュール等が実行する個別処理について、第1の実施形態とは異なる処理を中心に詳述する。
図27は、DB情報閲覧機能132による処理の処理手順例を示すフローチャートである。図27に示す処理は、図26のステップS903の処理に相当する。第1の実施形態におけるDB情報閲覧機能132による処理(図14参照)と比較して説明すると、図27におけるステップS1001~S1005の処理は、図14に示したステップS701~S705の処理とそれぞれ同様である。そして、図27では、図14のステップS706~S709の処理に相当する処理がなく、ステップS1005の後は、ステップS1006(図14のステップS710相当)の処理が行われる。
図28は、更新判断モジュール120による処理の処理手順例を示すフローチャートである。図28に示す処理は、図3のステップS104及び図26のステップS904の処理に相当する。第1の実施形態における更新判断モジュール120による処理(図9参照)と比較して説明すると、図28においては、ステップS1101(図9のステップS501と同様)でYESと判定された場合、その後のステップS1102~S1109の処理までは、図9のステップS502~S509の処理と同様であり、その後にステップS1110~S1115の処理が新規追加されている。また、図28において、ステップS1101(図9のステップS501と同様)でNOと判定された場合は、キャッシュ更新クエリの判断を行う図9のステップS510以降の処理は実行されず、そのまま処理を終了する。
図28で新規追加されたステップS1110~S1115の処理について説明する。まず、更新判断モジュール120は、キャッシュDB管理装置500に保持されている要求回数情報501に対して、要求回数を「1」加算する(ステップS1110)。次に、更新判断モジュール120は、キャッシュDB管理装置500に保持されている現在の要求回数(すなわち、ステップS1110の加算後の要求回数)を取得する(ステップS1111)。
そして、更新判断モジュール120は、ステップS1111で取得した現在の要求回数と、対象データベースに課せられたキャッシュ更新制約に規定された要求回数制限とを比較し、現在の要求回数が要求回数制限以上であるか否かを判定する(ステップS1112)。ステップS1111において現在の要求回数が要求回数制限以上であった場合は(ステップS1111のYES)、ステップS1113に移行し、現在の要求回数が要求回数制限未満であった場合は(ステップS1111のNO)、処理を終了する。
ステップS1113に移行した場合、更新判断モジュール120は、データベース210に対してキャッシュ更新クエリを送信し、その結果を受信する。そして、更新判断モジュール120は、ステップS1113で受信した結果によって分析箇所キャッシュ150を更新する(ステップS1114)。
その後、更新判断モジュール120は、ステップS1114における更新結果(キャッシュ更新が完了した旨)をDB情報閲覧機能132に送信し(ステップS1115)、処理を終了する。
図29は、管理描画部510による処理の処理手順例を示すフローチャートである。図29に示す処理は、第1の実施形態においてキャッシュ管理モジュール110にアクセスされるときの描画部170による処理と同様であり、具体的には、図3のステップS101(詳細な個別処理としては図15)の処理に相当する。
なお、図29では、ステップS1201においてユーザからのアクセス先がキャッシュ管理モジュール110であるかデータ処理開発モジュール130であるかを判定しているが、キャッシュDB管理装置500の管理描画部510にアクセスするユーザはDB管理者2であるため、キャッシュ管理モジュール110がアクセス先となり、管理描画部510はステップS1202以降の処理を実行する。具体的には、ステップS1202~S1209の処理は、図15のステップS802~S809の処理にそれぞれ相当する。
図30は、分析描画部620による処理の処理手順例を示すフローチャートである。図30に示す処理は、第1の実施形態においてデータ処理開発モジュール130にアクセスされるときの描画部170による処理に対応するものであり、具体的には、図4のステップS201(詳細な個別処理としては図16)の処理の一部に相当する。
図30では、ステップS1301において、ユーザからのアクセス先がキャッシュ管理モジュール110であるかデータ処理開発モジュール130であるかを判定しているが、データ分析装置600の分析描画部620にアクセスするユーザは基本的には開発者3であるため、データ処理開発モジュール130がアクセス先となり、分析描画部620はステップS1302以降の処理を実行する。具体的には、ステップ1302~S1307の処理は、図16のステップS810~S815の処理にそれぞれ相当する。但し、第2の実施形態では各データ分析装置600の分析描画部620にキャッシュ更新ボタンは表示されないため、分析描画部620は、図16のステップS816~S821に相当する処理は実行せず、データ処理開発モジュール130に関する描画処理のみを行う。
以上のような処理を行うことによって、データ処理システム4は、複数のデータ分析装置600を備え、複数の開発者3によってそれぞれのデータ分析装置600が使用される場合であっても、それぞれのデータ分析に用いられるキャッシュがキャッシュDB管理装置500内の分析箇所キャッシュ150に統合して管理され、さらに、そのキャッシュ更新はキャッシュ更新制約のもとでのみ許可されるため、複数のデータ分析装置600を使用する開発者3から、分析箇所キャッシュ150へのデータ更新要求を伴う所定のデータ操作(例えば入力DBの指定)が行われても、基幹系データベース(データベース210)へのアクセスの増加を制限することが可能になる。
また、ユーザ視点で見れば、本実施形態に係るデータ処理システム4では、データ分析の開発フェーズで使用される分析箇所キャッシュ150のキャッシュ更新に対して、DB管理者2から、データ別の更新要求回数による制約条件を含む態様で、キャッシュの更新制約を課することができる機能が実装される。また、複数のデータ分析装置600を利用する開発者3からは、分析箇所キャッシュ150へのデータ更新要求を伴う所定のデータ操作(例えば入力DBの指定)を自発的に行うことによって、キャッシュ更新を要求することができる。開発者3からデータ更新が要求された場合は、対象データに課せられた更新制約(更新要求回数に関する更新制約も含まれる)に基づく更新可否判断のもとで、更新が可能な場合に限り、対象データのキャッシュ更新がなされる。したがって、データベース210へのアクセス負荷の軽減のために、更新要求回数が規定条件に達しない場合には即座に対象データのキャッシュ更新がなされない状況は発生し得るものの、比較的早期のうちに、開発者3の希望に沿って対象データのキャッシュ更新を実行することができる。
図31は、第1または第2の実施形態に係るデータ処理システム1,4を構成する各装置(コンピュータ装置10)のハードウェア構成例を示すブロック図である。具体的には、図31に示すハードウェア構成例は、データ処理装置100、データベース装置200、キャッシュDB管理装置500、及びデータ分析装置600に実装することができる。
図31に示すように、コンピュータ装置10は、外部記憶装置11、RAM(Random Access Memory)12、ROM(Read Only Memory)13、CPU(Central Processing Unit)14、出力デバイス15、通信IF16、及び入力デバイス17を備え、各構成がバス18を介して相互的に接続される。
データ処理システム1(データ処理システム4)を構成する各装置が有する機能は、コンピュータ装置10において、例えばCPU14がROM13に記憶されたプログラムをRAM12に読み出して実行することで実現されてもよいし、昨日の一部または全部を、専用に設計された集積回路等のハードウェアで実現されてもよいし、ソフトウェアとハードウェアとが組み合わされて実現されてもよい。
外部記憶装置11は、例えばHDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ(Flash Memory)、または光学式記憶装置等である。出力デバイス15は、データを出力する機能を有し、データ処理装置100、キャッシュDB管理装置500、またはデータ分析装置600に係る画面を、モニタやプリンタ等の出力装置で出力する。通信IF16は、データ処理システム1におけるデータ処理装置100とデータベース装置200との接続、あるいはデータ処理システム4におけるキャッシュDB管理装置500とデータ分析装置600及びデータベース210(データベース装置)との接続に用いられる。入力デバイス17は、ユーザ(DB管理者2、開発者3)による入力操作を受け付けるキーボードやマウス等であり、例えば第1の実施形態では、DB管理者2がデータ処理装置100にDB情報101やキャッシュ更新制約102を入力する際や、開発者3がデータ処理開発モジュール130に対して分析フローを設計したりデータベースを指定したりする際の操作に用いられる。
以上、本発明を実施するための代表的な形態として第1及び第2の実施形態について説明したが、本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、第1の実施形態に係るデータ処理システム1(第2の実施形態に係るデータ処理システム4でもよい)において、分析箇所キャッシュ150のキャッシュサイズは有限であり、データ処理装置100(第2の実施形態では複数のデータ分析装置600)で使用するデータの全てをキャッシュに保存できない場合、キャッシュに存在しないデータにアクセスする際は直接データベース210を参照する必要がある。そこで各実施形態の変形例として、このような状況において、例えば更新判断モジュール120が、データ処理装置100(データ分析装置600)からの参照回数が多いデータを優先的に分析箇所キャッシュ150に保存するようなキャッシュデータ入替処理を行うように構成してもよい。以下、キャッシュデータ入替処理について図32を参照しながら説明する。
図32は、キャッシュデータ入替処理を説明するためのイメージ図である。図32の場合、更新ログ163には、キャッシュの更新要求が行われた回数(更新要求回数)がデータ別(スキーマ別、テーブル別)に記録されているとする。具体的には、分析箇所キャッシュ150内にキャッシュが保存されているデータA721、データB722について、それぞれの更新要求回数が「100回」、「10回」であることが記録され、分析箇所キャッシュ150内にキャッシュが保存されていないデータC723については、更新要求回数が「50回」であることが記録されている。
図32では、データC723に対してキャッシュの更新が要求されている。ここで、更新判断モジュール120においてキャッシュの更新が可能と判断され、データベース210にクエリが送信される図9のステップS511の段階(第2の実施形態では図28のステップS1113)において、分析箇所キャッシュ150内のデータ容量が一杯で(所定の上限容量や容量率に達している場合と読み替えてもよい)、かつデータC723の前回キャッシュが分析箇所キャッシュ150内に存在しない場合に、更新判断モジュール120がキャッシュデータ入替処理を実行する。
キャッシュデータ入替処理では、更新判断モジュール120は、更新ログ163からデータ別の更新要求回数を取得し、更新が要求されたデータよりも更新要求回数が少なく、かつ分析箇所キャッシュ150内に存在するデータを削除し、更新が要求されたデータを新しく分析箇所キャッシュ150内に格納する。具体的には、図32の場合、データC723(50回)よりも更新要求回数が少なく、分析箇所キャッシュ150内に存在するデータB722(10回)が、削除対象とされる。なお、データA721(100回)はデータC723(50回)よりも要求更新回数が多いため、削除対象に選択されず、分析箇所キャッシュ150内のキャッシュが維持される。
本変形例では、以上のようなキャッシュデータ入替処理が行われることにより、更新要求回数が比較的少ないデータBを分析箇所キャッシュ150から削除し、更新要求回数が比較的多いデータCを分析箇所に格納するため、分析箇所キャッシュ150のキャッシュ更新頻度を抑制しながらも、参照回数の多いデータ(スキーマやテーブル)を優先的にキャッシュすることができ、結果として、データベース210に直接データを読み込む回数を削減することができる。すなわち、データ処理システム1(データ処理システム4)は、データ処理装置100(データ分析装置600)からの参照回数が多いデータを優先的に分析箇所キャッシュ150に保存することで、直接データベース210が参照される回数を減らし、アクセス負荷を軽減することができる。
なお、以上の説明で参照した各図面において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
1,4 データ処理システム
2 DB管理者
3 開発者
10 コンピュータ装置
11 外部記憶装置
12 RAM
13 ROM
14 CPU
15 出力デバイス
16 通信IF
17 入力デバイス
18 バス
100 データ処理装置
110 キャッシュ管理モジュール
111 更新制約入力機能
112 DB情報入力機能
120 更新判断モジュール
130 データ処理開発モジュール
131 分析フロー設計機能
132 DB情報閲覧機能
140 データ処理モジュール
150 分析箇所キャッシュ
151 メタデータ
152 カラムデータ
160 データ記憶部
161 登録DB情報
162 キャッシュ更新制約情報
163 更新ログ
170 描画部
171 更新ボタン
200 データベース装置
201 センサデータ
202 ログデータ
210 データベース
211 メタデータ
212 カラムデータ
220 データベースマネジメントシステム
350 登録DB一覧画面
360 DB情報入力画面
370 キャッシュ更新制約入力画面
380 分析フロー設計画面
390 DB指定画面
400 DBデータ表示画面
500 キャッシュDB管理装置
501 要求回数情報
510 管理描画部
600 データ分析装置
610 データ処理モジュール
611 分析処理実行機能
620 分析描画部
700 キャッシュ更新制約入力画面

Claims (9)

  1. データベースに接続し、前記データベースのデータ分析を行うデータ処理システムであって、
    前記データ分析の開発フェーズにおいて参照される前記データベースのデータをキャッシュする分析箇所キャッシュと、
    前記データ分析の開発者によって使用され、前記データ分析のための分析処理を開発するデータ処理開発モジュールと、
    前記開発者によって使用され、前記データ処理開発モジュールで開発された前記分析処理の実行によってデータ分析を行うデータ処理モジュールと、
    前記分析箇所キャッシュにおける前記データベースからのキャッシュ更新に関して、前記データベースの管理者から入力される更新制約を設定するキャッシュ管理モジュールと、
    前記キャッシュ管理モジュールによって設定された前記更新制約に基づいて前記分析箇所キャッシュのキャッシュ更新の可否を判断する更新判断モジュールと、
    を備え、
    前記データ処理開発モジュールから前記キャッシュ更新が要求されたとき、前記更新判断モジュールは、前記判断でキャッシュ更新を可とした場合に、前記要求されたキャッシュ更新を実行する
    ことを特徴とするデータ処理システム。
  2. 前記開発者に対する画面表示を行う描画部をさらに備え、
    前記描画部は、前記更新判断モジュールによって前記分析箇所キャッシュのキャッシュ更新を可と判断された場合に、前記キャッシュ更新を要求する操作を行うための更新ボタンを、前記開発者から操作可能な形態で表示する
    ことを特徴とする請求項1に記載のデータ処理システム。
  3. 前記キャッシュ管理モジュールは、スキーマ単位またはテーブル単位で、前記データベースに保持されたデータに対して前記更新制約を設定可能とする
    ことを特徴とする請求項1に記載のデータ処理システム。
  4. 前記キャッシュ管理モジュールは、前記更新制約において前記キャッシュ更新を許可する時間または頻度を設定可能とする
    ことを特徴とする請求項1に記載のデータ処理システム。
  5. 前記分析箇所キャッシュ、前記キャッシュ管理モジュール、及び前記更新判断モジュールを有し、前記管理者によって使用されるキャッシュDB管理装置と、
    データ処理開発モジュール及び前記データ処理モジュールをそれぞれ有し、前記開発者によって使用される複数のデータ分析装置と、
    を備え、
    前記キャッシュDB管理装置において、前記分析箇所キャッシュは、前記複数のデータ分析装置から参照される前記データベースのデータを統合的にキャッシュする
    ことを特徴とする請求項1に記載のデータ処理システム。
  6. 前記キャッシュDB管理装置は、前記複数のデータ分析装置からの前記キャッシュ更新の要求回数を記録する更新ログをさらに有し、
    前記キャッシュ管理モジュールは、前記更新制約の少なくとも1つとして前記キャッシュ更新の要求の累積回数を規定し、
    前記データ分析装置において前記開発者から所定のデータ操作が行われたとき、
    前記データ処理開発モジュールは、前記所定のデータ操作の対象データについて、前記キャッシュ更新を前記キャッシュDB管理装置に要求し、
    前記キャッシュDB管理装置の前記キャッシュ管理モジュールは、前記累積回数の規定を含む前記更新制約に基づいて、前記分析箇所キャッシュにおける前記対象データのキャッシュ更新の可否を判断し、当該判断でキャッシュ更新を可とした場合に、前記要求されたキャッシュ更新を実行する
    ことを特徴とする請求項5に記載のデータ処理システム。
  7. 前記キャッシュ管理モジュールは、参照回数の多いデータを優先的に前記分析箇所キャッシュにキャッシュさせる機能を有する
    ことを特徴とする請求項1または請求項5に記載のデータ処理システム。
  8. データベースのデータ分析を行うデータ処理システムによるキャッシュ更新制御方法であって、
    前記データ処理システムは、
    前記データ分析の開発フェーズにおいて参照される前記データベースのデータをキャッシュする分析箇所キャッシュと、
    前記データ分析の開発者によって使用され、前記データ分析のための分析処理を開発するデータ処理開発モジュールと、
    前記開発者によって使用され、前記データ処理開発モジュールで開発された前記分析処理の実行によってデータ分析を行うデータ処理モジュールと、
    前記分析箇所キャッシュにおける前記データベースからのキャッシュ更新に関して、前記データベースの管理者から入力される更新制約を設定するキャッシュ管理モジュールと、
    前記キャッシュ管理モジュールによって設定された前記更新制約に基づいて前記分析箇所キャッシュのキャッシュ更新の可否を判断する更新判断モジュールと、
    を有し、
    前記データ処理開発モジュールから前記キャッシュ更新が要求されたとき、前記更新判断モジュールは、前記判断でキャッシュ更新を可とした場合に、前記要求されたキャッシュ更新を実行する
    ことを特徴とするキャッシュ更新制御方法。
  9. 前記データ処理システムは、前記開発者に対する画面表示を行う描画部をさらに有し、
    前記更新判断モジュールによって前記分析箇所キャッシュのキャッシュ更新を可と判断された場合に、前記描画部が、前記キャッシュ更新を要求する操作を行うための更新ボタンを、前記開発者から操作可能な形態で表示する
    ことを特徴とする請求項8に記載のキャッシュ更新制御方法。
JP2020202171A 2020-12-04 2020-12-04 データ処理システム及びキャッシュ更新制御方法 Pending JP2022089629A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020202171A JP2022089629A (ja) 2020-12-04 2020-12-04 データ処理システム及びキャッシュ更新制御方法
US17/541,970 US11681682B2 (en) 2020-12-04 2021-12-03 Data processing system and cache update control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020202171A JP2022089629A (ja) 2020-12-04 2020-12-04 データ処理システム及びキャッシュ更新制御方法

Publications (1)

Publication Number Publication Date
JP2022089629A true JP2022089629A (ja) 2022-06-16

Family

ID=81848117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020202171A Pending JP2022089629A (ja) 2020-12-04 2020-12-04 データ処理システム及びキャッシュ更新制御方法

Country Status (2)

Country Link
US (1) US11681682B2 (ja)
JP (1) JP2022089629A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117235024A (zh) * 2023-11-16 2023-12-15 江西国泰利民信息科技有限公司 基于代码分析的缓存更新方法、系统、存储介质及设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6999956B2 (en) * 2000-11-16 2006-02-14 Ward Mullins Dynamic object-driven database manipulation and mapping system
US9317537B2 (en) * 2009-09-25 2016-04-19 Adnan Fakeih Database and method for evaluating data therefrom
JP5143917B2 (ja) 2011-01-11 2013-02-13 ヤフー株式会社 キャッシュサーバ、キャッシュ管理方法およびキャッシュ管理プログラム
US10169446B1 (en) * 2012-09-10 2019-01-01 Amazon Technologies, Inc. Relational modeler and renderer for non-relational data
US20190188609A1 (en) * 2017-12-18 2019-06-20 Sabre Glbl Inc. System with seat map cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117235024A (zh) * 2023-11-16 2023-12-15 江西国泰利民信息科技有限公司 基于代码分析的缓存更新方法、系统、存储介质及设备
CN117235024B (zh) * 2023-11-16 2024-01-26 江西国泰利民信息科技有限公司 基于代码分析的缓存更新方法、系统、存储介质及设备

Also Published As

Publication number Publication date
US11681682B2 (en) 2023-06-20
US20220179839A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
US11985192B2 (en) Synchronized content library
US9715518B2 (en) Cross-ACL multi-master replication
JP4727715B2 (ja) ストリームデータ処理方法、及びシステム
EP2988220B1 (en) Computer system, computer-system management method, and program
JP5391601B2 (ja) 資源転送システム、資源転送方法、情報処理装置及びコンピュータプログラム
JP5357068B2 (ja) 情報処理装置、情報処理システム、データ・アーカイブ方法およびデータ削除方法
JP5539127B2 (ja) 文書管理システム、検索指定方法、プログラム
CN103140850A (zh) 移动设备上的数据共享
JP2014191651A (ja) ストレージシステム、ストレージ装置、ストレージシステムの制御方法、およびストレージ装置の制御プログラム
JP2022089629A (ja) データ処理システム及びキャッシュ更新制御方法
KR101989074B1 (ko) 데이터베이스 샤딩 환경에서의 복제 로그 기반의 마이그레이션
US20150163326A1 (en) Approaches for remotely unzipping content
JP5792325B2 (ja) 計算機システム、データ管理方法及びプログラム
JP2021182282A (ja) ファイル管理装置およびプログラム
US20230161945A1 (en) Automatic two-way generation and synchronization of notebook and pipeline
KR101884343B1 (ko) 문서 관리 시스템, 방법, 및 단말
JP2006146801A (ja) ストレージシステム、コンピュータシステム及びストレージの情報取得方法
CN114564854A (zh) 支持fmea双向关系树的数据节点的操作方法及设备
JP5031538B2 (ja) データ分配方法、データ分配プログラム、及び並列データベースシステム
KR102546847B1 (ko) Erp의 커스터마이징 자동화 처리 및 커스터마이징된 erp 솔루션의 제공 방법, 장치 및 시스템
KR20190099068A (ko) 교차 네트워크 이벤트 귀속을 제공하는 시스템 및 방법
KR102075502B1 (ko) 트리 구조의 컨텐츠 관리 시스템
WO2022079809A1 (ja) ブロックチェーンに関わるピアツーピアネットワークを含むシステム、同ピアツーピアネットワークの構築を支援する方法、並びに、ピアで実行されるスマートコントラクト
US20170192945A1 (en) High-performance editing of large remote files in client-server architecture
JP2007213288A (ja) ネットワークシステム、データサーバー、その操作方法及びコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240312