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

このページでは、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 を使い、MySQL 接続経由で mysqldump ファイルをリプレイすることでインポートされます。cloudsql-import は、接続エラーやインスタンスの再起動が発生した場合でも復元可能です。

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

次のステップ

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

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