Traffine I/O

Bahasa Indonesia

2023-06-30

Tipe Data dalam Snowflake

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.

https://docs.snowflake.com/developer-guide/udf-stored-procedure-data-type-mapping

Referensi

https://docs.snowflake.com/ja/sql-reference/intro-summary-data-types
https://docs.snowflake.com/developer-guide/udf-stored-procedure-data-type-mapping
https://docs.snowflake.com/sql-reference/data-types-semistructured

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!