Parquex. TimePartition
(parquex v0.3.0)
View Source
The validated event-time partition contract for a dataset.
Partitions use UTC and canonical Hive-style paths. Ranges are half-open:
[from, until). Calendar partitions use ordinary calendar years; week
partitions use ISO week years.
Examples
iex> {:ok, spec} = Parquex.TimePartition.new({:time, :occurred_at, :hour}, :microsecond)
iex> {:ok, partition} = Parquex.TimePartition.for_timestamp(spec, ~U[2026-08-03 12:31:45Z])
iex> partition.path
"year=2026/month=8/day=3/hour=12"
Summary
Functions
Calculates the canonical partition containing one UTC instant.
Returns the supported partition granularities.
Strictly parses one canonical partition path for this granularity.
Returns only the canonical relative partition path for one instant.
Plans each partition overlapping the half-open range [from, until).
Types
@type granularity() :: :minute | :hour | :day | :week | :month
@type t() :: %Parquex.TimePartition{ column: String.t(), granularity: granularity(), timestamp_unit: timestamp_unit() }
@type timestamp_unit() :: :second | :millisecond | :microsecond | :nanosecond
Functions
@spec for_timestamp(t(), DateTime.t() | NaiveDateTime.t() | integer()) :: {:ok, Parquex.TimePartition.Partition.t()} | {:error, Parquex.Error.t()}
Calculates the canonical partition containing one UTC instant.
@spec granularities() :: [granularity()]
Returns the supported partition granularities.
@spec parse(t(), String.t()) :: {:ok, Parquex.TimePartition.Partition.t()} | {:error, Parquex.Error.t()}
Strictly parses one canonical partition path for this granularity.
@spec path(t(), DateTime.t() | NaiveDateTime.t() | integer()) :: {:ok, String.t()} | {:error, Parquex.Error.t()}
Returns only the canonical relative partition path for one instant.
@spec plan( t(), DateTime.t() | NaiveDateTime.t() | integer(), DateTime.t() | NaiveDateTime.t() | integer(), keyword() ) :: {:ok, [Parquex.TimePartition.Partition.t()]} | {:error, Parquex.Error.t()}
Plans each partition overlapping the half-open range [from, until).