Please define "derived field"?

We don't allow empty string as a tag value, so that sentinel value is
available. However, there are some second-order effects that need to be
considered.

Just thinking out loud, I haven't explored using default values for tags in
our Iceberg export code; certainly need to.
https://iceberg.apache.org/spec/#default-values

On Tue, Aug 29, 2023 at 9:52 AM Ryan Blue <b...@tabular.io> wrote:

> Jacob, could you model this with a derived field? Or could you require the
> tags and use a "unknown" value?
>
> On Mon, Aug 28, 2023 at 11:18 AM Jacob Marble <jacobmar...@influxdata.com>
> wrote:
>
>> On Fri, Aug 25, 2023 at 3:23 PM Ryan Blue <b...@tabular.io> wrote:
>>
>>> I don't think that we should introduce nanosecond precision types
>>> without at least supporting both timestamp and timestamptz. I'm not sure
>>> whether nanosecond time should be supported.
>>>
>>
>> SGTM; this seems to be the most agreeable part of the proposal.
>>
>> For the primary keys, what is the use case you're trying to solve? Do
>>> your tables allow null values in primary keys? If so, what is the purpose
>>> of it?
>>>
>>
>> InfluxDB is a schema-on-write database; tables and columns are created by
>> writing to them. Constraints:
>> - Every table has exactly one timestamp[nanos] column, and is required.
>> - "Field" columns are typed (int, uint, float, string, bool). These are
>> the time series data that vary with time. At least one field value is
>> required, per row.
>> - "Tag" columns are only strings. These are identifying data - used for
>> grouping, filtering. Tag values are not required, whether tag columns are
>> present or not.
>>
>> Primary keys are composed of **non-null tags**, plus timestamp. For
>> example, these rows:
>>
>> timestamp | tag A | tag B | field(int) F
>> 09:25 | null | null | 1
>> 09:25 | "foo" | null | 1
>> 09:25 | "foo" | "bar" | 1
>> 10:25 | "foo" | "bar" | 1
>>
>> have these primary keys:
>>
>> (09:25)
>> (09:25,A="foo")
>> (09:25,A="foo",B="bar")
>> (10:25,A="foo",B="bar")
>>
>> InfluxDB uses these primary keys in two contexts:
>> - deduplication in query pipelines
>> - compaction (mitigate performance impact of query-time deduplication)
>>
>> --
>> Jacob Marble
>> 🇺🇸 🇺🇦
>>
>
>
> --
> Ryan Blue
> Tabular
>


-- 
Jacob Marble
🇺🇸 🇺🇦

Reply via email to