はじめに
本番環境から開発環境やDR環境などに、Verticaのデータを移行したいケースがあると思います。Verticaが提供しているデータの移行方法には、幾つかあります。本稿では、各データ移行方法と、そのメリットとデメリットをご紹介します。
メリットとデメリット
各データ移行方法およびメリットとデメリットは、以下のとおりです。移行方法の詳細は、参考情報もあわせてご覧ください。
移行方法 | メリット | デメリット | 参考情報 |
---|---|---|---|
vbr --task copycluster | ・DDLとデータの移行が容易で高速 ・DB全体のコピーが可能 ・自動的に差分データを把握し効率的にデータ移行 | ・DB名、DBバージョン(*1)、ノード名、ノード数、ディレクトリ構成などソース側とターゲット側を合わせる必要がある ・ターゲット側のVerticaサービスを停止(Down)する必要がある | ・Verticaデータベースのコピー ・Copying the Database to Another Cluster |
vbr --task replicate | ・DDLとデータの移行が容易で高速 ・オブジェクト毎のコピーが可能 ・自動的に差分データを把握し効率的にデータ移行 | ・DB名、DBバージョン(*2)、ノード名、ノード数、ディレクトリ構成などソース側とターゲット側を合わせる必要がある※注1 ・ターゲット側のVerticaサービスを停止(Down)する必要がある | ・別Vertica環境にデータを複製する方法(vbrの活用) ・Replicating Objects to an Alternate Cluster |
vbr.py --task backup | ・DDLとデータの移行が容易で高速 ・DB全体のコピーが可能 ・自動的に差分データを把握し効率的にデータ転送 | ・DB名、DBバージョン(*2)、ノード名、ノード数、ディレクトリ構成などソース側とターゲット側を合わせる必要がある ・ファイル出力したデータを一時保管するストレージが必要(フルバックアップを取得するためサイズが大きくなる) | ・Verticaのバックアップ方法 ・Creating backups ・バックアップを指定してリストアする方法 ・Restoring backups |
EXPORT TO VERTICA /COPY FROM VERTICA | ・DB名、DBバージョン(*3)、ノード名、ノード数、ディレクトリ構成などが異なってもデータ移行が可能 ・データの移行が高速 | ・事前にターゲット側にテーブルを作成しておく必要がある ・ユーザ、ロール、グラント、UDxなどのオブジェクト設定は手動で作成する必要ある | ・異なるクラスタのテーブルにデータをコピーする方法(EXPORT TO VERTICA) ・EXPORT TO VERTICA ・特定テーブルのデータを別環境のVerticaに直接コピーする方法 ・COPY FROM VERTICA |
DDLとデータ出力(CSV/Parquet形式)後に、オブジェクト作成とデータロード | ・DB名、DBバージョン、ノード名、ノード数、ディレクトリ構成などが異なってもデータ移行が可能 | ・事前にターゲット側にテーブルを作成しておく必要がある ・ユーザ、ロール、グラント、UDxなどのオブジェクト設定は手動で作成する必要がある ・差分データのロードや更新方法を検討する必要がある ・ファイル出力したデータを一時保管するストレージが必要となる(段階的に移行することで最小化することは可能) | ・Verticaで既存環境のテーブルのDDLとデータを一括で抽出する方法 ・CSVデータのロード方法 ・COPY |
(*1)vbr –task copycluster
ソースDBはターゲットDBに対して、「同一のHotFixバージョンのみ」をサポートします。
ターゲットDB | |||||||
12.0.4-28 | 23.3.0-0 | 24.2.0-1 | 24.2.0-2 | 24.2.0-3 | 24.3.0-0 | ||
ソースDB | 12.0.4-28 | 〇 | ✕ | ✕ | ✕ | ✕ | ✕ |
23.3.0-0 | ✕ | 〇 | ✕ | ✕ | ✕ | ✕ | |
24.2.0-1 | ✕ | ✕ | 〇 | ✕ | ✕ | ✕ | |
24.2.0-2 | ✕ | ✕ | ✕ | 〇 | ✕ | ✕ | |
24.2.0-3 | ✕ | ✕ | ✕ | ✕ | 〇 | ✕ | |
24.3.0-0 | ✕ | ✕ | ✕ | ✕ | ✕ | 〇 |
(*2)vbr –task replicate/vbr.py –task backup
ソースDBはターゲットDBに対して、「同一のHotFixバージョン ~ 1つ上のマイナーバージョンまで」をサポートします。
ターゲットDB | |||||||
12.0.4-28 | 23.3.0-5 | 23.4.0-12 | 24.1.0-0 | 24.2.0-3 | 24.3.0-1 | ||
ソースDB | 12.0.4-28 | 〇 | ✕ | ✕ | ✕ | ✕ | ✕ |
23.3.0-5 | ✕ | 〇 | 〇 | ✕ | ✕ | ✕ | |
23.4.0-12 | ✕ | ✕ | 〇 | ✕ | ✕ | ✕ | |
24.1.0-0 | ✕ | ✕ | ✕ | 〇 | 〇 | ✕ | |
24.2.0-3 | ✕ | ✕ | ✕ | ✕ | 〇 | 〇 | |
24.3.0-1 | ✕ | ✕ | ✕ | ✕ | ✕ | 〇 |
(*3)EXPORT TO VERTICA/COPY FROM VERTICA
ソースDBはターゲットDBに対して、「同一のHotFixバージョン ~ 1つ上のメジャーバージョンまで」をサポートします。
ターゲットDB | |||||||
12.0.4-28 | 23.3.0-5 | 23.4.0-12 | 24.1.0-0 | 24.2.0-3 | 24.3.0-1 | ||
ソースDB | 12.0.4-28 | 〇 | 〇 | 〇 | ✕ | ✕ | ✕ |
23.3.0-5 | ✕ | 〇 | 〇 | 〇 | 〇 | 〇 | |
23.4.0-12 | ✕ | ✕ | 〇 | 〇 | 〇 | 〇 | |
24.1.0-0 | ✕ | ✕ | ✕ | 〇 | 〇 | 〇 | |
24.2.0-3 | ✕ | ✕ | ✕ | ✕ | 〇 | 〇 | |
24.3.0-1 | ✕ | ✕ | ✕ | ✕ | ✕ | 〇 |
参考情報
Verticaのバージョン番号(Vertica 12.0以前)
Verticaのバージョン番号(Vertica 23.3以降)
検証バージョンについて
この記事の内容はVertica 24.3で確認しています。
更新履歴
2024/09/03 データ移行方法に関して対応バージョンの注釈を追加
2024/07/03 「バックアップ機能」の項目を追加
「メリット・デメリット」の項目を修正
2023/08/16 「EXPORT TO VERTICA/COPY FROM VERTICA」のメリットとデメリットを修正
2020/08/06 本記事を公開