データ移行ツール - パート I: Postgres から IRIS
Postgres から IRIS にデータとデータスキーマを転送または移行する必要がある場合があります。 これを現時点で実行するにはいくつかのオプションがありますが、最も一般的なオプションは、DBeaver(https://openexchange.intersystems.com/package/DBeaver)または SQLGateway を使用する 2 つの方法です。 最初のオプションはこの記事で紹介しますが、2 つ目のオプションは Robert Cemper が書いた「SQLgateway を使ったデータベース移行」(https://community.intersystems.com/post/db-migration-using-sqlgateway)という優れた記事で紹介されています。この記事では、DBeaver を使った移行の実行方法を説明します。
移行プロセスにサンプルデータを取得
GitHub では、2 つのデータベースをビルドして実行する docker compose プロジェクトをダウンロードできます。
- ソースデータベース: サンプルデータベースを含む Postgres データベースの Docker インスタンス。
- ターゲットデータベース: ソースデータベースを受け取る準備のできたスキーマを含む InterSystems IRIS データプラットフォームの Docker インスタンス。
サンプルを取得して実行するには、以下の手順に従います。
- https://github.com/yurimarx/migration-pg-iris に移動し、[Download]をクリックして git リポジトリに移動します。
- プロジェクトを Clone します。git clone https://github.com/yurimarx/migration-pg-iris.git
- migration-pg-iris プロジェクトフォルダに移動します。
- ビルドを実行します: docker-compose build
- コンテナを実行します: docker-compose up -d
- Docker のデスクトップでインスタンスが OK であることを確認します。
移行するデータについて
移行されるデータは以下の通りです。
PostgreSQL から IRIS への移行プロセスによって以下が移行されます。
- 8 個のテーブル
- sale の 1000000 行
- users の 250000 行
- product の 300 行
- store の 500 行
- country の 100 行
- city の 30 行
- status_name の 5 行
移行先は、InterSystems IRIS データベースの USER ネームスペース内にある dc_test スキーマです。
PostgreSQL から IRIS に移行するためのオープンソースツール: DBeaver
DBeaver は、市販の主要データベース製品に接続し、データオブジェクトを作成、ドロップ、選択、更新、および削除するデータベースツールです。 https://openexchange.intersystems.com/package/DBeaver からダウンロードできます。 インストール手順に従って、この優れた製品をノートパソコンかデスクトップにインストールしてください。
DBeaver は、データベースのメーカーやバージョンが異なる場合であっても、データベース接続間でデータを移行するために使用できます。
DBeaver を使って、ソースデータベースとターゲットデータベースを接続
移行するデータベース接続を設定します。
DBeaver への PostgreSQL 接続を設定するには:
-
DBeaver で、[ファイル]>[新規作成]に移動します。
-
[データベース接続]を選択して、[次へ]をクリックします。
- [SQL]タブ >[PostgreSQL]を選択して、[次へ]をクリックします。
- 以下の図のように、PostgreSQL 接続のフィールドに入力します。
ホスト: localhost、ポート: 5438、データベース: postgres、ユーザー名: postgres、パスワード: postgres、と入力し、[終了]をクリックします。 |
DBeaver への InterSystems IRIS 接続を設定するには:
1. DBeaver で、[ファイル]>[新規作成]に移動します。 2. [データベース接続]を選択して、[次へ]をクリックします。
3. [SQL]タブ >[InterSystems IRIS]を選択して、[次へ]をクリックします。
4. DBeaver が InterSystems IRIS ドライバーのダウンロードを要求したら、[はい]または[OK]を押します。
5. 以下の図のように、InterSystems IRIS 接続のフィールドに入力します。
ホスト: localhost、データベース/スキーマ: user、ユーザー名: _SYSTEM、パスワード: SYS、と入力し、[テスト接続]と[終了]をクリックします。 |
- 接続(postgres と user)がデータベースナビゲーターで利用できるようになります。
移行を行う
移行を行うには、以下の手順に従います。
1. postgres 接続 > public を展開し、すべてのテーブルを選択します。 以下の図のように、選択されたテーブルを右クリックして[データをエクスポート]を選択します。
2. 以下の図のようにデータベースを選択して、[次へ]をクリックします。
3. [選択]ボタンをクリックします。
4. dc_test を選択して、[OK]をクリックします。
5. ターゲットデータベースのデータ型構成を変更する必要があります。IRIS と PostgreSQL では、整数値と10進値で異なるデータ型を使用するためです。
public.country テーブルを展開し、最初のフィールド(country_id)を選択して[列...]をクリックします。
7. [ターゲットの型]を int4 から integer に変更し、[OK]をクリックします。
8. 以下のテーブルでこのプロセスを繰り返します。
a. public.product
b. public.status_name
c. public.users
d. public.city(city_id と country_id の型を integer に変更します)
e. public.store(store_id と city_id の型を integer に変更します)
f. public.sale(amount の型を double に、product_id、user_id、store_id の型を integer に変更します)
g. public.order_status(status_name_id を integer に変更します)
9. ターゲットデータ型の変更が完了したら、[次へ]をクリックします。
10. [フェッチサイズ]を 1000000 に設定して、[次へ]をクリックします。
11. データ読み込み設定のデフォルト値を受け入れて、[次へ]をクリックします。
12. [確認]で[続行]をクリックします。
13. データベースナビゲーターで、InterSystems IRIS dc_test スキーマ内にすべての PostgreSQL テーブルが表示されます。
テーブルの移行プロセスは非常に単純でしたが、ビュー、関数、トリガー、およびストアドプロシージャについては、ObjectScript か SQL で SQL ソースコードを書き直す必要があります。
IRIS に移行するメリット
以下は、IRIS で得られる機能を要約したリストです。
- API 管理
- 視覚的レポート(IRIS レポート)
- AutoML(IntegratedML)
- 多言語アプリケーション/データ開発(Python、Java、.NET、JavaScript)
- ESB
- BI/分析
- NLP
- マイクロサービス開発
- マルチモデルデータベース(SQL、JSON、分析キューブ、オブジェクト指向)
- シャーディング
まとめると、IRIS に移行するというのは、データベースしかなかった状態からデータプラットフォームに移行できるということです。