本記事では、外部データをOceanBase Cloudクラウドデータベースに移行またはインポートする方法について説明します。データソースに応じて、本記事では以下のデータインポートプランを提供します。
OceanBase Cloud公式プラン
OceanBase Cloudが提供するデータ移行およびデータインポートツールは、大規模データ移行向けに設計されています。
標準SQLコマンドLOAD DATAとINSERT SQLは操作が簡単で、小規模データのインポートに適しています。
CREATE EXTERNAL TABLEにより外部データファイルの直接クエリが可能となり、分析の柔軟性が向上します。
サードパーティ統合ツール
Flink OceanBase Connector、DataX OceanBase Writer Plugin、KafkaやCanalなど。
本記事では、各プランの最適な適用シナリオと、データファイル形式およびターゲットストレージシステムの特性に基づいて最適な移行方法を選択する方法を紹介します。本記事の目的は、データをOceanBase Cloudクラウドデータベースに移行し、今後のビジネス分析やアプリケーション開発に活用できるよう、包括的な移行ツールと方法の枠組みを提供することです。
データ移行
基本機能:
オンラインでサービスを停止せずに移行でき、業務アプリケーションへの影響はありません。
高パフォーマンスで安全と信頼性の高いデータ移行です。
ワンストップで操作できます。
適用シナリオ:
- データ移行は、大規模なデータベース間の移行に適しています。
参考情報:
評価と移行のプロセス
このセクションでは、OceanBase Cloudデータベースコンソールのデータ移行ページを使用してデータ移行を行う操作手順について説明します。
(オプション)互換性評価を実行します。
データ移行を開始する前に、互換性評価タスクを作成することで、データベースオブジェクトとSQLの使用状況を体系的に分析し、互換性評価レポートを取得できます。互換性評価機能は、自動化された変換計画を提供し、クラウド移行の技術的難易度と改修コストを低減します。詳細については、互換性評価モジュールの内容をご参照ください。
データ移行を開始します。
データ移行機能を使用すると、オンラインデータベースの移転をワンストップで完了でき、ビジネスの迅速かつスムーズな切り替えを支援します。詳細については、データ移行モジュールの内容をご参照ください。
(オプション)パフォーマンス評価を実行します。
データ移行が完了した後、ビジネス切り替え前に、より徹底したパフォーマンス評価を行うことができます。業務負荷を用いてトラフィックを再生し、移行後のパフォーマンスリスクを事前に特定します。パフォーマンス評価機能は、最適化計画も提供し、ビジネスリスクを低減します。詳細については、パフォーマンス評価モジュールの内容をご参照ください。
OBLOADER
基本機能:
ローカルディスク、NAS、HDFS、OSS、COS、OBS、Apache Hadoop、Alibaba Cloud OSS、AWS S3からデータベースオブジェクト定義とテーブルデータをインポートできます。
mysqldumpでエクスポートされたINSERT SQL形式のファイルをインポートできます。
標準的なCSV、INSERT SQL、Apache ORC、Apache Parquetなどの形式のデータファイルをインポートできます。
データの事前処理に関する制御ルールや、ファイルとテーブル間のフィールドマッピング関係を設定できます。
インポートのスロットリング、メモリ枯渇防止、中断点からの復元、エラーの自動再試行をサポートしています。
カスタムログディレクトリを指定でき、インポート時に不良データや競合データを保存できます。
インポートツールが大容量ファイルを自動的に分割し、追加のストレージ容量を消費しないため、手動でのファイル分割は不要です。
コマンドラインで指定された機密パラメータを暗号化できます。これには、データベースのアカウントパスワードやクラウドストレージのアカウントキーが含まれます。
OBLOADERは以下の書き込みモードを提供します:
Clientモード:JDBCまたはダイレクトロード(DIRECT)をサポートし、データをOceanBaseデータベースに挿入します。
Serverモード:LOAD DATAを統合し、データをOceanBaseデータベースにインポートします。
適用シナリオ:
- OBLOADERは大規模なデータインポートに適しています。
使用方法:
LOAD DATA
LOAD DATA LOCAL
基本特性:
ローカルファイルをOceanBase Cloudデータベースにインポートする場合に適用されます。ローカルファイルをネットワークストリームとしてOceanBase Cloudデータベースに転送し、挿入します。
小規模なデータ量のシナリオに適しています。
一度に1つのファイルのみ転送可能です。
現在、CSV、SQL、Parquetファイルの単一インポートをサポートしています。
適用シナリオ:
- LOAD DATA LOCALは、小規模なデータインポートに適しています。
使用例:
LOAD DATA FROM OSS
基本特性:
OSSファイルを直接OceanBase Cloudデータベースにインポートします。
一度に複数のOSSファイルのインポートをサポートします。
現在、CSVファイルのインポートのみをサポートしています。
適用シナリオ:
- LOAD DATA FROM OSSは、大規模なデータインポートに適しています。
使用例:
INSERT SQL
適用シナリオ:
INSERT INTO VALUESは、内部テーブルに少量のデータを書き込む場合に適しています。
INSERT INTO SELECT FROM <table_name>は、ターゲットテーブルに別のテーブル(内部テーブルまたは外部テーブル)のクエリ結果を書き込む場合、つまりテーブル間のデータ移行に適しています。
INSERT /*+ [APPEND |direct(need_sort,max_error,'full')] enable_parallel_dml parallel(N) */ INTO table_name select_sentence ダイレクトロードは、全量と増分ダイレクトロードに適しています。
使用例:
CREATE EXTERNAL TABLE
適用シナリオ:
- 外部テーブルはデータベース管理システムにおける重要な機能です。通常、データベース内のテーブルはデータベースのストレージ領域に格納されますが、外部テーブルのデータは外部ストレージサービスに保存されます。
使用例:
Flink
適用シナリオ:
- Flink OceanBase Connectorは、Flinkからのデータのリアルタイムインポートに適しています。
使用例:
Canal
適用シナリオ:
- Canalからのデータのリアルタイムインポートに適しています。
使用例:
Kafka
適用シナリオ:
- MySQL、Oracle、PostgreSQLなどのデータベースからOceanBaseデータベースへのデータ移行または同期に適しています。
使用例:
DataX
適用シナリオ:
- DataXは、MySQLやOracleなどのリレーショナルデータベース、HDFS、Hiveなど、さまざまなデータソース間でのデータ同期に適しています。DataXを使用すると、一度に1つのテーブルのデータを移行でき、データ量に制限はありません。毎秒最大60MBのデータを移行できます。
参考資料:
- DataXを使用してMySQLデータベースからOceanBaseデータベースへテーブルデータを移行する
CloudCanal
適用シナリオ:
- CloudCanalは、MySQL、Oracle、PostgreSQLデータベースからOceanBaseクラウドへのデータ移行や同期に適しています。
関連情報:
- CloudCanalを使用してMySQLデータベースからOceanBaseデータベースへデータを移行する
SeaTunnel
適用シナリオ:
- MySQL、Oracle、PostgreSQLなどのデータベースからOceanBaseデータベースへのデータ移行または同期に適しています。
使用例:
インポートプランの選択
このセクションでは、一般的なデータソースでサポートされているインポートプランについて説明します。実際のシナリオに合わせて適切なインポートプランを迅速に選択できるようにすることを目的としています。
オブジェクトストレージ
クラウドベンダーのオブジェクトストレージからOceanBase Cloudデータベースにデータをインポートする方法は、次の表のとおりです。
データソース |
サポートされているインポート方法 |
|---|---|
| Alibaba Cloud OSS |
|
| Tencent Cloud COS |
|
| Huawei Cloud OBS |
|
| Amazon S3 |
|
| Azure Blob Storage | データをローカルまたはアクセス可能なサーバーにダウンロードし、MySQLコマンドラインツールまたはSQL管理ツールを使用してOceanBaseデータベースにインポートするか、スクリプトを作成してMySQL接続ライブラリを使用してSQLステートメントを実行し、一括挿入を実行します。 |
| Google Cloud GCS | データをローカルまたはアクセス可能なサーバーにダウンロードし、MySQLコマンドラインツールまたはSQL管理ツールを使用してOceanBaseデータベースにインポートするか、スクリプトを作成してMySQL接続ライブラリを使用してSQLステートメントを実行し、一括挿入を実行します。 |
ファイルシステム
ローカルファイルシステムおよび分散ファイルシステムからOceanBaseデータベースにデータをインポートする方法は、次の表のとおりです。
データソース |
サポートされているインポート方法 |
|---|---|
| Local File System (NFSおよびNASを含む) |
|
| 分散ファイルシステムHDFS |
|
ストリーミングシステム
ストリーミングシステムからOceanBaseデータベースにデータをインポートする方法は、次の表のとおりです。
データソース |
サポートされているインポートプラン |
|---|---|
| Flink |
|
| Canal |
|
| Spark | JDBCインターフェースを使用してOceanBase Cloudクラウドデータベースに接続する(リファレンスドキュメント) |
データベース
データベースのデータをOceanBaseデータベースにインポートする方法は、次の表のとおりです。
データソース |
サポートされているインポートプラン |
|---|---|
| MySQL |
|
| Oracle |
|
| PostgreSQL |
|
| TiDB |
|
| SQLServer |
|
| StarRocks | StarRocksのデータをダンプし、OBLOADERまたはLOAD DATAを使用します。 |
| Doris | Dorisのデータをダンプし、OBLOADERまたはLOAD DATAを使用します。 |
| HBase |
|
| MaxCompute | MaxComputeのデータをダンプし、OBLOADERまたはLOAD DATAを使用します。 |
| Hologres | Hologresのデータをダンプし、OBLOADERまたはLOAD DATAを使用します。 |