PostgreSQLからWindows Azure SQLデータベースへのデータの移行

こんにちは



この記事では、PostgreSQLからクラウドベースのWindows Azure SQLデータベースへの移行(データの転送)がいかに簡単でシンプルかを示します。



主な手順:

  1. Windows Azureコントロールパネルで新しいデータベースを作成する
  2. PostgreSQL用のODBCドライバーをインストールします
  3. SQL Serverデータツールでプロジェクトを作成する
  4. データのインポート




Windows Azureコントロールパネルで新しいデータベースを作成する



新しいデータベースを作成するには、Windows Azureコントロールパネル( https://manage.windowsazure.com/ )にアクセスします 。 サブスクリプションがない場合でも、試用期間を使用できます-1か月で200ドル。これはさまざまな実験に十分です。

左下の[ +新規 ]ボタンをクリックし、[ データサービス]> [SQLデータベース]> [クイック作成 ]を選択します 。 必要なフィールドに入力します-データベースにアクセスするためのデータベース名、データセンター地域、ログイン/パスワード:







しばらくすると、データベースの作成が成功したというメッセージが表示されます。







デフォルトでは、データベースは最大サイズ1GBで作成されます-上限に達すると、データベースは読み取り専用モードになります。 ただし、必要に応じて、サイズを最大150GBまで増やすことができます。



PostgreSQL用のODBCドライバーをインストールします



次に、postgresql用のODBCドライバーをインストールする必要があります。 公式サイトから最新バージョンをダウンロードしてください(32ビットバージョンをダウンロードしてください。問題は少ないです)。 注意! ドライバーは、データベースサーバーではなく、将来データがコピーされるコンピューターにインストールする必要があります。







インストールは簡単で、問題は発生しません-Next-Next-Next-Finish。



その後、PostgreSQLとSQLデータベースの両方にODBCソースを追加します-開始画面でodbcと入力し、リストからODBCデータソース(32ビット)を選択します











表示されるウィンドウで、[ 追加... ] クリックして、リストから[PostgreSQL Unicode] 選択し、[完了]をクリックします。







その後、必要なすべてのデータを入力します。







この記事が書かれたポイントの1つ-このウィンドウで、[ データソース ]ボタンをクリックし、[ 宣言/フェッチを使用]チェックボックスをオンにします。







これがなければ、データが少ない限りすべてが機能しますが、大容量のメモリ不足エラーで失敗します-したがって、約6000万レコードのテーブルでこのエラーが発生しました。



また、クラウドで宛先サーバーのデータソースを作成します-リストからSQL Server Native Clientのみを選択し、 「ADO .Net、ODBC、PHP、およびJDBCのSQLデータベース接続文字列を表示」をクリックして、サーバーコントロールパネルで接続データを表示できます」 そして、このウィンドウが思い出させるように、このIPアドレスからデータベースへの接続を許可することを忘れてはいけません-デフォルトでは、Windows AzureサービスのIPアドレスからのみ接続が可能です(そして、このオプションがサーバー設定で有効になっている場合)







セットアッププロセスも難しくありません。その後、おおよそ次の図が表示されます。







SQL Serverデータツールでプロジェクトを作成する



MySQLで移行が行われた場合、すべてがよりシンプルになります。特にMySQLをサポートし、非常に簡単かつ迅速に移行できる素晴らしいSQL Server Migration Assistant(SSMA)ツールがあります。 ただし、これはPostgreSQLの場合ではないため、SQL Serverデータツールを使用する必要があります(ただし、これも難しくありません)。 SQL Serverデータツールを実行し、[ 新しいプロジェクト ]をクリックして、 Integration Serviceプロジェクトテンプレートに基づいてプロジェクトを作成します。







ツールボックスからデータフロータスクをドラッグし、ダブルクリックします-[データフロー]タブに移動します。







ODBCデータソースとODBC宛先をワークスペースにドラッグアンドドロップし、ODBCソースからの青い矢印で接続します。







[ODBCソース]をダブルクリックし、表示されるウィンドウで、[新規作成]、[新規作成]の順にクリックして、データソースを選択します。







[OK]をダブルクリックしてこれらのウィンドウを閉じ、データのインポート元のテーブルを選択します。







次に、同じ方法でデータレシーバーを設定する必要があります-ODBC Destination











必要に応じて、列の一致を構成することもできます。







もう1つの重要なポイント-プロジェクトの起動を32ビットモードに切り替える必要があります。 これを行うには、ソリューションエクスプローラーでプロジェクトを右クリックし、[ プロパティ ]を選択し、[ 構成プロパティ]-> [デバッグ] セクションでRun64BitRuntimeFalseに 設定します







データのインポート



これで、データを転送する準備ができました! F5キーまたはツールバーの[デバッグの開始]ボタンを押します。 作業領域に、データが転送されていることを示すインジケータが表示されます。







また、進行状況パネルでは、テキストレポートを見ることができます。







すべてが計画どおりであることを確認した後、コーヒー/紅茶を飲むことができます-これはかなり長いプロセスです(私の意見では、SSMAはより速く動作しました)。 プロセスが完了すると、データソースとレシーバーに緑色のチェックマークが表示されます。







そして、進行状況ウィンドウ-テキストレポート:







ご覧のとおり、570K行が50分でコピーされました。 クラウドデータベースに接続し、データが実際に存在することを確認できます。







これにより、PostgreSQLからWindows Azure SQL Databaseクラウドデータベースに大量のデータを簡単かつ迅速に転送できます。



参照資料


  1. Windows Azureトライアル
  2. Windows Azure SQLデータベースヘルプセンター



All Articles