Interface TableLocationKey
- All Superinterfaces:
Comparable<TableLocationKey>
,LogOutputAppendable
,NamedImplementation
- All Known Subinterfaces:
IcebergTableLocationKey
,ImmutableTableLocationKey
- All Known Implementing Classes:
FileTableLocationKey
,IcebergTableParquetLocationKey
,ParquetTableLocationKey
,PartitionedTableLocationKey
,StandaloneTableLocationKey
,URITableLocationKey
public interface TableLocationKey
extends Comparable<TableLocationKey>, NamedImplementation, LogOutputAppendable
Interface for opaque table location keys for use in TableLocationProvider
implementations. Note that
implementations are generally only comparable to other implementations intended for use in the same provider and
discovery framework.
This interface also provides a mechanism for communicating partition information from a discovery framework to the table engine. A partition of a table represents some sub-range of the overall available data, but can always be thought of as a table in its own right. By representing partition membership as an ordered set of key-value pairs with mutually-comparable values, we make it possible to:
- Totally order the set of partitions belonging to a table, and thus all rows of the table
- Refer to partitions via columns of the data, allowing vast savings in filtering efficiency for filters that only need evaluate one or more partitioning columns
Generally, only PartitionAwareSourceTable
and
SourcePartitionedTable
are properly partition-aware.
-
Method Summary
Modifier and TypeMethodDescriptionGet the set of available partition keys.<PARTITION_VALUE_TYPE extends Comparable<PARTITION_VALUE_TYPE>>
PARTITION_VALUE_TYPEgetPartitionValue
(@NotNull String partitionKey) Lookup the value of one of the table partitions enclosing the location keyed bythis
.Get anImmutableTableLocationKey
that is equal to this.Methods inherited from interface java.lang.Comparable
compareTo
Methods inherited from interface io.deephaven.base.log.LogOutputAppendable
append
Methods inherited from interface io.deephaven.util.type.NamedImplementation
getImplementationName
-
Method Details
-
getPartitionValue
<PARTITION_VALUE_TYPE extends Comparable<PARTITION_VALUE_TYPE>> PARTITION_VALUE_TYPE getPartitionValue(@NotNull @NotNull String partitionKey) Lookup the value of one of the table partitions enclosing the location keyed bythis
.- Type Parameters:
PARTITION_VALUE_TYPE
- The expected type of the partition value- Parameters:
partitionKey
- The name of the partition- Returns:
- The partition value
- Throws:
UnknownPartitionKeyException
- If the partition cannot be found
-
getPartitionKeys
Get the set of available partition keys.- Returns:
- The set of available partition keys
-
makeImmutable
ImmutableTableLocationKey makeImmutable()Get anImmutableTableLocationKey
that is equal to this.- Returns:
- An immutable version of this key
-