Package org.apache.iceberg.deletes
Class SortingPositionOnlyDeleteWriter<T>
java.lang.Object
org.apache.iceberg.deletes.SortingPositionOnlyDeleteWriter<T>
- All Implemented Interfaces:
Closeable
,AutoCloseable
,FileWriter<PositionDelete<T>,
DeleteWriteResult>
public class SortingPositionOnlyDeleteWriter<T>
extends Object
implements FileWriter<PositionDelete<T>,DeleteWriteResult>
A position delete writer that is capable of handling unordered deletes without rows.
This writer keeps an in-memory bitmap of deleted positions per each seen data file and flushes
the result into a file when closed. This enables writing position delete files when the incoming
records are not ordered by file and position as required by the spec. If the incoming deletes are
ordered by an external process, use PositionDeleteWriter
instead.
Note this writer stores only positions. It does not store deleted records.
-
Constructor Summary
ConstructorDescriptionSortingPositionOnlyDeleteWriter
(Supplier<FileWriter<PositionDelete<T>, DeleteWriteResult>> writers, DeleteGranularity granularity) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
long
length()
Returns the number of bytes that were currently written by this writer.result()
Returns a result that contains information about writtenDataFile
s orDeleteFile
s.void
write
(PositionDelete<T> positionDelete) Writes a row to a predefined spec/partition.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.iceberg.io.FileWriter
write
-
Constructor Details
-
SortingPositionOnlyDeleteWriter
-
SortingPositionOnlyDeleteWriter
public SortingPositionOnlyDeleteWriter(Supplier<FileWriter<PositionDelete<T>, DeleteWriteResult>> writers, DeleteGranularity granularity)
-
-
Method Details
-
write
Description copied from interface:FileWriter
Writes a row to a predefined spec/partition.- Specified by:
write
in interfaceFileWriter<PositionDelete<T>,
DeleteWriteResult> - Parameters:
positionDelete
- a data or delete record
-
length
public long length()Description copied from interface:FileWriter
Returns the number of bytes that were currently written by this writer.- Specified by:
length
in interfaceFileWriter<PositionDelete<T>,
DeleteWriteResult> - Returns:
- the number of written bytes
-
result
Description copied from interface:FileWriter
Returns a result that contains information about writtenDataFile
s orDeleteFile
s. The result is valid only after the writer is closed.- Specified by:
result
in interfaceFileWriter<PositionDelete<T>,
DeleteWriteResult> - Returns:
- the file writer result
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Throws:
IOException
-