Open npawar opened 6 years ago
I want to discuss about enforcing a uniform type & format and only allow users to pick the granularity for the primary time column
, which is configured in the table config.
start with the primary time column (enforced to have long, "1:milliseconds:epoch", user-defined-granularity
).
Users can initially try to use time conversion UDF on the primary time column for their needs
If they need the better performance, they can add a new time column to dateTimeFieldSpecs
with the specific time format & type that they want to materialize.
I think that having a uniform type & format for the primary column can simplify a lot of components because we won't need to support all different type formats when we need to play with the time. For example, segment roll-up config can be very simple - instead of having type, format, granularity, only granularity will be needed.
Another huge benefit will be an easier integration with external UIs such as Superset. I believe that Pinot-Superset connector have some extra logic to convert the time column values into a format that Superset understands. Since pinot's time column format/type will be different for each table, the external system now needs to know about Pinot's table configuration & schema (or similar time conversion config need to be specified for each table on Superset) for correctly parsing the time column value.
Since we make the interface change to the time column, it would be great if we can discuss about this.
@kishoreg @npawar @mayankshriv @Jackie-Jiang How do you guys think?
I agree this would be nice to have, and see the benefits we gain for merge/rollup and integrations. I would prefer if we first get to making dateTimeFieldSpec the default, and then focus on this. Once we have only dateTimeFieldSpec, it'll be easier to add tooling and validations for achieving this. I feel this change is kinda tricky as it is, and don't want to mix up goals.
In the Pinot Schema, stop using TimeFieldSpec, in favor of DateTimeFieldSpec.
The TimeFieldSpec is not adequate for the following reasons