メインコンテンツまでスキップ
に最終更新

MySQL Dump

mysqldump は MySQL が提供する公式の論理エクスポートツールです。Apache Doris は バージョン 0.15 以降、mysqldump と互換性があります。テーブルのスキーマ(DDL)またはデータ(DML)をエクスポートし、source コマンドで Doris に再インポートできます。

適用シナリオ​

シナリオ推奨度説明
開発・テスト環境でのデータ移行推奨操作が簡単で、ツールを入手しやすい
スキーマのバックアップと移行推奨--no-data を指定して DDL のみをエクスポートします
小規模なデータのエクスポート推奨数 MB から数百 MB 程度
本番環境での大規模なデータのエクスポート非推奨性能と安定性に制約があります。代わりに EXPORT または OUTFILE を使用してください

前提条件​

  • Doris のバージョンが 0.15 以降であること
  • クライアント環境に mysqldump がインストールされていること
  • 対象のデータベースとテーブルに対する読み取り権限があること(FE の MySQL プロトコルのデフォルトポートは 9030)

使用例​

データまたはスキーマのエクスポート​

以下の例はいずれも 127.0.0.1:9030 の FE に root アカウントで接続します。--no-tablespaces オプションを必ず指定してください(理由は後述の「注意事項」を参照してください)。

  1. 指定したテーブルのスキーマとデータをエクスポートする

    mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
    --databases test --tables table1
  2. 指定したテーブルのスキーマのみをエクスポートする(データは含めない)

    mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
    --databases test --tables table1 --no-data
  3. 複数のデータベースに含まれるすべてのテーブルをエクスポートする

    mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
    --databases test1 test2
  4. すべてのデータベースとテーブルをエクスポートする

    mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
    --all-databases

その他のオプションについては、MySQL 公式の mysqldump マニュアルを参照してください。

エクスポートした結果を Doris にインポートする​

mysqldump の出力を .sql ファイルにリダイレクトし、Doris クライアントで source コマンドを実行してインポートできます。

# 1. Export to a file
mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
--databases test --tables table1 > table1.sql

# 2. Log in to Doris and run source to import
mysql -h127.0.0.1 -P9030 -uroot
source table1.sql;

注意事項​

  1. --no-tablespaces オプションは必須です:Doris は MySQL のテーブルスペースという概念に対応していません。このオプションを指定しないと、エクスポートは失敗します。
  2. 開発、テスト、または小規模なデータの処理にのみ適しています:mysqldump はシングルスレッドの論理エクスポートツールです。大量のデータを扱う際の性能と安定性は十分ではありません。本番環境で大規模なデータを扱う場合は使用しないでください。本番環境でデータをエクスポートする場合は、次のいずれかの方法を使用してください。
    • EXPORT 文:オブジェクトストレージまたは HDFS へ非同期でエクスポートします
    • SELECT INTO OUTFILE:クエリ結果をファイルへ同期的にエクスポートします