メインコンテンツまでスキップ

バックアップ

説明

このステートメントは、指定されたデータベース配下のデータをバックアップするために使用されます。このコマンドは非同期操作です。送信後、SHOW BACKUPコマンドで進行状況を確認できます。

構文

BACKUP [GLOBAL] SNAPSHOT [<db_name>.]<snapshot_name>
TO `<repository_name>`
[ { ON | EXCLUDE } ]
( <table_name> [ PARTITION ( <partition_name> [, ...] ) ]
[, ...] ) ]

[ PROPERTIES ( "<key>" = "<value>" [ , ... ] )]

必須パラメータ

1.<db_name>

バックアップ対象データが属するデータベースの名前。

2.<snapshot_name>

データスナップショット名を指定します。スナップショット名は重複不可で、グローバルに一意である必要があります。

3.<repository_name>

ウェアハウス名。リポジトリはCREATE REPOSITORYを使用して作成できます。

オプションパラメータ

1.<table_name>

バックアップ対象テーブルの名前。指定しない場合、データベース全体がバックアップされます。

  • ON句は、バックアップが必要なテーブルとパーティションを識別します。パーティションが指定されていない場合、デフォルトでテーブルのすべてのパーティションがバックアップされます
  • バックアップが不要なテーブルとパーティションは、EXCLUDE句で識別されます。指定したテーブルまたはパーティションを除く、このデータベース内のすべてのテーブルのすべてのパーティションデータをバックアップします。

2.<partition_name>

バックアップ対象パーティションの名前。指定しない場合、対応するテーブルのすべてのパーティションがバックアップされます。

3.[ PROPERTIES ( "<key>" = "<value>" [ , ... ] ) ]

データスナップショット属性、形式:<key> = <value>、現在以下のプロパティをサポートしています:

  • "type" = "full": フル更新であることを示します(デフォルト)
  • "timeout" = "3600": タスクタイムアウト期間、デフォルトは1日。単位は秒。
  • "backup_privilege" = "true": 権限をバックアップするかどうか。BACKUP GLOBALと組み合わせて使用します。
  • "backup_catalog" = "true": カタログをバックアップするかどうか。BACKUP GLOBALと組み合わせて使用します。
  • "backup_workload_group" = "true": ワークロードグループをバックアップするかどうか。BACKUP GLOBALと組み合わせて使用します。

アクセス制御要件

このSQLコマンドを実行するユーザーは、少なくとも以下の権限を持つ必要があります:

権限オブジェクト備考
LOAD_PRIVUSER or ROLEこの操作はLOAD_PRIV権限を持つユーザーまたはロールのみが実行できます

使用上の注意

  • OLAP型のテーブルのバックアップのみサポートされています。
  • 同一データベース下では、一度に1つのバックアップ操作のみ実行できます。
  • バックアップ操作は、指定されたテーブルまたはパーティションの基底テーブルと同期マテリアライズドビューをバックアップし、1つのレプリカのみがバックアップされます。非同期マテリアライズドビューはサポートされていません。
  • バックアップ操作の効率:バックアップ操作の効率は、データ量、Compute Nodesの数、およびファイル数に依存します。バックアップデータシャードが配置されている各Compute Nodeは、バックアップ操作のアップロード段階に参加します。ノード数が多いほど、アップロード効率が高くなります。ファイルデータ量は、シャード数と各シャード内のファイル数のみを指します。シャード数が多い場合、またはシャード内に小さなファイルが多数ある場合、バックアップ操作時間が増加する可能性があります。

  1. example_db下のテーブルexample_tblをウェアハウスexample_repoに完全バックアップする:
BACKUP SNAPSHOT example_db.snapshot_label1
TO example_repo
ON (example_tbl)
PROPERTIES ("type" = "full");
  1. フルバックアップの下で、example_db、テーブルexample_tblのp1、p2パーティション、およびテーブルexample_tbl2をウェアハウスexample_repoに:
BACKUP SNAPSHOT example_db.snapshot_label2
TO example_repo
ON
(
example_tbl PARTITION (p1,p2),
example_tbl2
);
  1. example_db配下のexample_tblテーブルを除く全てのテーブルのフルバックアップをwarehouse example_repoに実行する場合:
BACKUP SNAPSHOT example_db.snapshot_label3
TO example_repo
EXCLUDE (example_tbl);
  1. example_db 配下のテーブルを example_repo リポジトリに完全にバックアップする:
BACKUP SNAPSHOT example_db.snapshot_label3
TO example_repo;
  1. 権限、カタログ、およびワークロードグループをリポジトリ example_repo にバックアップします:
BACKUP GLOBAL SNAPSHOT snapshot_label5
TO example_repo;
  1. 権限とカタログをリポジトリ example_repo にバックアップする:
BACKUP GLOBAL SNAPSHOT snapshot_label6
TO example_repo
PROPERTIES ("backup_privilege" = "true", "backup_catalog" = "true");