Oracleデータ移行 応用編

 2018.11.05  株式会社システムインテグレータ

データベース設計の基礎が身につく​ ER図の書き方講座

データ移行機能のもう少し深い話

こんにちは、皆さん頑張って設計していますか?
SI Object Browser ER(以下OBER)はER図を用いたデータモデリングツールですが、前回「実はデータ移行もできますよ」ということで、データ移行機能の基礎についてご紹介させていただきました。今回はその応用編です。もう少し凝ったこともできるんです。

Oracleデータ移行 移行時にデータを加工する

今回は下記の社員テーブルの移行を例に説明します。前回同様、下記テーブル及びデータをOracleからPostgreSQLへ移行していきます。

テーブル名:MST_EMP
カラム:       EMP_CODE          NUMBER(5,0)※主キー
              LAST_NAME        VARCHAR2(100)
              FIRST_NAME       VARCHAR2(100)
              ZIP                       VARCHAR2(100)
              TEL                      VARCHAR2(20)
              MAIL                    VARCHAR2(50)

まずは、データ移行画面を開くところ(移行直前)まで持っていきましょう。ここまでの操作方法は前回の記事を参照してください。記事ではストレートに移行していますが、今回は値の加工に挑戦します。
データ移行画面の「詳細設定」ボタンを押すと、「データ移行詳細」画面が展開します。

Oracleデータ移行 応用編 1

データ移行画面

ここで各カラムごとに加工する値を設定できます。デフォルトでは「移行元の値」となっており、この場合その名の通り移行元のデータをそのまま移行します。選択できる項目は以下のとおりです。

データベース設計の基礎が身につく​ ER図の書き方講座
新規CTA
移行元の値 移行元のテーブルからデータを取得し、そのまま移行先にセットする
NULL NULLをセットする
固定値 指定した文字列や数値をセットする(全レコード)
マスキング 指定した文字をセットする(全レコード)その文字で全桁埋める
セットしない 指定したカラムに対する移行処理をスキップする

使い方としては

  • 一旦データをクリアしたい場合にNULLをセット
  • NOTNULLだからとりあえず固定値をセット
  • 本番環境からデータを持ってくるので電話番号はマスキングを指定して全桁「*」にしておく

など、様々です。

Oracleデータ移行 応用編 2

「TEL」をマスキング

Oracleデータ移行 Viewを使用する

続いては、移行元データをビューから取得する方法をご紹介します。通常はテーブルからデータを取得するのですが、実はビューを指定することもできます。データ移行画面の「移行元テーブル」欄は手動入力が可能となっており、ここでビュー名を指定することによって参照元を変更することが可能です。

移行のタイミングで新設されたカラムに結合データを入れたり、計算結果を格納することなども可能です。
今回はLAST_NAMEとFIRST_NAMEが移行先で結合され、NAMEという一つのカラムとして再作成された、という設定で移行してみましょう。
移行元で下記のようなビューを作成します。

CREATE OR REPLACE VIEW "OBER"."V_MST_EMP"
    ("EMP_CODE","NAME","ZIP","TEL","MAIL","UPDDATE")
AS
SELECT EMP_CODE,LAST_NAME || ' ' || FIRST_NAME NAME,ZIP,TEL,MAIL,UPDDATE FROM MST_EMP

移行先でもあらたにMST_EMP2を作りました。LAST_NAMEとFIRST_NAMEが廃止され、NAMEが定義されています。では、手順通りデータ移行画面まで進みます。

同じ名称のテーブルが存在しないので自動マッピングが行われず、以降元テーブル欄が空になっていることがわかります。ここに定義したビューを記述します。

Oracleデータ移行 応用編 3

ビューを使用した移行

あとは通常通り、移行ボタンを押すだけです。詳細設定で必要に応じてデータを加工することもできます。
苗字と名前が結合され、NAMEに移行されました。

Oracleデータ移行 応用編 4

名字と名前が結合されNAMEに格納された

Oracleデータ移行 まとめ

いかがでしたか。二回に渡ってデータ移行についてご紹介しました。今回は応用編として、データを加工しながら移行する方法を解説しましたが、ビューを使用することによりいろいろな移行が可能になります。例えば〇〇年以前の古いデータを移行のタイミングで破棄することも、WHERE句を用いてデータを絞ったビューを作成すれば簡単に行なえます。〇〇カラムがXXの場合はキー項目の先頭に△△を付加する、といった定義の変更にも移行しながら対応できます。
移行元テーブル欄も、現状は手動入力で行う運用となっておりますが、予めビューを移行元候補にする機能改善も検討しておりますので、ぜひOBERのデータ移行を使用してみてください。

SI Object Browser ER 製品紹介資料

RELATED POST関連記事


RECENT POST「OBERをトコトン極める」の最新記事


OBERをトコトン極める

より見やすく、より便利に!SI Object Browser ER 23の新機能

OBERをトコトン極める

何気に便利!SI Object Browser ER 22.0.2の新機能

OBERをトコトン極める

細かすぎて伝わらない!SI Object Browser ERの便利技10選

OBERをトコトン極める

SI Object Browser ERを他のER図作成ツールと比較してのメリット

Oracleデータ移行 応用編