これは、一般的なデータベース(PostgreSQL や MySQL など)から IRIS への移行に関する前回の記事に続く記事です。 PostgreSQL から移行する際に使用する場合と同じ手続きを使用します。 ただし、MySQL で使用されているデータ型は IRIS のデータ型に非常に似ているため、前回よりもさらに簡単に移行できます。 このため、列に変換ルールを作成する必要はありません。 ## 移行プロセスにサンプルデータを取得 GitHub では、2 つのデータベースをビルドして実行する docker compose プロジェクトをダウンロードできます。 * ソースデータベース: サンプルデータベースを含む MySQL データベースの Docker インスタンス。 * ターゲットデータベース: ソースデータベースを受け取る準備のできたスキーマを含む InterSystems IRIS データプラットフォームの Docker インスタンス。 サンプルを取得して実行するには、以下の手順に従います。 1. git リポジトリの https://github.com/yurimarx/migration-mysql-iris に移動します。 2. プロジェクトを Clone します。git clone https://github.com/yurimarx/migration-mysql-iris.git   3. migration-mysql-iris プロジェクトフォルダに移動します。 4. ビルドを実行します: docker-compose build 5. コンテナを実行します: docker-compose up -d 6. Docker のデスクトップですべてが正しいことを確認します。 ![](/sites/default/files/inline/images/images/image(3326).png) ## 移行するデータについて 移行するデータは、パート I で使用したデータモデルと同じであり、以下のとおりです。 ![](/sites/default/files/inline/images/images/image(3327).png) MySQL から IRIS への移行プロセスによって以下が移行されます。 * 8 個のテーブル * sale の 5000 行 * users の 2500 行 * product の 200 行 * store の 50 行 * country の 100 行 * city の 30 行 * status_name の 5 行 移行先は、InterSystems IRIS データベースの USER ネームスペース内にある dc_test スキーマです。 ## MySQL から IRIS に移行するためのオープンソースツール: DBeaver パート I では、DBeaver Community エディションを使って移行しました。 ここでも、同じものを使用します。 DBeaver は、市販の主要データベース製品に接続し、データオブジェクトを作成、ドロップ、選択、更新、および削除するデータベースツールです。 https://openexchange.intersystems.com/package/DBeaver からダウンロードできます。 インストール手順に従って、この優れた製品をノートパソコンかデスクトップにインストールしてください。 DBeaver は、データベースのメーカーやバージョンが異なる場合であっても、データベース接続間でデータを移行するために使用できます。 ## DBeaver を使って、ソースデータベースとターゲットデータベースを接続 **移行するデータベース接続を設定します。** DBeaver への MySQL 接続を設定するには: .    DBeaver で、[ファイル]>[新規作成]に移動します。 2.    [データベース接続]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3328).png) 3.    [SQL]タブ >[MySQL]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3329).png) 4.    以下の図のように、[メイン]タブの MySQL 接続フィールドに入力します。
●    ホスト: localhost ●    ポート: 3306 ●    データベース: db ●    ユーザー名: user ●    パスワード: password
5.    [ドライバーのプロパティ]タブに移動し、allowPublicKeyRetrieval を TRUE に設定します。 ![](/sites/default/files/inline/images/images/image(3331).png) 6.    [ドライバーのプロパティ]タブで useSSL を FALSE に設定します。 ![](/sites/default/files/inline/images/images/image(3332).png) 7.    DBeaver が MySQL ドライバーのダウンロードを要求したら、[はい]または[OK]を押します。 8.    [終了]をクリックします。 **DBeaver への InterSystems IRIS 接続を設定するには:** パート I で IRIS 接続を構成しましたが、それを保存していない場合は以下を行います。 1.    DBeaver で、[ファイル]>[新規作成]に移動します。 2.    [データベース接続]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3333).png) 3.    [SQL]タブ >[InterSystems IRIS]を選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3334).png) 4.    DBeaver が InterSystems IRIS ドライバーのダウンロードを要求したら、[はい]または[OK]を押します。 5.    以下の図に示されるように、InterSystems IRIS 接続のフィールドに入力します。
●    ホスト: localhost ●    データベース/スキーマ: user ●    ユーザー名: _SYSTEM ●    パスワード: SYS ●    [テスト接続]と[終了]をクリックします。
接続(db と user)がデータベースナビゲーターで利用できるようになります。 ![](/sites/default/files/inline/images/images/image(3336).png) ## 移行を行う この移行プロセスは、パート I に説明されているプロセスに非常に似ています。以下の手順に従ってください。 1.    db 接続 > Databases > db > Tables を展開し、すべてのテーブルを選択します。 以下の図のように、選択したテーブルを右クリックして、[データをエクスポート]を選択します。 ![](/sites/default/files/inline/images/images/image(3337).png) 2.    以下の図のようにデータベースを選択して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3338).png) 3.    [選択]ボタンをクリックします。 ![](/sites/default/files/inline/images/images/image(3339).png) 4.    dc_test を選択して[OK]をクリックします(ターゲットとソースの列間で高度な変換を作成する必要がある場合は、[列]ボタンをクリックします)。   ![](/sites/default/files/inline/images/images/image(3340).png) 5.    [次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3341).png) 6.    [フェッチサイズ]を 1000000 に設定して、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3342).png) 7.    データ読み込み設定のデフォルト値を受け入れて、[次へ]をクリックします。 ![](/sites/default/files/inline/images/images/image(3343).png) 8.    [確認]で[続行]をクリックします。 ![](/sites/default/files/inline/images/images/image(3344).png) 9.    データベースナビゲーターを開くと、InterSystems IRIS dc_test スキーマ内にすべての MySQL テーブルが表示されます。 ![](/sites/default/files/inline/images/images/image(3345).png) PostgreSQL の移行と同様に、MySQL のテーブルの移行プロセスも非常に単純でした。 ただし、ビュー、関数、トリガー、およびストアドプロシージャについては、ObjectScript または SQL で SQL ソースコードを書き直す必要があります。