Hitachi

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


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

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

重要

ローストア表と比べると,カラムストア表には幾つかの制限事項があります。そのため,カラムストア表の制限事項を確認してから,ローストア表をカラムストア表に変更するようにしてください。カラムストア表の制限事項については,「5.2.2 ローストア表とカラムストア表の選択基準」の「(1) カラムストア表の制限事項」を参照してください。

メモ

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

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

手順

  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に,COLUMNを指定してください。

  6. カラムストア表にインデクスを定義する

    削除したローストア表にインデクスを定義していた場合,カラムストア表にCREATE INDEX文でインデクスを定義してください。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リファレンスを参照してください。