chapter2
chapter2
Palak Raina
Senior Data Engineer
Connecting to Snowflake
Snowsight: Snowflake Web Interface
INTRODUCTION TO SNOWFLAKE
Web Interface: Worksheets
INTRODUCTION TO SNOWFLAKE
Connecting to Snowflake: Drivers, SnowSQL
SnowSQL
Command-line client
Installed on Linux, Windows, or Mac
INTRODUCTION TO SNOWFLAKE
Staging
Temporary location storing data
Internal Stage
INTRODUCTION TO SNOWFLAKE
CREATE STAGE
CREATE STAGE my_local_stage
PUT file:///path_to_your_local_file/orders.csv
@my_local_stage -- stage name prefixed with @
INTRODUCTION TO SNOWFLAKE
DDL Commands
Some Data Definition Language (DDL) commands
CREATE
ALTER
DROP
RENAME
COMMENT
INTRODUCTION TO SNOWFLAKE
DDL: Create
CREATE TABLE orders_pizza (
order_id NUMBER,
order_date DATE,
time TIME
)
INTRODUCTION TO SNOWFLAKE
DDL: ALTER, RENAME, DROP
ALTER & RENAME
DROP
DROP TABLE orders
INTRODUCTION TO SNOWFLAKE
DDL: Comment
CREATE TABLE pizza_type (
pizza_type_id VARCHAR(50) COMMENT 'Unique identifier for pizza type',
name VARCHAR(100) ,
category VARCHAR(50),
ingredients VARCHAR(500)
)
COMMENT = 'Table that stores information about different types of pizzas, including their names,
categories, and ingredients'
Postgres
INTRODUCTION TO SNOWFLAKE
Let's practice!
INTRODUCTION TO SNOWFLAKE
Snowflake database
structures and DML
INTRODUCTION TO SNOWFLAKE
Palak Raina
Senior Data Engineer
Overview
Snowflake Similarities to Postgres
SHOW INSERT
DESCRIBE UPDATE
INSERT MERGE
UPDATE
MERGE
COPY
INTRODUCTION TO SNOWFLAKE
SHOW DATABASES
Snowflake
SHOW
SHOW DATABASES
INTRODUCTION TO SNOWFLAKE
SHOW TABLES
SHOW TABLES IN { DATABASE [ <db_name> ] }
INTRODUCTION TO SNOWFLAKE
SHOW TABLES LIKE
SHOW TABLES [ LIKE '<pattern>' ]
[ IN { DATABASE [ <db_name> ] } ]
INTRODUCTION TO SNOWFLAKE
SHOW SCHEMAS, COLUMNS
SHOW SCHEMAS IN DATABASE PIZZA_SALES
INTRODUCTION TO SNOWFLAKE
SHOW VIEWS
SHOW VIEWS IN DATABASE PIZZA_SALES
INTRODUCTION TO SNOWFLAKE
DESCRIBE DATABASE, SCHEMA
DESCRIBE or DESC
INTRODUCTION TO SNOWFLAKE
DESCRIBE TABLE, VIEW
DESCRIBE TABLE PIZZA_TYPE
INTRODUCTION TO SNOWFLAKE
DESCRIBE STAGE
DESCRIBE STAGE my_local_stage
INTRODUCTION TO SNOWFLAKE
DML (Data Manipulation Language) Commands
INSERT
Insert Using Explicitly Specified Values
INSERT INTO orders (order_id, order_date, order_time)
VALUES (1, '2015-01-01', '11:38:36')
INTRODUCTION TO SNOWFLAKE
INSERT Using Query
Insert using Query
INSERT INTO orders_filtered
SELECT * FROM orders
WHERE order_date > '2015-01-02'
INTRODUCTION TO SNOWFLAKE
UPDATE
UPDATE orders
SET order_time = '17:00:00'
WHERE order_id = '5'
Before:
After:
INTRODUCTION TO SNOWFLAKE
MERGE
Combines data from two tables
INTRODUCTION TO SNOWFLAKE
MERGE RESULTS
Source table: orders
INTRODUCTION TO SNOWFLAKE
COPY
Snowflake:
INTRODUCTION TO SNOWFLAKE
Let's practice!
INTRODUCTION TO SNOWFLAKE
Snowflake data type
and data type
conversion
INTRODUCTION TO SNOWFLAKE
Palak Raina
Senior Data Engineer
Data types
VARCHAR Similarities with Postgres known data types
NUMERIC
(non-exhaustive list):
INT VARCHAR
DATE NUMERIC
TIME INT
TIMESTAMP
INTRODUCTION TO SNOWFLAKE
Comparison with Postgres
INTRODUCTION TO SNOWFLAKE
DATE
DATE
Formats: YYYY-MM-DD , DD-MM-YYYY , etc.
Default: YYYY-MM-DD
INTRODUCTION TO SNOWFLAKE
TIME
TIME
Format: HH:MI:SS
INTRODUCTION TO SNOWFLAKE
TIMESTAMP
TIMESTAMP - Combines DATE and TIME
Format: YYYY-MM-DD HH:MI:SS
INTRODUCTION TO SNOWFLAKE
Data type conversion - What?
Converting data from one type to another
INTRODUCTION TO SNOWFLAKE
Data type conversion - Why?
Improving performance
Data quality
INTRODUCTION TO SNOWFLAKE
Data type conversion - How?
1. CAST Syntax:
CAST( <source_data/column> AS <target_data_type> )
CAST('80' AS INT)
2. :: Syntax:
<source_data/column>::<target_data_type>
'80'::INT
INTRODUCTION TO SNOWFLAKE
CAST COLUMN
SELECT CAST(order_date AS TIMESTAMP)
AS order_timestamp
FROM orders
Before casting:
After casting:
INTRODUCTION TO SNOWFLAKE
Conversion functions
Examples: TO_VARCHAR , TO_DATE , etc.
TO_DATE
TO_DATE( <expr> )
expr - string, timestamp, etc.
Result: DATE
Example:
Result:
2023-08-16
INTRODUCTION TO SNOWFLAKE
Let's practice!
INTRODUCTION TO SNOWFLAKE
Functions, sorting,
and grouping
INTRODUCTION TO SNOWFLAKE
Palak Raina
Senior Data Engineer
Functions
AGGREGATE
STRING
INTRODUCTION TO SNOWFLAKE
Aggregate functions
Aggregation Command Example
Averaging AVG() SELECT AVG( <expr> ) FROM table
INTRODUCTION TO SNOWFLAKE
String functions - CONCAT
Combines the expressions. Combining category with ' - Pizza'
Syntax: SELECT CONCAT(category, ' - Pizza')
AS pizza_category
CONCAT( <expr1> [ , <exprN> ... ] ) FROM pizza_type
Before Concat:
After Concat:
INTRODUCTION TO SNOWFLAKE
UPPER & LOWER
Syntax: UPPER( <expr> ) Syntax: LOWER( <expr> )
INTRODUCTION TO SNOWFLAKE
DATE & TIME functions
CURRENT_DATE() or CURRENT_DATE
CURRENT_TIME() or CURRENT_TIME
SELECT CURRENT_DATE
SELECT CURRENT_TIME
INTRODUCTION TO SNOWFLAKE
EXTRACT
Syntax
SELECT drop_timestamp,
EXTRACT(YEAR FROM drop_timestamp) AS year
FROM uber_data
INTRODUCTION TO SNOWFLAKE
SORTING and GROUPING
SORTING: ORDER BY
GROUPING: GROUP BY
Snowflake: GROUP BY ALL
INTRODUCTION TO SNOWFLAKE
GROUP BY ALL
GROUP BY column1, column2 GROUP BY ALL
SELECT
pizza_type_id,
SELECT
size,
pizza_type_id,
AVG(price) AS average_price
size,
FROM
AVG(price) AS average_price
pizzas
FROM
GROUP BY
pizzas
pizza_type_id, -- explicit columns
-- No need to specify columns
size
GROUP BY ALL
ORDER BY
ORDER BY
pizza_type_id, average_price DESC
pizza_type_id, average_price DESC
INTRODUCTION TO SNOWFLAKE
Let's practice!
INTRODUCTION TO SNOWFLAKE