Hitachi

Hitachi Advanced Data Binder システム構築・運用ガイド


11.1.13 カラムストア表をローストア表に変更する方法

カラムストア表をローストア表に変更したい場合は,対象のカラムストア表をいったん削除したあとで,ローストア表として再定義する必要があります。

重要

カラムストア表と比べると,ローストア表の場合,表定義時に指定できる項目が増えます。そのため,ローストア表に変更する前に,「5.2.1 表を設計する際の流れ」を参照してください。

メモ

ローストア表をカラムストア表に変更したい場合は,「11.1.12 ローストア表をカラムストア表に変更する方法」を参照してください。

次の手順に従って,カラムストア表をローストア表に変更してください。

手順

  1. カラムストア表に格納されているすべてのデータを出力する

    adbexportコマンドで,カラムストア表に格納されているすべてのデータをファイルに出力してください。

    カラムストア表がマルチチャンク表の場合に,adbexportコマンドを実行する際の留意事項を次に示します。

    • マルチチャンク表のチャンクの状態・構成を維持する必要がない場合

      留意事項は特にありません。カラムストア表に格納されているすべてのデータをファイルに出力してください。

    • マルチチャンク表のチャンクの状態・構成を維持する必要がある場合

      カラムストア表に格納されているすべてのデータを,チャンク単位でファイルに出力する必要があります。チャンク単位でデータを出力しないと,チャンクの状態・構成を維持したまま,ローストア表にデータを格納できません。そのため,チャンク数分,エクスポートを行ってください。

      チャンク単位でデータを出力する場合は,「11.4.5 チャンク単位にデータをエクスポートする方法」を参照してください。

  2. カラムストア表の定義情報を確認する

    カラムストア表を定義したときのCREATE TABLE文の指定内容を確認してください。ローストア表を定義する際に使用します。

    カラムストア表を定義したときのCREATE TABLE文の指定内容がわからない場合は,「付録B.22 ディクショナリ表の検索」の「(28) 実表の定義情報を調べる場合」を参照してください。ディクショナリ表を検索すると,カラムストア表を定義したときのCREATE TABLE文の指定内容が確認できます。

  3. カラムストア表に定義されているインデクスの定義情報を確認する

    カラムストア表にインデクスを定義している場合,インデクスを定義したときのCREATE INDEX文の指定内容を確認してください。ローストア表にインデクスを定義する際に使用します。

    インデクスを定義したときのCREATE INDEX文の指定内容がわからない場合は,「付録B.22 ディクショナリ表の検索」の「(29) インデクスの定義情報を調べる場合」を参照してください。ディクショナリ表を検索すると,インデクスを定義したときのCREATE INDEX文の指定内容が確認できます。

  4. カラムストア表を削除する

    削除動作の指定を省略したDROP TABLE文で,カラムストア表を削除してください。

  5. ローストア表を定義する

    CREATE TABLE文で,ローストア表を定義してください。CREATE TABLE文を作成する際の留意事項を次に示します。

    • 手順2.で確認したカラムストア表を定義したときのCREATE TABLE文の指定内容を流用して,CREATE TABLE文を作成してください。

    • CREATE TABLE文のSTORAGE FORMATに,ROWを指定してください。

  6. ローストア表にインデクスを定義する

    削除したカラムストア表にインデクスを定義していた場合,ローストア表にCREATE INDEX文でインデクスを定義してください。CREATE INDEX文を作成する際の留意事項を次に示します。

    • 手順3.で確認したインデクスを定義したときのCREATE INDEX文の指定内容を流用して,CREATE INDEX文を作成してください。

    • CREATE INDEX文を作成する際,必要に応じて,B-treeインデクスやテキストインデクスを定義することを検討してください。

      カラムストア表には,B-treeインデクスを定義することは非推奨です。また,テキストインデクスを定義できません。通常は,レンジインデクスだけが定義されているため,CREATE INDEX文を作成する際に留意してください。

  7. ローストア表にデータを格納する

    adbimportコマンドで,手順5.で定義したローストア表に,手順1.で出力したすべてのデータを格納してください。

    ローストア表がマルチチャンク表の場合に,adbimportコマンドを実行する際の留意事項を次に示します。

    • マルチチャンク表のチャンクの状態・構成を維持する必要がない場合

      adbimportコマンドには,-dオプションおよび-bオプションは指定しないでください。

    • マルチチャンク表のチャンクの状態・構成を維持する必要がある場合

      手順1.でチャンク単位に出力したデータを,チャンク単位にインポートする必要があります。

      • 手順1.でカレントチャンクだったチャンクのデータは,必ず最後に格納してください。

      • 初に格納するデータの場合は,-dオプションおよび-bオプションを指定しないで,adbimportコマンドを実行してください。

      • 2回目以降に格納するデータの場合は,バックグラウンドインポートで格納してください。-bオプションを指定してadbimportコマンドを実行してください。手順1.でカレントチャンクだったチャンクのデータも,バックグラウンドインポートで格納してください。

  8. ビュー表の無効化を解除する

    手順4.で削除したカラムストア表を基表とするビュー表は無効化されます。そのため,ローストア表の定義後に,ビュー表の無効化を解除する必要があります。「11.2.8 ビュー表の無効化を解除する方法」の「(6) 表を誤って削除してしまったことによってビュー表が無効化された場合」を参照して,ビュー表の無効化を解除してください。

これで,カラムストア表をローストア表に変更できます。

メモ
  • adbexportコマンドおよびadbimportコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。

  • DROP TABLE文,CREATE TABLE文およびCREATE INDEX文については,マニュアルHADB SQLリファレンスを参照してください。