Class RollingManifestWriter<F extends ContentFile<F>>

java.lang.Object
org.apache.iceberg.RollingManifestWriter<F>
All Implemented Interfaces:
Closeable, AutoCloseable

public class RollingManifestWriter<F extends ContentFile<F>> extends Object implements Closeable
As opposed to ManifestWriter, a rolling writer could produce multiple manifest files.
  • Constructor Details

    • RollingManifestWriter

      public RollingManifestWriter(Supplier<ManifestWriter<F>> manifestWriterSupplier, long targetFileSizeInBytes)
  • Method Details

    • add

      public void add(F addedFile)
      Add an added entry for a file.

      The entry's snapshot ID will be this manifest's snapshot ID. The data and file sequence numbers will be assigned at commit.

      Parameters:
      addedFile - a data file
    • add

      public void add(F addedFile, long dataSequenceNumber)
      Add an added entry for a file with a specific sequence number.

      The entry's snapshot ID will be this manifest's snapshot ID. The entry's data sequence number will be the provided data sequence number. The entry's file sequence number will be assigned at commit.

      Parameters:
      addedFile - a data file
      dataSequenceNumber - a data sequence number for the file
    • existing

      public void existing(F existingFile, long fileSnapshotId, long dataSequenceNumber, Long fileSequenceNumber)
      Add an existing entry for a file.

      The original data and file sequence numbers, snapshot ID, which were assigned at commit, must be preserved when adding an existing entry.

      Parameters:
      existingFile - a file
      fileSnapshotId - snapshot ID when the data file was added to the table
      dataSequenceNumber - a data sequence number of the file (assigned when the file was added)
      fileSequenceNumber - a file sequence number (assigned when the file was added)
    • delete

      public void delete(F deletedFile, long dataSequenceNumber, Long fileSequenceNumber)
      Add a delete entry for a file.

      The entry's snapshot ID will be this manifest's snapshot ID. However, the original data and file sequence numbers of the file must be preserved when the file is marked as deleted.

      Parameters:
      deletedFile - a file
      dataSequenceNumber - a data sequence number of the file (assigned when the file was added)
      fileSequenceNumber - a file sequence number (assigned when the file was added)
    • close

      public void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • toManifestFiles

      public List<ManifestFile> toManifestFiles()