Tipe Data dalam Snowflake
Snowflake adalah platform data warehouse yang banyak digunakan yang mendukung sebagian besar tipe data SQL untuk memenuhi berbagai kebutuhan. Artikel ini bertujuan untuk memberikan gambaran tentang masing-masing tipe data ini.
Tipe Data Numerik
Kita akan melihat berbagai tipe data numerik yang didukung oleh Snowflake.
NUMBER
Tipe data NUMBER
adalah bentuk umum data numerik dalam Snowflake. Ia dapat mewakili nilai bilangan bulat dan desimal dengan presisi maksimum 38 digit. Presisi dan skala defaultnya adalah (38,0), yang berarti ia dapat menampung 38 digit di sebelah kiri titik desimal dan tidak ada digit di sebelah kanan secara default.
DECIMAL, NUMERIC
Tipe data DECIMAL
dan NUMERIC
sinonom dengan tipe data NUMBER
. Mereka dapat digunakan secara bergantian dan memiliki presisi dan skala default yang sama yaitu (38,0).
INT, INTEGER, BIGINT, SMALLINT, TINYINT, BYTEINT
Tipe data ini juga sinonom dengan tipe data NUMBER
, namun berbeda dalam hal presisi dan skala yang tidak dapat ditentukan.
FLOAT, FLOAT4, FLOAT8
Tipe data FLOAT
dalam Snowflake digunakan untuk mewakili data numerik perkiraan. FLOAT4
dan FLOAT8
adalah versi spesifik dari tipe data FLOAT
yang berbeda dalam presisi dan rentangnya.
DOUBLE, DOUBLE PRECISION, REAL
DOUBLE
, DOUBLE PRECISION
, dan REAL
semua digunakan untuk mewakili angka titik mengambang dengan presisi yang lebih tinggi daripada FLOAT
. Dalam Snowflake, mereka sinonom dengan tipe data FLOAT
.
Tipe Data String & Biner
Tipe data String dan Biner digunakan untuk data alfanumerik dan biner.
VARCHAR
Tipe data VARCHAR
dalam Snowflake digunakan untuk menyimpan karakter alfanumerik dengan panjang variabel. Secara default (dan maksimum), ia dapat menyimpan hingga 16.777.216 byte informasi.
CHAR, CHARACTER
CHAR
dan CHARACTER
sinonom dengan VARCHAR
. Namun, panjang defaultnya adalah VARCHAR(1)
, yang berarti ia hanya dapat menyimpan satu karakter jika panjang tidak ditentukan.
STRING
Tipe data STRING
sinonom dengan VARCHAR
, memberikan opsi lain untuk menyebut tipe data ini.
TEXT
Tipe data TEXT
juga sinonom dengan VARCHAR
, dan merupakan pilihan lain untuk mewakili karakter alfanumerik dengan panjang variabel.
BINARY
Tipe data BINARY
dalam Snowflake digunakan untuk menyimpan data biner.
VARBINARY
VARBINARY
sinonom dengan BINARY
. Kedua tipe data ini digunakan untuk mewakili data biner.
Tipe Data Logika
Tipe data logika menyediakan cara untuk mewakili nilai boolean dalam Snowflake.
BOOLEAN
Tipe data BOOLEAN
digunakan untuk menyimpan nilai true atau false. Pada tanggal saat ini (30 Juni 2023), tipe data ini hanya didukung untuk akun yang dipasok setelah 25 Januari 2016.
Tipe Data Tanggal & Waktu
Tipe data Tanggal & Waktu dalam Snowflake sangat penting untuk mengelola data yang melibatkan unsur-unsur pengaturan waktu. Mereka memberikan fleksibilitas dan akurasi saat bekerja dengan data deret waktu, penjadwalan, dan informasi terkait tanggal-waktu lainnya.
DATE
Tipe data DATE
dalam Snowflake digunakan untuk mewakili hari tertentu, disimpan dalam format YYYY-MM-DD
.
DATETIME
Tipe data DATETIME
adalah sinonim untuk TIMESTAMP_NTZ
. Digunakan untuk mewakili tanggal dan waktu tertentu tanpa menyimpan informasi zona waktu.
TIME
Tipe data TIME
digunakan untuk menyimpan waktu tertentu dalam sehari. Formatnya adalah HH:MI:SS
.
TIMESTAMP
Tipe data TIMESTAMP
dalam Snowflake adalah tipe yang lebih umum untuk menyimpan informasi tanggal dan waktu. Secara default, ini adalah sinonim untuk salah satu variasi TIMESTAMP
, yaitu TIMESTAMP_NTZ
.
TIMESTAMP_LTZ
TIMESTAMP_LTZ
adalah variasi TIMESTAMP
yang menyimpan tanggal dan waktu dengan informasi zona waktu lokal. Namun, informasi zona waktu tidak disimpan.
TIMESTAMP_NTZ
Tipe data TIMESTAMP_NTZ
mewakili TIMESTAMP
tanpa zona waktu. Ini berarti bahwa meskipun zona waktu disediakan, zona waktu tersebut tidak disimpan.
TIMESTAMP_TZ
Tipe data TIMESTAMP_TZ
digunakan untuk menyimpan TIMESTAMP
dengan informasi zona waktu. Ini memungkinkan pengguna untuk menyimpan data tanggal dan waktu bersamaan dengan detail zona waktu yang relevan.
Tipe Data Semi-terstruktur
Seiring dengan pertumbuhan dan beragamnya data, kebutuhan akan tipe data semi-terstruktur semakin penting. Snowflake mendukung beberapa tipe data semi-terstruktur, memberikan fleksibilitas yang lebih besar dalam mengelola dan memproses bentuk data yang kurang tradisional.
VARIANT
Tipe data VARIANT
dalam Snowflake digunakan untuk menyimpan nilai dari tipe data lain, termasuk OBJECT
dan 'ARRAY'. Ini membuatnya menjadi tipe data yang sangat fleksibel untuk mengelola berbagai jenis data dalam satu kolom. Panjang maksimum dari VARIANT adalah 16 MB.
OBJECT
Sebuah OBJECT
dalam Snowflake analog dengan objek JSON, memungkinkan penyimpanan pasangan kunci-nilai dalam satu tipe data. Setiap kunci adalah VARCHAR
, dan setiap nilai adalah 'VARIANT'. Format ini memungkinkan penyimpanan dan pengambilan struktur data yang kompleks dan bertingkat.
ARRAY
Tipe data ARRAY
mirip dengan array dalam banyak bahasa pemrograman lainnya. Ia dapat berisi 0 atau lebih potongan data, dan setiap elemen diakses dengan menentukan posisinya dalam array. Ini memungkinkan penyimpanan koleksi data yang diurutkan dalam satu kolom.
Tipe Data Geospasial
Data geospasial sangat penting untuk berbagai aplikasi, mulai dari sistem GIS, logistik dan transportasi, hingga ilmu lingkungan dan lainnya. Snowflake menyediakan dukungan untuk tipe data geospasial, meningkatkan kemampuannya untuk menyimpan dan menganalisis jenis data ini.
GEOMETRY
Tipe data GEOMETRY
adalah bentuk yang lebih umum dari tipe data GEOGRAPHY
. Ia memungkinkan penyimpanan struktur data spasial apa pun, termasuk yang tidak selalu terkait dengan lokasi geografis, seperti bentuk abstrak atau pola.
Pemetaan Tipe Data Antara SQL dan Bahasa Handler
Ketika berurusan dengan stored procedure atau UDF di Snowflake, penting untuk memahami bagaimana tipe data dipetakan antara SQL dan bahasa handler yang mendasarinya, seperti Java, Python, atau Scala. Dokumentasi resmi Snowflake menyediakan informasi terperinci tentang pemetaan yang valid antara tipe data SQL dan bahasa handler yang didukung.
Referensi