Loading Data from DynamoDB
The Amazon Redshift COPY
command can be used to load a DynamoDB table into a Redshift table. This will load the complete DynamoDB table into Redshift.
See documentation: Loading Data from an Amazon DynamoDB Table
Column names are mapped, and only columns that have matching column names are loaded.
Loading incremental data
To perform an incremental load (eg only where Country='USA'), first load the complete table into a temporary table, then perform normal INSERT
SQL commands in Redshift to insert/copy the desired data.
See:
Normalization, foreign & primary keys
DynamoDB is a NoSQL database, so there are no relational concepts between tables and no foreign keys.
When creating tables in Redshift that will receive your data from DynamoDB, you can specify Foreign Keys. These are not enforced by Redshift, but they are used by the query optimizer.
Once data has been imported into Redshift, you can perform relational queries (eg using JOIN) between tables.
Your data does not need to be normalized. In fact, Data Warehouses such as Redshift are often loaded with wide tables and duplicated data that make it easier to query data with fewer JOINS.