Class SerializableTable
- All Implemented Interfaces:
- Serializable,- HasTableOperations,- Table
- Direct Known Subclasses:
- SerializableTable.SerializableMetadataTable,- SerializableTableWithSize
An instance of this class represents an immutable serializable copy of a table state and will not reflect any subsequent changed made to the original table.
While this class captures the metadata file location that can be used to load the complete table metadata, it directly persists the current schema, spec, sort order, table properties to avoid reading the metadata file from other nodes for frequently needed metadata.
The implementation assumes the passed instances of FileIO, EncryptionManager
 are serializable. If you are serializing the table using a custom serialization framework like
 Kryo, those instances of FileIO, EncryptionManager must be supported by that
 particular serialization framework.
 
Note: loading the complete metadata from a large number of nodes can overwhelm the storage.
- See Also:
- 
Nested Class SummaryNested Classes
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionstatic TableCreates a read-only serializable table that can be sent to other nodes in a cluster.Get the currentsnapshotfor this table, or null if there are no snapshots.Returns anEncryptionManagerto encrypt and decrypt data files.Create a newexpire APIto expire snapshots in this table and commit.inthistory()Get the snapshot history of this table.io()Returns aFileIOto read and write table data and metadata files.location()Return the table's base location.Returns aLocationProviderto provide locations for new data files.Create a newmanage snapshots APIto manage snapshots in this table and commit.name()Return the full name for this table.Create a newappend APIto add files to this table and commit.Create a newbatch scanfor this table.Create a newdelete APIto delete files in this table and commit.Create a newscanfor this table.Create a newIncrementalChangelogScanfor this table.Create a newoverwrite APIto overwrite files by a filter expression.Not recommended: Create a newreplace partitions APIto dynamically overwrite partitions in the table with new data.Create a newrewrite APIto replace files in this table and commit.Create a newrow-level delta APIto remove or replace rows in existing data files.newScan()Create a newscanfor this table.protected TablenewTable(TableOperations ops, String tableName) Create a newtransaction APIto commit multiple table operations at once.Returns the current partition statistics files for the table.Return a map of string properties for this table.voidrefresh()Refresh the current table metadata.refs()Returns the current refs for the tableCreate a newReplaceSortOrderto set the table sort order and commit the change.Create a newrewrite manifests APIto replace manifests for this table and commit.schema()Return theschemafor this table.schemas()Return a map ofschemafor this table.snapshot(long snapshotId) Get thesnapshotof this table with the given id, or null if there is no matching snapshot.Get thesnapshotsof this table.Return thesort orderfor this table.Return a map of sort order IDs tosort ordersfor this table.spec()Return thepartition specfor this table.specs()Return a map ofpartition specsfor this table.Returns the current statistics files for the tableCreate a newUpdateLocationto update table location and commit the changes.Create a newupdate partition statistics APIto add or remove partition statistics files in this table.Create a newUpdatePropertiesto update table properties and commit the changes.Create a newUpdateSchemato alter the columns of this table and commit the change.Create a newUpdatePartitionSpecto alter the partition spec of this table and commit the change.Create a newupdate table statistics APIto add or remove statistics files in this table.uuid()Returns the UUID of the tableMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.iceberg.TablenewFastAppend, snapshot
- 
Constructor Details- 
SerializableTable
 
- 
- 
Method Details- 
copyOfCreates a read-only serializable table that can be sent to other nodes in a cluster.- Parameters:
- table- the original table to copy the state from
- Returns:
- a read-only serializable table reflecting the current state of the original table
 
- 
metadataFileLocation
- 
newTable
- 
nameDescription copied from interface:TableReturn the full name for this table.
- 
locationDescription copied from interface:TableReturn the table's base location.
- 
propertiesDescription copied from interface:TableReturn a map of string properties for this table.- Specified by:
- propertiesin interface- Table
- Returns:
- this table's properties map
 
- 
formatVersionpublic int formatVersion()
- 
schemaDescription copied from interface:TableReturn theschemafor this table.
- 
schemasDescription copied from interface:TableReturn a map ofschemafor this table.
- 
specDescription copied from interface:TableReturn thepartition specfor this table.
- 
specsDescription copied from interface:TableReturn a map ofpartition specsfor this table.
- 
sortOrderDescription copied from interface:TableReturn thesort orderfor this table.
- 
sortOrdersDescription copied from interface:TableReturn a map of sort order IDs tosort ordersfor this table.- Specified by:
- sortOrdersin interface- Table
- Returns:
- this table's sort orders map
 
- 
ioDescription copied from interface:TableReturns aFileIOto read and write table data and metadata files.
- 
encryptionDescription copied from interface:TableReturns anEncryptionManagerto encrypt and decrypt data files.- Specified by:
- encryptionin interface- Table
 
- 
locationProviderDescription copied from interface:TableReturns aLocationProviderto provide locations for new data files.- Specified by:
- locationProviderin interface- Table
 
- 
statisticsFilesDescription copied from interface:TableReturns the current statistics files for the table- Specified by:
- statisticsFilesin interface- Table
- Returns:
- the current statistics files for the table
 
- 
partitionStatisticsFilesDescription copied from interface:TableReturns the current partition statistics files for the table.- Specified by:
- partitionStatisticsFilesin interface- Table
 
- 
refsDescription copied from interface:TableReturns the current refs for the table
- 
uuidDescription copied from interface:TableReturns the UUID of the table
- 
refreshpublic void refresh()Description copied from interface:TableRefresh the current table metadata.
- 
newScanDescription copied from interface:TableCreate a newscanfor this table.Once a table scan is created, it can be refined to project columns and filter data. 
- 
newIncrementalAppendScanDescription copied from interface:TableCreate a newscanfor this table.Once a scan is created, it can be refined to project columns and filter data. - Specified by:
- newIncrementalAppendScanin interface- Table
- Returns:
- an incremental scan for appends only snapshots
 
- 
newIncrementalChangelogScanDescription copied from interface:TableCreate a newIncrementalChangelogScanfor this table.Once a scan is created, it can be refined to project columns and filter data. - Specified by:
- newIncrementalChangelogScanin interface- Table
- Returns:
- an incremental changelog scan
 
- 
newBatchScanDescription copied from interface:TableCreate a newbatch scanfor this table.Once a batch scan is created, it can be refined to project columns and filter data. - Specified by:
- newBatchScanin interface- Table
- Returns:
- a batch scan for this table
 
- 
currentSnapshotDescription copied from interface:TableGet the currentsnapshotfor this table, or null if there are no snapshots.- Specified by:
- currentSnapshotin interface- Table
- Returns:
- the current table Snapshot.
 
- 
snapshotDescription copied from interface:TableGet thesnapshotof this table with the given id, or null if there is no matching snapshot.
- 
snapshotsDescription copied from interface:TableGet thesnapshotsof this table.
- 
historyDescription copied from interface:TableGet the snapshot history of this table.- Specified by:
- historyin interface- Table
- Returns:
- a list of history entries
 
- 
updateSchemaDescription copied from interface:TableCreate a newUpdateSchemato alter the columns of this table and commit the change.- Specified by:
- updateSchemain interface- Table
- Returns:
- a new UpdateSchema
 
- 
updateSpecDescription copied from interface:TableCreate a newUpdatePartitionSpecto alter the partition spec of this table and commit the change.- Specified by:
- updateSpecin interface- Table
- Returns:
- a new UpdatePartitionSpec
 
- 
updatePropertiesDescription copied from interface:TableCreate a newUpdatePropertiesto update table properties and commit the changes.- Specified by:
- updatePropertiesin interface- Table
- Returns:
- a new UpdateProperties
 
- 
replaceSortOrderDescription copied from interface:TableCreate a newReplaceSortOrderto set the table sort order and commit the change.- Specified by:
- replaceSortOrderin interface- Table
- Returns:
- a new ReplaceSortOrder
 
- 
updateLocationDescription copied from interface:TableCreate a newUpdateLocationto update table location and commit the changes.- Specified by:
- updateLocationin interface- Table
- Returns:
- a new UpdateLocation
 
- 
newAppendDescription copied from interface:TableCreate a newappend APIto add files to this table and commit.- Specified by:
- newAppendin interface- Table
- Returns:
- a new AppendFiles
 
- 
newRewriteDescription copied from interface:TableCreate a newrewrite APIto replace files in this table and commit.- Specified by:
- newRewritein interface- Table
- Returns:
- a new RewriteFiles
 
- 
rewriteManifestsDescription copied from interface:TableCreate a newrewrite manifests APIto replace manifests for this table and commit.- Specified by:
- rewriteManifestsin interface- Table
- Returns:
- a new RewriteManifests
 
- 
newOverwriteDescription copied from interface:TableCreate a newoverwrite APIto overwrite files by a filter expression.- Specified by:
- newOverwritein interface- Table
- Returns:
- a new OverwriteFiles
 
- 
newRowDeltaDescription copied from interface:TableCreate a newrow-level delta APIto remove or replace rows in existing data files.- Specified by:
- newRowDeltain interface- Table
- Returns:
- a new RowDelta
 
- 
newReplacePartitionsDescription copied from interface:TableNot recommended: Create a newreplace partitions APIto dynamically overwrite partitions in the table with new data.This is provided to implement SQL compatible with Hive table operations but is not recommended. Instead, use the overwrite APIto explicitly overwrite data.- Specified by:
- newReplacePartitionsin interface- Table
- Returns:
- a new ReplacePartitions
 
- 
newDeleteDescription copied from interface:TableCreate a newdelete APIto delete files in this table and commit.- Specified by:
- newDeletein interface- Table
- Returns:
- a new DeleteFiles
 
- 
updateStatisticsDescription copied from interface:TableCreate a newupdate table statistics APIto add or remove statistics files in this table.- Specified by:
- updateStatisticsin interface- Table
- Returns:
- a new UpdateStatistics
 
- 
updatePartitionStatisticsDescription copied from interface:TableCreate a newupdate partition statistics APIto add or remove partition statistics files in this table.- Specified by:
- updatePartitionStatisticsin interface- Table
- Returns:
- a new UpdatePartitionStatistics
 
- 
expireSnapshotsDescription copied from interface:TableCreate a newexpire APIto expire snapshots in this table and commit.- Specified by:
- expireSnapshotsin interface- Table
- Returns:
- a new ExpireSnapshots
 
- 
manageSnapshotsDescription copied from interface:TableCreate a newmanage snapshots APIto manage snapshots in this table and commit.- Specified by:
- manageSnapshotsin interface- Table
- Returns:
- a new ManageSnapshots
 
- 
newTransactionDescription copied from interface:TableCreate a newtransaction APIto commit multiple table operations at once.- Specified by:
- newTransactionin interface- Table
- Returns:
- a new Transaction
 
- 
operations- Specified by:
- operationsin interface- HasTableOperations
 
 
-