hi! in the past, i've always had a primary key whe...
# troubleshooting
j
hi! in the past, i've always had a primary key where i'm doing some equality filtering in a
where
clause and have used
segmentPartitionConfig
and
bloomFilterColumns
to make sure i'm really only querying a single segment & single server. i'm trying to configure a table to support queries that don't necessarily have any equality clause in the
where
but will always have a time clause, like
where created > X
. i've noticed all my queries hit all the servers and all the segments. am i doing something wrong? i thought time columns had some special handling maybe! (if it helps, this is an offline table)
m
Server pruning happens if you configure partitioning, which seems to be the case originally. For your new queries even if it is hitting all servers (because you don’t have partition column in query), there are a ton of optimizations (eg metadata based pruning) that will happen on server side. You can also set up range index on time column (assuming not high cardinaliry like millis), and inv index on other columns for your query
j
Yup, fwiw, it's still very performant with star tree + inverted indexes. I was mostly wondering if I was missing something obvious. I should def try a range index. OOC, is there any value to sorting/partitioning the data by time before ingesting it into Pinot? IIRC, for sorted indexes and offline tables there was some suggestion about that in the docs.
m
Primary key is the one to sort and partition on