に最終更新
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 オプションを必ず指定してください(理由は後述の「注意事項」を参照してください)。
-
指定したテーブルのスキーマとデータをエクスポートする
mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
--databases test --tables table1 -
指定したテーブルのスキーマのみをエクスポートする(データは含めない)
mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
--databases test --tables table1 --no-data -
複数のデータベースに含まれるすべてのテーブルをエクスポートする
mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces \
--databases test1 test2 -
すべてのデータベースとテーブルをエクスポートする
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;
注意事項
--no-tablespacesオプションは必須です:Doris は MySQL のテーブルスペースという概念に対応していません。このオプションを指定しないと、エクスポートは失敗します。- 開発、テスト、または小規模なデータの処理にのみ適しています:
mysqldumpはシングルスレッドの論理エクスポートツールです。大量のデータを扱う際の性能と安定性は十分ではありません。本番環境で大規模なデータを扱う場合は使用しないでください。本番環境でデータをエクスポートする場合は、次のいずれかの方法を使用してください。EXPORT文:オブジェクトストレージまたは HDFS へ非同期でエクスポートしますSELECT INTO OUTFILE:クエリ結果をファイルへ同期的にエクスポートします