5.2.8 マルチチャンク表を定義する場合の考慮点
ここでは,実表をマルチチャンク表として定義する場合の考慮点について説明します。
ここをお読みいただいたあとに,「5.6.2 データ用DBエリアにマルチチャンク表を格納する場合の考慮点」の説明もお読みください。
また,実表をアーカイブマルチチャンク表として定義する場合は,ここをお読みいただいたあとに,「5.2.9 アーカイブマルチチャンク表を定義する場合の考慮点」の説明もお読みください。
- 〈この項の構成〉
(1) 実表をマルチチャンク表として定義する場合のメリット
実表をマルチチャンク表として定義した場合,次に示す運用ができます。
-
データの検索とデータのインポートを同時に実行できます(バックグラウンドインポート機能を使用できます)。
-
PURGE CHUNK文で,チャンク単位にデータを一括削除できます。
-
データを検索できない状態で事前にインポートだけしておき,任意のタイミングでインポートしたデータを検索することができます。運用例については,「10.4.22 バックグラウンドインポートとチャンクを意識した運用例2(待機状態のチャンクを利用した運用)」を参照してください。
- 参考
-
4メガバイト以下の少量のデータだけを頻繁に格納する場合は,バックグラウンドインポート機能ではなく,操作系SQLのINSERT文を使用することを検討してください。バックグラウンドインポートで少量のデータを頻繁に格納すると,むだな領域が発生してしまい,データの格納効率が悪くなります。バックグラウンドインポートを実行すると,すでに割り当てられているセグメントに空きがあっても,新規にセグメントが確保されて割り当てられるためです。
また,実表をアーカイブマルチチャンク表として定義すると,チャンクアーカイブ機能も使用することができます。実表をアーカイブマルチチャンク表として定義する場合は,「5.2.9 アーカイブマルチチャンク表を定義する場合の考慮点」の説明もお読みください。
(2) 実表をマルチチャンク表として定義する場合のデメリット
-
マルチチャンク表には,主キーおよびユニークインデクスを定義できません。
-
チャンクの管理,運用が必要になります。例えば,チャンクのマージを定期的にする必要があります。詳細については,「10.4.10 チャンクをマージする方法(チャンク数を減らす方法)」を参照してください。
(3) CREATE TABLE文で必要な指定(チャンク数の最大値)
実表をマルチチャンク表として定義する場合は,CREATE TABLE文のチャンク指定でチャンク数の最大値を指定してください。
(4) チャンク数の最大値の求め方
バックグラウンドインポート機能を適用したデータインポートを実行するたびに,チャンクが作成されます。ただし,CREATE TABLE文のチャンク指定で指定したチャンク数の最大値以上のチャンクは作成できません。
そのため,バックグラウンドインポート機能を適用したデータインポートを実行する頻度と,チャンクを保持する期間を基に,チャンク数の最大値を見積もってください。
なお,作成したチャンクはPURGE CHUNK文で削除できます。チャンクを削除した分だけ,チャンクを再作成できます。また,CREATE TABLE文で指定したチャンク数の最大値は,ALTER TABLE文で変更できます。
変数CHUNK_NUMの値を次の計算式で求めてください。計算式で求めた値以上の値を,チャンク数の最大値に指定します。
計算式(単位:個数)
|
|
- 変数の説明
-
-
years
実表に格納したデータ(チャンク)を保持する年数です。
バックグラウンドインポート機能を適用したadbimportコマンドを実行して作成されたチャンクを,PURGE CHUNK文で削除するまでの年数を代入してください。
-
create_chunk_count
1年間で作成するチャンク数です。
1年間で実行するバックグラウンドインポート機能を適用したadbimportコマンドの回数を代入してください。
-
safety_factor
安全率です。
1.2〜1.5のどれかを代入してください。
-
変数CHUNK_NUMの求め方の例を次に示します。
- ■例1
-
次の条件で計算します。
-
実表に格納したデータ(チャンク)を5年間保持する
-
週に1回,バックグラウンドインポート機能を適用したadbimportコマンドでデータインポートを実行する
-
安全率を1.2とする
計算式(単位:個数)
この例の場合,変数CHUNK_NUMの値は313となるため,チャンク数の最大値には313以上の値を指定してください。
-
- ■例2
-
次の条件で計算します。
-
実表に格納したデータ(チャンク)を10年間保持する
-
1日に1回,バックグラウンドインポート機能を適用したadbimportコマンドでデータインポートを実行する
-
安全率を1.5とする
計算式(単位:個数)
この例の場合,変数CHUNK_NUMの値は5,475となるため,チャンク数の最大値には5,475以上の値を指定してください。
-