データ移行とは、データをソースシステムからOceanBaseに移行することであり、データベースの置き換え、バージョンアップグレード、データウェアハウスとの統合などに利用されます。
移行フェーズ
データ移行は通常、「データ構造 → フルデータ → 増分データ」の順序で計画されます(実際には一部が重複する場合もあり、ツールやウィンドウによって異なります):
フェーズ |
目標 |
一般的な方法 |
典型的なツール/方法 |
|---|---|---|---|
| 構造移行 | ターゲットデータベースが業務と一致する データベース・テーブル・インデックス・制約(および必要なパーティショニングポリシー)を備えること | DDL変換、データ型と文字セットのマッピング、互換性のない構文の書き換え | OMS(オブジェクト同期)、DBCAT(テーブル構造)、手動DDL |
| フル移行 | 情報時点までに 履歴データのベースライン を完成させること | バッチエクスポート・インポート、並列分割、ダイレクトロード | OMS、obloader + ダイレクトロード、DataX、MyDumper + インポート、LOAD DATA(MySQLモード) / LOAD DATA(Oracleモード) |
| 増分移行 | フル移行完了後、継続的な変更の同期を、サービス切り替えまたは長期二重活動まで行うこと | ログ解析(Binlog/Redoなど)、遅延追跡、競合と再注入戦略 | OMS、Canal、Flink CDC など |
説明:AP側が主に ファイル/オフラインデータウェアハウス を消費する場合、一般的なパスは 構造の事前整列 と フルファイルのOceanBaseへの投入 です。増分 を個別に実行するかどうかは、継続的な整列が必要かどうかによります。詳細については、データサブスクリプションの概要およびデータ同期の概要を参照してください。
異種データベース移行
移行シナリオ
異種データ移行は主に以下のシナリオに適用されます:
- データベースのアップグレードまたは置き換え:既存のデータベースシステムをOceanBaseに移行し、より優れたパフォーマンス、拡張性、またはコスト効率を得ること。
- データ統合:複数の異なるデータベースシステムのデータを統一されたOceanBaseプラットフォームに統合すること。
- アーキテクチャのアップグレード:従来のデータベースを分散データベースアーキテクチャに移行すること。
このようなデータ移行シナリオでは、以下に注意する必要があります:
- スキーマとデータ型のマッピング:ソース側とターゲット側(OceanBase)間のデータ構造と型のマッピングルールを正確に定義する必要があります。
- パフォーマンス最適化:大量データの移行に対して、並列処理、シャーディング移行、バッチロードなどの効率的な移行戦略を採用し、移行ウィンドウを短縮します。
- データ一貫性の検証:移行完了後、ハッシュ検証、抽出比較、または全量比較などの方法で、データの完全性と正確性を確保する必要があります。
MySQLからOceanBaseへの移行
OracleからOceanBaseへの移行
方法 |
参考ドキュメント |
|---|---|
| OMS(MySQL互換モードテナント) | OMSを使用したOracleデータベースからOceanBaseデータベースへの移行(MySQL互換モードテナント) |
| OMS(Oracle互換モードテナント) | OMSを使用したOracleデータベースからOceanBaseデータベースへの移行(Oracle互換モードテナント) |
| DBCAT | DBCATを使用したOracleデータベースからOceanBaseデータベースへの移行 |
| DataX | DataXを使用したOracleデータベースからOceanBaseデータベースへの移行 |
その他のデータソースからOceanBaseへの移行
データソース |
参考ドキュメント |
|---|---|
| PostgreSQL | OMSを使用したPostgreSQLデータベースからOceanBaseデータベースへの移行(MySQL互換モードテナント) |
| DB2 LUW(MySQL互換モードテナント) | OMSを使用したDB2 LUWデータベースからOceanBaseデータベースへの移行(MySQL互換モードテナント) |
| DB2 LUW(Oracle互換モードテナント) | OMSを使用したDB2 LUWデータベースからOceanBaseデータベースへの移行(Oracle互換モードテナント) |
| DB2 LUW(テーブル構造) | DBCATを使用したDB2 LUWテーブル構造からOceanBaseデータベースへの移行 |
| TiDB | OMSを使用したTiDBデータベースからOceanBaseデータベースへの移行(MySQL互換モードテナント) |
同種データベース間の移行
移行シナリオ
同種データ移行は主に以下のシナリオに適用されます:
- バージョンアップグレード:古いバージョンのOceanBaseクラスタから新しいバージョンへデータを移行し、新機能を利用したりパフォーマンスを向上させたりします。
- TPデータベースからAPデータベースへの移行:OceanBaseトランザクション型(TP)データベースから分析型(AP)データベースへデータを移行し、リアルタイム分析やBIアプリケーションなどをサポートします。
移行元と移行先が共にOceanBaseであるため、このような移行では通常データ形式の変換は不要です。ただし、以下の点には引き続き注意する必要があります:
- 移行中のデータ一貫性:トランザクションログまたはスナップショットメカニズムを用いて、移行プロセス中のデータ一貫性を保証します。
- ダウンタイムの制御:ビジネスのRTO/RPO要件に基づき、適切な移行計画を選択して、業務中断を最小限に抑えるか回避します。
- バージョン互換性:異なるバージョン間で移行する際には、SQL構文、システムパラメータ、内部実装の細かい違いに注意する必要があります。
OceanBaseテナント間の移行
シナリオ |
参考ドキュメント |
|---|---|
| MySQL互換モードテナント間の移行 | |
| MySQL互換モードテナントからOracle互換モードテナントへの移行 | |
| Oracle互換モードテナント間の移行 | |
| Oracle互換モードテナントからMySQL互換モードテナントへの移行 |
ビッグデータエコシステムの統合
移行シナリオ
- オフラインデータウェアハウスのデータをリアルタイム分析システムに同期する場合:HiveやSparkなどのオフラインデータウェアハウスから、FlinkやKafkaなどのリアルタイムデータ処理プラットフォームにデータを同期し、リアルタイムデータ処理やストリーミング分析をサポートします。
- オフラインデータを長期保存用ストレージにアーカイブする場合:オフラインデータウェアハウスの履歴データをクラウドオブジェクトストレージS3やAlibaba Cloud OSSなどの長期保存用ストレージにアーカイブし、ストレージコストを削減してデータ保持ポリシーを満たします。
- オフラインデータをOceanBaseデータベースにインポートする場合:Hiveなどのオフラインデータウェアハウスから、OceanBaseにデータを移行または同期し、統合分析、データサービス、または業務データとの連携をサポートします。
このようなデータ移行シナリオでは、以下の点に注意する必要があります:
- ソースデータ形式とターゲットテーブルの適合性:ソースファイル形式(CSV、Parquet、ORCなど)とOceanBaseのターゲットテーブルの列型、精度、時刻形式、パーティションフィールドなどが一致しているかどうか。必要に応じて、テーブル作成時またはインポート時にフィールドマッピングと型変換を実行します。
- 大量データの効率的な転送:DistCpなどの分散型ツールを使用し、並列処理とネットワーク最適化によって転送効率を向上させます。
- メタデータとテーブル構造の整合性:ソース側のテーブル定義、パーティション情報、スキーマなどが、OceanBase APのターゲットテーブル(列名、型、パーティション戦略)と一致していることを確認し、データのみを移行してもターゲットテーブルの構造がマッチしないことを防ぎます。
データソース |
ドキュメント |
|---|---|
| Hive | OMS Community Editionを使用したHiveの移行、obloaderを使用したHiveの移行 |
| HBase | OMS Community Editionを使用したHBaseの移行 |
| ORC/Parquet/CSVファイル | obloaderを使用したORC/Parquet/CSVファイルの移行 |
| AnalyticDB MySQL(Alibaba Cloud) | AnalyticDB MySQLのデータをOceanBaseデータベースのMySQLテナントに移行する |