

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# スナップショットからのテーブルの復元
<a name="working-with-snapshot-restore-table-from-snapshot"></a>

クラスター全体を復元する代わりに、スナップショットから単一のテーブルを復元できます。スナップショットから単一のテーブルを復元する場合、ソースのスナップショット、データベース、スキーマ、テーブル名、ターゲットのデータベース、スキーマ、および復元されるテーブル用の新しいテーブル名を指定します。

**注記**  
RA3 でプロビジョニングされたクラスターと Amazon Redshift Serverless ワークグループでは、バックアップ用ではないテーブルはサポートされていません。RA3 クラスターおよびサーバーレスワークグループでバックアップしないとマークされたテーブルは、スナップショットの作成中に常にバックアップされ、スナップショットから復元するときに復元される永続テーブルとして扱われます。ただし、バックアップ用ではないテーブルの選択的な復元はサポートされていません。

新しいテーブル名を、既存のテーブルの名前にすることはできません。既存のテーブルを、スナップショットから復元されるテーブルに置き換えるには、スナップショットからテーブルを復元する前に、既存のテーブルの名前を変更するか、削除します。

ターゲットテーブルは、ソーステーブルの列の定義、テーブル属性、および外部キーを除く列の属性を使って作成されます。依存関係による競合を回避するため、ターゲットテーブルはソーステーブルから外部キーを継承しません。ソーステーブルで付与されたビューや許可などの依存関係は、ターゲットテーブルに適用されません。

ソーステーブルの所有者が存在する場合、そのデータベースユーザーが復元したテーブルの所有者となるのは、指定したデータベースやスキーマの関係の所有者となる十分なアクセス許可を持っている場合のみです。それ以外の場合には、クラスターの起動時に作成した管理者ユーザーが、復元されたテーブルを所有します。

復元されたテーブルは、バックアップが作成された時の状態に戻されます。これには、Amazon Redshift の[直列化分離](https://docs.aws.amazon.com/redshift/latest/dg/c_serial_isolation.html)への準拠により定義されるトランザクションの可視性のルールが含まれます。つまり、バックアップ後に開始した実行中のトランザクションにデータがすぐに見えるようになるということです。

スナップショットからのテーブルの復元には、以下の制限があります。
+ テーブルは、実行中のアクティブなクラスターのみに復元でき、そのクラスターから作成されたスナップショットのみから復元できます。
+ 一度に復元できるのは 1 つのテーブルのみです。
+ クラスターのサイズを変更する前に作成されたクラスターのスナップショットからテーブルを復元することはできません。例外として、ノードタイプが変更されていない場合は、伸縮自在にサイズを変更した後にテーブルを復元できます。
+ ソーステーブルで付与されたビューや許可などの依存関係は、ターゲットテーブルに適用されません。
+ 復元中のテーブルに対して行レベルのセキュリティが有効になっている場合、Amazon Redshift は、行レベルのセキュリティがオンになっているテーブルを復元します。

**スナップショットからテーブルを復元するには**

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/) で Amazon Redshift コンソールを開きます。

1. ナビゲーションメニューで、**[Clusters]** (クラスター) を選択して、テーブルを復元するクラスターを選択します。

1. [**アクション**] で、[**テーブルの復元**] を選択して [**テーブルの復元**] ページを表示します。

1. どのスナップショット、ソーステーブル、およびターゲットテーブルを使うかに関する情報を入力し、次に [**テーブルの復元**] を選択します。

**Example 例: AWS CLI を使用してスナップショットからテーブルを復元する**  
次の例では、`restore-table-from-cluster-snapshot` AWS CLI コマンドを使用して、`my-source-table` の `sample-database` スキーマから `my-snapshot-id` テーブルを復元します。AWS CLI コマンド `describe-table-restore-status` を使用して、復元操作のステータスを確認できます。例では、新しいテーブルの名前 `mycluster-example` を使用して、`my-new-table` クラスターにスナップショットを復元します。  

```
aws redshift restore-table-from-cluster-snapshot --cluster-identifier mycluster-example 
                                                 --new-table-name my-new-table 
                                                 --snapshot-identifier my-snapshot-id 
                                                 --source-database-name sample-database 
                                                 --source-table-name my-source-table
```