Kie*_*ham 6 postgresql amazon-redshift
我想跟踪用户名的超时变化。
我在Redshift中有以下用户表:
id username valid_from valid_to current
--------------------------------------------------------
1 joe1 2015-01-01 2015-01-15 No
1 joe2 2015-01-15 NULL Yes
Run Code Online (Sandbox Code Playgroud)
我的源数据来自RDS Postgres。我正在考虑如何处理此问题的几种选择:
1)创建users_history表,并开始在RDS Postgres db中跟踪此表。这需要我对我的应用程序进行更改,并且此表可能会变得很大
2)进行ETL处理,并每隔5分钟查询一次用户源表,以查找新更改(按上次updated_at排序)并将其转储到DynamoDB。
3)让ETL进程将数据转储到S3,然后将其复制到Redshift中的临时表中并在那里进行查询更新
从长远来看,您能否提供一些可扩展且易于维护的建议?请记住,这些表可能非常庞大,我将跟踪许多表的SCD。
谢谢。
更新1:我与AWS支持人员聊天,他们向我展示了这,这是一个不错的解决方案:http : //docs.aws.amazon.com/redshift/latest/dg/merge-specify-a-column-list.html
小智 1
在 SQL/ ETL 实施方面,Redshift 支持 RDS 支持的任何内容。因此,您的决定应该基于数据库的约束和期望。
Redshift 是一个读取优化的系统,因此每隔几分钟更新一次可能会减慢查询速度。(在 Redshift 上不推荐使用 Micro-ETL)
另一方面,如果您可能拥有巨大的表,Redshift 的性能将优于大多数行存储数据库(例如 MySQL、Postgre 等)。由于 Redshift 专为比传统系统更大的规模而设计,因此这种性能增量将随着数据大小的增长而增加。
| 归档时间: |
|
| 查看次数: |
3504 次 |
| 最近记录: |