我想知道如何将数据从DynamoDB加载到Redshift中。
根据文档,DynamoDB是NoSQL,Redshift是关系型数据库。
那么,我该如何以规范化的方式处理非结构化数据呢?
什么时候需要对数据进行标准化?
我想知道Redshift是保留完整数据还是转换数据。
我想知道加载增量数据的最佳方式。
有没有人能建议这个过程的步骤呢?
发布于 2016-09-08 16:28:31
从DynamoDB加载数据的
Amazon Redshift COPY
命令可用于将DynamoDB表加载到Redshift表中。这会将完整的DynamoDB表加载到Redshift中。
请参阅文档:Loading Data from an Amazon DynamoDB Table
映射列名,并且仅加载具有匹配列名的列。
正在加载增量数据
要执行增量加载(例如,仅当Country=‘USA’时),首先将整个表加载到一个临时表中,然后在Redshift中执行普通的INSERT
SQL命令以插入/复制所需的数据。
请参见:
规范化、外键和主键
DynamoDB是一个NoSQL数据库,所以表之间没有关系概念,也没有外键。
在Redshift中创建将从DynamoDB接收数据的表时,您可以指定外键。这些是Redshift提供的not enforced,但它们被查询优化器使用。
一旦数据导入到Redshift中,你就可以在表之间执行关系查询(例如使用JOIN)。
您的数据不需要标准化。事实上,像Redshift这样的数据仓库通常加载了宽表和重复的数据,这使得通过更少的连接来查询数据变得更容易。
https://stackoverflow.com/questions/39385086
复制相似问题