59 | * Serverless Analytics with Amazon Athena [[Packt]](https://www.packtpub.com/product/serverless-analytics-with-amazon-athena/9781800562349) [[Amazon]](https://www.amazon.in/Serverless-Analytics-Amazon-Athena-semi-structured/dp/1800562349/ref=sr_1_1?keywords=Serverless+Analytics+with+Amazon+Athena&qid=1638757768&sr=8-1)
60 |
61 | * Scalable Data Streaming with Amazon Kinesis [[Packt]](https://www.packtpub.com/product/scalable-data-streaming-with-amazon-kinesis/9781800565401) [[Amazon]](https://www.amazon.in/Scalable-Data-Streaming-Amazon-Kinesis/dp/1800565402/ref=sr_1_1?keywords=Scalable+Data+Streaming+with+Amazon+Kinesis&qid=1638757818&sr=8-1)
62 |
63 | ## Get to Know the Author
64 | **Gareth Eagar** has worked in the IT industry for over 25 years, starting in South Africa, then working in the United Kingdom, and now based in the United States. In 2017, he started working at Amazon Web Services (AWS) as a solution architect, working with enterprise customers in the NYC metro area. Gareth has become a recognized subject matter expert for building data lakes on AWS, and in 2019 he launched the Data Lake Day educational event at the AWS Lofts in NYC and San Francisco. He has also delivered a number of public talks and webinars on topics relating to big data, and in 2020 Gareth transitioned to the AWS Professional Services organization as a senior data architect, helping customers architect and build complex data pipelines.
65 |
66 | **Note from the author:**
67 |
68 | You can use the resources provided in this GitHub repo as you work through the hands-on activities includes in each chapter of the book. This repo is laid out with resources matched to each chapter of the book - such as the JSON used to define IAM policies, sample files, relevant links, etc.
69 | ### Download a free PDF
70 |
71 | If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost.
Simply click on the link to claim your free PDF.
72 | https://packt.link/free-ebook/9781800560413
--------------------------------------------------------------------------------
/Chapter09/README.md:
--------------------------------------------------------------------------------
1 | # Chapter 9 - Loading Data into a Data Mart
2 |
3 | In this chapter, we learned how a cloud data warehouse can be used to store hot data to
4 | optimize performance and manage costs. We reviewed some common "anti-patterns"
5 | for data warehouse usage before diving deep into the Redshift architecture to learn more
6 | about how Redshift optimizes data storage across nodes.
7 | We then reviewed some of the important design decisions that need to be made when
8 | creating an optimized schema in Redshift, before reviewing ingested unloaded from
9 | Redshift.
10 |
11 | ## Hands-on Activity
12 | In the hands-on section of this chapter we created a new Redshift cluster,
13 | configured Redshift Spectrum to query data from Amazon S3, and then loaded a
14 | subset of data from S3 into Redshift. We then ran some complex queries to calculate the
15 | distance between two points before creating a materialized view with the results of our
16 | complex query.
17 |
18 | #### Uploading our sample data to Amazon S3
19 | In this exercise, we use open-source data from an organization called **Inside Airbnb** that provides data that quantifies the impact of short-term rentals on housing and residential communities. To learn more about the organization, see http://insideairbnb.com/index.html.
20 |
21 | The following links are to download data from [*Inside Airbnb*](http://insideairbnb.com/index.html), who have licensed this data under [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).
22 |
23 | Download the ***listings.csv*** file for Jersey City, New Jersey, and for New York City, New York, using the following links. *Make sure to download the CSV version of the file, and not the csv.gz version*. Rename each file when downloading so you can identify which city it is for (such as jc-listings.csv and ny-listings.csv).
24 |
25 | - Jersey City Listings: [Access here](http://insideairbnb.com/get-the-data.html#:~:text=Jersey%20City%2C%20New%20Jersey%2C%20United%20States)
26 | - New York Listings: [Access here](http://insideairbnb.com/get-the-data.html#:~:text=New%20York%20City%2C%20New%20York%2C%20United%20States)
27 |
28 | **Commands to upload files to Amazon S3**
29 |
30 | - Use the following commands to upload the data to your S3 Landing Zone bucket
31 | ```
32 | aws s3 cp jc-listings.csv s3://dataeng-landing-zone-INITIALS/listings/city=jersey_city/jc-listings.csv
33 | ```
34 |
35 | ```
36 | aws s3 cp ny-listings.csv s3://dataeng-landing-zone-INITIALS/listings/city=new_york_city/ny-listings.csv
37 | ```
38 |
39 | #### IAM Roles for Redshift
40 |
41 | - AWS Management Console - IAM Roles: https://console.aws.amazon.com/iamv2/home?#/roles
42 |
43 | #### Creating a Redshift cluster
44 |
45 | - AWS Management Console - Redshift: https://console.aws.amazon.com/redshiftv2/
46 |
47 | #### Creating eternal tables for querying data in S3
48 |
49 | - The following query can be run in the Redshift Query Editor to create an external schema. Make sure to specify the ARN for the new role you created in place of the ***iam_role*** listed below.
50 |
51 | ```
52 | create external schema spectrum_schema
53 | from data catalog
54 | database 'accommodation'
55 | iam_role 'arn:aws:iam::1234567890:role/AmazonRedshiftSpectrumRole'
56 | create external database if not exists;
57 | ```
58 |
59 | - The following query can be run to create a new external table. Make sure to replace ***INITIALS*** in the query below with the correct identifier for your Landing Zone bucket.
60 |
61 | ```
62 | CREATE EXTERNAL TABLE spectrum_schema.listings(
63 | listing_id INTEGER,
64 | name VARCHAR(100),
65 | host_id INT,
66 | host_name VARCHAR(100),
67 | neighbourhood_group VARCHAR(100),
68 | neighbourhood VARCHAR(100),
69 | latitude Decimal(8,6),
70 | longitudes Decimal(9,6),
71 | room_type VARCHAR(100),
72 | price SMALLINT,
73 | minimum_nights SMALLINT,
74 | number_of_reviews SMALLINT,
75 | last_review DATE,
76 | reviews_per_month NUMERIC(8,2),
77 | calculated_host_listings_count SMALLINT,
78 | availability_365 SMALLINT)
79 | partitioned by(city varchar(100))
80 | row format delimited
81 | fields terminated by ','
82 | stored as textfile
83 | location 's3://dataeng-landing-zone-INITIALS/listings/';
84 | ```
85 |
86 | - The following two queries create partitions for our Jersey City and New York City data. *Make sure to run each of these queries separately, and to replace **INITIALS** with the correct identifier for your Landing Zone bucket.*
87 |
88 | **Query 1:**
89 | ```
90 | alter table spectrum_schema.listings add
91 | partition(city='jersey_city')
92 | location 's3://dataeng-landing-zone-INITIALS/listings/city=jersey_city/'
93 | ```
94 | **Query 2:**
95 | ```
96 | alter table spectrum_schema.listings add
97 | partition(city='new_york_city')
98 | location 's3://dataeng-landing-zone-INITIALS/listings/city=new_york_city/'
99 | ```
100 |
101 | - Validate that the data has been loaded and defined correctly by running queries using both Redshift and Amazon Athena.
102 |
103 | **Redshift Query:**
104 | ```
105 | select * from spectrum_schema.listings limit 100;
106 | ```
107 |
108 | **Amazon Athena Query:**
109 | ```
110 | select * from accommodation.listings limit 100;
111 | ```
112 |
113 | #### Creating a schema for a local Redshift table
114 |
115 | - Create new local (not external) Redshift schema
116 |
117 | ```
118 | create schema if not exists accommodation_local;
119 | ```
120 |
121 | - Create new local listings table
122 |
123 | ```
124 | CREATE TABLE dev.accommodation_local.listings(
125 | listing_id INTEGER,
126 | name VARCHAR(100),
127 | neighbourhood_group VARCHAR(100),
128 | neighbourhood VARCHAR(100),
129 | latitude Decimal(8,6),
130 | longitudes Decimal(9,6),
131 | room_type VARCHAR(100),
132 | price SMALLINT,
133 | minimum_nights SMALLINT,
134 | city VARCHAR(40))
135 | distkey(listing_id)
136 | sortkey(price);
137 | ```
138 |
139 | - Load data from our Redshift Spectrum (external) table into the new local table
140 |
141 | ```
142 | INSERT into accommodation_local.listings
143 | (SELECT listing_id,
144 | name,
145 | neighbourhood_group,
146 | neighbourhood,
147 | latitude,
148 | longitudes,
149 | room_type,
150 | price,
151 | minimum_nights
152 | FROM spectrum_schema.listings);
153 | ```
154 |
155 | #### Running complex SQL queries against our data
156 | In this section we create a complex query, but do so in steps in order to better understand how the query works.
157 |
158 | **Query 1**
159 | ```
160 | WITH touristspots_raw(name,lon,lat) AS (
161 | (SELECT 'Freedom Tower', -74.013382,40.712742) UNION
162 | (SELECT 'Empire State Building', -73.985428, 40.748817)),
163 | touristspots (name,location) AS (SELECT name,
164 | ST_Point(lon, lat) FROM touristspots_raw)
165 | select name, location from touristspots
166 | ```
167 |
168 | **Query 2**
169 | ```
170 | WITH accommodation(listing_id, name, room_type, location) AS (SELECT listing_id, name, room_type, ST_Point(longitudes, latitude) from accommodation_local.listings)
171 | select listing_id, name, room_type, location from accommodation
172 | ```
173 |
174 | **Query 3**
175 | ```
176 | WITH touristspots_raw(name,lon,lat) AS (
177 | (SELECT 'Freedom Tower', -74.013382,40.712742) UNION
178 | (SELECT 'Empire State Building', -73.985428, 40.748817)
179 | ),
180 | touristspots(name,location) AS (
181 | SELECT name, ST_Point(lon, lat)
182 | FROM touristspots_raw),
183 | accommodation(listing_id, name, room_type, price,
184 | location) AS
185 | (
186 | SELECT listing_id, name, room_type, price,
187 | ST_Point(longitudes, latitude)
188 | FROM accommodation_local.listings)
189 | SELECT
190 | touristspots.name as tourist_spot,
191 | accommodation.listing_id as listing_id,
192 | accommodation.name as location_name,
193 | (ST_DistanceSphere(touristspots.location,
194 | accommodation.location) / 1000)::decimal(10,2) AS
195 | distance_in_km,
196 | accommodation.price AS price,
197 | accommodation.room_type as room_type
198 | FROM touristspots, accommodation
199 | WHERE tourist_spot like 'Empire%'
200 | ORDER BY distance_in_km
201 | LIMIT 100;
202 | ```
203 |
204 | **Query 4**
205 | ```
206 | CREATE MATERIALIZED VIEW listings_touristspot_distance_view AS
207 | WITH touristspots_raw(name, lon, lat) AS (
208 | (SELECT 'Freedom Tower', -74.013382,40.712742) UNION
209 | (SELECT 'Empire State Building', -73.985428, 40.748817)
210 | ),
211 | touristspots(name,location) AS (
212 | SELECT name, ST_Point(lon, lat)
213 | FROM touristspots_raw),
214 | accommodation(listing_id, name, room_type, price,location) AS
215 | (
216 | SELECT listing_id, name, room_type, price, ST_Point(longitudes, latitude)
217 | FROM accommodation_local.listings)
218 | SELECT
219 | touristspots.name as tourist_spot,
220 | accommodation.listing_id as listing_id,
221 | accommodation.name as location_name,
222 | (ST_DistanceSphere(touristspots.location,accommodation.location) / 1000)::decimal(10,2) AS distance_in_km,
223 | accommodation.price AS price,
224 | accommodation.room_type as room_type
225 | FROM touristspots, accommodation
226 | ```
227 |
228 | **Query 5**
229 | ```
230 | select * from listings_touristspot_distance_view
231 | where tourist_spot like 'Empire%'
232 | order by distance_in_km
233 | limit 100
234 | ```
235 |
236 |
237 |
238 |
--------------------------------------------------------------------------------
/Chapter05/Data-Engineering-Completed-Whiteboard.drawio:
--------------------------------------------------------------------------------
1 | 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
--------------------------------------------------------------------------------