データのインポートとエクスポートにおすすめの方法

このページでは、Cloud SQL でデータをインポートおよびエクスポートする際のベスト プラクティスを示します。Cloud SQL にデータをインポートする詳細な手順については、データのインポートをご覧ください。Cloud SQL にインポートするデータをエクスポートする手順については、Cloud SQL にインポートするデータをエクスポートするをご覧ください。ご自身が管理する MySQL インスタンスで使用するデータを Cloud SQL からエクスポートする手順については、データのエクスポートをご覧ください。

インポートとエクスポートのベスト プラクティス

データをインポートおよびエクスポートする際に考慮すべきベスト プラクティスは、次のとおりです。

リクエスト元による支払いバケットを使用しない

Cloud SQL からのインポートとエクスポートに、リクエスト元による支払いが有効になっているバケットは使用できません。

SQL ダンプファイルの作成時に正しいフラグを使用する

データを SQL ダンプファイルにエクスポートするときに誤ったフラグを使用すると、インポートが失敗する可能性があります。Cloud SQL にインポートする SQL ダンプファイルの作成については、SQL ダンプファイルの作成をご覧ください。

コスト削減のためデータを圧縮する

Cloud SQL では、圧縮ファイルと非圧縮ファイルの両方のインポートとエクスポートがサポートされています。特に大きいインスタンスをエクスポートするときは、圧縮すると Cloud Storage のストレージ スペースを大幅に節約でき、ストレージ コストの削減にもなります。SQL ダンプファイルや CSV ファイルをエクスポートするときは、ファイル拡張子 .gz を使用してデータを圧縮します。ファイル拡張子が .gz のファイルは、インポートすると自動的に解凍されます。

第 1 世代のインスタンスでは、CSV ファイルの圧縮はサポートされていません。

InnoDB を使用する

InnoDB は、第 2 世代のインスタンスでサポートされている唯一のストレージ エンジンです。第 1 世代のインスタンスでは、すべてのストレージ エンジンがサポートされています。

次のように sed スクリプトを使って mysqldump の出力をパイプでつなぐことで、MyISAM から InnoDB にテーブルを変換できます。

mysqldump --databases [DATABASE_NAME] \
-h [INSTANCE_IP] -u [USERNAME] -p [PASSWORD] \
--hex-blob --default-character-set=utf8mb4 | sed 's/ENGINE=MyISAM/ENGINE=InnoDB/g' > [DATABASE_FILE].sql

長時間にわたるインポートおよびエクスポート プロセスに関するヒント

インポート機能(Cloud Storage バケット経由)を使用した Cloud SQL へのインポートとエクスポートは、データベースのサイズによっては、完了するまでに長時間かかる場合があります。その結果、次の影響があります。

  • 第 1 世代インスタンスでは、オペレーションが 24 時間以内に制限されます。
  • 長時間実行オペレーションを停止することはできません。

さらに、各インスタンスに対して実行できるインポートまたはエクスポート オペレーションは、一度に 1 つのみです。

次のいずれかの方法によって、1 つのオペレーションにかかる時間を短縮できます。

  • データのバッチサイズを小さくして、Cloud SQL のインポートまたはエクスポート機能を使用します。これにより 24 時間以内に完了できるようになります。

  • Cloud SQL のインポート機能やエクスポート機能は使用しないで、代わりにダンプファイルを Cloud SQL に直接リプレイします。たとえば、cloudsql-import を使用すれば、mysqldump ファイルを MySQL 接続上でリプレイすることによりインポートを行うことができます。cloudsql-import は接続障害やインスタンスの再起動が発生しても復元できる対障害弾力性があります。

その他のヒントについては、Cloud SQL インスタンスでの問題を診断するをご覧ください。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...