Class SerializableTable
- java.lang.Object
- 
- org.apache.iceberg.SerializableTable
 
- 
- All Implemented Interfaces:
- java.io.Serializable,- Table
 - Direct Known Subclasses:
- SerializableTable.SerializableMetadataTable,- SerializableTableWithSize
 
 public class SerializableTable extends java.lang.Object implements Table, java.io.Serializable A read-only serializable table that can be sent to other nodes in a cluster.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,LocationProviderare serializable. If you are serializing the table using a custom serialization framework like Kryo, those instances ofFileIO,EncryptionManager,LocationProvidermust be supported by that particular serialization framework.Note: loading the complete metadata from a large number of nodes can overwhelm the storage. - See Also:
- Serialized Form
 
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classSerializableTable.SerializableMetadataTable
 - 
Constructor SummaryConstructors Modifier Constructor Description protectedSerializableTable(Table table)
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TablecopyOf(Table table)Creates a read-only serializable table that can be sent to other nodes in a cluster.SnapshotcurrentSnapshot()Get the currentsnapshotfor this table, or null if there are no snapshots.EncryptionManagerencryption()Returns anEncryptionManagerto encrypt and decrypt data files.ExpireSnapshotsexpireSnapshots()Create a newexpire APIto manage snapshots in this table and commit.java.util.List<HistoryEntry>history()Get the snapshot history of this table.FileIOio()Returns aFileIOto read and write table data and metadata files.java.lang.Stringlocation()Return the table's base location.LocationProviderlocationProvider()Returns aLocationProviderto provide locations for new data files.ManageSnapshotsmanageSnapshots()Create a newmanage snapshots APIto manage snapshots in this table and commit.java.lang.Stringname()Return the full name for this table.AppendFilesnewAppend()Create a newappend APIto add files to this table and commit.BatchScannewBatchScan()Create a newbatch scanfor this table.DeleteFilesnewDelete()Create a newdelete APIto replace files in this table and commit.OverwriteFilesnewOverwrite()Create a newoverwrite APIto overwrite files by a filter expression.ReplacePartitionsnewReplacePartitions()Not recommended: Create a newreplace partitions APIto dynamically overwrite partitions in the table with new data.RewriteFilesnewRewrite()Create a newrewrite APIto replace files in this table and commit.RowDeltanewRowDelta()Create a newrow-level delta APIto remove or replace rows in existing data files.TableScannewScan()Create a newscanfor this table.protected TablenewTable(TableOperations ops, java.lang.String tableName)TransactionnewTransaction()Create a newtransaction APIto commit multiple table operations at once.java.util.Map<java.lang.String,java.lang.String>properties()Return a map of string properties for this table.voidrefresh()Refresh the current table metadata.java.util.Map<java.lang.String,SnapshotRef>refs()Returns the current refs for the tableReplaceSortOrderreplaceSortOrder()Create a newReplaceSortOrderto set the table sort order and commit the change.RewriteManifestsrewriteManifests()Create a newrewrite manifests APIto replace manifests for this table and commit.Schemaschema()Return theschemafor this table.java.util.Map<java.lang.Integer,Schema>schemas()Return a map ofschemafor this table.Snapshotsnapshot(long snapshotId)Get thesnapshotof this table with the given id, or null if there is no matching snapshot.java.lang.Iterable<Snapshot>snapshots()Get thesnapshotsof this table.SortOrdersortOrder()Return thesort orderfor this table.java.util.Map<java.lang.Integer,SortOrder>sortOrders()Return a map of sort order IDs tosort ordersfor this table.PartitionSpecspec()Return thepartition specfor this table.java.util.Map<java.lang.Integer,PartitionSpec>specs()Return a map ofpartition specsfor this table.java.util.List<StatisticsFile>statisticsFiles()Returns the current statistics files for the tableUpdateLocationupdateLocation()Create a newUpdateLocationto update table location and commit the changes.UpdatePropertiesupdateProperties()Create a newUpdatePropertiesto update table properties and commit the changes.UpdateSchemaupdateSchema()Create a newUpdateSchemato alter the columns of this table and commit the change.UpdatePartitionSpecupdateSpec()Create a newUpdatePartitionSpecto alter the partition spec of this table and commit the change.UpdateStatisticsupdateStatistics()Create a newupdate table statistics APIto add or remove statistics files in this table.- 
Methods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 - 
Methods inherited from interface org.apache.iceberg.TablenewFastAppend, newIncrementalAppendScan, newIncrementalChangelogScan, snapshot
 
- 
 
- 
- 
- 
Constructor Detail- 
SerializableTableprotected SerializableTable(Table table) 
 
- 
 - 
Method Detail- 
copyOfpublic static Table copyOf(Table table) Creates 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
 
 - 
newTableprotected Table newTable(TableOperations ops, java.lang.String tableName) 
 - 
namepublic java.lang.String name() Description copied from interface:TableReturn the full name for this table.
 - 
locationpublic java.lang.String location() Description copied from interface:TableReturn the table's base location.
 - 
propertiespublic java.util.Map<java.lang.String,java.lang.String> properties() Description copied from interface:TableReturn a map of string properties for this table.- Specified by:
- propertiesin interface- Table
- Returns:
- this table's properties map
 
 - 
schemapublic Schema schema() Description copied from interface:TableReturn theschemafor this table.
 - 
schemaspublic java.util.Map<java.lang.Integer,Schema> schemas() Description copied from interface:TableReturn a map ofschemafor this table.
 - 
specpublic PartitionSpec spec() Description copied from interface:TableReturn thepartition specfor this table.
 - 
specspublic java.util.Map<java.lang.Integer,PartitionSpec> specs() Description copied from interface:TableReturn a map ofpartition specsfor this table.
 - 
sortOrderpublic SortOrder sortOrder() Description copied from interface:TableReturn thesort orderfor this table.
 - 
sortOrderspublic java.util.Map<java.lang.Integer,SortOrder> sortOrders() Description 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
 
 - 
iopublic FileIO io() Description copied from interface:TableReturns aFileIOto read and write table data and metadata files.
 - 
encryptionpublic EncryptionManager encryption() Description copied from interface:TableReturns anEncryptionManagerto encrypt and decrypt data files.- Specified by:
- encryptionin interface- Table
 
 - 
locationProviderpublic LocationProvider locationProvider() Description copied from interface:TableReturns aLocationProviderto provide locations for new data files.- Specified by:
- locationProviderin interface- Table
 
 - 
statisticsFilespublic java.util.List<StatisticsFile> statisticsFiles() Description copied from interface:TableReturns the current statistics files for the table- Specified by:
- statisticsFilesin interface- Table
- Returns:
- the current statistics files for the table
 
 - 
refspublic java.util.Map<java.lang.String,SnapshotRef> refs() Description copied from interface:TableReturns the current refs for the table
 - 
refreshpublic void refresh() Description copied from interface:TableRefresh the current table metadata.
 - 
newScanpublic TableScan newScan() Description copied from interface:TableCreate a newscanfor this table.Once a table scan is created, it can be refined to project columns and filter data. 
 - 
newBatchScanpublic BatchScan newBatchScan() Description 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
 
 - 
currentSnapshotpublic Snapshot currentSnapshot() Description 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.
 
 - 
snapshotpublic Snapshot snapshot(long snapshotId) Description copied from interface:TableGet thesnapshotof this table with the given id, or null if there is no matching snapshot.
 - 
snapshotspublic java.lang.Iterable<Snapshot> snapshots() Description copied from interface:TableGet thesnapshotsof this table.
 - 
historypublic java.util.List<HistoryEntry> history() Description copied from interface:TableGet the snapshot history of this table.- Specified by:
- historyin interface- Table
- Returns:
- a list of history entries
 
 - 
updateSchemapublic UpdateSchema updateSchema() Description 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
 
 - 
updateSpecpublic UpdatePartitionSpec updateSpec() Description 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
 
 - 
updatePropertiespublic UpdateProperties updateProperties() Description copied from interface:TableCreate a newUpdatePropertiesto update table properties and commit the changes.- Specified by:
- updatePropertiesin interface- Table
- Returns:
- a new UpdateProperties
 
 - 
replaceSortOrderpublic ReplaceSortOrder replaceSortOrder() Description copied from interface:TableCreate a newReplaceSortOrderto set the table sort order and commit the change.- Specified by:
- replaceSortOrderin interface- Table
- Returns:
- a new ReplaceSortOrder
 
 - 
updateLocationpublic UpdateLocation updateLocation() Description copied from interface:TableCreate a newUpdateLocationto update table location and commit the changes.- Specified by:
- updateLocationin interface- Table
- Returns:
- a new UpdateLocation
 
 - 
newAppendpublic AppendFiles newAppend() Description copied from interface:TableCreate a newappend APIto add files to this table and commit.- Specified by:
- newAppendin interface- Table
- Returns:
- a new AppendFiles
 
 - 
newRewritepublic RewriteFiles newRewrite() Description copied from interface:TableCreate a newrewrite APIto replace files in this table and commit.- Specified by:
- newRewritein interface- Table
- Returns:
- a new RewriteFiles
 
 - 
rewriteManifestspublic RewriteManifests rewriteManifests() Description copied from interface:TableCreate a newrewrite manifests APIto replace manifests for this table and commit.- Specified by:
- rewriteManifestsin interface- Table
- Returns:
- a new RewriteManifests
 
 - 
newOverwritepublic OverwriteFiles newOverwrite() Description copied from interface:TableCreate a newoverwrite APIto overwrite files by a filter expression.- Specified by:
- newOverwritein interface- Table
- Returns:
- a new OverwriteFiles
 
 - 
newRowDeltapublic RowDelta newRowDelta() Description 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
 
 - 
newReplacePartitionspublic ReplacePartitions newReplacePartitions() Description 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
 
 - 
newDeletepublic DeleteFiles newDelete() Description copied from interface:TableCreate a newdelete APIto replace files in this table and commit.- Specified by:
- newDeletein interface- Table
- Returns:
- a new DeleteFiles
 
 - 
updateStatisticspublic UpdateStatistics updateStatistics() Description 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
 
 - 
expireSnapshotspublic ExpireSnapshots expireSnapshots() Description copied from interface:TableCreate a newexpire APIto manage snapshots in this table and commit.- Specified by:
- expireSnapshotsin interface- Table
- Returns:
- a new ExpireSnapshots
 
 - 
manageSnapshotspublic ManageSnapshots manageSnapshots() Description copied from interface:TableCreate a newmanage snapshots APIto manage snapshots in this table and commit.- Specified by:
- manageSnapshotsin interface- Table
- Returns:
- a new ManageSnapshots
 
 - 
newTransactionpublic Transaction newTransaction() Description copied from interface:TableCreate a newtransaction APIto commit multiple table operations at once.- Specified by:
- newTransactionin interface- Table
- Returns:
- a new Transaction
 
 
- 
 
-