Redshift的Postgresql-hll(或其他Hyperloglog数据类型/结构)

时间:2016-08-18 16:23:47

标签: postgresql amazon-redshift hyperloglog

需要能够报告唯一身份访问者,但希望避免预先计算密钥的每个可能排列并创建多个表。

作为一个简单的例子,假设我需要在包含以下列的表中报告每月唯一身份

  • 日期(月/年)
  • PAGE_ID
  • COUNTRY_ID
  • device_type_id
  • monthly_uniques

在Druid和Redis中,Hyperloglog数据类型会处理这个问题(假设可以接受一小部分错误),我可以通过任何维度组合运行查询,并获得唯一的可靠估计

最近我能在PostgreSQL世界中找到postgresql-hll插件,但它似乎适用于PostgreSQL 9.0 +。

有没有办法在Redshift中表示这一点,而无需预先计算或存储访问者ID(大大夸大表大小,但允许使用RedShift的“近似计数”hll实现)?

注意:RedShift是首选平台,但我已经知道其他自托管的PostgreSQL forks可以支持这一点,例如CitusDB。想方设法用RedShift做到这一点。

2 个答案:

答案 0 :(得分:0)

Redshift,虽然技术上是postgresql派生的,但是在十年前就已经分道扬..它仍然使用与postgres相同的线路协议,但它的代码分歧很大。在其他不兼容性中,它不再允许自定义数据类型。这意味着您希望使用的插件类型不可行。

但是,正如您所指出的,如果您能够获取所有原始数据,则可以使用内置的近似功能。

答案 1 :(得分:0)