我们正在处理时间序列汇总数据,汇总到固定类型的期间,例如周二到周三的几周。
对于此数据,将Postgres daterange
类型用作key
会被视为“不良做法”吗? (而不是使用"PeriodID"
- 键定义此日期范围,然后加入日历维度以标识该日期范围。)
在我看来,由于"PeriodID"
daterange
具有非常明确的定义(在我们的设置中,每个观察都是唯一的),因此单独的hive> select translate('123,56€',',€','.');
OK
123.56
将是多余的。
是否:
答案 0 :(得分:2)
在抽象层面上,tstzrange
将是这种聚合的完美表现。
您应该考虑的问题是如何查询数据,以及如何有效地使用索引。
如果要索引“包含”运算符@>
或“重叠”运算符&&
,则不能使用B树索引,只能使用GiST和SP-GiST索引(请参阅{{3 }})。您必须对此进行基准测试,但使用此类索引的可能性要小于使用timestamptz
列上的B树索引。索引也可能使用更多空间。
将timestamptz
与B树索引一起使用的一种简单方法是存储范围的下端并进行查询,如下所示:
... WHERE weekstart <= atimestamp
AND weekstart > atimestamp - INTERVAL '1 week'
或查询重叠间隔:
... WHERE weekstart <= endtimestamp
AND weekstart > starttimestamp - INTERVAL '1 week'