Big Data, Cloud

Pengenalan Snowflake Cloud Data Warehouse

Data warehouse merupakan sistem manajemen data yang tersentralisasi untuk aktifitas analytics

Data warehouse menampung data dari berbagai macam sumber data dalam jumlah besar

Keunggulan dari data warehouse adalah adanya satu sumber data utuh yang menyediakan data yang baik, konsisten dan relevan terhadap kepentingan pengambilan keputusan

Beberapa karakteristik data warehouse adalah Subject-oriented, Integrated, Nonvolatile, Time-variant

Subject-oriented : Analisis data tentang subjek atau departemen tertentu

Integrated : Terintegrasi dari berbagai sumber data

Nonvolatile : Data tidak berubah (tidak ada update/delete) setelah data masuk di data warehouse

Time-variant : Menyimpan historical data dengan perubahan dari waktu ke waktu

Snowflake

Dalam membangun data warehouse kita bisa implementasi secara on-premises atau cloud

Membangun Data Warehouse secara on-premises memiliki kekurangan seperti tidak elastis dalam penyimpanan dan komputasi sedangkan data akan terus bertambah dan komputasi akan semakin tinggi

Solusinya adalah menggunakan data warehouse berbasis cloud yang mampu melakukan scaling penyimpanan dan komputasi dengan mudah

Snowflake adalah salah satu cloud data warehouse yang sangat populer

Dalam platform snowflake terdapat beberapa fitur seperti Database, Shares, Data Marketplace, Worksheets, History

Database : merupakan database yang ada di Snowflake

Pengenalan Snowflake Cloud Data Warehouse

Shares : fitur sharing Table dan View untuk multi akun

Pengenalan Snowflake Cloud Data Warehouse

Data Marketplace : merupakan marketplace untuk jual beli dataset, query, dan lainnya

Pengenalan Snowflake Cloud Data Warehouse

Warehouse : merupakan virtual data warehouse

Pengenalan Snowflake Cloud Data Warehouse

Worksheets : merupakan environment untuk mengeksekusi perintah SQL

Pengenalan Snowflake Cloud Data Warehouse

History : merupakan histori yang menyimpan query dalam kurun 14 hari terakhir

Pengenalan Snowflake Cloud Data Warehouse

Untuk menggunakan layanan Snowflake kita bisa mencobanya dengan mendaftar free trial untuk 1 bulan terlebih dulu di snowflake.com atau disini selanjutnya anda akan dapat credit $400

Instalasi SnowSQL

Untuk mengakses Snowflake kita bisa menggunakan beberapa cara seperti melalui aplikasi UI, konektor bahasa pemrograman dan CLI Snowflake.

Pada tutorial ini kita akan mencoba menggunakan CLI Snowflake yang disebut SnowSQL

Dokumentasi resminya dapat dibaca di sini

Untuk installasi menggunakan sistem operasi Windows silahkan langsung download di sini kemudian install

Setelah sukses menginstall buka terminal dan jalankan perintah berikut untuk melihat versi CLI

snowsql --version

Login ke akun Snlowflake dengan perintah

snowsql -a <account-name> -u <username>

Membuat Virtual Data Warehouse

Pertama yang harus dilakukan adalah membuat Warehouse dengan spek X-SMALL

create or replace warehouse test_wh with
    warehouse_size="X-SMALL"
    auto_suspend=180
    auto_resume=true
    initially_suspended=true;

Atau sebenarnya kita juga bisa membuat melalui browser UI di menu Warehouse

Pengenalan Snowflake Cloud Data Warehouse

Membuat Database

Selanjutnya kita butuh Database menyimpan Table

create or replace database test_db;

Cek virtual warehouse, database dan schema yang digunakan dengan perintah

select current_warehouse(), current_database(), current_schema()

Membuat Table

Selanjunya kita buat Table yang akan menampung dataset Covid-19 Geographic Case Distribution dari European Centre for Disease Prevention and Control

create or replace table worldwide_cases (
    date_rep string,
    day string,
    month string,
    year string,
    cases number,
    deaths number,
    countries_and_territories string,
    geo_id string,
    country_territory_code string,
    pop_data_2018 number,
    continent string
);

Membuat Stage

Sebelum kita load data ke warehouse data harus diupload dulu ke cloud storage yang disebut Stage

Ada 2 jenis stage yaitu internal dan eksternal

Kita akan membuat stage internal dengan perintah

create or replace stage test_stage;

Download file CSV terlebih dulu dari dataset COVID-19 dan ganti nama menjadi covid.csv

selanjutnya load covid.csv dengan perintah PUT

put file://C:\Users\ASUS\Downloads\covid.csv @test_db.public.test_stage;

Untuk melihat file yang sudah diupload ke stage gunakan perintah

ls @test_db.public.test_stage;

Load Data

Selanjutnya load data dari stage ke warehouse dengan perintah COPY INTO

copy into worldwide_cases
    from @test_db.public.test_stage
    file_format = (
        type = csv
        skip_header=1
        error_on_column_count_mismatch = false
        field_optionally_enclosed_by='"');

Untuk memastikan data sudah sukses berada di database gunakan perintah SELECT

SELECT * FROM worldwide_cases;

Atau query dari UI maka hasilnya adalah

Pengenalan Snowflake Cloud Data Warehouse

Hasil Analisis Data COVID-19

Analisis kasus tertinggi berdasarkan negara

Kita bisa mengetahui negara yang paling banyak terdampak COVID 19

SELECT COUNTRIES_AND_TERRITORIES, SUM(CASES) AS TOTAL
from "TEST_DB"."PUBLIC"."WORLDWIDE_CASES"
GROUP BY COUNTRIES_AND_TERRITORIES
ORDER BY TOTAL DESC;
Pengenalan Snowflake Cloud Data Warehouse

Indonesia merupakan negara ke-19 yang paling banyak terjadi kasus COVID 19

Analisis Kasus tertinggi di Tahun 2020

Di Tahun 2020 lonjakan kasus terjadi di akhir tahun yaitu bulan Oktober, Nopember dan Desember

select MONTH, sum(CASES) AS TOTAL
from "TEST_DB"."PUBLIC"."WORLDWIDE_CASES"
GROUP BY MONTH 
ORDER BY TOTAL DESC
Pengenalan Snowflake Cloud Data Warehouse

Yeyy.. Alhamdulillah selamat kita telah mengenal dasar dari data warehouse dan implementasi sederhana dari Snowflake 🙂

Referensi : Getting started with Snowflake

Leave a Reply

Your email address will not be published. Required fields are marked *