Creates a new table from a table in an Amazon Redshift cluster snapshot. You must create the new table within the Amazon Redshift cluster that the snapshot was taken from.
You cannot use RestoreTableFromClusterSnapshot
to restore a table with the same name as an existing table in an Amazon Redshift cluster. That is, you cannot overwrite an existing table in a cluster with a restored table. If you want to replace your original table with a new, restored table, then rename or drop your original table before you call RestoreTableFromClusterSnapshot
. When you have renamed your original table, then you can pass the original name of the table as the NewTableName
parameter value in the call to RestoreTableFromClusterSnapshot
. This way, you can replace the original table with the table created from the snapshot.
See also: AWS API Documentation
See ‘aws help’ for descriptions of global parameters.
restore-table-from-cluster-snapshot
--cluster-identifier <value>
--snapshot-identifier <value>
--source-database-name <value>
[--source-schema-name <value>]
--source-table-name <value>
[--target-database-name <value>]
[--target-schema-name <value>]
--new-table-name <value>
[--enable-case-sensitive-identifier | --no-enable-case-sensitive-identifier]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
--cluster-identifier
(string)
The identifier of the Amazon Redshift cluster to restore the table to.
--snapshot-identifier
(string)
The identifier of the snapshot to restore the table from. This snapshot must have been created from the Amazon Redshift cluster specified by the
ClusterIdentifier
parameter.
--source-database-name
(string)
The name of the source database that contains the table to restore from.
--source-schema-name
(string)
The name of the source schema that contains the table to restore from. If you do not specify a
SourceSchemaName
value, the default ispublic
.
--source-table-name
(string)
The name of the source table to restore from.
--target-database-name
(string)
The name of the database to restore the table to.
--target-schema-name
(string)
The name of the schema to restore the table to.
--new-table-name
(string)
The name of the table to create as a result of the current request.
--enable-case-sensitive-identifier
| --no-enable-case-sensitive-identifier
(boolean)
Indicates whether name identifiers for database, schema, and table are case sensitive. If
true
, the names are case sensitive. Iffalse
(default), the names are not case sensitive.
--cli-input-json
| --cli-input-yaml
(string)
Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton
. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml
.
--generate-cli-skeleton
(string)
Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input
, prints a sample input JSON that can be used as an argument for --cli-input-json
. Similarly, if provided yaml-input
it will print a sample input YAML that can be used with --cli-input-yaml
. If provided with the value output
, it validates the command inputs and returns a sample output JSON for that command.
See ‘aws help’ for descriptions of global parameters.
To restore table from a cluster snapshot
The following restore-table-from-cluster-snapshot
example creates a new table from the specified table in the specified cluster snapshot.
aws redshift restore-table-from-cluster-snapshot /
--cluster-identifier mycluster /
--snapshot-identifier mycluster-2019-11-19-16-17 /
--source-database-name dev /
--source-schema-name public /
--source-table-name mytable /
--target-database-name dev /
--target-schema-name public /
--new-table-name mytable-clone
Output:
{
"TableRestoreStatus": {
"TableRestoreRequestId": "a123a12b-abc1-1a1a-a123-a1234ab12345",
"Status": "PENDING",
"RequestTime": "2019-12-20T00:20:16.402Z",
"ClusterIdentifier": "mycluster",
"SnapshotIdentifier": "mycluster-2019-11-19-16-17",
"SourceDatabaseName": "dev",
"SourceSchemaName": "public",
"SourceTableName": "mytable",
"TargetDatabaseName": "dev",
"TargetSchemaName": "public",
"NewTableName": "mytable-clone"
}
}
For more information, see Restoring a Table from a Snapshot in the Amazon Redshift Cluster Management Guide.
TableRestoreStatus -> (structure)
Describes the status of a RestoreTableFromClusterSnapshot operation.
TableRestoreRequestId -> (string)
The unique identifier for the table restore request.
Status -> (string)
A value that describes the current state of the table restore request.
Valid Values:
SUCCEEDED
,FAILED
,CANCELED
,PENDING
,IN_PROGRESS
Message -> (string)
A description of the status of the table restore request. Status values include
SUCCEEDED
,FAILED
,CANCELED
,PENDING
,IN_PROGRESS
.RequestTime -> (timestamp)
The time that the table restore request was made, in Universal Coordinated Time (UTC).
ProgressInMegaBytes -> (long)
The amount of data restored to the new table so far, in megabytes (MB).
TotalDataInMegaBytes -> (long)
The total amount of data to restore to the new table, in megabytes (MB).
ClusterIdentifier -> (string)
The identifier of the Amazon Redshift cluster that the table is being restored to.
SnapshotIdentifier -> (string)
The identifier of the snapshot that the table is being restored from.
SourceDatabaseName -> (string)
The name of the source database that contains the table being restored.
SourceSchemaName -> (string)
The name of the source schema that contains the table being restored.
SourceTableName -> (string)
The name of the source table being restored.
TargetDatabaseName -> (string)
The name of the database to restore the table to.
TargetSchemaName -> (string)
The name of the schema to restore the table to.
NewTableName -> (string)
The name of the table to create as a result of the table restore request.