データフローは、分析を目的としたビジネスシナリオにおいて最も重要なプロセスの一つです。本記事では、OceanBaseデータベースのデータをファイルシステムまたはオブジェクトストレージにエクスポートする方法について説明します。データソースの違いに応じ、本記事では以下のさまざまなデータエクスポートの方法を紹介します。
obdumper
obdumperは、Javaで開発されたOceanBaseデータベース専用のクライアントツールであり、データベースオブジェクトとテーブルデータをローカルファイルシステム、HDFS、オブジェクトストレージ(Aliyun/Amazon/Tencent/Huawei/Azure/GCS)にエクスポートできます。obdumperコマンドを使用して、データをCSV、SQL、Apache ORC、Apache Parquetなどの形式のファイルにエクスポートできます。
基本機能:
obdumperの特徴は以下のとおりです:
- 指定したパーティション名を指定することで、指定されたテーブルパーティション内のデータのみをエクスポートできます。
- グローバルなフィルター条件を指定することで、条件を満たすデータのみをエクスポートできます。
- カスタムクエリステートメントを指定することで、そのクエリステートメントの結果セットのみをエクスポートできます。
- SCNまたはTIMESTAMPを指定することで、有効なトランザクションポイントまたは時間の履歴スナップショットデータのみをエクスポートできます。
適用シナリオ:
- 大規模データの効率的なエクスポートが必要なシナリオに適しています。例えば、計算型クラスタや分析型クラスタのバックアップなどです。また、データの事前処理、例えば匿名化や暗号化にも利用できます。
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 |