5.2.5 アーカイブマルチチャンク表を定義する場合の考慮点【ローストア表】
ここでは,実表をアーカイブマルチチャンク表として定義する場合の考慮点について説明します。
なお,ここの説明は,「5.2.4 マルチチャンク表を定義する場合の考慮点」をお読みいただいていることを前提としています。
- 〈この項の構成〉
(1) 実表をアーカイブマルチチャンク表として定義する場合のメリット
チャンク内のデータを圧縮することで,データベースの容量を削減できます。
(2) 実表をアーカイブマルチチャンク表として定義する場合のデメリット
-
アーカイブされているデータは,UPDATE文による更新またはDELETE文による削除ができません。データを更新または削除する場合は,チャンク内のデータをアンアーカイブする必要があります。UPDATE文またはDELETE文がエラーになる条件については,マニュアルHADB SQLリファレンスの次の個所を参照してください。
-
UPDATE文の指定形式および規則の規則
-
DELETE文の指定形式および規則の規則
-
-
アーカイブされているデータを検索する場合,次に示す原因によって,アーカイブされていないデータを検索するときに比べて検索時間が長くなります。
-
データの伸長に時間が掛かる
-
インデクスを使用した検索ができない
-
-
アーカイブマルチチャンク表を検索する際は,アーカイブレンジ列の情報をSELECT文の探索条件に指定して,検索範囲を絞り込む必要があります。そのため,SELECT文の探索条件にアーカイブレンジ列を指定した条件を指定できない場合,検索範囲を絞り込むことができないため,検索時間が長くなります。
アーカイブマルチチャンク表を検索する際の留意事項については,マニュアルHADB AP開発ガイドのアーカイブマルチチャンク表を検索する際の考慮点を参照してください。
- メモ
-
-
アーカイブマルチチャンク表をシングルチャンク表に変更する場合,CREATE TABLE文による表の再定義が必要になります。そのため,メリットおよびデメリットをよく検討してから,アーカイブマルチチャンク表を定義するかどうかを決定してください。
-
アーカイブマルチチャンク表をレギュラーマルチチャンク表に変更する場合は,CREATE TABLE文による表の再定義は必要ありません。ALTER TABLE文で,変更することができます。
-
(3) アーカイブマルチチャンク表に格納するデータの条件
アーカイブマルチチャンク表には,日々発生する時系列データを格納してください。ここでいう時系列データとは,センサから発生したデータや,店舗の売り上げデータなど,データの発生日時順に並んでいるデータを意味しています。また,時系列データには,データの生成日時や,売り上げ発生日時のようなデータが含まれている必要があります。
(4) アーカイブディレクトリの作成
CREATE TABLE文を実行する前にアーカイブディレクトリを作成してください。また,アーカイブディレクトリに対する各種権限をHADB管理者に与える必要があります。詳細については,マニュアルHADB SQLリファレンスのCREATE TABLE文の指定形式および規則の指定形式の説明のチャンク指定のチャンクアーカイブ指定を参照してください。
1つのアーカイブマルチチャンク表に対して,専用のアーカイブディレクトリを作成することを推奨します。複数のアーカイブマルチチャンク表に対して,1つのアーカイブディレクトリを共有することもできます。ただし,アーカイブディレクトリに対するアクセスが集中した場合,性能が低下するおそれがあります。
性能面を優先して考えた場合,次のようにアーカイブディレクトリを作成することを推奨します。
-
アーカイブマルチチャンク表ごとにアーカイブディレクトリを作成する
-
専用のファイルシステムに1つのアーカイブディレクトリを作成する
-
専用のファイルシステムには,アーカイブディレクトリだけを作成する
なお,アーカイブディレクトリを作成するディスクには,セクターサイズが512バイトまたは4,096バイトのディスクが使用できます。
(5) アーカイブレンジ列の指定
アーカイブマルチチャンク表を定義する場合,アーカイブレンジ列の指定は必須となります。次に示すデータ型の列は,アーカイブレンジ列に指定することはできません。
-
定義長が33バイト以上のCHARACTER型
-
VARCHAR型
-
BINARY型
-
VARBINARY型
アーカイブレンジ列に格納されたデータは,アーカイブマルチチャンク表を検索する際,検索対象を絞り込むために使用されます。そのため,データの生成日時や,売り上げ発生日時などのデータを格納する列を,アーカイブレンジ列としてください。
なお,アーカイブレンジ列には,非ナル値制約が設定されます。
(6) アーカイブレンジ列に自動的に定義されるレンジインデクス
アーカイブレンジ列には自動的にレンジインデクスが定義されます。このレンジインデクスは,データ量が少ないため,専用のデータ用DBエリアに格納する必要はありません。アーカイブマルチチャンク表に定義するほかのインデクスと同じデータ用DBエリアに格納することを検討してください。
CREATE TABLE文のチャンク指定でレンジインデクスを格納するデータ用DBエリアを指定します。
なお,アーカイブレンジ列に自動的に定義されるレンジインデクスに,インデクス識別子を指定することができます。レンジインデクスのインデクス識別子を指定しない場合は,HADBサーバが自動的にインデクス識別子を決定します。