Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7653766B2 - テーブル修正装置及びテーブル修正プログラム - Google Patents
[go: Go Back, main page]

JP7653766B2 - テーブル修正装置及びテーブル修正プログラム - Google Patents

テーブル修正装置及びテーブル修正プログラム Download PDF

Info

Publication number
JP7653766B2
JP7653766B2 JP2020052714A JP2020052714A JP7653766B2 JP 7653766 B2 JP7653766 B2 JP 7653766B2 JP 2020052714 A JP2020052714 A JP 2020052714A JP 2020052714 A JP2020052714 A JP 2020052714A JP 7653766 B2 JP7653766 B2 JP 7653766B2
Authority
JP
Japan
Prior art keywords
block
column
temporary
blocks
modification
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.)
Active
Application number
JP2020052714A
Other languages
English (en)
Other versions
JP2021152732A (ja
Inventor
義徳 山岸
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.)
Mitsubishi Electric Information Network Corp
Original Assignee
Mitsubishi Electric Information Network Corp
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 Mitsubishi Electric Information Network Corp filed Critical Mitsubishi Electric Information Network Corp
Priority to JP2020052714A priority Critical patent/JP7653766B2/ja
Publication of JP2021152732A publication Critical patent/JP2021152732A/ja
Application granted granted Critical
Publication of JP7653766B2 publication Critical patent/JP7653766B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本開示は、列指向型データベースのデータ構造を持つテーブルを修正するテーブル修正装置に関する。
ビッグデータを扱う分野及びAI(Artificial Intelligence)分野では、大量のデータを効率的かつ高速に取り扱うことが要求されている。このような大量のデータの集計及び分析に特化したデータベースアーキテクチャとして、列指向型データベースがある。列指向型データベースは、テーブルに登録する複数レコードを列単位にまとめてデータベースに格納する。このため、集計及び分析など、特定の列データを読み出す処理は、効率よく高速にアクセスできる。
列指向型データベースの従来技術として、複数レコードを列単位に分割してまとめたブロックを1つのグループに編成して管理する方法がある(例えば、特許文献1)。
しかし、この従来技術によってテーブルに列の追加あるいは列の削除のような修正を行う場合、現在のテーブルから必要な列データを作業用テーブルに再登録する必要があり、処理時間がかかるという課題がある。
特開平11-154155号公報
本開示は、列指向型データベースのデータ構造を持つテーブルの修正を迅速に実施できるテーブル修正装置の提供を目的とする。
本開示に係るテーブル修正装置は、
複数の列と複数の行と有し、列と行との交差で形成されるセルにセルデータが登録されており、列指向型データベースのデータ構造によって、列を同じくする1以上のセルデータがブロック化された1以上のブロックの状態で格納されている第1テーブルについて、修正を指示する修正指示情報を受信する受信部と、
前記修正指示情報の指示する前記修正が反映された修正後の前記第1テーブルである第2テーブルの生成の元になるテーブルであって、前記列指向型データベースの前記データ構造を有するテーブルである一時テーブルを生成する一時テーブル生成部と、
1以上のブロックの状態で格納されている前記第1テーブルの前記ブロックのうち、前記一時テーブルに登録するべき前記ブロックを前記修正指示情報に基づいて決定し、決定した前記ブロックを前記一時テーブルに登録するブロック登録部
とを備える。
前記修正指示情報は、
前記修正として、前記第1テーブルへの列の追加を指示しており、
前記ブロック登録部は、
前記一時テーブルに、データが未登録のセルを示す1以上の未登録フィールドからなる未登録ブロックを生成する。
前記修正指示情報は、
前記修正として、前記第1テーブルから削除するべき列を指示しており、
前記ブロック登録部は、
前記修正指示情報で指示されている前記列に含まれる前記ブロックを決定し、決定した前記ブロックを前記一時テーブルへの登録から除外する。
前記修正指示情報は、
前記修正として、属性を変更するべき前記第1テーブルの列と、変更するべき前記属性とを指示しており、
前記ブロック登録部は、
前記修正指示情報によって前記属性の変更が指示されている前記列に属する前記ブロックを決定し、決定した前記ブロックを登録するべき前記一時テーブルの領域の属性を、前記修正指示情報の指示する前記属性に設定する。
本開示に係るテーブル修正プログラムは、
コンピュータに、
複数の列と複数の行と有し、列と行との交差で形成されるセルにセルデータが登録されており、列指向型データベースのデータ構造によって、列を同じくする1以上のセルデータがブロック化された1以上のブロックの状態で格納されている第1テーブルについて、修正を指示する修正指示情報を受信する受信処理と、
前記修正指示情報の指示する前記修正が反映された修正後の前記第1テーブルである第2テーブルの生成の元になるテーブルであって、前記列指向型データベースの前記データ構造を有するテーブルである一時テーブルを生成する一時テーブル生成処理と、
1以上のブロックの状態で格納されている前記第1テーブルの前記ブロックのうち、前記一時テーブルに登録するべき前記ブロックを前記修正指示情報に基づいて決定し、決定した前記ブロックを前記一時テーブルに登録するブロック登録処理と
を実行させる。
本開示によれば、テーブル修正装置は、第1テーブルから一時テーブルへデータをブロック単位で登録するブロック登録部を備えているので、列指向型データベースのデータ構造を持つテーブルの修正を迅速に実施できるテーブル修正装置を提供できる。
実施の形態1の図で、テーブル修正装置100の比較例を示す図。 実施の形態1の図で、テーブル修正装置100の動作概要を示す図。 実施の形態1の図で、テーブル修正装置100の機能ブロック図。 実施の形態1の図で、テーブル修正装置100のハードウェア構成を示す図。 実施の形態1の図で、テーブル定義情報62aと第1テーブル70を示す図。 実施の形態1の図で、列指向型データベースのデータ構造を持つ第1テーブル70の生成を示す図。 実施の形態1の図で、テーブル実体管理情報63a及びテーブル実体管理情報63aに対応する定義変更前のテーブル実体41aを示す図。 実施の形態1の図で、テーブル修正装置100の動作を説明するフローチャート。 実施の形態1の図で、図5の第1テーブル70に対する、SQL文によるテーブル定義変更情報61を示す図。 実施の形態1の図で、テーブル定義変更情報61が図9の上段のときの、テーブル定義情報62bを示す図。 実施の形態1の図で、テーブル定義変更情報61が列の追加の場合のテーブル生成条件64を示す図。 実施の形態1の図で、制御部20が定義変更前のテーブル実体41aのデータをブロック単位で一時テーブル90へ登録する状態を示す図。 実施の形態1の図で、テーブル定義変更情報61が図9の中段のときの、テーブル定義情報62bを示す図。 実施の形態1の図で、テーブル定義変更情報61が列の削除の場合のテーブル生成条件64を示す図。 実施の形態1の図で、ブロック登録部920bが定義変更前のテーブル実体41aのデータをブロック単位で一時テーブル90へ登録する状態を示す図。 実施の形態1の図で、テーブル定義変更情報61が図9のときの、テーブル定義情報62bを示す図。 実施の形態1の図で、テーブル定義変更情報61が列の属性変更の場合のテーブル生成条件64を示す図。 実施の形態1の図で、ブロック登録部920bが定義変更前のテーブル実体41aのデータをブロック単位で一時テーブル90へ登録する状態を示す図。
以下、実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
実施の形態1.
図1から図18を参照して、実施の形態1のテーブル修正装置100を説明する。
以下の説明では、修正前のテーブルを第1テーブルと表記し、修正された第1テーブルを第2テーブルと表記する。また第2テーブルの元にあるテーブルを一時テーブルと表記する。
以下の説明では、テーブル定義情報62及びテーブル実体管理情報63が登場する。第1テーブルに対応するテーブル定義情報62及びテーブル実体管理情報63は、テーブル定義情報62a及びテーブル実体管理情報63aと表記し、修正後の第2テーブル2に対応するテーブル定義情報62及びテーブル実体管理情報63は、テーブル定義情報62b及びテーブル実体管理情報63bと表記して、a、bで区別する。
以下の説明では、第1テーブルに対応する定義変更前のテーブル実体及び第2テーブルに定義変更後のテーブル実体が登場する。第1テーブルに対応するテーブル実体を、定義変更前のテーブル実体41aと表記し、第2テーブルに対応するテーブル実体を定義変更後のテーブル実体41bと表記して、a、bで区別する。
テーブル修正装置100はテーブルを修正する装置である。具体的には、テーブル修正装置100は、複数の列と複数の行と有し、列と行との交差で形成されるセルにセルデータが登録されており、列指向型データベースのデータ構造で作成されている第1テーブルについて、列の追加と、列の削除と、列の属性の変更との、少なくともいずれかの修正を実行する。
図1は、実施の形態1のテーブル修正装置100の特徴を明らかにするための比較例を示す。図1を参照して比較例を説明する。比較例は、第1テーブルに対して、列の追加あるいは列の削除のような修正を実施する際、以下の(1)から(5)の処理を行う。
(1)比較例は、列追加または列削除した、第2テーブルの元になる新しいテーブルを生成する。
(2)比較例は、現在の第1テーブルを検索して、行であるレコードを抽出する。
(3)比較例は、抽出した複数のレコードを、作成した新しいテーブルにロードする。
(4)比較例は、第1テーブルを削除する。
(5)比較例は、新しいテーブル名を第1テーブルのテーブル名に変更し、新しいテーブルを第2テーブルとして生成する。
比較例の方式では、上記(2)の検索により、必要な列をレコード単位に取り出し、新しいテーブルにロードするため、多くの時間がかかる。特に、第1テーブルが圧縮されている場合、レコード変換時のデータ伸長によりデータが増大し、新しいテーブルへ再度ロードして圧縮するため、より多くの時間がかかる。
図2は、図1との比較において、実施の形態1のテーブル修正装置100の動作概要を示す。テーブル修正装置100は、列指向型データベースのデータ構造のまま、新しいテーブルに第1テーブルのデータをコピーして、テーブルを置き換える。テーブル修正装置100は、例えば第1テーブルに列を追加する際、第1テーブルに対して、以下の(1)から(5)の処理を行う。
(1)テーブル修正装置100は、列を追加した、第2テーブルの元になる新しいテーブルである一時テーブルを生成する。
(2)テーブル修正装置100は、第1テーブルの列ブロックを、一時テーブルにコピーする。
(3)テーブル修正装置100は、追加する列には空ブロックを生成する。
(4)テーブル修正装置100は、第1テーブルを削除する。
(5)テーブル修正装置100は、一時テーブル名を第1テーブルのテーブル名に変更し、一時テーブルを第2テーブルとして生成する。
テーブル修正装置100によれば、第1テーブルから検索により1件ずつレコードを取り出す必要がなく、第1テーブルのデータベース構造のブロックのまま一時テーブルへデータをコピーするため、短時間で第1テーブルの修正が処理できる。特に、圧縮テーブルであっても伸長、レコード変換が不要となるため、大幅に時間短縮、処理の高速化ができる。以下にテーブル修正装置100を詳しく説明する。
***構成の説明***
図3は、テーブル修正装置100の機能構成を示す機能ブロック図である。テーブル修正装置100は、受付部10、制御部20、テーブル生成条件決定部30、テーブル格納領域40、出力部50を備えている。テーブル格納領域40は、定義変更前のテーブル実体41a、すなわち第1テーブルの実体と、定義変更後のテーブル実体41b、すなわち第2テーブルの実体とを格納している。受付部10は、受信部910である。制御部20は、一時テーブル生成部920Aであり、データ登録部920Bである。受付部10から出力部50の機能は、動作の説明で述べる。以下の説明では受付部10を受信部910と表記し、制御部20を一時テーブル生成部920aまたはブロック登録部920bと表記する場合がある。
図4は、テーブル修正装置100のハードウェア構成を示す。図4を参照してテーブル修正装置100のハードウェア構成を説明する。
テーブル修正装置100は、コンピュータである。テーブル修正装置100は、プロセッサ110を備える。テーブル修正装置100は、プロセッサ110の他に、主記憶装置120、補助記憶装置130、入力IF140、出力IF150及び通信IF160といった、他のハードウェアを備える。プロセッサ110は、信号線170を介して、他のハードウェアと接続され、他のハードウェアを制御する。
テーブル修正装置100は、機能要素として、受付部10、制御部20及びテーブル生成条件決定部30を備えている。受付部10、制御部20及びテーブル生成条件決定部30の機能は、テーブル修正プログラム101により実現される。
プロセッサ110は、テーブル修正プログラム101を実行する装置である。プロセッサ110は、演算処理を行うIC(Integrated Circuit)である。プロセッサ110の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
主記憶装置120は記憶装置である。主記憶装置120の具体例は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。主記憶装置120は、プロセッサ110の演算結果を保持する。
補助記憶装置130は、データを不揮発的に保管する記憶装置である。補助記憶装置130の具体例は、HDD(Hard Disk Drive)である。補助記憶装置130は、テーブル修正プログラム101を記憶している。補助記憶装置130は、テーブル格納領域40を実現する。また補助記憶装置130は、テーブル定義変更情報61、テーブル定義情報62a、テーブル定義情報62b、テーブル実体管理情報63a、テーブル実体管理情報63b、テーブル生成条件64のような情報を格納している。
入力IF140は、各装置からデータが入力されるポートである。入力IF140には、キーボード141が接続している。キーボード141は情報を入力する入力装置の例である。出力IF150は、各種機器が接続され、各種機器にプロセッサ110によりデータが出力されるポートである。出力IF150には、表示装置151が接続している。通信IF160は、プロセッサが他の装置と通信するための通信ポートである。
プロセッサ110は、補助記憶装置130からテーブル修正プログラム101を主記憶装置120にロードし、主記憶装置120からテーブル修正プログラム101を読み込み実行する。
テーブル修正プログラム101は、受信部910、一時テーブル生成部920a及びブロック登録部920bの「~部」を、「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程をコンピュータに実行させるプログラムである。
テーブル修正プログラム101は、コンピュータ読み取り可能な記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
図5から図7を参照して、列指向型データベースとして作成されている第1テーブルを説明する。
図5は、テーブル定義情報62aと、テーブル定義情報62aに基づき生成されている第1テーブル70を示す。テーブル定義情報62aはSQLが使用されている。第1テーブル70は、列指向型データベースのデータ構造で作成されている。第1テーブル70は、テーブル定義情報62aの示す、「ID」、「売上日」、「支店名」、「商品名」、「売り上げ」に対応する列を有する。
図6は、列指向型データベースのデータ構造を持つ第1テーブル70の生成を示す。図6を参照して列指向型データベースのデータ構造を説明する。右上に示す入力データは、CSVファイルのようなデータである。入力データは、列の項目として、ID、売上日、支店名、商品名、売上を持ち、図5に対応する。入力データの各行が、レコードである。入力データのIDが、10001から1003のレコードが、グループ#1を構成する。入力データのIDが、10004から1005のレコードが、グループ#2を構成する。グループ#1については、制御部20によって、以下のようにブロック化される。
ブロックB#1として、IDの1001、1002、1003が、ブロック化される。ブロックB#2として、売上日の2019.5.30、2019.5.31、2019.5.31が、ブロック化される。ブロックB#3として、支店名の東京、大阪、横浜が、ブロック化される。ブロックB#4として、商品名の冷蔵庫、エアコン、テレビが、ブロック化される。ブロックB#5として、売上の15、30、20が、ブロック化される。グループ#2もグループ#1と同様に制御部20によってブロック化される。グループ#2のブロック化の説明は省略する。図6に示すように、データベースには入力データに対する第1テーブルの定義変更前のテーブル実体41aが、グループごとに生成される。図3のテーブル格納領域40に示す定義変更前のテーブル実体41a及び定義変更後のテーブル実体41bは、図6に示すテーブル実体である。
図6の列指向型データベースは、列指向型データベースのデータ構造を持つテーブル情報であるテーブル実体を有する。テーブル実体は、1つ以上のグループから構成される。グループは、1つ以上のブロックから構成される。ブロックは、1つ以上のフィールドから構成される。
<テーブル実体管理情報63a>
図7は、テーブル実体管理情報63a及びテーブル実体管理情報63aに対応する定義変更前のテーブル実体41aを示す。図7の定義変更前のテーブル実体41aは、図6に示す定義変更前のテーブル実体41aである。定義変更前のテーブル実体41a及び定義変更後のテーブル実体41bは、補助記憶装置130のテーブル格納領域40に記録されている。テーブル実体を管理するテーブル実体管理情報63aは、テーブル実体のブロック位置及びブロックサイズの情報を保持している。テーブル実体管理情報63aは、補助記憶装置130に格納されおり、制御部20によって管理される。
***動作の説明***
図8は、テーブル修正装置100の動作を説明するフローチャートである。図8を参照してテーブル修正装置100の動作を説明する。
<ステップS1>
ステップS1において、受信部910が、テーブル定義変更情報61を受信する。テーブル定義変更情報61は修正指示情報である。
テーブル定義変更情報61は、複数の列と複数の行と有し、列と行との交差で形成されるセルにセルデータが登録されており、列指向型データベースのデータ構造によって、列を同じくする1以上のセルデータがブロック化された1以上のブロックの状態で格納されている後述の図6に示す第1テーブルについて、修正を指示する修正指示情報である。テーブル定義変更情報61は、例えば、キーボードのような入力装置によって入力される。
図9は、図5の第1テーブル70に対する、SQL文によるテーブル定義変更情報61の3つの例を示している。上段は、列「メーカ」の追加を指示するテーブル定義変更情報61である。中段は、列「売上」の削除を指示するテーブル定義変更情報61である。下段は、列「売上日」の属性であるデータ型の、DATE型からTIMESTAMP型への変更を指示するテーブル定義変更情報61である。なお、図9では、列の追加、列の削除、列の属性の変更の各修正指示を個別に受信しているが、テーブル定義変更情報61は、いずれか2つを含んでも良いし、3つ全部を含んでも良い。
<ステップS2:列の追加>
以下では、テーブル定義変更情報61が図9の上段の列の追加を示すことを前提に説明する。
ステップS2において、一時テーブル生成部920aは、一時テーブル90を生成する。
一時テーブル90は、修正指示情報であるテーブル定義変更情報61の指示する修正が反映された修正後の第1テーブルである第2テーブルの生成の元になるテーブルであり、列指向型データベースのデータ構造を有するテーブルである。一時テーブル生成部920aは、受信したテーブル定義変更情報61を参照してテーブル定義情報62aを変更する。
図10は、テーブル定義変更情報61が図9の上段のときの、テーブル定義情報62bを示す。テーブル定義情報62bでは、「メーカ varchar(20)」が追加されている。ステップS2おいて、一時テーブル生成部920aは、テーブル定義情報62bを参照して、テーブル定義情報が変更されたテーブルを一時テーブル90として定義し、一時テーブル90を生成する。
<ステップS3>
図11は、テーブル定義変更情報61が列の追加の場合のテーブル生成条件64を示す。
ステップS3において、テーブル生成条件決定部30は、列の追加の場合、図10のテーブル定義情報62bと、図7のテーブル実体管理情報63aとから、図11のテーブル生成条件64を決定する。図11に示すテーブル生成条件64は、実行順と、第1テーブルのブロックを指定する情報であるブロック入力元、一時テーブルへの出力位置を示すブロック出力先、及び列の追加、列の削除及び列の属性変更のいずれかの処理内容を示すアクションからなる。
図12は、テーブル生成条件決定部30の決定した図11のテーブル生成条件64に従って、ブロック登録部920bが、第1テーブルの定義変更前のテーブル実体41aのデータを、ブロック単位で、一時テーブル90へ登録する状態を示している。図12の内容は、ステップS5で説明する。
<ステップS4>
ステップS4において、ブロック登録部920bは、定義変更前のテーブル実体41aに、1以上のグループがあるかどうかを判定する。グループが無い場合、処理はステップS7に進む。1以上のグループが有る場合、処理はステップS5に進む。なお、複数のグループが定義変更前のテーブル実体41aに存在する場合、制御部20は、グループごとに処理をする。つまり、次のグループの処理をする場合、ステップS6からステップS4に処理が戻る。
<ステップS5>
ステップS5において、ブロック登録部920bは、1以上のブロックの状態で格納されている第1テーブルのブロックのうち、一時テーブルに登録するべきブロックを修正指示情報であるテーブル定義変更情報61に基づいて決定し、決定したブロックを一時テーブルに登録する。
テーブル定義変更情報61は、修正として、第1テーブルへの列の追加を指示している。この場合、ブロック登録部920bは、一時テーブルに、データが未登録のセルを示す1以上の未登録フィールドからなる未登録ブロックを生成する。以下に具体的に説明する。
ブロック登録部920bは、各グループの再編成を行う。再編成とは、テーブル定義変更情報61が列の追加であれば各グループに列を追加し、テーブル定義変更情報61が列の削除であれば各グループの列を削除し、テーブル定義変更情報61が列の属性変更であれば各グループの列の属性を変更することを意味する。ブロック登録部920bは、図11のテーブル生成条件64に従い、図12に示すように、グループ#1に関して、コピーすべきブロックについては定義変更前のテーブル実体41aからグループ単位にブロックを一時テーブル90へコピーする。また、ブロック登録部920bは、追加する列については、「NULL」を持つ追加ブロックB#6を生成し、グループ再編成を実行して、一時テーブル90に追加する。グループ#2についても、ブロック登録部920bは、ステップS4、S5、S6のループで同様の処理を実施する。
<ステップS7>
ステップS7において、ブロック登録部920bは、ブロックが登録された一時テーブル90の名前を変更する。つまりブロック登録部920bは図12の一時テーブル90の名前を変更する。
<ステップS8>
ステップS8において、出力部50は、テーブル定義の変更結果として、第2テーブルを図5に示す第1テーブル70の形式で出力し、処理が終了する。
<列の削除>
次にテーブル定義変更情報61が列の削除を指示する場合を説明する。
<ステップS1>
ステップS1において、受信部910が、図9の中段のテーブル定義変更情報61を受信する。
<ステップS2>
ステップS2において、一時テーブル生成部920aは、受信したテーブル定義変更情報61を参照してテーブル定義情報62aを変更する。
図13は、テーブル定義変更情報61が図9の中段のときの、テーブル定義情報62bを示す。テーブル定義情報62bでは、図5のテーブル定義情報62aに対して「売上」が削除されている。ステップS2おいて、制御部20は、テーブル定義情報62bを参照して、テーブル定義情報が変更されたテーブルを一時テーブル90として定義し、一時テーブル90を生成する。
<ステップS3>
図14は、テーブル定義変更情報61が列の削除の場合のテーブル生成条件64を示す。
ステップS3において、テーブル生成条件決定部30は、図13のテーブル定義情報62bと、図7のテーブル実体管理情報63aとから、図14のテーブル生成条件64を決定する。図14に示すテーブル生成条件64は、図11と同様であるので説明は省略する。
図15は、図14のテーブル生成条件64に従って、ブロック登録部920bが、第1テーブルの定義変更前のテーブル実体41aのデータを、ブロック単位で、一時テーブル90へ登録する状態を示している。
<ステップS4>
ステップS4の処理は、列の追加の場合と同じである。
<ステップS5>
テーブル定義変更情報61は、修正として、第1テーブルから削除するべき列を指示している。この場合、ブロック登録部920bは、テーブル定義変更情報61で指示されている列に含まれるブロックを決定し、決定したブロックを一時テーブルへの登録から除外する。以下に具体的に説明する。
ステップS5において、ブロック登録部920b、各グループの再編成を行う。ブロック登録部920bは、図14のテーブル生成条件64に従い、図15に示すように、グループ#1に関して、コピーすべきブロックについては定義変更前のテーブル実体41aからグループ単位にブロックを一時テーブル90へコピーする。図14のテーブル生成条件64では定義変更前のテーブル実体41aのブロック#5は、削除対象であるので、ブロック登録部920bは、ブロック#5をコピーしない。図15に示すように、定義変更前のテーブル実体41aにおけるブロックB#5はコピーされないので、「売上」の列は削除される。
<ステップS7、ステップS8>
以下のステップS7、ステップS8は、列の追加の場合と同様であるので説明は省略する。
<列の属性変更>
次にテーブル定義変更情報61が列の属性変更を指示する場合を説明する。
<ステップS1>
ステップS1において、受付部10が、図9の下段のテーブル定義変更情報61を受信する。
<ステップS2>
ステップS2において、一時テーブル生成部920aは、受信したテーブル定義変更情報61を参照してテーブル定義情報62aを変更する。
図16は、テーブル定義変更情報61が図9の中段のときの、テーブル定義情報62bを示す。テーブル定義情報62bでは、図5のテーブル定義情報62aに対して「売上日」のデータ属性がtimestampになっている。ステップS2おいて、一時テーブル生成部920aは、テーブル定義情報62bを参照して、テーブル定義情報が変更されたテーブルを一時テーブル90として定義し、一時テーブル90を生成する。
一時テーブルは、後述する。
<ステップS3>
図17は、テーブル定義変更情報61が列の属性変更の場合のテーブル生成条件64を示す。
ステップS3において、テーブル生成条件決定部30は、図16のテーブル定義情報62bと、図7のテーブル実体管理情報63aとから、図17のテーブル生成条件64を決定する。図17に示すテーブル生成条件64は、図11と同様であるので説明は省略する。
図18は、図17のテーブル生成条件64に従って、ブロック登録部920bが、第1テーブルの定義変更前のテーブル実体41aのデータを、ブロック単位で、一時テーブル90へ登録する状態を示している。
<ステップS4>
ステップS4の処理は、列の追加の場合と同じである。
<ステップS5>
テーブル定義変更情報61は、修正として、属性を変更するべき第1テーブルの列と、変更するべき属性とを指示している。この場合、ブロック登録部920bは、テーブル定義変更情報61によって属性の変更が指示されている列に属するブロックを決定し、決定したブロックを登録するべき一時テーブルの領域の属性を、修正指示情報の指示する属性に設定する。以下に具体的に説明する。
ステップS5において、ブロック登録部920b、各グループの再編成を行う。ブロック登録部920bは、図17のテーブル生成条件64に従い、図18に示すように、グループ#1に関して、コピーすべきブロックについては定義変更前のテーブル実体41aからグループ単位にブロックを一時テーブル90へコピーする。図17のテーブル生成条件64では定義変更前のテーブル実体41aのブロック#2は、属性がtimestampへの変換対象であるので、ブロック登録部920bは、ブロック#2のデータ形式をimestamp型へ変換して、一時テーブル90へコピーする。
<ステップS7、ステップS8>
以下のステップS7、ステップS8は、列の追加の場合と同様であるので説明は省略する。
***実施の形態1の効果***
テーブル修正装置100によれば、第1テーブルから検索により1件ずつレコードを取り出す必要がなく、第1テーブルのデータベース構造のブロックのまま一時テーブルへデータをコピーする。よって、短時間で第1テーブルの修正処理が可能となる。
特に、圧縮テーブルであっても伸長、レコード変換が不要となるため、大幅に時間短縮、処理の高速化ができる。
なお、実施の形態1では定義変更前のテーブル実体41aから第1テーブルへのデータ移行をデータコピーで実施したが、データの切り取りで実施しても良い。
なお、テーブル修正装置100は、テーブル定義変更情報61によって列を追加する場合において、追加する列の、データ型、圧縮属性、暗号化属性またはその組み合わせのような属性に応じて、新しいブロックを生成してもよい。
なお、テーブル修正装置100は、テーブル定義変更情報61によって列を追加する場合において、おいて、予めユーザが指定した列の値を、既定値として追加ブロックを生成してもよい。
なお、テーブル修正装置100は、テーブル定義変更情報61によって列の属性を変更する場合において、データ型、圧縮属性、暗号化属性またはその組み合わせのような、変更するべき変更後の属性に応じて、定義変更前のテーブル実体41aの持つブロックのデータ変換を行い、一時テーブルのためのブロックを生成しても良い。
100 テーブル修正装置、10 受付部、20 制御部、30 テーブル生成条件決定部、40 テーブル格納領域、41a 定義変更前のテーブル実体、41b 定義変更後のテーブル実体、50 出力部、61 テーブル定義変更情報、62 テーブル定義情報、63a テーブル実体管理情報、63b テーブル実体管理情報、64 テーブル生成条件、70 第1テーブル、90 一時テーブル、110 プロセッサ、120 主記憶装置、130 補助記憶装置、140 入力IF、150 出力IF、160 通信IF、170 信号線、910 受信部、920a 一時テーブル生成部、920b ブロック登録部。

Claims (4)

  1. 複数の列と複数の行とを有し、列と行との交差で形成されるセルにセルデータが登録されており、列指向型データベースのデータ構造によって、列を同じくする1以上のセルデータがブロック化された1以上のブロックの状態で格納されている第1テーブルについて、修正を指示する修正指示情報を受信する受信部と、
    前記修正指示情報の指示する前記修正が反映された修正後の前記第1テーブルである第2テーブルの生成の元になるテーブルであって、前記列指向型データベースの前記データ構造を有するテーブルである一時テーブルを生成するとともに前記第1テーブルを定義しているテーブル定義情報を前記修正指示情報を参照して変更する一時テーブル生成部と、
    変更された前記テーブル定義情報と、前記第1テーブルのブロック位置及びブロックサイズを保持しているテーブル実体管理情報とに基づいて、前記第2テーブルを生成するテーブル生成条件を決定するテーブル生成条件決定部と、
    決定された前記テーブル生成条件に基づいて、1以上のブロックの状態で格納されている前記第1テーブルの前記ブロックのうち、前記一時テーブルに登録するべきブロックを前記一時テーブルに登録するブロック登録部と
    を備えるテーブル修正装置であって、
    前記修正指示情報は、
    前記修正として、前記第1テーブルへの列の追加を指示しており、
    前記テーブル生成条件決定部は、
    変更された前記テーブル定義情報と、前記第1テーブルのブロック位置及びブロックサイズを保持している前記テーブル実体管理情報とを参照して、前記修正指示情報が、前記修正として、前記第1テーブルへの列の追加を指示していることへの応答として、
    前記第1テーブルにおける前記一時テーブルに登録するべき前記ブロックを入力元ブロックとする決定と、
    前記入力元ブロックの前記一時テーブルにおける出力先のブロックを出力先ブロックとする決定と、
    前記第1テーブルから前記一時テーブルへの登録のアクションであって、前記入力元ブロックから前記出力先ブロックへのアクションをコピーとする決定と、
    前記修正指示情報によって前記第1テーブルに追加されるべき前記列に対応する前記一時テーブルにおけるブロックを出力先ブロックとする決定と、
    前記第1テーブルに追加されるべき前記列に対応する前記出力先ブロックに対するアクションを、データ無し(NULL)の空ブロックの生成とする決定と
    を行うとともに、
    それぞれの前記決定を反映することにより、前記一時テーブルに登録するべき前記ブロックと、前記一時テーブルに生成するべき空ブロックとされた前記テーブル生成条件を決定し、
    前記ブロック登録部は、
    前記第1テーブルへの前記列の追加について、決定された前記テーブル生成条件における前記空ブロックの生成を示す前記アクションを参照することにより、前記一時テーブルに、データが未登録のセルを示す1以上の未登録フィールドからなる未登録ブロックを、前記空ブロックとして生成するテーブル修正装置。
  2. 複数の列と複数の行とを有し、列と行との交差で形成されるセルにセルデータが登録されており、列指向型データベースのデータ構造によって、列を同じくする1以上のセルデータがブロック化された1以上のブロックの状態で格納されている第1テーブルについて、修正を指示する修正指示情報を受信する受信部と、
    前記修正指示情報の指示する前記修正が反映された修正後の前記第1テーブルである第2テーブルの生成の元になるテーブルであって、前記列指向型データベースの前記データ構造を有するテーブルである一時テーブルを生成するとともに前記第1テーブルを定義しているテーブル定義情報を前記修正指示情報を参照して変更する一時テーブル生成部と、
    変更された前記テーブル定義情報と、前記第1テーブルのブロック位置及びブロックサイズを保持しているテーブル実体管理情報とに基づいて、前記第2テーブルを生成するテーブル生成条件を決定するテーブル生成条件決定部と、
    決定された前記テーブル生成条件に基づいて、1以上のブロックの状態で格納されている前記第1テーブルの前記ブロックのうち、前記一時テーブルに登録するべきブロックを前記一時テーブルに登録するブロック登録部と
    を備えるテーブル修正装置であって、
    前記修正指示情報は、
    前記修正として、前記第1テーブルから削除するべき列を指示しており、
    前記テーブル生成条件決定部は、
    変更された前記テーブル定義情報と、前記第1テーブルのブロック位置及びブロックサイズを保持している前記テーブル実体管理情報と参照して、前記修正指示情報が、前記修正として、前記第1テーブルから削除するべき列を指示していることへの応答として、
    前記第1テーブルにおけるブロックを入力元ブロックとする決定と、
    前記入力元ブロックのうち削除される前記列に対応する入力元ブロック以外の前記一時テーブルにおける出力先のブロックを出力先ブロックとする決定と、
    前記入力元ブロックの前記出力先ブロックへのアクションをコピーとする決定と、
    削除される前記列に対応する前記入力元ブロックに対する前記一時テーブルへのアクションを、前記入力元ブロックをコピーしないノーオペレーション(NOP)とする決定と
    を行うとともに、
    それぞれの前記決定を反映することにより、前記一時テーブルに登録するべき前記ブロックと、前記第1テーブルのブロックのうち前記一時テーブルに登録しない削除ブロックとが示された前記テーブル生成条件を決定し、
    前記ブロック登録部は、
    前記第1テーブルに存在する前記列の削除について、前記テーブル生成条件において前記ノーオペレーション(NOP)で示されている前記入力元ブロックを前記削除ブロック決定し、決定した前記削除ブロックを前記一時テーブルへの登録から除外するテーブル修正装置。
  3. 複数の列と複数の行とを有し、列と行との交差で形成されるセルにセルデータが登録されており、列指向型データベースのデータ構造によって、列を同じくする1以上のセルデータがブロック化された1以上のブロックの状態で格納されている第1テーブルについて、修正を指示する修正指示情報を受信する受信部と、
    前記修正指示情報の指示する前記修正が反映された修正後の前記第1テーブルである第2テーブルの生成の元になるテーブルであって、前記列指向型データベースの前記データ構造を有するテーブルである一時テーブルを生成するとともに前記第1テーブルを定義しているテーブル定義情報を前記修正指示情報を参照して変更する一時テーブル生成部と、
    変更された前記テーブル定義情報と、前記第1テーブルのブロック位置及びブロックサイズを保持しているテーブル実体管理情報とに基づいて、前記第2テーブルを生成するテーブル生成条件を決定するテーブル生成条件決定部と、
    決定された前記テーブル生成条件に基づいて、1以上のブロックの状態で格納されている前記第1テーブルの前記ブロックのうち、前記一時テーブルに登録するべきブロックを前記一時テーブルに登録するブロック登録部と
    を備えるテーブル修正装置であって、
    前記修正指示情報は、
    前記修正として、属性を変更するべき前記第1テーブルの列と、変更するべき前記属性とを指示しており、
    前記テーブル生成条件決定部は、
    変更された前記テーブル定義情報と、前記第1テーブルのブロック位置及びブロックサイズを保持している前記テーブル実体管理情報を参照して、前記修正指示情報が、前記修正として、属性を変更するべき前記第1テーブルの列と、変更するべき前記属性とを指示していることへの応答として、
    前記第1テーブルにおけるブロックを入力元ブロックとする決定と、
    前記入力元ブロックの前記一時テーブルにおける出力先のブロックを出力先ブロックとする決定と、
    属性を変更するべき前記第1テーブルの前記列に対応する入力元ブロック以外の前記入力元ブロックから前記出力先ブロックへのアクションをコピーとする決定と、
    前記属性を変更するべき前記第1テーブルの前記列に対応する前記入力元ブロックから前記出力先ブロックへのアクションをデータ変換とする決定と
    を行うとともに、
    それぞれの前記決定を反映することにより、前記一時テーブルに登録するべき前記ブロックと、前記第1テーブルのブロックのうち前記属性を変換するべき属性変換ブロック及び前記属性の変換のアクションとが示された前記テーブル生成条件を決定し、
    前記ブロック登録部は、
    前記テーブル生成条件で示されている前記属性変換ブロックを決定し、決定した前記属性変換ブロックを登録するべき前記一時テーブルの領域の属性を、前記テーブル生成条件の示す前記属性に設定するテーブル修正装置。
  4. コンピュータに、
    複数の列と複数の行と有し、列と行との交差で形成されるセルにセルデータが登録されており、列指向型データベースのデータ構造によって、列を同じくする1以上のセルデータがブロック化された1以上のブロックの状態で格納されている第1テーブルについて、修正を指示する修正指示情報を受信する受信処理と、
    前記修正指示情報の指示する前記修正が反映された修正後の前記第1テーブルである第2テーブルの生成の元になるテーブルであって、前記列指向型データベースの前記データ構造を有するテーブルである一時テーブルを生成するとともに前記第1テーブルを定義しているテーブル定義情報を前記修正指示情報を参照して変更する一時テーブル生成処理と、
    変更された前記テーブル定義情報と、前記第1テーブルのブロック位置及びブロックサイズを保持しているテーブル実体管理情報とに基づいて、前記第2テーブルを生成するテーブル生成条件を決定するテーブル生成条件決定処理と、
    決定された前記テーブル生成条件に基づいて、1以上のブロックの状態で格納されている前記第1テーブルの前記ブロックのうち、前記一時テーブルに登録するべきブロックを前記一時テーブルに登録するブロック登録処理と
    を実行させるテーブル修正プログラムであって、
    前記修正指示情報は、
    前記修正として、前記第1テーブルへの列の追加を指示しており、
    前記テーブル生成条件決定処理では、
    変更された前記テーブル定義情報と、前記第1テーブルのブロック位置及びブロックサイズを保持している前記テーブル実体管理情報とを参照して、前記修正指示情報が、前記修正として、前記第1テーブルへの列の追加を指示していることへの応答として、
    前記第1テーブルにおける前記一時テーブルに登録するべき前記ブロックを入力元ブロックとする決定と、
    前記入力元ブロックの前記一時テーブルにおける出力先のブロックを出力先ブロックとする決定と、
    前記第1テーブルから前記一時テーブルへの登録のアクションであって、前記入力元ブロックから前記出力先ブロックへのアクションをコピーとする決定と、
    前記修正指示情報によって前記第1テーブルに追加されるべき前記列に対応する前記一時テーブルにおけるブロックを出力先ブロックとする決定と、
    前記第1テーブルに追加されるべき前記列に対応する前記出力先ブロックに対するアクションを、データ無し(NULL)の空ブロックの生成とする決定と
    を行うとともに、
    それぞれの前記決定を反映することにより、前記一時テーブルに登録するべき前記ブロックと、前記一時テーブルに生成するべき空ブロックとが示された前記テーブル生成条件を決定し、
    前記ブロック登録処理では、
    前記第1テーブルへの前記列の追加について、決定された前記テーブル生成条件における前記空ブロックの生成を示す前記アクションを参照することにより、前記一時テーブルに、データが未登録のセルを示す1以上の未登録フィールドからなる未登録ブロックを、前記空ブロックとして生成するテーブル修正プログラム。
JP2020052714A 2020-03-24 2020-03-24 テーブル修正装置及びテーブル修正プログラム Active JP7653766B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020052714A JP7653766B2 (ja) 2020-03-24 2020-03-24 テーブル修正装置及びテーブル修正プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020052714A JP7653766B2 (ja) 2020-03-24 2020-03-24 テーブル修正装置及びテーブル修正プログラム

Publications (2)

Publication Number Publication Date
JP2021152732A JP2021152732A (ja) 2021-09-30
JP7653766B2 true JP7653766B2 (ja) 2025-03-31

Family

ID=77886601

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020052714A Active JP7653766B2 (ja) 2020-03-24 2020-03-24 テーブル修正装置及びテーブル修正プログラム

Country Status (1)

Country Link
JP (1) JP7653766B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016539417A (ja) 2013-12-06 2016-12-15 華為技術有限公司Huawei Technologies Co.,Ltd. 列指向データベース処理方法および処理デバイス
JP2018533091A (ja) 2016-08-23 2018-11-08 平安科技(深▲ジェン▼)有限公司Ping An Technology(Shenzhen)Co.,Ltd. 情報項目記憶方法、情報項目記憶システム、情報項目記憶装置、情報項目記憶用プログラムおよびコンピュータの読取可能な記憶媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016539417A (ja) 2013-12-06 2016-12-15 華為技術有限公司Huawei Technologies Co.,Ltd. 列指向データベース処理方法および処理デバイス
JP2018533091A (ja) 2016-08-23 2018-11-08 平安科技(深▲ジェン▼)有限公司Ping An Technology(Shenzhen)Co.,Ltd. 情報項目記憶方法、情報項目記憶システム、情報項目記憶装置、情報項目記憶用プログラムおよびコンピュータの読取可能な記憶媒体

Also Published As

Publication number Publication date
JP2021152732A (ja) 2021-09-30

Similar Documents

Publication Publication Date Title
US8983919B2 (en) Systems and methods for improving database performance
US10496621B2 (en) Columnar storage of a database index
CN109690521B (zh) 一种数据库合并的方法以及装置
US20250238544A1 (en) Query-based database redaction
WO2022061995A1 (zh) 基于希尔伯特曲线的r树索引合并更新方法、装置及介质
US20100235383A1 (en) Storage system and data migration-compatible search system
JP7653766B2 (ja) テーブル修正装置及びテーブル修正プログラム
US10268644B2 (en) Information processing apparatus, computer-readable recording medium having stored therein data conversion program, and data conversion method
JP6006740B2 (ja) インデックス管理装置
JP2001229060A (ja) ディレクトリ検索システム及び方法、ディレクトリ検索プログラムを記録したコンピュータ読取可能な記録媒体
US20250045299A1 (en) Executing hierarchical data space operations
CN117573634B (zh) 一种基于多日志结构合并树的键值存储方法
CN111221814B (zh) 二级索引的构建方法、装置及设备
WO2023116828A1 (zh) 硬盘存储数据并访问的方法及系统
JP2004192657A (ja) 情報検索システム、情報検索方法および情報検索用プログラムを記録した記録媒体
US12339980B2 (en) Data replacement apparatus, data replacement method, and program
JP3980326B2 (ja) データ管理方法およびコンピュータ読み取り可能な記録媒体
US12360993B2 (en) Method and database system for optimizing query processing execution scheme
JPH113354A (ja) データキューブ制御方式
JP2000242532A (ja) 出力ファイル制御装置、その装置を用いたデータ処理システム及びその装置での処理をコンピュータで行わせるためのプログラムを格納した記憶媒体
US12067014B2 (en) Methods and systems for performing a vectorized delete in a distributed database system
JP2004334436A (ja) 大規模データ取扱装置
JP2008065716A (ja) データ管理装置、データ管理方法及びデータ管理プログラム
JP4825504B2 (ja) データ登録・検索システムおよびデータ登録・検索方法
JPS62287350A (ja) インデツクス一括更新方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230103

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240201

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240625

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20240704

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20240726

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250318

R150 Certificate of patent or registration of utility model

Ref document number: 7653766

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