KEMBAR78
Lab3 Transforming Data | PDF | Data Management | Computing
0% found this document useful (0 votes)
14 views3 pages

Lab3 Transforming Data

Uploaded by

clouditlab9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views3 pages

Lab3 Transforming Data

Uploaded by

clouditlab9
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

// Create a Schema for External Stages

CREATE OR REPLACE SCHEMA MYDB.external_stages;

// Publicly accessible staging area


CREATE OR REPLACE STAGE MYDB.external_stages.aws_ext_stage
url='s3://bucketsnowflakes3';

// listing the files in external stage


list @MYDB.external_stages.aws_ext_stage;

//Case 1: Just Viewing Data from ext stage


select $1, $2, $3, $4, $5, $6 from
@MYDB.external_stages.aws_ext_stage/OrderDetails.csv;

//Giving Alias Names to fields


select $1 as OID, $2 as AMT, $3 as PFT, $4 as QNT, $5 as CAT, $6 as SUBCAT
from @MYDB.external_stages.aws_ext_stage/OrderDetails.csv;

select $1 as OID, $4 as QNT, $2 as AMT from


@MYDB.external_stages.aws_ext_stage/OrderDetails.csv;

// Transforming Data while loading

// Case 2: load only required fields

CREATE OR REPLACE TABLE MYDB.PUBLIC.ORDERS_EX (


ORDER_ID VARCHAR(30),
AMOUNT INT
);

COPY INTO MYDB.PUBLIC.ORDERS_EX


FROM (select s.$1, s.$2 from @MYDB.external_stages.aws_ext_stage s)
file_format= (type = csv field_delimiter=',' skip_header=1)
files=('OrderDetails.csv');

SELECT * FROM MYDB.PUBLIC.ORDERS_EX;

// Case3: applying basic transformation by using functions

CREATE OR REPLACE TABLE MYDB.PUBLIC.ORDERS_EX (


ORDER_ID VARCHAR(30),
PROFIT INT,
AMOUNT INT,
CAT_SUBSTR VARCHAR(5),
CAT_CONCAT VARCHAR(60),
PFT_OR_LOSS VARCHAR(10)
);

//Copy Command using a SQL function


COPY INTO MYDB.PUBLIC.ORDERS_EX
FROM (select
s.$1,
s.$3,
s.$2,
substring(s.$5,1,5),
concat($5,$6), -- or simply $5||$6
CASE WHEN s.$3 <= 0 THEN 'LOSS' ELSE 'PROFIT' END
FROM @MYDB.external_stages.aws_ext_stage s)
file_format= (type = csv field_delimiter=',' skip_header=1)
FILES=('OrderDetails.csv');

SELECT * FROM MYDB.PUBLIC.ORDERS_EX;

// Case 4: Loading sequence numbers in columns

// Create a sequence
create sequence seq1;

CREATE OR REPLACE TABLE MYDB.PUBLIC.LOAN_PAYMENT (


"SEQ_ID" number default seq1.nextval,
"Loan_ID" STRING,
"loan_status" STRING,
"Principal" STRING,
"terms" STRING,
"effective_date" STRING,
"due_date" STRING,
"paid_off_time" STRING,
"past_due_days" STRING,
"age" STRING,
"education" STRING,
"Gender" STRING
);

//Loading the data from S3 bucket


COPY INTO PUBLIC.LOAN_PAYMENT("Loan_ID", "loan_status", "Principal", "terms",
"effective_date", "due_date",
"paid_off_time", "past_due_days", "age", "education", "Gender")
FROM s3://bucketsnowflakes3/Loan_payments_data.csv
file_format = (type = csv field_delimiter = ',' skip_header=1);

//Validate the data


SELECT * FROM PUBLIC.LOAN_PAYMENT;

// Case 5: Using auto increment

CREATE OR REPLACE TABLE MYDB.PUBLIC.LOAN_PAYMENT2 (


"LOAN_SEQ_ID" number autoincrement start 1001 increment 1,
"Loan_ID" STRING,
"loan_status" STRING,
"Principal" STRING,
"terms" STRING,
"effective_date" STRING,
"due_date" STRING,
"paid_off_time" STRING,
"past_due_days" STRING,
"age" STRING,
"education" STRING,
"Gender" STRING
);

//Loading the data from S3 bucket


COPY INTO PUBLIC.LOAN_PAYMENT2("Loan_ID", "loan_status", "Principal", "terms",
"effective_date", "due_date",
"paid_off_time", "past_due_days", "age", "education", "Gender")
FROM s3://bucketsnowflakes3/Loan_payments_data.csv
file_format = (type = csv field_delimiter = ',' skip_header=1);

//Validate the data


SELECT * FROM PUBLIC.LOAN_PAYMENT2;

You might also like