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データベースヘルプセンター

Source: https://habr.com/ru/post/J212249/


All Articles