(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-27
(54)【発明の名称】ソースデータベースとターゲットデータベースとの間のデータ同期状態を判定するためのコンピュータ実装方法
(51)【国際特許分類】
G06F 16/178 20190101AFI20240820BHJP
G06F 16/28 20190101ALI20240820BHJP
【FI】
G06F16/178
G06F16/28
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024513121
(86)(22)【出願日】2022-08-29
(85)【翻訳文提出日】2024-02-26
(86)【国際出願番号】 EP2022073975
(87)【国際公開番号】W WO2023025966
(87)【国際公開日】2023-03-02
(32)【優先日】2021-08-27
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】508020155
【氏名又は名称】ビーエーエスエフ ソシエタス・ヨーロピア
【氏名又は名称原語表記】BASF SE
【住所又は居所原語表記】Carl-Bosch-Strasse 38, 67056 Ludwigshafen am Rhein, Germany
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ガウ,セバスチャン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175AA01
5B175HA02
5B175KA04
(57)【要約】
本発明は、ソースデータベースとターゲットデータベースとの間の同期状態を判定するための方法(200)に関する。データセットは、タグに関連付けられ、且つ一連のデータ値を含む。ステップ(210)において、ソースデータベースに記憶された値のデータフレームへの構造化を示すソースマップが提供され、フレームに関連付けられた値は、データセットに関連付けられたタグによって定義される。ステップ(220)において、ターゲットデータベースのためのターゲットマップが提供され、ターゲットマップは、ソースマップに対応する。ステップ(230)において、データフレームについてハッシュ値が判定され、ハッシュ値は、それぞれのデータフレームに関連付けられたデータ値に対して敏感であり、及びステップ(240)において、ハッシュ値を比較することによってデータ同期状態が判定される。
【特許請求の範囲】
【請求項1】
ソースデータベース(121)とターゲットデータベース(131)との間のデータ同期状態を判定するためのコンピュータ実装方法(200)であって、前記ターゲットデータベース(131)は、工業プラント(120)の前記ソースデータベース(121)に記憶された過去の時系列データセットのコピーを記憶するように構成され、それぞれの時系列データセットは、それぞれのタグに関連付けられ、且つそれぞれの一連の時間依存データ値を含み、前記方法(200)は、
- 前記ソースデータベース(121)のためのソースマップを提供すること(210)であって、前記ソースマップは、前記ソースデータベース(121)に記憶された前記時間依存データ値の少なくとも一部の、複数のソースデータフレーム(313、314、315、316)への構造化を示し、データフレームに関連付けられた前記時間依存データ値は、a)それぞれの時系列データセットに関連付けられたそれぞれのタグと、b)前記それぞれのタグに関連付けられた前記それぞれの時系列データセットの前記時間依存データ値のそれぞれの開始時間及びそれぞれの終了時間とによって定義される、提供すること(210)と、
- 前記ターゲットデータベース(131)のためのターゲットマップを提供すること(220)であって、前記ターゲットマップは、前記ターゲットデータベース(131)に記憶された前記時間依存データ値の少なくとも一部の、複数のターゲットデータフレーム(323、324、325、326)への構造化を示し、前記ターゲットマップは、前記ターゲットデータベース(131)の前記構造化が前記ソースデータベース(121)の前記構造化に対応し、それにより前記ソースデータフレーム(313、314、315、316)が前記ターゲットデータフレーム(323、324、325、326)にそれぞれ対応するように、前記ソースマップに対応する、提供すること(220)と、
- 前記ソースデータフレーム(313、314、315、316)及び前記ターゲットデータフレーム(323、324、325、326)について、ハッシュ値を判定すること(230)であって、前記ハッシュ値は、前記それぞれのデータフレームに関連付けられた前記時間依存データ値に対して敏感である、判定すること(230)と、
- ターゲットデータフレーム(323、324、325、326)の前記ハッシュ値を、前記対応するソースデータフレーム(313、314、315、316)の前記ハッシュ値と比較することにより、前記データ同期状態を判定すること(240)と
を含む、コンピュータ実装方法(200)。
【請求項2】
データフレームは、a)異なるそれぞれのタグと、b)同じそれぞれの開始時間及びそれぞれの終了時間とによって定義される、異なるそれぞれの時系列データセットの時間依存データ値に関連付けられる、請求項1に記載の方法(200)。
【請求項3】
前記ターゲットデータベース(131)の前記構造化は、同期状態において、各ターゲットデータフレーム(323、324、325、326)が、前記対応するソースデータフレーム(313、314、315、316)と同じ時系列データ値によってそれぞれ定義される場合、前記ソースデータベース(121)の前記構造化に対応する、請求項1又は2に記載の方法(200)。
【請求項4】
前記ハッシュ値は、予め定義されたハッシュ関数に基づいて判定される、先行する請求項のいずれか1項に記載の方法(200)。
【請求項5】
前記ハッシュ値は、全体的なハッシュ値を指し、且つデータフレームのそれぞれの各時間依存データ値について判定された個々のハッシュ値に基づいて判定される、先行する請求項のいずれか1項に記載の方法(200)。
【請求項6】
前記全体的なハッシュ値は、マークル木を利用して前記個々のハッシュ値に基づいて判定される、請求項5に記載の方法(200)。
【請求項7】
個々のハッシュ値は、前記時間依存データ値に関連付けられた時間、値及び/又は品質に基づいて判定される、請求項5又は6に記載の方法(200)。
【請求項8】
前記データ同期状態の前記判定中、ターゲットデータフレーム(323)の少なくとも1つのハッシュ値が、前記対応するソースデータフレーム(313)の前記ハッシュ値と異なると判定される場合、再帰的に、
- 前記ソースデータベース(121)のためのサブソースマップを生成することであって、前記サブソースマップは、前記ソースデータフレーム(313)の前記時間依存データ値の、サブソースデータフレームへの構造化を示す、生成することと、
- 前記ターゲットデータベース(131)のためのサブターゲットマップを生成することであって、前記サブターゲットマップは、前記対応するターゲットデータフレーム(323)の前記時間依存データ値の、サブターゲットデータフレームへの構造化を示し、前記サブソースマップは、前記サブターゲットマップに対応する、生成することと、
- 前記サブソースデータフレーム及び前記サブターゲットデータフレームについて、サブハッシュ値を判定することであって、前記サブハッシュ値は、前記それぞれのサブデータフレームに関連付けられた前記時間依存データ値に対して敏感である、判定することと、
- 前記サブターゲットデータフレームの前記サブハッシュ値を、前記対応するサブソースデータフレームの前記サブハッシュ値と比較することにより、異なる時間依存データ値を含む1つ以上のサブデータフレームを判定することと
を更に含み、前記再帰は、前記ターゲットデータフレーム(323)及び前記ソースデータフレーム(313)の前記ハッシュ値間のそれぞれの差異を引き起こす前記1つ以上の時間依存データ値が識別され得るまで実施される、先行する請求項のいずれか1項に記載の方法(200)。
【請求項9】
前記ターゲットデータベース(131)と前記ソースデータベース(121)とが同期状態であるように、前記識別された時間依存データ値で前記ターゲットデータベース(131)を更新することを更に含む、請求項8に記載の方法(200)。
【請求項10】
前記ソースマップ及び前記ターゲットマップは、それぞれキー値マップを指し、a)それぞれ前記ソースデータベース(121)及び前記ターゲットデータベース(131)上の前記対応するデータフレームの記憶位置と、b)前記対応するデータフレームの前記それぞれのハッシュ値との間のマッピングをそれぞれ提供する、先行する請求項のいずれか1項に記載の方法(200)。
【請求項11】
前記ターゲットデータフレーム(323、324、325、326)の前記ハッシュ値の、前記対応するソースデータフレーム(313、314、315、316)の前記ハッシュ値との前記比較は、それぞれ前記ソースマップ及び前記ターゲットマップの前記キー値マッピングに基づく、請求項10に記載の方法(200)。
【請求項12】
ソースデータベース(121)とターゲットデータベース(131)との間のデータ同期状態を判定するための計算フレームワーク(110)であって、前記ターゲットデータベース(131)は、工業プラント(120)の前記ソースデータベース(121)に記憶された過去の時系列データセットのコピーを記憶するように構成され、それぞれの時系列データセットは、それぞれのタグに関連付けられ、且つそれぞれの一連の時間依存データ値を含み、前記フレームワーク(110)は、
- 前記ソースデータベース(121)のためのソースマップを提供するためのソースマップ提供ユニット(111)であって、前記ソースマップは、前記ソースデータベース(121)に記憶された前記時間依存データ値の少なくとも一部の、複数のソースデータフレーム(313、314、315、316)への構造化を示し、データフレームに関連付けられた前記時間依存データ値は、a)それぞれの時系列データセットに関連付けられたそれぞれのタグと、b)前記それぞれのタグに関連付けられた前記それぞれの時系列データセットの前記時間依存データ値のそれぞれの開始時間及びそれぞれの終了時間とによって定義される、ソースマップ提供ユニット(111)と、
- 前記ターゲットデータベース(131)のためのターゲットマップを提供するためのターゲットマップ提供ユニット(112)であって、前記ターゲットマップは、前記ターゲットデータベース(131)に記憶された前記時間依存データ値の少なくとも一部の、複数のターゲットデータフレーム(323、324、325、326)への構造化を示し、前記ターゲットマップは、前記ターゲットデータベース(131)の前記構造化が前記ソースデータベース(121)の前記構造化に対応し、それにより前記ソースデータフレーム(313、314、315、316)が前記ターゲットデータフレーム(323、324、325、326)にそれぞれ対応するように、前記ソースマップに対応する、ターゲットマップ提供ユニット(112)と、
- 前記ソースデータフレーム(313、314、315、316)及び前記ターゲットデータフレーム(323、324、325、326)について、ハッシュ値を判定するためのハッシュ値判定ユニット(113)であって、前記ハッシュ値は、前記それぞれのデータフレームに関連付けられた前記時間依存データ値に対して敏感である、ハッシュ値判定ユニット(113)と、
- ターゲットデータフレーム(323、324、325、326)の前記ハッシュ値を、前記対応するソースデータフレーム(313、314、315、316)の前記ハッシュ値と比較することにより、前記データ同期状態を判定するための同期状態判定ユニット(114)と
を含む、計算フレームワーク(110)。
【請求項13】
データベースシステムであって、
- 工業プラント(120)において提供され、且つ前記工業プラント(120)の時系列データセットを記憶するように構成されたソースデータベース(121)と、
- 前記工業プラント(120)の前記ソースデータベース(121)に記憶された前記過去の時系列データセットのコピーを記憶するように構成されたターゲットデータベース(131)と、
- 請求項12に記載の計算フレームワーク(110)と
を含むデータベースシステム。
【請求項14】
ソースデータベース(121)とターゲットデータベース(131)との間のデータ同期状態を判定するためのコンピュータプログラム製品であって、請求項12に記載の計算フレームワーク(110)に、請求項1~11のいずれか1項に記載の方法を実行させるプログラムコード手段を含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、ソースデータベースとターゲットデータベースとの間のデータ同期状態を判定するためのコンピュータ実装方法、計算フレームワーク、データベースシステム及びコンピュータプログラム製品に関する。
【背景技術】
【0002】
発明の背景
現在の工業生産プロセスでは、工業プラントで製品の生産をモニタリングする複数のセンサが設けられる。複数のセンサによって生成されたデータは、一般的に、工業プラントの、ヒストリアンと呼ばれることもあるプロセスデータベースシステムに時系列データセットの形態で記憶される。そのような時系列データセットは、時系列データセットに対する識別子とみなされ得、且つ一連の時間依存データ値、例えば工業プラントの1つ以上のセンサの測定値を含むタグにそれぞれ関連付けられる。そのような時系列データセットは、多くの場合、センサが工業生産プラントのパラメータを測定している何年もの間の時間依存データ値を含む。更に、時系列データセットが記憶されるプロセスデータベースシステムが現在の技術レベルに更新されないが、レガシーシステムとして現在の技術レベルで動作し続けていることは、非常に一般的である。しかしながら、今日では、多くの場合、時系列データセット内に提供された複数のデータを他の状況、例えばビッグデータマイニング又は企業制御システムなどのようなより高いランクの計算システムでのデータの更なる分析のために使用することが望ましい。この目的のために、時系列データセットは、ソースデータベースとしてのプロセスデータベースシステムから検索され、ターゲットデータベース、例えばクラウドベースのデータベースシステム又はそれぞれの所望の用途のために時系列データセットにアクセスすることを可能にする技術的に高度なデータベースシステムにコピーされる。しかしながら、そのような膨大な量のデータを、特にターゲットデータベースシステムの可能な制約を考慮して連続的な方法でコピーすると、コピー手順に失敗し、その結果、ターゲットデータベース上のコピーされたデータセットにエラーをもたらす可能性がある。長期的には、そのような失敗及びエラーにより、ソースデータベースとターゲットデータベースとが同期していない状態につながる可能性がある。そのような非同期状態は、当然のことながら、望ましくない。しかしながら、データベースシステム間のデータ同期状態を判定するために、ターゲットデータベース及びソースデータベースに記憶された時間依存データセットを1つずつ単純に比較することは、例えば、その技術レベルが劣っているか、又は例外的な状況でなければ受け入れられない場合がある時間スケールで実施しなければならないことによる、ソースデータベースの技術的な制約を考慮すると、非常に効率が悪いか又は更に不可能である。したがって、今日では、これに関連して、それぞれのターゲットデータベースとソースデータベースとのデータ同期状態は、多くの場合、知られていないか、又は2つのデータベースが同期していないという無視できない実際の証拠が存在する場合にのみ判定される。したがって、工業プラントに対応する時系列データセットに関連して、ソースデータベースとターゲットデータベースとの間のデータ同期状態をより効果的に且つ計算コストの低い方法で判定することを可能にする方法が提供されれば有利であろう。
【発明の概要】
【発明が解決しようとする課題】
【0003】
発明の概要
本発明の目的は、ソースデータベースとしての工業プラントのプロセスデータベースシステムとターゲットデータベースとの間のデータ同期状態をより効果的に且つ計算コストの低い方法で判定することを可能にするコンピュータ実装方法、計算フレームワーク、データベースシステム及びコンピュータプログラム製品を提供することである。更に、本発明の目的は、ソースデータベースがレガシーシステムを指し、且つターゲットデータベースが技術的に優れたシステムを指す場合、そのようなデータベースの連続的なデータ同期状態の判定を可能にすることである。
【課題を解決するための手段】
【0004】
本発明の第1の態様では、ソースデータベースとターゲットデータベースとの間のデータ同期状態を判定するためのコンピュータ実装方法が提示され、ターゲットデータベースは、工業プラントのソースデータベースに記憶された過去の時系列データセットのコピーを記憶するように構成され、それぞれの時系列データセットは、それぞれのタグに関連付けられ、且つそれぞれの一連の時間依存データ値を含み、方法は、i)ソースデータベースのためのソースマップを提供することであって、ソースマップは、ソースデータベースに記憶された時間依存データ値の少なくとも一部の、複数のソースデータフレームへの構造化を示し、データフレームに関連付けられた時間依存データ値は、a)それぞれの時系列データセットに関連付けられたそれぞれのタグと、b)それぞれのタグに関連付けられたそれぞれの時系列データセットの時間依存データ値のそれぞれの開始時間及びそれぞれの終了時間とによって定義される、提供することと、ii)ターゲットデータベースのためのターゲットマップを提供することであって、ターゲットマップは、ターゲットデータベースに記憶された時間依存データ値の少なくとも一部の、複数のターゲットデータフレームへの構造化を示し、ターゲットマップは、ターゲットデータベースの構造化がソースデータベースの構造化に対応し、それによりソースデータフレームがターゲットデータフレームにそれぞれ対応するように、ソースマップに対応する、提供することと、iii)ソースデータフレーム及びターゲットデータフレームについて、ハッシュ値を判定することであって、ハッシュ値は、それぞれのデータフレームに関連付けられた時間依存データ値に対して敏感である、判定することと、iv)ターゲットデータフレームのハッシュ値を、対応するソースデータフレームのハッシュ値と比較することにより、データ同期状態を判定することとを含む。
【0005】
ソースデータベース及びターゲットデータベースは、複数のソースデータフレーム及びターゲットデータフレームにそれぞれ構造化され、ハッシュ値がソースデータフレーム及びターゲットデータフレームについて判定され、且つデータ同期状態がハッシュ値の比較に基づくため、複数の時間依存データ値は、ソースデータベースとターゲットデータベースとのデータ同期状態の判定がより少ない時間消費となるように同時に比較され得る。更に、膨大な量の時間依存データ値を比較的少数のハッシュ値に基づいて比較することができるため、本方法を実施する際にレガシーシステムにも過負荷とならないように、本方法は、計算コストが低く、且つより効果的である。
【0006】
工業プラントのプロセスデータベースシステムとみなされ得るソースデータベースに記憶された時系列データセットは、それぞれのタグに関連付けられた任意の一連の時間依存データ値を指し得る。好ましくは、それぞれの時系列データセットは、工業プラントの生産プロセスをモニタリングするために工業プラント内に設けられたセンサの測定値を指す時間依存データ値を含む。したがって、それぞれの時系列データセットは、工業プラントのモニタリング及び制御に利用される制御データともみなされ得る。好適な実施形態では、時間依存データ値に関連付けられたタグは、それぞれの時間依存データ値を提供した工業プラントのセンサの識別情報を示し得る。例えば、時系列データセットは、特定の製品の生産中の化学反応において温度センサによって提供された時系列の温度測定値を指し得る。温度センサは、例えば、温度センサの識別情報を示すタグに関連してプロセスデータベースシステムに記憶され、したがってそれぞれの時系列データセットを生成する数秒毎の温度測定値を提供するように適合され得る。しかしながら、他の実施形態では、一連の時間依存データ値は、1つのセンサだけでなく、複数のセンサで測定されたデータ値も指し得る。この場合、時間依存データ値に関連付けられたタグは、複数のセンサを示し得るか、又は時間依存データ値のソースから完全に独立し得る。
【0007】
一般的に、時系列データセットは、時間依存データ値に加えて、時間依存データ値が測定された時間を示すために時間依存データ値に関連付けられたタイムスタンプも含む。更に、任意選択的に、時系列データセットは、時系列データセットの各時間依存データ値に関連付けられた品質値を更に含むことができ、品質値は、それぞれの時間依存データ値の測定の品質又は時間依存データ値の測定に関連する任意の事象を示し得る。本教示の普遍性又は範囲を限定することなく、実施形態において、時系列データセットは、既に記憶された時間依存データ値に関連付けられた全ての他のタイムスタンプと比較して最近のタイムスタンプに関連付けられた時間依存データ値である時系列データセットに関連付けられた、最近挿入された、即ち記憶された時間依存データ値によって定義される順序通りの挿入時系列データセットを指し得る。したがって、順序通りの挿入時系列データセットは、全ての時間依存データ値が後に続いて、即ち関連するタイムスタンプの順番で記憶される時系列データセットを指すものとみなされ得る。したがって、最新の時間依存データ値は、最新の時間依存データ値の前に測定が実施されていることを示すタイムスタンプに関連付けられた最新の挿入された時間依存データ値の後に記憶される。
【0008】
工業プラントのソースデータベースに記憶された時系列データセットは、例えば、ソースデータベースに対して技術的に高度であり得るか、又は例えば技術的に高度な用途の時系列データセットへの更なるアクセスを少なくとも可能にするターゲットデータベースに連続的に、所定の時間間隔で又は少なくとも時折コピーされる。一般的に、データ同期状態が判定された時系列データセットについて、コピープロセスが既に終了しているため、ソースデータベース及びターゲットデータベースに記憶された時系列データセットは、過去の時系列データセットとみなされ得る。
【0009】
本方法は、ソースデータベースのためのソースマップを提供することを含む。一般的に、ソースマップを提供することは、ソースマップを生成することも含み得る。しかしながら、ソースマップは、提供することがそれぞれのストレージからソースマップを検索することを含み得るように、既にそれぞれのストレージにも記憶され得る。例えば、ソースマップは、ソースデータベース及びターゲットデータベースの以前のデータ同期状態の判定で既に使用されたソースマップであり得る。ソースマップは、ソースデータベースに記憶された時間依存データ値の少なくとも一部の、複数のソースデータフレームへの構造化を示す。特に、構造化は、ソースデータベースに記憶された時間依存データ値のそれぞれのソースデータフレームとの関連付けを指す。データフレームに関連付けられた時間依存データ値は、a)それぞれの時系列データセットに関連付けられたそれぞれのタグと、b)それぞれのタグに関連付けられたそれぞれの時系列データセットの時間依存データ値におけるそれぞれの開始時間及びそれぞれの終了時間とによって定義される。
【0010】
更に、本方法は、ターゲットデータベースのためのターゲットマップを提供することを含む。一般的に、この場合にも、ターゲットマップを提供することは、ターゲットマップを生成することも含み得る。しかしながら、ターゲットマップは、提供することがそれぞれのストレージからターゲットマップを検索することを含み得るように、既にそれぞれのストレージにも記憶され得る。例えば、ターゲットマップは、ソースデータベース及びターゲットデータベースの以前のデータ同期状態の判定で既に使用されたターゲットマップであり得る。ターゲットマップは、ターゲットデータベースに記憶された時間依存データ値の少なくとも一部の、複数のターゲットデータフレームへの構造化も示す。一般的に、以下では、「データフレーム」という用語が、「ターゲット」又は「ソース」が前に付されることなく使用される場合、それぞれの記述は、ターゲットデータフレームとソースデータフレームとの両方に適用される。
【0011】
構造化は、時間依存データ値のそれぞれのターゲットデータフレームとの関連付けとみなされ得る。一般的に、ターゲットマップ又はソースマップによって示されるデータフレームは、それぞれのデータフレームに関連付けられた時間依存データ値によって定義され、それぞれの時間依存データ値は、それらが属する時間依存データセット、即ちタグ、更に時間依存データ値によって関連付けられたタイムスタンプによって定義され、タイムスタンプは、それぞれの開始時間及びそれぞれの終了時間によって示され得る。したがって、ターゲットデータフレーム及びソースデータフレームのようなデータフレームは、同じ識別情報、即ちそれぞれのデータフレーム下の特定の時間依存データ値のグループ化とみなされ得る。ソースマップ及びターゲットマップは、それぞれのデータフレームに関連付けられた時間依存データ値を識別することを可能にする任意の種類のデータ構造を指し得る。例えば、ソースマップ又はターゲットマップは、それぞれのデータフレームを指す全ての時間依存データ値を列挙するリスト又はテーブルを指し得る。しかしながら、ソースマップ又はターゲットマップは、より抽象的なデータ構造、例えば時間依存データ値が、例えば、それらのタイムスタンプ及びそれぞれの関連タグに基づいて位置付けられているとみなされ得る抽象的なデータ座標系におけるデータフレームの境界を定義するデータ構造も指し得る。ソースマップ及びターゲットマップを提供することは、ソースデータフレーム及びターゲットデータフレームを提供することともみなされ得る。
【0012】
一般的に、ターゲットマップは、ソースマップに対応する。特に、ターゲットマップは、ターゲットデータベースの構造化がソースデータベースの構造化に対応し、それによりソースデータフレームがターゲットデータフレームにそれぞれ対応する場合、ソースマップに対応する。一実施形態では、ターゲットデータベースの構造化は、同期状態において、各ターゲットデータフレームが、対応するソースデータフレームと同じ時系列データ値によってそれぞれ定義される場合、ソースデータベースの構造化に対応する。
【0013】
一実施形態では、ソース及びターゲットマップ、したがってそれぞれのデータフレームは、ソース及び/又はターゲットデータベースからのそれぞれのデータフレームの時系列データ値の検索に関して最適化されることが好ましい。特に、ソースデータベースがレガシーシステムを指す場合、それぞれのデータフレームのサイズ、即ちデータフレームに関連付けられたデータ量は、レガシーソースデータベースの計算上の制約を考慮することが好ましい。例えば、ソース及びターゲットマップは、既知のソースデータベースのデータ検索リソース消費及び速度に基づいて生成され得る。追加的に又は代替的に、ソース及びターゲットマップを生成する際、それぞれの時間依存データセットのデータ密度、即ち単位時間あたりに記憶される時間依存データ値の量を考慮することができる。好ましい実施形態では、ソース及び/又はターゲットデータベースからのそれぞれのデータフレームの時間依存データ値の検索に関して最適化することは、ソース及び/又はターゲットデータベースから所定の量の任意のデータを抽出することを指すテストデータ抽出を実施することを含み、そのテストデータ抽出に基づいて、それぞれのデータベースの応答性及びデータ密度を判定することができる。最適化は、所定の境界条件に関してそれぞれの最適化問題を解くことによって実施され得る。境界条件は、好ましくは、1データフレームあたりのデータポイントの最小数及び最大数並びに/又は1データフレームあたりのタグの最大数を指す。例えば、1データフレームあたりのデータポイントの数は、1データフレームあたり50,000~5,000,000データポイントであるように設定することができ、タグの最大数は、3,000に設定することができる。一般的に、これらの境界条件は、特に、それぞれのデータベースシステムの経験に基づいて発見的に判定することができる。次いで、ソースマップ及びターゲットマップは、これらの境界条件に関して最適化問題を解くことによって判定することができる。更に、本方法の処理中、例えばデータベースの1つの過負荷による障害が発生した場合、それぞれの境界条件を修正することによってそれぞれの最適化が修正されることが好ましい。この修正は、正確度基準が満たされるまで、例えば1回あたりの失敗した要求の数が所定の閾値を下回るまで実施され得る。それぞれのデータベースについてこのようにして見出された個々の境界条件は、次いで、記憶され、ソースマップ及びターゲットマップを判定するための全ての更なる最適化で利用され得る。
【0014】
更に、本方法は、ソースデータフレーム及びターゲットデータフレームについてハッシュ値を判定することを含む。特に、ソースマップ及びターゲットマップによってそれぞれ定義された各ソースデータフレーム及び各ターゲットデータフレームについて、ハッシュ値が判定されることが好ましい。しかしながら、いくつかの実施形態では、ソースデータフレーム及びターゲットデータフレームの一部についてのみハッシュ値を判定することが技術的に合理的である場合、例えば、ソースデータベース及びターゲットデータベースの一部についてのみデータ同期状態を判定しなければならない場合がある。この場合、ハッシュ値は、対応するソースデータフレーム及びターゲットデータフレームについて判定される。
【0015】
一般的に、ハッシュ値は、ハッシュ関数をデータ値に適用することによって返される値を指す。ハッシュ関数は、任意のサイズのデータ値を一定のサイズのデータ値にマッピングする特徴を有する。好ましくは、ハッシュ値は、予め定義されたハッシュ関数に基づいて判定される。特に、ハッシュ値は、それぞれのデータフレームに関連付けられた時間依存データ値に対して敏感であるように判定される。したがって、ハッシュ値は、それぞれのデータフレームに関連付けられた時間依存データ値を示す。好ましくは、利用されたハッシュ関数は、それぞれのデータフレームに関連付けられた時間依存データ値を1つのハッシュ値にのみマッピングする。しかしながら、ハッシュ関数は、それぞれのデータフレームの時間依存データ値を2つ以上のハッシュ値、好ましくはデータフレームに関連付けられた時間依存データ値よりも小さいハッシュ値にマッピングするようにも適合され得る。ソース及びターゲットマップは、それぞれのターゲット及びソースデータフレームを定義するため、ターゲット及びソースデータマップは、ハッシュ値を判定するために、それぞれのデータベース上のそれぞれのデータフレームの時間依存データ値を識別するために利用されることが好ましい。しかしながら、他の実施形態では、ソース及びターゲットデータマップによって定義されるデータフレームは、ハッシュ値を判定するために提供される前にもそれぞれのデータベースから既に検索され、例えば一時ストレージに一時的に記憶され得る。
【0016】
好ましい実施形態では、ハッシュ値は、全体的なハッシュ値を指し、且つデータフレームのそれぞれの各時間依存データ値について判定された個々のハッシュ値に基づいて判定される。特に、データフレームの時間依存データ値をハッシュ値にマッピングするために、第1のハッシュ関数が利用され得る。特に、個々のハッシュ値は、時間依存データ値に関連付けられた時間、値及び/又は品質に基づいて判定されることが好ましい。例えば、時間依存データ値に関連付けられた時間は、時間依存データ値に関連付けられたタイムスタンプを指し得る。品質は、任意選択的に時間依存データ値にも関連付けられた品質値を指し得る。「値」という用語は、この場合、時間依存データ値の値自体も指す。次いで、例えば個々のハッシュ値を全体的なハッシュ値にマッピングする第2のハッシュ関数を再び利用することにより、個々のハッシュ値に基づいて全体的なハッシュ値を判定することができる。しかしながら、好ましい実施形態では、全体的なハッシュ値は、マークル木を利用することにより、個々のハッシュ値に基づいて判定される。
【0017】
本方法は、次に、ターゲットデータフレームのハッシュ値を、対応するソースデータフレームのハッシュ値と比較することにより、データ同期状態を判定することを含む。ハッシュ値が全体的なハッシュ値を指す場合、データ同期状態は、ターゲットデータフレームの全体的なハッシュ値を、対応するソースデータフレームの全体的なハッシュ値と比較することによって判定される。特に、比較することは、ターゲットデータフレームのハッシュ値と、対応するソースデータフレームのハッシュ値とが同じであるか否かを判定することを含む。データフレームのハッシュ値は、それぞれのデータフレームに関連付けられた時間依存データ値を示すため、ターゲットデータフレームとソースデータフレームのハッシュ値とが同じであることは、それぞれのデータフレームに関連付けられた全ての時間依存データ値も同じ、即ち同期していることを示す直接的な指標である。一方、ハッシュ値が異なることは、ターゲットデータフレームと、対応するソースデータフレームとの時間依存データ値が同期していないことを示す直接的な指標であり、例えば1つ以上の時間依存データ値がターゲットデータベース上で欠落していること又は時間依存データ値の誤った値がターゲットデータベースにコピーされていることを示す。
【0018】
次いで、データ同期状態は、それまでに実施された全ての比較の結果に基づいて判定され得る。データ同期状態は、ターゲットデータベース及びソースデータベースのデータが同期しているか又はしていないという単純な記述を指し得る。しかしながら、データ同期状態は、ソースデータベースとターゲットデータベースとの同期がある場合、同期のレベルを示すようにも判定され得る。例えば、異なるハッシュ値が判定されているデータフレームの数に基づいて、それぞれの同期レベルを提供することができる。更に、データ同期状態は、単に、更なる処理のために利用される内部値又は情報とみなされ得る。例えば、1つ以上のデータフレームが同期しているかどうかに基づいて、更なる処理を開始することができる。したがって、データ同期状態は、例えば、ユーザに提供され得るか、又はユーザが直接アクセスできない内部情報として利用され得る。
【0019】
一実施形態では、データフレームは、a)異なるそれぞれのタグと、b)同じそれぞれの開始時間及びそれぞれの終了時間とによって定義される、異なるそれぞれの時系列データセットの時間依存データ値に関連付けられる。特に、データフレームに関連付けられた異なるそれぞれのタグは、後続のタグを参照することが好ましい。したがって、この場合、データフレームは、それぞれのデータフレームのタグ範囲及び時間範囲を定義することにより、タグによって1つの次元で且つ時系列データセットのタイムラインによって別の次元でスパンされたデータ空間で定義され得る。次に、定義されたタグ範囲及び時間範囲内にある全ての時間依存データ値がそれぞれのデータフレームに関連付けられる。
【0020】
一実施形態では、データ同期状態の判定中、ターゲットデータフレームの少なくとも1つのハッシュ値が、対応するソースデータフレームのハッシュ値と異なると判定される場合、方法は、再帰的に、i)ソースデータベースのためのサブソースマップを生成することであって、サブソースマップは、ソースデータフレームの時間依存データ値の、サブソースデータフレームへの構造化を示す、生成することと、ii)ターゲットデータベースのためのサブターゲットマップを生成することであって、サブターゲットマップは、対応するターゲットデータフレームの時間依存データ値の、サブターゲットデータフレームへの構造化を示し、サブソースマップは、サブターゲットマップに対応する、生成することと、iii)サブソースデータフレーム及びサブターゲットデータフレームについて、サブハッシュ値を判定することであって、サブハッシュ値は、それぞれのサブデータフレームに関連付けられた時間依存データ値に対して敏感である、判定することと、iv)サブターゲットデータフレームのサブハッシュ値を、対応するサブソースデータフレームのサブハッシュ値と比較することにより、異なる時間依存データ値を含む1つ以上のサブデータフレームを判定することとを更に含み、再帰は、ターゲットデータフレーム及びソースデータフレームのハッシュ値間のそれぞれの差異を引き起こす1つ以上の時間依存データ値が識別され得るまで実施される。
【0021】
特に、サブソースマップ、サブターゲットマップの再帰的生成、サブハッシュ値の判定及びサブハッシュ値の比較は、上記で定義された方法の後続の同時の繰り返しを指し、それぞれのサブマップの生成の基礎として、再帰の以前のステップで非同期状態が判定されているターゲットデータベース及びソースデータベースの一部が利用される。特に、上述の再帰的方法では、非同期が判定されているサブデータフレームは、サブデータフレームのそれぞれのサブサブマップを生成するための次の再帰レベルの基礎を形成し得る。以下では、用語の問題を回避するために、データ同期状態の最初の判定に続く下位再帰レベルのいずれか1つでそれぞれの機能が利用されることを示すために、常に「サブ」という付加が使用される。しかしながら、一般的に、再帰は、中断基準が満たされるまで任意の回数の繰り返しを含み得る。特に、中断基準は、データベースの非同期化を引き起こすそれぞれの時間依存データ値を識別することを可能にすることを指す。例えば、再帰のサブステップの1つにおいて、非同期化されているデータフレームが識別され、そのデータフレームが所定の閾値を下回る時間依存データ値の数に関連付けられる場合、再帰は、中断され得る。閾値は、例えば、時間依存データ値のこのそれぞれの数について、それぞれの差異を引き起こす時間依存データ値を直接識別することを可能にする高速単一値比較を実施することができるという知識に基づいて判定され得る。しかしながら、いくつかの実施形態では、再帰は、1つの時間依存データ値のみがデータフレームに関連付けられるまで実施することもでき、この場合、最後の再帰ステップは、時間依存データ値の直接比較を指す。
【0022】
一実施形態では、本方法は、ターゲットデータベースとソースデータベースとが同期状態であるように、識別された時間依存データ値でターゲットデータベースを更新することを更に含む。
【0023】
一実施形態では、ソースマップ及びターゲットマップは、それぞれキー値マップを指し、a)それぞれソースデータベース及びターゲットデータベース上の対応するデータフレームの記憶位置と、b)対応するデータフレームのそれぞれのハッシュ値との間のマッピングをそれぞれ提供する。好ましくは、ターゲットデータフレームのハッシュ値の対応するソースデータフレームのハッシュ値との比較は、それぞれソースマップとターゲットマップのキー値マッピングに基づく。
【0024】
本発明の更なる態様では、ソースデータベースとターゲットデータベースとの間のデータ同期状態を判定するための計算フレームワークが提示され、ターゲットデータベースは、工業プラントのソースデータベースに記憶された過去の時系列データセットのコピーを記憶するように構成され、それぞれの時系列データセットは、それぞれのタグに関連付けられ、且つそれぞれの一連の時間依存データ値を含み、フレームワークは、i)ソースデータベースのためのソースマップを提供するためのソースマップ提供ユニットであって、ソースマップは、ソースデータベースに記憶された時間依存データ値の少なくとも一部の、複数のソースデータフレームへの構造化を示し、データフレームに関連付けられた時間依存データ値は、a)それぞれの時系列データセットに関連付けられたそれぞれのタグと、b)それぞれのタグに関連付けられたそれぞれの時系列データセットの時間依存データ値のそれぞれの開始時間及びそれぞれの終了時間とによって定義される、ソースマップ提供ユニットと、ii)ターゲットデータベースのためのターゲットマップを提供するためのターゲットマップ提供ユニットであって、ターゲットマップは、ターゲットデータベースに記憶された時間依存データ値の少なくとも一部の、複数のターゲットデータフレームへの構造化を示し、ターゲットマップは、ターゲットデータベースの構造化がソースデータベースの構造化に対応し、それによりソースデータフレームがターゲットデータフレームにそれぞれ対応するように、ソースマップに対応する、ターゲットマップ提供ユニットと、iii)ソースデータフレーム及びターゲットデータフレームについて、ハッシュ値を判定するためのハッシュ値判定ユニットであって、ハッシュ値は、それぞれのデータフレームに関連付けられた時間依存データ値に対して敏感である、ハッシュ値判定ユニットと、iv)ターゲットデータフレームのハッシュ値を、対応するソースデータフレームのハッシュ値と比較することにより、データ同期状態を判定するための同期状態判定ユニットとを含む。
【0025】
本発明の更なる態様では、データベースシステムが提示され、このシステムは、i)工業プラントにおいて提供され、且つ工業プラントの時系列データセットを記憶するように構成されたソースデータベースと、ii)工業プラントのソースデータベースに記憶された過去の時系列データセットのコピーを記憶するように構成されたターゲットデータベースと、iii)上述のような計算フレームワークとを含む。
【0026】
本発明の更なる態様では、ソースデータベースとターゲットデータベースとの間のデータ同期状態を判定するためのコンピュータプログラム製品が提示され、このコンピュータプログラム製品は、上述のような計算フレームワークに、上述のような方法を実行させるプログラムコード手段を含む。
【0027】
上述のような方法、上述のような計算フレームワーク、上述のようなデータベースシステム及び上述のようなコンピュータプログラム製品は、特に従属請求項に定義されるような類似及び/又は同一の好適な実施形態を有することを理解されたい。
【0028】
本発明の好ましい実施形態は、従属請求項又は上述の実施形態と各々の独立請求項との任意の組み合わせであり得ることを理解されたい。
【0029】
本発明のこれら及び他の態様は、以下に記述する実施形態から明らかになり、且つそれらを参照して解明されるであろう。
【図面の簡単な説明】
【0030】
【
図1】ソースデータベースとターゲットデータベースとの間のデータ同期状態を判定するための、計算フレームワークを含むデータベースシステムの一実施形態を概略的且つ例示的に示す。
【
図2】ソースデータベースとターゲットデータベースとの間のデータ同期状態を判定するための方法の一実施形態を例示的に示すフローチャートである。
【
図3】ターゲットデータベースとソースデータベースとの間のデータ同期状態を判定するための方法の一実施形態の一般的な原理を概略的且つ例示的に示す。
【発明を実施するための形態】
【0031】
実施形態の詳細な説明
図1は、工業プラント120において提供されたソースデータベース121と、任意の場所、例えばクラウド130において提供されたターゲットデータベース131と、ソースデータベース121とターゲットデータベース131との間のデータ同期状態を判定するための計算フレームワーク110とを含むデータベースシステム100を概略的且つ例示的に示す。
【0032】
ソースデータベース121は、工業プラント120において提供され、且つ工業プラント120の時系列データセットを記憶するように構成される。一般的に、工業プラント120は、工業目的で使用される任意の技術基盤を指し得る。工業目的は、1つ以上の工業製品の製造又は加工、即ち工業プラントによって実施される製造プロセス又は加工であり得る。例えば、工業目的は、製品の生産を指し得る。製品は、例えば、化学、生物学、医薬、食品、飲料、織物、金属、プラスチック又は半導体等の任意の物理的製品であり得る。追加的に又は代替的に、製品は、更に電気、暖房、空調、リサイクルなどの廃棄物処理、分解若しくは溶解などの化学処理又は焼却なども含むサービス製品であり得る。それに応じて、工業プラント120は、化学プラント、プロセスプラント、製薬プラント、油井及び/又は天然ガスバルブなどの化石燃料処理施設、製油所、石油化学プラント、分留所などの1つ以上であり得る。工業プラント120は、更に蒸留所、焼却炉又は発電所のいずれかであり得る。工業プラント120は、更に上記で与えられた例のいずれかの組み合わせであり得る。
【0033】
生産プロセスを実施するために、工業プラント120は、例えば、プロセス制御システム122によって技術基盤に実装された制御パラメータによって制御可能な技術基盤を含む。技術基盤は、熱交換器、分留塔などの塔、炉、反応室、接触分解ユニット、貯蔵タンク、沈殿器、パイプライン、スタック、フィルタ、バルブ、アクチュエータ、変換器、回路ブレーカ、機械類、例えばタービン、発電機、粉砕機、圧縮機、ファン、ポンプ、モータなどの回転重機のいずれか1つ以上のような機器又はプロセスユニットを含み得る。更に、工業プラント120は、典型的には、技術基盤の動作パラメータを測定可能にする複数のセンサを含む。測定された運転パラメータは、プロセス制御システム122により、工業プラント120のプロセスデータベースシステムともみなされ得るソースデータベース121に記憶される。更に、動作パラメータは、工業プラント120における生産プロセスを制御するためのプロセス制御システム122によっても利用され得る。センサによって測定される動作パラメータは、様々な工程パラメータ及び/又は設備若しくは工程ユニットに関連するパラメータに関連し得る。例えば、センサは、パイプライン内の流量、タンク内の流体レベル、炉の温度、ガスの化学組成などのプロセスパラメータを測定するために使用され得、いくつかのセンサは、タービンの振動、ファンの速度、バルブの開度、パイプラインの腐食、変圧器の両端での電圧などを測定するために使用され得る。これらのセンサ間の差異は、センサが検知するパラメータに基づくだけでなく、それぞれのセンサが使用する検知原理に基づき得る。検知するパラメータに基づくセンサのいくつかの例は、温度センサ、圧力センサ、光センサなどの放射センサ、流量センサ、振動センサ、変位センサ及びガスなど、特定の物質を検出する化学センサなどを含み得る。採用する検知原理が異なるセンサの例は、例えば、圧電センサ、圧電抵抗センサ、熱電対、静電容量センサ及び抵抗センサなどのインピーダンスセンサなどであり得る。センサは、一般的に、時間依存データ値、即ちそれらがセンサによって測定された特定の時間に関連付けられたデータ値の形態で動作パラメータを測定する。センサによって測定されたこれらの時間依存データ値を時系列データセットの形態でソースデータベース121に記憶することが一般的である。
【0034】
ソースデータベース121は、例えば、時系列データセットを記憶するための専用ハードウェア及び/又はソフトウェアを含むストレージを指し得る。しかしながら、ソースデータベース121は、一般的なストレージ又は特に時系列データセットのストレージを許容する任意の他のコンピューティングシステムも指し得る。ソースデータベース121に記憶された各時系列データセットは、それぞれの時系列データセットの識別子だけでなく、任意選択的にそれぞれの時系列データセットの時間依存データ値が測定される1つ以上のセンサの識別子ともみなされ得るタグに関連付けられる。更に、それぞれのタグに関連付けられたそれぞれの各時系列データセットは、それぞれの時間依存データ値が測定された時間を示すタイムスタンプと共に記憶された時間依存データ値を含む。任意選択的に、各時系列データセットは、各時間依存データ値の測定の品質を示す各時間依存データ値についての品質値も含み得る。このように、ソースデータベース121は、好ましくは、工業プラント120のセンサ毎に、新たな時間依存データ値がそれぞれのセンサによって測定されるたびに連続的に更新されるそれぞれの時系列データセットを記憶する。
【0035】
一般的に、工業プラント120は、工業プラント120によって実施される生産を管理及び制御するための企業制御システムに統合され得る。工業プラント120の管理及び制御のために、多くの場合、センサによって提供された測定データをソースデータベース121から検索し、検索された測定データをターゲットデータベース131に記憶することが望ましい。特に、ターゲットデータベース131は、企業制御システムのような他の専用のより複雑な管理及び制御システムによる測定データ、即ち時系列データセットの更なる処理を可能にするように選択され得る。特に、多くの実際の用途では、ソースデータベース121上の時系列データセットの管理、制御及び検索を行う計算フレームワークは、それぞれのデータのより複雑な処理及び分析に適合されていないレガシーシステムを参照する。このように、ソースデータベース121に記憶された時系列データセットを、より複雑なデータ分析及び管理ツール、例えば人工知能ベースの管理ツール又はビッグデータ分析アルゴリズムへのアクセスを可能にするだけでなく、好ましくはサポートするように適合されたターゲットデータベース131に定期的又は連続的にコピーすることにより、工業プラント120によって提供された時系列データセットの更なる有利な処理を可能にする。例えば、ターゲットデータベース131は、複数の場所、コンピュータ又はワークスペースからのアクセスを可能にするクラウドベースの環境において提供され得る。しかしながら、ターゲットデータベース131上において、コピーされた時系列データセットを更に利用及び処理するために、コピーされた時系列データセットが、ソースデータベース121上に元々記憶されていた時系列データセットと同じであることが保証できれば有利であり、即ちターゲットデータベース131とソースデータベース121の間のデータ同期状態を知ることができれば有利である。
【0036】
このように、データベースシステム100は、ソースデータベース121とターゲットデータベース131との間のデータ同期状態を判定するための計算フレームワーク110を含む。計算フレームワーク110は、ソースマップ提供ユニット111と、ターゲットマップ提供ユニット112と、ハッシュ値判定ユニット113と、同期状態判定ユニット114とを含む。任意選択的に、計算フレームワーク110は、キーボード、タッチスクリーン、コンピュータマウス、マイクロフォンなどのような、ユーザが計算フレームワーク110にアクセスし、計算フレームワーク110に入力を提供することを可能にする入力ユニット115を更に含み得る。更に、計算フレームワーク110は、例えば、ディスプレイ、ライトユニット、スピーカなど、ユーザに出力を提供するための出力ユニット116も含み得る。
【0037】
ソースマップ提供ユニット111は、ソースデータベース121のソースマップを提供するように適合される。ソースマップは、ソースデータベース121に記憶された時間依存データ値の少なくとも一部の、複数のソースデータフレームへの構造化を示す。一般的に、データフレームは、データフレームに関連付けられた時間依存データ値によって定義され得る。時間依存データ値は、一般的に、a)時間依存データ値のそれぞれの時間依存データセットに関連付けられたそれぞれのタグと、b)それぞれのタグに関連付けられたそれぞれの時系列データセットの時間依存データ値のそれぞれの時間フレーム、例えば開始時間及び終了時間とによって定義され得る。したがって、データフレームも、データフレームに関連付けられた時間依存データ値のタグ及び時間フレームによって定義され得る。次いで、ソースマップは、例えば、時間依存データ値のそれぞれのデータフレームへのマッピングを含むように適合させることができ、マッピングは、それぞれの時間依存データ値のタグ及びそれぞれの時間フレームを参照することによって示すことができる。したがって、ソースデータベース121の複数のデータフレームへの構造化は、ソースデータベース121に記憶された時間依存データ値のグループ化の形態ともみなされ得る。特に、この見解では、時間依存データ値のグループは、データフレームを指し、時間依存データ値のそれぞれのグループのメンバーは、同じデータフレームに関連付けられる。好ましくは、一般的なデータフレームは、異なるそれぞれのタグ並びに同じそれぞれの開始時間及びそれぞれの終了時間によって定義される、異なるそれぞれの時系列データセットの時間依存データ値に関連付けられる。更に好ましくは、異なるタグは、後続のタグを参照する。
【0038】
この原理の概略的且つ例示的な図を
図3に提供する。
図3では、時間依存データ値311のような時間依存データ値は、概略図表現310として示されるソースデータベースに記憶される。ソースデータベース121の表現310は、ソースデータベース121に記憶された時間依存データ値を2次元図の形態で示し、第1の次元301は、それぞれの時間依存データ値に関連付けられた時間を示すタイムラインを指し、第2の次元302は、それぞれの時間依存データ値が関連付けられたタグを指す。一般的に、タグは、任意の番号又は他の指標を指し得るが、この例では、タグは、1から開始して、続いてNによって表されるタグ番号まで順次番号付けされる。ソースデータベース121のこの表現310では、時間依存データ値は、4つのデータフレーム313、314、315、316に構造化される。この観点では、データフレームは、データフレームに関連付けられたタグ及びデータフレームに関連付けられたそれぞれの時間間隔によって容易に定義することができ、時間間隔は、開始時間及び終了時間の形態で提供することができる。このようにして、それぞれのデータフレーム313、314、315、316に関連付けられる時系列データセットの時間依存データ値が明確に定義される。
【0039】
ターゲットマップ提供ユニット112は、ソースマップに関して上述したのと同じ原理を適用して、ターゲットデータベース131に対するターゲットマップを提供するように適合される。特に、ターゲットマップは、ターゲットデータベース131の構造化がソースデータベース121の構造化に対応し、それによりソースデータフレームがターゲットデータフレームにそれぞれ対応するように提供される。又は、別の方法で定義されると、ターゲットデータベース131及びソースデータベース121に記憶される時間依存データ値は、常に同じ時間依存データ値がそれぞれのソースデータフレーム及びターゲットデータフレームにグループ化されるように、データフレームにグループ化される。したがって、この種類の構造化が利用されると、同期状態において、各ターゲットデータフレームは、対応するソースデータフレームと同じ時系列データ値によってそれぞれ定義される。
【0040】
ソースデータベース121とターゲットデータベース131とが同期状態にある場合、各ソースデータフレーム313、314、315、316が、同じ時間依存データ値を含む対応するターゲットデータフレーム323、324、325、326を含むことを示す、ソースデータベース121の表現310とターゲットデータベース131の表現320とを比較する際の本発明のこの一般的な原理も
図3に更に示されている。例えば、ソースデータフレーム314に関連付けられた時間依存データ値311は、ターゲットデータフレーム324に関連付けられた時間依存データ値321と同じである。
【0041】
ハッシュ値判定ユニット113は、ソースデータフレーム及びターゲットデータフレーム、特に全てのソースデータフレーム及びターゲットデータフレームについてハッシュ値を判定するように適合される。しかしながら、ハッシュ値判定ユニット123は、ターゲットデータフレーム及びソースデータフレームの一部についてのみ又は特定のソースデータフレーム及びターゲットデータフレームについてのみハッシュ値を判定するようにも適合され得る。一般的に、ハッシュ値は、ハッシュ値判定ユニット113により、対応するソースデータフレーム及びターゲットデータフレームについて判定される。ハッシュ値は、それぞれのデータフレームに関連付けられた時間依存データ値に対して敏感であるように判定される。一般的に、ハッシュ値は、ハッシュ関数を1つ以上のデータ値に適用することによって判定される。例えば、ハッシュ関数は、それぞれのデータフレームの全ての時間依存データ値に適用することができ、適用されたハッシュ関数は、時間依存データ値を1つ以上のハッシュ値にマッピングする。好ましい実施形態では、ハッシュ値判定ユニット113は、最初に、ハッシュ関数を、データフレームの各時間依存データ値について個々のハッシュ値が判定されるように、データフレームの各時間依存データ値、その関連するタイムスタンプ及び任意選択的にその品質値に適用するように適合される。次のステップでは、ハッシュ値判定ユニット113は、次いで、好ましくは更なるマッピング関数、例えば更なるハッシュ関数又は好ましくはマークル木をデータフレームの全ての個々のハッシュ値に適用して、それぞれのデータフレームの全体的なハッシュ値を判定するように適合される。全体的なハッシュ値は、次に、それぞれのデータフレームのハッシュ値とみなされる。ハッシュ関数を適用することは、データ同期状態を特定するために比較しなければならないデータ量を大幅に低減できるという効果を有する。
【0042】
同期状態判定ユニット114は、ターゲットデータフレームのハッシュ値を、対応するソースデータフレームのハッシュ値と比較することにより、特に各ターゲットデータフレームのハッシュ値を、ハッシュ値が判定されている各対応するソースデータフレームのハッシュ値と比較することにより、ソースデータベース121とターゲットデータベース131とのデータ同期状態を判定するように適合される。ハッシュ値は、時間依存データ値に対して敏感であるため、等しいハッシュ値は、ハッシュ値が属するそれぞれのデータフレームが同じ時間依存データ値を含み、したがって同期していることを示す。一方、異なるハッシュ値は、それぞれのデータフレーム間の時間依存データ値の差異を示し、したがってソースデータベース121とターゲットデータベース131との非同期状態を示す。時間依存データ値が異なる一例も
図3に提供されている。特に、ソースデータベース表現310のソースデータフレーム313は、時間依存データ値312を含むが、対応するターゲットデータフレーム323は、参照記号322で示されるように、この時間依存データ値が欠落している。したがって、これら2つのデータフレームのハッシュ値は、異なることが予想される。
【0043】
ソースデータベース121とターゲットデータベース131との同期を判定するために、同期状態判定ユニット114は、上記の原理を完全なデータベース、即ち全ての時間依存データ値に適用するように適合され得るが、同期状態判定ユニット114は、データベースの一部のデータ同期状態のみを判定するようにも適合され得、この場合、上記の原理は、データベースのこの部分にのみ適用される。一般的に、データ同期状態は、ソースデータベース及びターゲットデータベース又はソースデータベース及びターゲットデータベースの一部が同期しているか否かを示す情報を指し得る。しかしながら、データ同期状態は、同期のレベルも示し得る。例えば、それは、時間依存データ値の差異量を示し得、したがってソースデータベースとターゲットデータベースとの間のコピープロセスの品質の指標を提供することができる。したがって、データ同期状態は、例えば、出力ユニット116を利用してユーザに提供されて、データ同期状態に関してユーザに知らせることができる。しかしながら、データ同期状態は、例えば、ターゲットデータベースをソースデータベースと同期させる必要があるかどうかを判定するための内部情報としてのみ利用することもできる。
【0044】
好ましい実施形態では、同期状態判定ユニット114がターゲットデータフレーム及びソースデータフレームについて異なるハッシュ値を判定し、したがってデータ非同期状態を判定する場合、計算フレームワーク110は、データベースの一部としてのそれぞれの識別されたデータフレームに対して、上述したものと同じ原理を再び適用するように適合され得る。特に、原理は、再帰的に適用されることが好ましい。例えば、それぞれの識別されたデータフレームは、次いで、データベースの一部とみなされ、ソースデータフレームについて、再び、この場合にサブソースマップとしてみなされ得るソースマップが上述のような原理に関して生成され得る。更に、ターゲットデータベース及びそれぞれのターゲットデータフレームについてもターゲットマップを再び生成することができ、この場合、再び上述のような原理に関して、サブターゲットマップを参照しているとみなされ得る。特に、サブソースマップは、それぞれのデータフレームのサブターゲットマップに再び対応する。次いで、サブターゲットマップ及びサブソースマップによって定義されたデータフレームがサブデータフレームとみなされ得る。ここでも、同様に上述したように、例えば、ハッシュ値判定ユニット113は、それぞれのサブターゲットデータフレーム及びサブソースデータフレームについてハッシュ値を判定するように適合され得る。次に、これらのハッシュ値は、サブハッシュ値とみなされ得る。その後、同期状態判定ユニット114は、それぞれの対応するサブデータフレームのサブハッシュ値を比較するように再び適合され得る。
【0045】
図2は、ソースデータベースとターゲットデータベースとの間のデータ同期状態を判定するための方法のフローチャートを概略的且つ例示的に示す。特に、方法200は、既に上述した原理に従い、例えば
図1に関して説明したシステムによって実施することができる。特に、方法200は、ソースデータベースのためのソースマップを提供するステップ210を含む。ソースマップは、既に上述したように、ソースデータベースに記憶された時間依存データ値の少なくとも一部の、複数のソースデータフレームへの構造化を示す。特に、データフレームに関連付けられた時間依存データ値は、それぞれの時系列データセットに関連付けられたそれぞれのタグと、それぞれのタグに関連付けられたそれぞれの時系列データセットの時間依存データ値のそれぞれの開始時間及びそれぞれの終了時間とによって定義される。更に、方法200は、ターゲットデータベースのためのターゲットマップを提供するステップ220を含む。ターゲットマップは、ターゲットデータベースに記憶された時間依存データ値の少なくとも一部の、複数のターゲットデータフレームへの構造化を示す。
図1に関しても既に詳細に上述したように、ターゲットマップは、ターゲットデータベースの構造化がソースデータベースの構造化に対応するように、ソースマップに対応する。したがって、ソースデータフレームは、ターゲットデータフレームにそれぞれ対応する。一般的に、ターゲットマップを提供するステップ210及びソースマップを提供するステップ220は、それぞれ任意の順序で実施することができ、例えば最初にソースマップを提供する代わりに最初にターゲットマップを提供することもできる。更に、ソースマップ及びターゲットマップは、上記で定義された条件が満たされる限り、同時に提供することもでき、更に同時に生成することもできる。続くステップ230では、方法200は、ソースデータフレーム及びターゲットデータフレームについてハッシュ値を判定することを含み、ハッシュ値は、それぞれのデータフレームに関連付けられた時間依存データ値に対して敏感である。更に、方法200のステップ240では、データ同期状態は、ターゲットデータフレームのハッシュ値を、対応するソースデータフレームのハッシュ値と比較することによって判定される。
【0046】
更に、任意選択的に、ターゲットデータフレームの少なくとも1つのハッシュ値が、対応するソースデータフレームのハッシュ値と異なると判定される場合、方法200は、任意選択的に、判定されたターゲットデータフレーム及びソースデータフレームを基礎として、ステップ210~240を再帰的に繰り返すことを含み得る。特に、この場合、ソースマップ及びターゲットマップを提供することは、それぞれのデータフレームのためのサブソースマップ及びサブターゲットマップを提供することを指し得る。更に、この場合のハッシュ値の判定は、サブハッシュ値を判定することも指し得、次いでサブハッシュ値を比較することによってデータ同期状態を判定することにより、いずれの時間依存データ値がターゲットデータベースとソースデータベースとの間の差異を引き起こすかを更に判定することを可能にする。特に、ターゲットデータベースとソースデータベースとの間の差異を引き起こす1つ以上の時間依存データ値が識別されるまで、上記で定義された再帰を実施することができる。
【0047】
以下では、上述した本発明のより詳細な実施形態が説明される。この実施形態では、ハッシュ関数hash_vqt(v,q,time)は、各時間依存データ値に任意選択的に関連付けられたデータ-トリプル、例えば時間、品質及びデータ値自体を擬似的に一意なハッシュ値にマッピングする。この関数は、例えば、時間依存データ値に任意選択的に関連付けられたデータ値に基づいて直列化されたデータ-トリプルオブジェクトの文字列ハッシュを計算することによって実装され得る。更に、一般的に、タグ識別子、開始時間及び終了時間によって定義された値を擬似的に一意なハッシュ値にマッピングするハッシュ関数hash_tag(tagid,starttime,endtime)を定義することができる。例えば、この関数は、上記で定義されたhash_vqtのような関数及び全体的なハッシュ値を計算するためのマークル木を内部的に使用することができる。更に、2つ以上のタグが実装されることが想定される場合、特に複数のタグについてハッシュ値が判定されることが想定される場合にも、タグのセット、開始時間及び終了時間によって定義された値を擬似的に一意なハッシュ値にマッピングする関数hash_block(tagset,starttime,endtime)を定義することができる。例えば、この関数は、上記で定義された関数hash_tag及び全体的なブロックハッシュ値を計算するためのマークル木を内部的に使用することができる。
【0048】
これらの関数に基づいて、上記で定義されたコンピュータ実装方法の一実施形態を提供することができる。特に、最初のステップでは、ソースマップ及びターゲットマップを生成又は提供することができる。ソース及びターゲットマップに基づいて、ソース及びターゲットデータフレームは、例えば、ソース及びターゲットデータベースをデータブロック、即ちデータフレームによってそれぞれ定義された時間依存データ値のグループに「分割」することによって識別され得る。好ましくは、データブロックは、両方のデータベース上で時間依存データ値を処理するために十分に小さいデータベースクエリを利用することを可能にするサイズ、即ちデータ量を有する。特に、潜在的なレガシーソースデータベースによるデータの処理に関して、データブロックのサイズ、したがってデータフレームのサイズに対する制約を考慮することができる。次いで、上記で定義されたhash_block関数を使用して、ソースデータベース及びターゲットデータベースの各データフレームについてハッシュ値を判定することができる。対応するターゲットデータフレーム及びソースデータフレームのハッシュ値の比較により、それぞれのデータフレームに関連付けられたデータ値の差異が示された場合、それぞれのデータフレームは、例えば、それぞれのサブマップに基づいて、より小さいデータブロックに細分化され得る。その後、不一致を引き起こす時間依存データ値が識別されるまで、細分化されたデータブロックで上述のアルゴリズムを再帰的に実施することができる。データフレームのハッシュ値の比較中にハッシュ値の差異が見つからない場合、ハッシュ値が比較されたデータベースの部分は、完全に同期される。
【0049】
実際には、データブロックのハッシュの不一致の根本原因を見つけるために再帰的にデータブロックを細分化し始める際、更なる再帰を実施する代わりに、ソース及びターゲットデータベースに記憶された時間依存データ値並びに任意選択的に時間依存データ値に関連付けられたデータを直接比較することがより簡単である転換点が存在することになる。したがって、例えばアルゴリズムのテスト実行中、この転換点の時間依存データ値の数を再帰閾値として予め判定し、この再帰閾値を再帰の中断基準として実装することが好ましい。
【0050】
それぞれのデータベースの最適なデータフレーム構造を計算するための、即ち最適なソース及びターゲットマップを生成するための複数の戦略が存在する。例えば、クエリカウント、即ちデータフレームに関連付けられた時間依存データ値を検索するためにクエリ中に検索されるデータ量、データベースリソースの消費及び速度間で妥協点を見出すことが好ましい。好ましくは、この最適化のために、それぞれのタグのデータ密度、即ちこの場合には時間単位あたりのデータベース内のデータポイントのカウントがトラッキングされる。
【0051】
開示した実施形態に対する他の変形形態は、図面、本開示及び添付の請求項を研究することから、特許請求される本発明を実施する当業者によって理解及び実現され得る。
【0052】
請求項では、単語「含む」は、他の要素又はステップを排除せず、不定冠詞「1つの(a)」又は「1つの(an)」は、複数を排除しない。
【0053】
単一のユニット又は装置は、請求項に記載された複数の項目の機能を実現し得る。特定の手段が互いに異なる従属請求項で言及されているという事実のみで、これらの手段の組み合わせが有利に使用できないことを示すものではない。
【0054】
ソースマップの提供、ターゲットマップの提供、ハッシュ値の判定又はハッシュ値の比較などのような1つ以上のユニット又は装置によって実施される手順は、他の任意の数のユニット又は装置によって実施することができる。これらの手順は、コンピュータプログラムのプログラムコード手段及び/又は専用ハードウェアとして実装することができる。
【0055】
コンピュータプログラム製品は、光記憶媒体又は固体媒体等の適当な媒体に記憶/配布され、他のハードウェアと共に又はその一部として供給され得るが、他の形態、例えばインターネット又は他の有線/無線通信システムを介して配信され得る。
【0056】
本明細書で説明する任意のユニットは、コンピューティングシステムの一部である処理ユニットであり得る。処理ユニットは、汎用プロセッサを含み得、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又は任意の他の専用回路も含み得る。任意のメモリは、物理的なシステムメモリであり得、揮発性、不揮発性又はこれらの2つのいくつかの組み合わせであり得る。「メモリ」という用語は、不揮発性大容量ストレージなどのコンピュータ可読記憶媒体を含み得る。コンピューティングシステムが分散型である場合、処理能力及び/又は記憶能力も分散型であり得る。コンピューティングシステムは、「実行可能な構成要素」としての複数の構造を含み得る。「実行可能な構成要素」という用語は、ソフトウェア、ハードウェア又はそれらの組み合わせであり得る構造としてコンピューティングの分野でよく理解されている構造である。例えば、ソフトウェアで実装される場合、当業者であれば、実行可能な構成要素の構造は、コンピューティングシステム上で実行され得るソフトウェアオブジェクト、ルーチン、メソッドなどを含み得ることを理解するであろう。これは、コンピューティングシステムのヒープ内の実行可能な構成要素又はコンピュータ可読記憶媒体上の実行可能な構成要素の両方を含み得る。実行可能な構成要素の構造は、コンピューティングシステムの1つ以上のプロセッサ、例えばプロセッサスレッドによって解釈されると、コンピューティングシステムにある機能を実施させるためにコンピュータ可読媒体上に存在し得る。そのような構造は、例えば、実行可能な構成要素がバイナリである場合のように、プロセッサによって直接コンピュータ可読なものであり得るか、又はプロセッサによって直接解釈可能であるそのようなバイナリを生成するように、例えば単一段階若しくは複数段階のいずれかで解釈可能及び/若しくはコンパイル可能な構造であり得る。他の例では、構造は、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又は他の専用回路内など、ハードウェアに排他的又はほぼ排他的に実装されるハードコード又はハード有線論理ゲートであり得る。したがって、「実行可能な構成要素」という用語は、ソフトウェア、ハードウェア又はそれらの組み合わせのいずれで実装されるかにかかわらず、コンピューティングの技術分野における通常の当業者によってよく理解される構造のための用語である。本明細書における任意の実施形態は、コンピューティングシステムの1つ以上の処理ユニットによって実施される行為を参照して説明される。そのような行為がソフトウェアで実装される場合、1つ以上のプロセッサは、実行可能な構成要素を構成するコンピュータ実行可能命令を実行することに応じてコンピューティングシステムの動作を指示する。コンピューティングシステムは、コンピューティングシステムが他のコンピューティングシステムと例えばネットワークを介して通信することを可能にする通信チャネルも含み得る。「ネットワーク」は、コンピューティングシステム及び/若しくはモジュール並びに/又は他の電子装置間の電子データの伝送を可能にする1つ以上のデータリンクとして定義される。情報がネットワーク又は別の通信接続、例えばハード有線、無線又はハード有線と無線との組み合わせのいずれかを介してコンピューティングシステムに転送又は提供される場合、コンピューティングシステムは、接続を伝送媒体として適切にみなす。伝送媒体は、コンピュータ実行可能命令又はデータ構造の形態で所望のプログラムコード手段を搬送するために使用することができ、汎用又は専用目的のコンピューティングシステム又はそれらの組み合わせによってアクセスされ得るネットワーク及び/又はデータリンクを含み得る。全てのコンピューティングシステムがユーザインターフェースを必要とするわけではないが、いくつかの実施形態では、コンピューティングシステムは、ユーザとのインターフェースに使用するためのユーザインターフェースシステムを含む。ユーザインターフェースは、例えば、ディスプレイを介したユーザへの入力又は出力機構として機能する。
【0057】
当業者であれば、本発明は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブル家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ページャ、ルータ、スイッチ、データセンタ、眼鏡のようなウェアラブル機器などを含む、多くのタイプのコンピューティングシステム構成を有するネットワークコンピューティング環境で実施され得ることを理解するであろう。本発明は、例えば、ネットワークを介してハード有線データリンク、無線データリンク又はハード有線データリンクと無線データリンクとの組み合わせのいずれかによってリンクされるローカル及びリモートのコンピューティングシステムの両方がタスクを実施する分散システム環境でも実施され得る。分散システム環境では、プログラムモジュールは、ローカルとリモートとの両方のメモリ記憶装置に配置され得る。
【0058】
当業者であれば、本発明は、クラウドコンピューティング環境でも実施され得ることを理解するであろう。クラウドコンピューティング環境は、分散され得るが、これは、必須ではない。分散される場合、クラウドコンピューティング環境は、組織内で国際的に分散され得、且つ/又は複数の組織にわたって保有された構成要素を有し得る。本明細書及び以下の特許請求の範囲では、「クラウドコンピューティング」は、構成可能なコンピューティングリソース、例えばネットワーク、サーバ、ストレージ、アプリケーション及びサービスの、共有プールへのオンデマンドネットワークアクセスを可能にするモデルとして定義される。「クラウドコンピューティング」の定義は、そのようなモデルが展開された場合に得られ得る他の多数の利点のいずれにも限定されない。図のコンピューティングシステムは、説明したように、本明細書に開示された様々な実施形態を実装し得る様々な構成要素又は機能ブロックを含む。様々な構成要素又は機能ブロックは、ローカルコンピューティングシステム上に実装され得るか、又はクラウドに常駐する要素を含むか若しくはクラウドコンピューティングの態様を実装する分散コンピューティングシステム上で実装され得る。様々な構成要素又は機能ブロックは、ソフトウェア、ハードウェア又はソフトウェアとハードウェアとの組み合わせとして実装され得る。図に示されるコンピューティングシステムは、図に示されるより多い又は少ない構成要素を含み得、状況が許す限り、構成要素のいくつかを組み合わせ得る。
【0059】
請求項に参照符号が存在したとしても、その範囲を限定するものと解釈すべきではない。
【0060】
本発明は、ソースデータベースとターゲットデータベースとの間の同期状態を判定するための方法に関する。データセットは、タグに関連付けられ、且つ一連のデータ値を含む。あるステップにおいて、ソースデータベースに記憶された値のデータフレームへの構造化を示すソースマップが提供され、フレームに関連付けられた値は、データセットに関連付けられたタグによって定義される。あるステップにおいて、ターゲットデータベースのためのターゲットマップが提供され、ターゲットマップは、ソースマップに対応する。あるステップにおいて、データフレームについてハッシュ値が判定され、ハッシュ値は、それぞれのデータフレームに関連付けられたデータ値に対して敏感であり、及びあるステップにおいて、ハッシュ値を比較することによってデータ同期状態が判定される。
【国際調査報告】