JP2020113210A - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2020113210A JP2020113210A JP2019005509A JP2019005509A JP2020113210A JP 2020113210 A JP2020113210 A JP 2020113210A JP 2019005509 A JP2019005509 A JP 2019005509A JP 2019005509 A JP2019005509 A JP 2019005509A JP 2020113210 A JP2020113210 A JP 2020113210A
- Authority
- JP
- Japan
- Prior art keywords
- tenant
- column
- physical
- logical
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title abstract description 24
- 238000012545 processing Methods 0.000 title description 20
- 238000013507 mapping Methods 0.000 claims abstract description 48
- 230000010365 information processing Effects 0.000 claims description 15
- 230000008859 change Effects 0.000 claims description 11
- 238000003672 processing method Methods 0.000 claims description 2
- 238000004891 communication Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 238000012217 deletion Methods 0.000 description 8
- 230000037430 deletion Effects 0.000 description 8
- 101100517651 Caenorhabditis elegans num-1 gene Proteins 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000012508 change request Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
図1は、システムの概略構成の一例を示す図である。図1の例では、本発明に係るマルチテナントサーバ1と、テナント装置2(図1においては、「2a」、「2b」、・・・)とが、ネットワーク3を介して接続されている。マルチテナントサーバ1は、複数のテナントユーザに対して、共通したハードウェアリソース及びソフトウェアリソースを使用させるマルチテナントサービスを提供する装置である。マルチテナントサーバ1は、所定のテーブル構造(「データベース構造」又は「スキーマ」とも呼ぶ)を有する物理テーブルを、複数のテナントユーザに使用させる。テナント装置2は、マルチテナントサービスを利用する企業の社員等のようなテナントユーザが使用する装置である。便宜上、テナント装置2aはあるテナントAの端末であり、テナント装置2bは他のテナントBの端末であるものとする。テナントの数は2つには限られず、複数のテナント装置2が存在し得る。各テナント装置2は、ネットワーク3を介してマルチテナントサーバ1と通信可能に接続され、データ操作を要求したり、処理結果を受け取ったりする。
図2は、マルチテナントサーバ1及びテナント装置2の一例を示すブロック図である。
ル構造は、例えばDBMS(Database Management System)がサポートするデータ定義言語で定義される。なお、物理テーブル131は、いわゆるインメモリデータベースであってもよい。また、いわゆるNoSQLのようなデータモデルのデータベースであってもよい。メタデータ132は、各テナントに固有のテーブルの論理構造と、上述した物理テーブル131のテーブル構造との対応付けを定義するマッピング情報を含む。本実施形態では、物理テーブル131は各テナントが共通に使用する汎用的なテーブル構造を有している。そして、メタデータにおいて、論理テーブルの属性(「カラム」、「列」とも呼ぶ)に対し、物理テーブル131のカラムを割り当てる。このとき、論理テーブルにおいて必要なデータ型の属性を物理テーブル131の中から割り当てるものとする。
ラムを実行することにより本実施の形態に係る各処理を行う。図2の例では、演算装置14にも機能ブロックを示している。具体的には、演算装置14は、DBMS141、データ操作部142及び定義操作部143として機能する。DBMS141は、RDBのようなデータベースの運用管理に必要な機能を提供するシステムであり、物理テーブル131に対してレコードを生成、更新、削除、検索等する。なお、DBMS141は、様々なベンダーが提供する既存の製品を利用することができる。データ操作部142は、各テナントに固有のテーブルに対する操作の指示を各テナントのユーザから受け、物理テーブル131に対する命令に変換し、DBMS141に操作させる。例えば、データ操作部142は、メタデータ132が記憶するマッピング情報に基づいて、テナント装置2から受け付けたデータ操作要求を、DBMSにおいて実行可能なデータ操作命令(「クエリ」、「問合せ」とも呼ぶ)に変換する。定義操作部143は、各テナントのユーザの操作に基づき、各テナントに固有のテーブルの論理的なテーブル構造等を生成、更新、削除する。以上のような構成要素が、所定の形式の信号線であるバス15を介して接続されている。
施の形態に係る各処理を行う。図2の例では、演算装置24に機能ブロックを示している。具体的には、演算装置24は、入出力制御部241として機能する。入出力制御部241は、入出力装置22を介してユーザの操作を受け付け、マルチテナントサーバ1へデータ操作を要求したり、マルチテナントサーバ1から結果を受信してユーザに提示したりする。以上のような構成要素が、所定の形式の信号線であるバス25を介して接続されている。
図3は、物理テーブルのテーブル構造の一例を示す図である。物理テーブル131のテーブル構造は、各テナントが共通に使用する汎用的なものであり、テナントID(TenantID)、タイプID(TypeID)、データID(DataID)、ページID(PageID)、文字列型の項目1(Char1)、文字列型の項目2(Char2)、数値型の項目1(Num1)、数値型の項目2(Num2)、日付型の項目1(Date1)、日付型の項目2(Date2)等の属性(カラム)を含む。また、属性名の下に括弧書きでデータ型の一例が示されている。すなわち、テナントID、タイプID、データID、文字列型の項目1、2は、例えば文字列型の属性である。ページID、数値型の項目1、2は、例えば数値型の属性である。また、日付型の項目1、2は、例えば日付型の属性である。なお、各属性のデータサイズ(「データ長」とも呼ぶ)は任意であり、可変長としてもよいし、固定長としてもよい。
から論理テーブルにおける元のレコードを復元できる。
ルの「部署名」及び「部署種別」の各属性が、それぞれ物理テーブルのページID「1」における「Char1」及び「Char2」に対応付けられている。図9の例では、論理テーブルの「商品名」、「商品種別」、「価格」及び「発売日」の各属性が、それぞれ物理テーブルのページID「1」における「Char1」、「Char2」、「Num1」、「Date1」に対応付けら
れ、論理テーブルの「単位名」の属性が物理テーブルのページID「2」における「Char1」に対応付けられている。
テーブルの1レコードに対応付けることができない。そこで、商品テーブルの1レコードを、「商品名」、「商品種別」、「価格」及び「発売日」と、「単位名」とに分け、物理テーブルにおける2つのレコードに対応付けている。このとき、2つのレコードは、ページIDの値で識別する。
図11は、メタデータの設定により論理テーブルを作成する設定処理の一例を示す処理フロー図である。テナント装置2の入出力制御部241は、入出力装置22を介してテナントのユーザによりテーブルの作成を要求する操作を受け付け、通信I/F21を介してマルチテナントサーバ1へテーブル作成要求を送信する(図11:S1)。本ステップでは、図4〜図6に示したような論理テーブルを作成するための要求を受け付ける。例えば、要求はSQLにおけるCREATE文によって当該論理テーブルを作成するための命令が記述され、所望の論理テーブルのテーブル構造を含む。
図12は、データ操作処理の一例を示す処理フローである。なお、マルチテナントサーバ1は、テナント装置2から接続の要求を受ける際、まず所定の認証処理を行うことでテナントを識別しているものとする。また、予めメタデータ記憶部には図7〜図9に示したメタデータが保持されているものとする。
(クエリ1A)
SELECT 商品名, 商品種別, 単位名, 価格, 発売日 FROM 商品テーブル WHERE 商品種別=
’食品’;
この例は、商品テーブルから「商品種別」の値が「食品」のレコードを抽出し、「商品名」、「商品種別」、「単位名」、「価格」及び「発売日」の各フィールドの値を表示させる要求である。そして、クエリ1Aは、データ操作部によって、次のようなクエリ1Bに変換される。なお、物理テーブル131の物理名は「DataTable」であるものとする。
(クエリ1B)
SELECT p1.Char1, p1.Char2, p2.Char1, p1.Num1, p1.Date1
FROM DataTable p1 LEFT OUTER JOIN DataTable p2
ON p1.DataID=p2.DataID and p2.PageID=2
WHERE p1.Char2=’食品’
AND p1.TenantID=’B’ AND p1.TypeID=’item’ AND p1.PageID=1;
ている。なお、DBMS141からは「PageID」が1のレコードと2のレコードとをそれぞれ抽出し、データ操作部142が仮想的な1つのレコードに結合するという構成にしてもよい。また、「PageID」の値が3以上のレコードがある場合、変換後のクエリにおいて3つ以上のレコードを自己結合させることも可能である。
(クエリ2A)
SELECT COUNT(*) FROM 商品テーブル WHERE 商品種別=’食品’;
(クエリ2B)
SELECT COUNT(*)
FROM DataTable p1 LEFT OUTER JOIN DataTable p2
ON p1.DataID=p2.DataID and p2.PageID=2
WHERE p1.Char2=’食品’
AND p1.TenantID=’B’ AND p1.TypeID=’item’ AND p1.PageID=1;
変換されている。なお、DBMS141からは「PageID」が1のレコードと2のレコードとをそれぞれ抽出し、データ操作部142が仮想的な1つのレコードに結合して計数するという構成にしてもよい。
(クエリ3A)
INSERT INTO 商品テーブル VALUES(‘テレビ’, ‘家電’, ‘台’, 30000, 7/29);
(クエリ3B)
INSERT INTO DataTable(TenantID, TypeID, DataID, PageID, Char1, Char2, Num1, Date1)
VALUES(‘B’, ‘item’, 005, 1, ‘テレビ’, ‘家電’, 30000, 7/29);
(クエリ3C)
INSERT INTO DataTable(TenantID, TypeID, DataID, PageID, Char1)
VALUES(‘B’, ‘item’, 005, 2, ‘台’);
図13は、定義変更処理の一例を示す処理フロー図である。テナント装置2の入出力制御部241は、入出力装置22を介してテナントのユーザによりテーブル構造の変更又はテーブルの削除を要求する操作を受け付け、通信I/F21を介してマルチテナントサーバ1へテーブル構造の変更要求を送信する(図13:S21)。本ステップでは、論理テーブルに属性を追加又は削除したり、論理テーブル全体を削除したりするための要求が送信されるものとする。例えば、要求はSQLにおけるALTER TABLE文によって記述され、所望の論理テーブル構造に関する記述を含む。
の属性が登録されている。したがって、メタデータにより論理テーブルからは「性別」の属性が論理的に削除される。一方、論理テーブルから削除された「性別」の属性に対応付けられていた、物理テーブルのページID「1」のレコードの対応属性名「Char2」の属
性に関しては、原則的に再割り当てを行わない。そして、物理テーブル131においては、「性別」に対応付けられていたページID「1」のレコードの対応属性名「Char2」の
フィールドに格納されていたデータは、物理テーブル131から削除も上書きもされずに残る。
く、ページID「2」のレコードの属性「Char1」に格納される。
図17は、定義復元処理の一例を示す処理フロー図である。テナント装置2の入出力制御部241は、入出力装置22を介してテナントのユーザにより、テーブル構造について過去の履歴の状態への復元を要求する操作を受け付け、通信I/F21を介してマルチテナントサーバ1へテーブル構造の変更要求を送信する(図17:S31)。本ステップでは、例えば、所望の論理テーブルのメタデータを参照し、過去の履歴の一覧をユーザに提示すると共に、ユーザが指定する履歴を取得する。例えば、テナントAのユーザがユーザテーブルのテーブル構造を、図7に示した履歴「1」の状態に復元したものとして説明する。
た履歴「2」へのテーブル構造変更時にもそのまま残されているため、図18に示した履歴「3」へのテーブル構造変更後にユーザが論理テーブルを参照した場合は、論理テーブルから「性別」の属性を削除する前に、「性別」のフィールドに登録されていたデータが復元されることになる。すなわち、テーブル構造の復元後に論理テーブルである「ユーザテーブル」の全レコードを選択すると、図4に示したようなレコードが抽出される。
一般的に、複数のテナントが単一の物理テーブルを共有する場合、物理テーブルのロー
ルバックのような処理は多くのテナントへ影響が及ぶため実施しづらい。本実施形態によれば、論理テーブルにおける属性の削除をマッピング情報の変更により論理的に行い、物理テーブル131においては属性及びそのフィールドに格納されたデータを物理的には削除しない。よって、論理テーブルにおける属性の復元時には、マッピング情報の変更により、属性の削除前にフィールドに格納されていたデータを読み出すことができるようになる。このように、本実施形態に係るテーブル構造変更処理及びテーブル構造復元処理によれば、マルチテナントデータベースにおいて複数のテナントが単一の物理テーブルを共有する場合において、属性の削除の取消し操作を容易にすることができる。
上述した実施形態の構成は例示であり、本発明の要旨を逸脱しない範囲において変更することができる。
みを蓄積するようにしてもよい。このようにすれば、メタデータのデータ量増加を抑えることができる。
理テーブルの属性「国籍」に割り当て直している。このようにすれば、ユーザテーブルの1レコードを物理テーブル131の1レコードで格納することができ、リソースの利用を効率的にすることができる。
11 :通信I/F
12 :入出力装置
13 :記憶装置
131 :物理テーブル
132 :メタデータ
14 :演算装置
142 :データ操作部
143 :定義操作部
15 :バス
16 :物理テーブル
2 :テナント装置
21 :通信I/F
22 :入出力装置
23 :記憶装置
24 :演算装置
241 :入出力制御部
25 :バス
3 :ネットワーク
Claims (7)
- マルチテナントデータベースにおいて複数のテナントが共有する物理テーブルに対してデータ操作を行う情報処理装置であって、
テナント毎に定義される論理テーブルのカラムと前記物理テーブルのカラムとの対応付けを前記テナント毎に定義するマッピング情報に基づいて、前記テナントのユーザに応じたデータ操作を行うデータ操作部と、
前記論理テーブルのカラムについて定義を変更する操作の入力を受けた場合、前記物理テーブルのカラムは保持したまま、前記マッピング情報において対象のカラムと前記物理テーブルのカラムとの対応付けを削除するテーブル定義操作部と、
を備える情報処理装置。 - 前記テーブル定義操作部は、前記マッピング情報に対する変更の履歴を記憶装置に記憶させる
請求項1に記載の情報処理装置。 - 前記テーブル定義操作部は、前記論理テーブルに対して新たなカラムを追加する場合、前記マッピング情報に対する変更の履歴において既に前記論理テーブルのカラムと対応付けられた物理テーブルのカラムを避けて、前記論理テーブルに対して追加された新たなカラムと、前記物理テーブルのカラムとの対応づけを行う
請求項2に記載の情報処理装置。 - 前記テーブル定義操作部は、定義を変更した論理テーブルのカラムについて変更を取り消す操作の入力を受けた場合、前記マッピング情報において削除したカラムと前記物理テーブルのカラムとの対応付けを登録する
請求項1から3のいずれか一項に記載の情報処理装置。 - 前記テーブル定義操作部は、デフラグの指示を受けた場合、前記論理テーブルのカラムと対応付けられていない前記物理テーブルのカラムのフィールドからデータを削除し、前記論理テーブルのカラムに対して前記物理テーブルのカラムを対応付けし直す
請求項1から4のいずれか一項に記載の情報処理装置。 - マルチテナントデータベースにおいて複数のテナントが共有する物理テーブルに対してデータ操作を行う情報処理装置が、
テナント毎に定義される論理テーブルのカラムと前記物理テーブルのカラムとの対応付けを前記テナント毎に定義するマッピング情報に基づいて、前記テナントのユーザに応じたデータ操作を行うステップと、
前記論理テーブルのカラムについて定義を変更する操作の入力を受けた場合、前記物理テーブルのカラムは保持したまま、前記マッピング情報において削除対象のカラムと前記物理テーブルのカラムとの対応付けを削除するステップと、
を実行する情報処理方法。 - マルチテナントデータベースにおいて複数のテナントが共有する物理テーブルに対してデータ操作を行う情報処理装置に、
テナント毎に定義される論理テーブルのカラムと前記物理テーブルのカラムとの対応付けを前記テナント毎に定義するマッピング情報に基づいて、前記テナントのユーザに応じたデータ操作を行うステップと、
前記論理テーブルのカラムについて定義を変更する操作の入力を受けた場合、前記物理テーブルのカラムは保持したまま、前記マッピング情報において削除対象のカラムと前記物理テーブルのカラムとの対応付けを削除するステップと、
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019005509A JP7274293B2 (ja) | 2019-01-16 | 2019-01-16 | 情報処理装置、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019005509A JP7274293B2 (ja) | 2019-01-16 | 2019-01-16 | 情報処理装置、情報処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020113210A true JP2020113210A (ja) | 2020-07-27 |
JP7274293B2 JP7274293B2 (ja) | 2023-05-16 |
Family
ID=71667547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019005509A Active JP7274293B2 (ja) | 2019-01-16 | 2019-01-16 | 情報処理装置、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7274293B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672618A (zh) * | 2021-08-12 | 2021-11-19 | 广州有信科技有限公司 | 一种基于元数据表的多租户数据处理方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011111532A1 (ja) * | 2010-03-10 | 2011-09-15 | 日本電気株式会社 | データベースシステム |
US20150379058A1 (en) * | 2014-06-30 | 2015-12-31 | Microsoft Corporation | Managing data with flexible schema |
-
2019
- 2019-01-16 JP JP2019005509A patent/JP7274293B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011111532A1 (ja) * | 2010-03-10 | 2011-09-15 | 日本電気株式会社 | データベースシステム |
US20150379058A1 (en) * | 2014-06-30 | 2015-12-31 | Microsoft Corporation | Managing data with flexible schema |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113672618A (zh) * | 2021-08-12 | 2021-11-19 | 广州有信科技有限公司 | 一种基于元数据表的多租户数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7274293B2 (ja) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9639542B2 (en) | Dynamic mapping of extensible datasets to relational database schemas | |
US8886617B2 (en) | Query-based searching using a virtual table | |
CN108228817A (zh) | 数据处理方法、装置和系统 | |
JP6325246B2 (ja) | インメモリデータベース処理のためのシステムおよび方法 | |
US10678753B2 (en) | Data pruning based on metadata | |
US7376658B1 (en) | Managing cross-store relationships to data objects | |
CN111767303A (zh) | 一种数据查询方法、装置、服务器及可读存储介质 | |
US8386445B2 (en) | Reorganizing database tables | |
WO2018097846A1 (en) | Edge store designs for graph databases | |
US11372569B2 (en) | De-duplication in master data management | |
WO2010084754A1 (ja) | データベースシステム、データベース管理方法、データベース構造および記憶媒体 | |
US20080201290A1 (en) | Computer-implemented methods, systems, and computer program products for enhanced batch mode processing of a relational database | |
JP5033322B2 (ja) | 連結関係情報を用いた情報管理方法及び装置 | |
JP7458259B2 (ja) | データ管理装置及びデータ管理方法 | |
JP7274293B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP6378497B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP5877488B1 (ja) | Rdbシステム | |
US20100205197A1 (en) | Two-valued logic database management system with support for missing information | |
JP2018109898A (ja) | データマイグレーションシステム | |
WO2011099082A1 (ja) | データベース管理システム | |
CN113886505A (zh) | 一种基于搜索引擎和关系型数据库实现动态建模的管理系统 | |
JP5226445B2 (ja) | データベースに対する問合せを処理する装置、処理方法、プログラムおよび記録媒体 | |
JP2003208346A (ja) | データベース更新情報の反映システムおよびそのためのプログラム | |
US11966399B1 (en) | Processing top-K queries on data in relational database systems | |
JP5542857B2 (ja) | クエリ発行装置、クエリ発行プログラム、クエリ発行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20221117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20221122 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230119 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230411 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230501 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7274293 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |