データフローは、分析を目的としたビジネスシナリオにおいて最も重要なプロセスの一つです。本記事では、OceanBaseデータベースのデータを、ローカルファイルシステムまたはオブジェクトストレージにエクスポートする方法について説明します。データソースの違いに応じ、本記事では以下のさまざまなデータエクスポートプランを紹介します。
obdumper
obdumperは、Javaで開発されたOceanBaseデータベース専用のクライアントツールであり、データベースオブジェクトとテーブルデータをローカルファイルシステム、HDFS、オブジェクトストレージ(Aliyun/Amazon/Tencent/Huawei/Azure/GCS)にエクスポートできます。obdumperコマンドを使用すると、データをCSV、SQL、Apache ORC、Apache Parquetなどの形式のファイルにエクスポートできます。
基本機能:
obdumperの特徴は以下のとおりです:
- 指定したパーティション名を指定することで、指定されたテーブルパーティション内のデータのみをエクスポートできます。
- グローバルなフィルター条件を指定して、条件を満たすデータのみをエクスポートできます。
- カスタムクエリステートメントを指定して、そのクエリステートメントの結果セットのみをエクスポートできます。
- SCNまたはTIMESTAMPを指定して、有効なトランザクションポイントまたは時間の履歴スナップショットデータのみをエクスポートできます。
適用シナリオ:
- 大規模データの効率的なエクスポートが必要なシナリオ(コンピューティング型クラスタ、分析型クラスタのバックアップなど)に適しています。データの事前処理、例えば匿名化や暗号化にも使用できます。
参考情報:
- 詳細については、obdumperとはを参照してください。
OUTFILE
SELECT INTO OUTFILE ステートメントを使用して、クエリ結果をファイルにエクスポートできます。SELECT INTO OUTFILE ステートメントはエクスポートするフィールドを制限できるため、主キーフィールドをエクスポートする必要がないシナリオに適しています。
基本機能:
- 出力形式として、TXT、SQL、CSV、固定長ファイル、XML、JSONを選択できます。
- エクスポートするフィールドを制限できます。これは、主キーフィールドなどを除外する特定のシナリオに適しています。
適用シナリオ:
- 簡単なバックアップや移行などの、小規模データのエクスポートに適しています。
参考情報:
- 詳細については、OUTFILEステートメントを使用したデータのエクスポートを参照してください。
DataX
基本機能:
- 高効率な転送
- さまざまなデータソースをサポートします
- 柔軟な設定
適用シナリオ:
- DataXは数十GBから数TBまで、さらに大規模なデータの移行タスクに適しています。
参考情報:
- 詳細については、DataXドキュメントを参照してください。
エクスポートプランの選択
| 比較項目 | obdumper | OUTFILE | DataX |
|---|---|---|---|
| シナリオの推奨 | データロジックバックアップ、データ処理、データ高圧縮 | 簡単なデータエクスポート | 強力なデータソースサポートを提供。可能なデータソースは、稼働中のデータベース、メッセージキューなどです。データベースのオフライン移行に利用できます。 |
| データソース | 静的ファイル | 静的ファイル | 構造化および非構造化データソース |
| フォーマット | テキストフォーマット:CSV (RFC-4180)、INSERT SQL、Delimited Text、Fixed Length。 バイナリ形式:Apache ORC、Apaceh Parquet、Apache Avro。 | テキストファイル | 各リレーショナルデータベース、テキスト、HBase、Kafkaなど。 |
| パフォーマンス | 高 | 普通 | 高 |
| 圧縮をサポートするかどうか | はい | いいえ | いいえ |
| 条件付きエクスポートをサポートするかどうか | はい | いいえ | はい |
| DDL | はい | いいえ | いいえ |
| データの事前処理 | はい | はい | いいえ |
| リアルタイムモニタリング | はい | いいえ | はい |
| ファイルエンコーディング | システムがサポートする限り、指定可能 | システムのデフォルトエンコーディング | UTF-8 |