- Now let's review an introduction to Amazon Redshift.
With Amazon Redshift we gain a fully-managed data warehouse,
a petabyte scale data warehouse.
Upwards of two petabytes can run
in a single cluster within Amazon Redshift.
And then of course Redshift is based on Postgres 8.0.2.
And so AWS took a fork of Postgres 8.0.2
and made their own modifications
in order to support certain types of technologies
and allow us to run complex ad hoc queries
against those petabyte-sized data sets.
Now because it is a fork of Postgres 8.0.2,
it is SQL compliant.
It supports all of the data types and the SQL language
that was supported by Postgres 8.0.2.
And of course, because of that,
you can connect to a Redshift cluster
using existing business intelligence tools
that support JDBC and ODBC drivers.
Now, one of the things that make Redshift really performant
is that AWS took that fork of Postgres 8.0.2
and they added columnar storage.
Columnar storage as opposed to row-based storage
makes much more efficient use
of the actual underlying storage
as well as more efficient use of input/output operations.
So we can retrieve a similar amount of data
from columnar storage with fewer I/O operations,
as opposed to using row-based storage.
We can make more efficient use of memory
by using columnar storage as well.
And so, along with columnar storage,
Redshift also added parallel queries.
So with Redshift, we can create clusters of nodes
so that our queries are being run in parallel
across all of those nodes.
That is one of the ways that we can achieve
very fast results across very large data sets.
No one server is running the query.
It's actually being run in parallel
across those many nodes, each using columnar storage.
And so with Amazon Redshift, keep in mind that Redshift
is not meant for online transactional processing.
It's ideal for online analytical processing.
So, many workloads such as eCommerce, for example,
where you do have transactional processing happening,
for the transactional processing you may want to use
something like RDS or Aurora or even DynamoDB.
But then when later you want to run analytics on that data,
then you might look to Redshift, because it's ideal
for online analytical processing,
as opposed to transactional processing.
So again, if you have a large, very large data set
and perhaps maybe you have smaller data sets
that are spread out across numerous databases.
Perhaps you have small data sets
that are in NoSQL and relational and graph databases
and you want to pull all of that in into one place,
so that you can run complex ad hoc queries
across vast data sets, take a look at Amazon Redshift.