public interface ManageSnapshots extends PendingUpdate<Snapshot>
snapshot
. Rollback:
This API does not allow conflicting calls to setCurrentSnapshot(long)
and rollbackToTime(long)
.
When committing, these changes will be applied to the current table metadata. Commit conflicts
will not be resolved and will result in a CommitFailedException
. Cherrypick:
In an audit workflow, new data is written to an orphan snapshot
that is not
committed as the table's current state until it is audited. After auditing a change, it may need
to be applied or cherry-picked on top of the latest snapshot instead of the one that was current
when the audited changes were created. This class adds support for cherry-picking the changes
from an orphan snapshot by applying them to the current snapshot. The output of the operation is
a new snapshot with the changes from cherry-picked snapshot.
Modifier and Type | Method and Description |
---|---|
ManageSnapshots |
cherrypick(long snapshotId)
Apply supported changes in given snapshot and create a new snapshot which will be set as the
current snapshot on commit.
|
ManageSnapshots |
createBranch(java.lang.String name,
long snapshotId)
Create a new branch pointing to the given snapshot id.
|
ManageSnapshots |
createTag(java.lang.String name,
long snapshotId)
Create a new tag pointing to the given snapshot id
|
ManageSnapshots |
fastForwardBranch(java.lang.String name,
java.lang.String source)
Performs a fast-forward of the given target branch up to the source snapshot if target is an
ancestor of source.
|
ManageSnapshots |
removeBranch(java.lang.String name)
Remove a branch by name
|
ManageSnapshots |
removeTag(java.lang.String name)
Remove the tag with the given name.
|
ManageSnapshots |
renameBranch(java.lang.String name,
java.lang.String newName)
Rename a branch
|
ManageSnapshots |
replaceBranch(java.lang.String name,
long snapshotId)
Replaces the branch with the given name to point to the specified snapshot
|
ManageSnapshots |
replaceBranch(java.lang.String name,
java.lang.String source)
Replaces the branch with the given name to point to the source snapshot.
|
ManageSnapshots |
replaceTag(java.lang.String name,
long snapshotId)
Replaces the tag with the given name to point to the specified snapshot.
|
ManageSnapshots |
rollbackTo(long snapshotId)
Rollback table's state to a specific
Snapshot identified by id. |
ManageSnapshots |
rollbackToTime(long timestampMillis)
Roll this table's data back to the last
Snapshot before the given timestamp. |
ManageSnapshots |
setCurrentSnapshot(long snapshotId)
Roll this table's data back to a specific
Snapshot identified by id. |
ManageSnapshots |
setMaxRefAgeMs(java.lang.String name,
long maxRefAgeMs)
Updates the retention policy for a reference.
|
ManageSnapshots |
setMaxSnapshotAgeMs(java.lang.String branchName,
long maxSnapshotAgeMs)
Updates the max snapshot age for a branch.
|
ManageSnapshots |
setMinSnapshotsToKeep(java.lang.String branchName,
int minSnapshotsToKeep)
Updates the minimum number of snapshots to keep for a branch.
|
apply, commit, updateEvent
ManageSnapshots setCurrentSnapshot(long snapshotId)
Snapshot
identified by id.snapshotId
- long id of the snapshot to roll back table data tojava.lang.IllegalArgumentException
- If the table has no snapshot with the given idManageSnapshots rollbackToTime(long timestampMillis)
Snapshot
before the given timestamp.timestampMillis
- a long timestamp, as returned by System.currentTimeMillis()
java.lang.IllegalArgumentException
- If the table has no old snapshot before the given timestampManageSnapshots rollbackTo(long snapshotId)
Snapshot
identified by id.snapshotId
- long id of snapshot id to roll back table to. Must be an ancestor of the
current snapshotjava.lang.IllegalArgumentException
- If the table has no snapshot with the given idValidationException
- If given snapshot id is not an ancestor of the current stateManageSnapshots cherrypick(long snapshotId)
snapshotId
- a snapshotId whose changes to applyjava.lang.IllegalArgumentException
- If the table has no snapshot with the given idDuplicateWAPCommitException
- In case of a WAP workflow and if the table has a duplicate
commit with same wapIdManageSnapshots createBranch(java.lang.String name, long snapshotId)
name
- branch namesnapshotId
- id of the snapshot which will be the head of the branchjava.lang.IllegalArgumentException
- if a branch with the given name already existsManageSnapshots createTag(java.lang.String name, long snapshotId)
name
- tag namesnapshotId
- snapshotId for the head of the new branch.java.lang.IllegalArgumentException
- if a tag with the given name already existsManageSnapshots removeBranch(java.lang.String name)
name
- branch namejava.lang.IllegalArgumentException
- if the branch does not existManageSnapshots renameBranch(java.lang.String name, java.lang.String newName)
name
- name of branch to renamenewName
- the desired new name of the branchjava.lang.IllegalArgumentException
- if the branch to rename does not exist or if there is already
a branch with the same name as the desired new name.ManageSnapshots removeTag(java.lang.String name)
name
- tag namejava.lang.IllegalArgumentException
- if the branch does not existManageSnapshots replaceTag(java.lang.String name, long snapshotId)
name
- Tag to replacesnapshotId
- new snapshot id for the given tagManageSnapshots replaceBranch(java.lang.String name, long snapshotId)
name
- Branch to replacesnapshotId
- new snapshot id for the given branchManageSnapshots replaceBranch(java.lang.String name, java.lang.String source)
name
- Branch to replacesource
- Source reference for the target to be replaced withManageSnapshots fastForwardBranch(java.lang.String name, java.lang.String source)
name
- Branch to fast-forwardsource
- Source reference for the target to be fast forwarded tojava.lang.IllegalArgumentException
- if the target branch is not an ancestor of sourceManageSnapshots setMinSnapshotsToKeep(java.lang.String branchName, int minSnapshotsToKeep)
branchName
- branch nameminSnapshotsToKeep
- minimum number of snapshots to retain on the branchjava.lang.IllegalArgumentException
- if the branch does not existManageSnapshots setMaxSnapshotAgeMs(java.lang.String branchName, long maxSnapshotAgeMs)
branchName
- branch namemaxSnapshotAgeMs
- maximum snapshot age in milliseconds to retain on branchjava.lang.IllegalArgumentException
- if the branch does not existManageSnapshots setMaxRefAgeMs(java.lang.String name, long maxRefAgeMs)
name
- branch namemaxRefAgeMs
- retention age in milliseconds of the tag reference itselfjava.lang.IllegalArgumentException
- if the reference does not exist