Membuat Tabel di Snowflake: Jenis, Contoh & Praktik Terbaik
Pelajari cara membuat berbagai jenis tabel di Snowflake, termasuk tabel permanen, sementara, eksternal, dan dinamis. Termasuk contoh langkah demi langkah dan praktik terbaik.
Snowflake adalah platform gudang data berbasis cloud yang andal untuk membantu organisasi menyimpan, mengelola, dan menganalisis data secara efisien. Berbeda dengan gudang data tradisional yang memerlukan penyiapan perangkat keras yang kompleks, Snowflake berjalan sepenuhnya di cloud, sehingga memudahkan bisnis untuk meningkatkan skala operasi data sesuai kebutuhan.
Membuat tabel di Snowflake adalah keterampilan mendasar yang menjadi fondasi manajemen data. Tabel adalah tempat Anda menyimpan data terstruktur, sehingga memungkinkan menjalankan kueri, menghasilkan laporan, dan mendapatkan wawasan berharga dari informasi Anda. Baik Anda bekerja dengan data pelanggan, angka penjualan, atau hasil analitik, memahami cara membuat dan mengelola tabel di Snowflake itu penting.
Dalam tutorial ini, Anda akan mempelajari semua yang perlu diketahui tentang pembuatan tabel di Snowflake. Kami akan membahas berbagai jenis tabel, menunjukkan contoh langkah demi langkah, dan membagikan praktik terbaik untuk desain tabel. Pada akhirnya, Anda akan percaya diri dalam memilih jenis tabel yang tepat untuk kebutuhan Anda dan membuat tabel yang mengikuti standar industri untuk kinerja dan kemudahan pemeliharaan.
Memahami Jenis Tabel di Snowflake
Sebelum kita masuk ke contoh kode tentang cara membuat tabel, mari jelajahi berbagai jenis tabel di Snowflake karena masing-masing memiliki tujuan yang unik serta karakteristik berbeda terkait persistensi data, aksesibilitas, dan lokasi penyimpanan.
Tabel permanen
Tabel permanen adalah jenis tabel standar di Snowflake. Tabel ini bertahan hingga dihapus secara eksplisit dan disimpan di penyimpanan internal Snowflake. Tabel ini ideal untuk menyimpan data bisnis inti yang perlu dipertahankan jangka panjang dan diakses lintas banyak sesi. Data dalam tabel permanen tetap utuh antar sesi dan dapat diakses oleh pengguna berwenang mana pun.
Tabel sementara
Tabel sementara adalah tabel khusus sesi yang otomatis dihapus saat sesi Anda berakhir. Tabel ini berfungsi sebagai ruang kerja untuk langkah pemrosesan intermediate, membantu mengatur transformasi data yang kompleks tanpa membuat penyimpanan permanen Anda berantakan. Data dalam tabel sementara hanya terlihat oleh sesi yang membuatnya dan dibersihkan secara otomatis saat sesi ditutup.
Tabel eksternal
Tabel eksternal menyediakan cara untuk mengkueri data yang berada di luar penyimpanan Snowflake. Tabel ini bertindak sebagai lapisan metadata yang memetakan ke data di lokasi penyimpanan eksternal seperti AWS S3 atau Azure Blob Storage. Alih-alih mengimpor data, tabel eksternal membuat referensi ke data tersebut, memungkinkan Anda mengkueri data eksternal secara langsung. Pendekatan ini sangat berguna saat bekerja dengan data yang perlu tetap berada di lokasi sumbernya atau memerlukan pembaruan berkala dari sistem eksternal.
Tabel dinamis
Tabel dinamis adalah fitur canggih di Snowflake yang secara otomatis mempertahankan hasil kueri yang selalu mutakhir. Tabel ini bertindak seperti materialized view yang menyegarkan diri secara otomatis berdasarkan perubahan pada tabel sumber di bawahnya. Saat Anda membuat tabel dinamis, Anda mendefinisikannya menggunakan pernyataan SELECT, dan Snowflake secara otomatis mengelola proses penyegaran untuk memastikan data tetap terbaru.
Tabel dinamis sangat berguna untuk:
Membangun dasbor real-time yang memerlukan data segar tanpa penyegaran manual
Mempertahankan versi teragregasi atau tertransformasi dari data sumber yang diperbarui secara otomatis
Menciptakan model data yang saling bergantung di mana tabel hilir perlu mencerminkan perubahan hulu
Mengoptimalkan performa kueri dengan pra-komputasi transformasi kompleks
Fitur utama tabel dinamis meliputi:
Interval penyegaran yang dapat dikonfigurasi (dari 1 menit hingga 24 jam)
Pelacakan ketergantungan sumber secara otomatis
Pengaturan target lag time untuk mengontrol kesegaran data
Pemrosesan inkremental untuk meminimalkan biaya komputasi
Kemampuan pemantauan dan optimalisasi bawaan
Setiap jenis tabel memiliki tujuan berbeda dalam arsitektur data. Tabel permanen membentuk fondasi gudang data Anda, tabel sementara memfasilitasi alur kerja pemrosesan data, tabel eksternal memungkinkan integrasi dengan sumber data eksternal, dan tabel dinamis menyediakan transformasi data otomatis secara real-time.
Membandingkan tabel Snowflake
Pada tabel di bawah, kami merangkum berbagai jenis tabel Snowflake sebagai panduan referensi cepat:
Jenis Tabel
Persistensi
Visibilitas
Terbaik Untuk
Permanen
Hingga dihapus
Sesi mana pun
Data bisnis inti
Sementara
Khusus sesi
Sesi yang sama
Transformasi intermediate
Eksternal
Penyimpanan eksternal
Sesi mana pun
Mengkueri data eksternal (mis., S3)
Dinamis
Penyegaran otomatis
Sesi mana pun
Analitik real-time
Membuat Tabel: Menyiapkan Snowflake
Sebelum menjalankan contoh dalam tutorial ini, Anda memerlukan akses ke lingkungan Snowflake. Berikut beberapa cara untuk terhubung dan menjalankan perintah Snowflake:
1. Antarmuka web Snowflake (Snowsight)
Cara termudah untuk memulai adalah melalui antarmuka web Snowflake:
snowsql -a<account>-u<username>-d<database>-w<warehouse>Didukung oleh
Anda dapat menemukan kredensial akun Snowflake Anda di tempat berikut:
URL Akun: Lihat pada email sambutan atau pengaturan akun Anda
Nama pengguna: Diberikan saat penyiapan akun
Database: Dibuat atau ditetapkan oleh admin Anda
Warehouse: Dibuat atau ditetapkan oleh admin Anda
Demi keamanan, jangan pernah membagikan atau meng-commit kredensial ini. Simpan dengan aman di variabel lingkungan atau berkas konfigurasi.
3. Koneksi Python
Jika Anda menggunakan Python, Anda dapat menggunakan pustaka snowflake-connector-python:
import snowflake.connector
conn = snowflake.connector.connect(
user='your_username',
password='your_password',
account='your_account',
warehouse='your_warehouse',
database='your_database',
schema='your_schema')
cur = conn.cursor()
cur.execute("SELECT current_version()")Didukung oleh
Catatan Keamanan Penting:
Jangan pernah menyimpan kredensial langsung di kode Anda
Gunakan variabel lingkungan atau pengelolaan secret yang aman
Untuk produksi, pertimbangkan menggunakan autentikasi key pair
Ikuti kebijakan keamanan organisasi Anda
Sekarang penyiapan sudah siap, mari kita buat tabel!
Membuat Tabel di Snowflake: Contoh Langkah demi Langkah
Contoh 1: Membuat tabel Snowflake sederhana
Mari buat tabel untuk menyimpan informasi pelanggan. Contoh ini menunjukkan pembuatan tabel dasar dengan berbagai tipe data dan constraint.
-- Create a permanent table for customer dataCREATEORREPLACETABLE customers (
customer_id INTEGERPRIMARYKEY,
first_name VARCHAR(50)NOTNULL,
last_name VARCHAR(50)NOTNULL,
email VARCHAR(100)UNIQUE,
date_of_birth DATE,
created_at TIMESTAMP_NTZ DEFAULTCURRENT_TIMESTAMP());Didukung oleh
Poin penting dari contoh ini:
CREATE OR REPLACE TABLE - Membuat tabel baru atau menggantinya jika sudah ada
PRIMARY KEY - Memastikan identifikasi unik untuk setiap rekaman
NOT NULL - Mencegah nilai null pada kolom yang wajib diisi
UNIQUE - Memastikan alamat email tidak duplikat
TIMESTAMP_NTZ - Timestamp tanpa zona waktu
DEFAULT - Secara otomatis mengisi cap waktu pembuatan
Contoh 2: Membuat tabel sementara
Tabel sementara sangat cocok untuk pemrosesan data intermediate. Berikut contoh yang membuat tabel sementara untuk menganalisis pesanan pelanggan:
-- Create a temporary table for order analysisCREATEORREPLACETEMPORARYTABLE temp_order_analysis (
order_date DATE,
total_orders INTEGER,
total_revenue DECIMAL(18,2))ASSELECT
DATE_TRUNC('day', order_date)as order_date,COUNT(*)as total_orders,SUM(order_amount)as total_revenue
FROM orders
GROUPBY1;Didukung oleh
Poin penting tentang tabel sementara:
Kata kunci TEMPORARY menunjukkan bahwa tabel ini hanya ada dalam sesi saat ini. Artinya pengguna lain tidak dapat melihat atau mengakses tabel ini.
Menggunakan CREATE TABLE AS (CTAS) memungkinkan Anda membuat dan mengisi tabel dalam satu langkah dengan menggabungkan definisi tabel dengan pernyataan SELECT.
Tabel sementara otomatis dihapus saat sesi Anda berakhir, membantu menjaga database tetap bersih tanpa pembersihan manual.
Tabel sementara berguna untuk menyimpan hasil intermediate selama transformasi data yang kompleks atau alur kerja analisis.
Contoh 3: Membuat tabel eksternal di Snowflake
Contoh ini menunjukkan cara membuat tabel eksternal yang membaca data dari berkas yang disimpan di bucket penyimpanan cloud:
Pernyataan pertama mendefinisikan spesifikasi format berkas yang memberi tahu Snowflake cara mengurai berkas CSV eksternal, termasuk pemisah kolom, penanganan header, dan representasi nilai NULL.
Pernyataan kedua membuat objek stage yang membangun koneksi ke penyimpanan cloud eksternal (dalam hal ini, S3) menggunakan kredensial yang diberikan. Stage ini bertindak sebagai titik referensi untuk mengakses berkas data eksternal.
Pernyataan ketiga membuat tabel eksternal itu sendiri, menggunakan definisi kolom dengan klausa AS untuk secara eksplisit mengubah data string mentah dari CSV menjadi tipe data Snowflake yang tepat. Klausa WITH LOCATION menunjuk ke jalur spesifik dalam stage tempat berkas berada.
Parameter PATTERN memfilter berkas mana yang harus disertakan menggunakan pencocokan regex, memastikan hanya berkas CSV yang diproses.
Prasyarat untuk menjalankan kueri pembuatan tabel eksternal ini:
1. Akses ke akun Snowflake dengan izin untuk:
Membuat file format
Membuat stage
Membuat tabel eksternal
2. Kredensial AWS yang valid (AWS_KEY_ID dan AWS_SECRET_KEY) dengan izin untuk:
Membaca dari bucket S3
Melihat daftar objek dalam bucket
3. Persyaratan data sumber:
Berkas CSV yang disimpan di bucket S3
Berkas mengikuti format konsisten dengan empat kolom
Data kolom sesuai tipe yang ditentukan:
customer_id sebagai string
purchase_date sebagai date
product_id sebagai string
amount sebagai decimal
4. Konektivitas jaringan:
Akses jaringan ke AWS S3
Pengaturan security group dan firewall yang tepat
5. Sumber daya komputasi:
Warehouse aktif dengan kapasitas komputasi yang memadai
Kredit/kuota pengguna yang cukup
Contoh 4: Membuat tabel dinamis
Contoh ini membuat tabel dinamis yang mempertahankan ringkasan data penjualan yang selalu mutakhir:
-- Create a dynamic table for real-time sales analyticsCREATEORREPLACE DYNAMIC TABLE daily_sales_summary
TARGET_LAG ='20 minutes'
WAREHOUSE ='COMPUTE_WH'ASSELECT
DATE_TRUNC('day', sale_timestamp)as sale_date,
product_category,SUM(sale_amount)as total_sales,COUNT(DISTINCT customer_id)as unique_customers
FROM sales_transactions
GROUPBY1,2;Didukung oleh
Parameter TARGET_LAG sebesar '20 minutes' mendefinisikan jeda maksimum yang diizinkan antara pembaruan pada tabel sumber dan saat perubahan tersebut tercermin di tabel dinamis. Ini memastikan kesegaran data dalam jendela waktu tersebut.
Parameter WAREHOUSE menentukan sumber daya komputasi (dalam hal ini COMPUTE_WH) yang akan digunakan untuk menyegarkan tabel dinamis secara berkala. Warehouse ini harus memiliki kapasitas yang memadai untuk menangani operasi penyegaran.
Tabel dinamis secara otomatis memperbarui isinya ketika tabel sales_transactions yang mendasarinya berubah tanpa memerlukan intervensi manual. Ini menyediakan kemampuan analitik hampir real-time.
Dengan mempertahankan ringkasan penjualan harian yang telah diagregasi berdasarkan kategori produk, tabel dinamis memungkinkan kueri lebih cepat dibanding menghitung metrik tersebut saat dibutuhkan dari data transaksi mentah. Ini meningkatkan performa kueri untuk keperluan pelaporan dan analitik.
Setiap contoh ini menunjukkan skenario pembuatan tabel berbeda yang mungkin Anda temui dalam aplikasi dunia nyata. Ingat untuk menyesuaikan nama kolom, tipe data, dan parameter lain sesuai kebutuhan spesifik Anda.
Praktik Terbaik untuk Membuat Tabel di Snowflake
Mari jelajahi beberapa praktik terbaik yang perlu diikuti saat membuat tabel di Snowflake untuk memastikan kemudahan pemeliharaan, performa, dan kualitas data.
1. Konvensi penamaan
Selalu gunakan nama yang jelas dan konsisten untuk tabel dan kolom Anda:
-- Good naming examplesCREATETABLE customer_orders (
order_id INTEGER,
customer_email VARCHAR,
order_date DATE);-- Bad naming examplesCREATETABLE Orders123 (
ID INTEGER,
email VARCHAR,
dt DATE);Didukung oleh
Tips penamaan:
Gunakan huruf kecil dan garis bawah (snake_case)
Hindari spasi dan karakter khusus
Buat nama deskriptif namun tidak terlalu panjang
Gunakan bentuk tunggal untuk nama tabel (customer bukan customers)
Tambahkan prefiks untuk lingkungan yang berbeda (dev_, test_, prod_)
2. Tipe data kolom
Pilih tipe data yang tepat untuk menghemat penyimpanan dan meningkatkan performa:
-- Good data type choicesCREATETABLE products (
product_id INTEGER,
price DECIMAL(10,2),-- For money values
name VARCHAR(100),-- Set a reasonable limit
description TEXT,-- For very long text
is_active BOOLEAN-- Instead of VARCHAR or INTEGER);Didukung oleh
Tipe data umum untuk digunakan:
NUMBER/INTEGER: Untuk bilangan bulat
DECIMAL/NUMERIC: Untuk bilangan desimal presisi (terutama uang)
VARCHAR: Untuk teks dengan panjang maksimum yang diketahui
TEXT: Untuk teks dengan panjang tak terbatas
TIMESTAMP_NTZ: Untuk tanggal dan waktu (tanpa zona waktu)
BOOLEAN: Untuk nilai benar/salah
3. Menggunakan clustering key
Tambahkan clustering key untuk meningkatkan performa kueri:
Jangan melakukan clustering pada kolom dengan terlalu banyak nilai unik
4. Menambahkan constraint tabel
Gunakan constraint untuk menjaga kebersihan data Anda:
CREATETABLE users (
user_id INTEGERPRIMARYKEY,-- Ensures unique IDs
email VARCHAR(255)UNIQUE,-- No duplicate emails
username VARCHAR(50)NOTNULL,-- Must have a value
age INTEGERCHECK(age >=18)-- Must be 18 or older);Didukung oleh
Constraint penting:
PRIMARY KEY: Untuk pengidentifikasi unik
FOREIGN KEY: Untuk menautkan tabel satu sama lain
NOT NULL: Untuk kolom wajib
UNIQUE: Untuk kolom yang tidak boleh duplikat
CHECK: Untuk validasi data sederhana
5. Kesalahan umum yang harus dihindari
Jangan lakukan ini:
-- Bad practice: No primary keyCREATETABLE orders (dateVARCHAR,-- Wrong data type for dates
amount VARCHAR(10),-- Wrong data type for numbersstatustext-- Inconsistent case with other columns);Didukung oleh
Lakukan ini sebagai gantinya:
-- Good practiceCREATETABLE orders (
order_id INTEGERPRIMARYKEY,
order_date DATE,
amount DECIMAL(10,2),statusVARCHAR(20));Didukung oleh
Versi yang ditingkatkan memastikan integritas data dengan primary key, menggunakan tipe data yang benar untuk tanggal dan angka agar memungkinkan pemfilteran dan perhitungan yang efisien, serta mempertahankan konsistensi definisi kolom untuk keterbacaan dan kompatibilitas yang lebih baik.
6. Tips performa
Mengoptimalkan performa tabel di Snowflake dapat secara signifikan meningkatkan kecepatan kueri dan mengurangi biaya penyimpanan. Ikuti praktik terbaik berikut untuk memastikan tabel Anda efisien dan dapat diskalakan.
Buat tabel yang lebih kecil alih-alih satu tabel yang sangat besar
Tambahkan deskripsi kolom menggunakan COMMENT
Siapkan aturan pembersihan data otomatis
Uji desain tabel Anda dengan data nyata
Pantau penggunaan tabel dan sesuaikan sesuai kebutuhan
7. Praktik terbaik keamanan
Langkah keamanan yang tepat sangat penting untuk melindungi data sensitif dan mengontrol akses. Terapkan praktik terbaik ini untuk menjaga lingkungan Snowflake Anda dari akses tidak sah dan pelanggaran data.
Selalu tetapkan izin akses yang tepat
Gunakan keamanan tingkat baris bila diperlukan
Enkripsi kolom sensitif
Lacak siapa yang dapat mengakses apa
Tinjau pola akses secara berkala
Ingat: Tabel yang dirancang dengan baik akan memudahkan pekerjaan Anda ke depannya. Luangkan waktu untuk merencanakan struktur tabel sebelum membuatnya!
Kesimpulan
Dalam tutorial ini, kami telah membahas hal-hal penting dalam membuat tabel di Snowflake, termasuk:
Jenis tabel yang berbeda (permanen, sementara, eksternal, dan dinamis)
Contoh langkah demi langkah untuk membuat masing-masing jenis
Praktik terbaik untuk desain dan manajemen tabel
Jebakan umum yang harus dihindari
Pengetahuan ini menjadi fondasi untuk membangun solusi data yang efisien dan dapat diskalakan di Snowflake.
Langkah Berikutnya
Untuk memperdalam keahlian Snowflake Anda, lihat sumber daya berharga berikut:
Jangan lupa, cara terbaik untuk belajar adalah dengan praktik. Mulailah membuat tabel, bereksperimen dengan berbagai jenis, dan bangun proyek nyata. Saat menghadapi tantangan, rujuk kembali ke sumber daya ini dan terus jelajahi fitur Snowflake yang baru.
Snowflake Create Table FAQs
Apa saja jenis tabel di Snowflake?⌄
Snowflake mendukung empat jenis tabel utama: tabel permanen untuk penyimpanan data jangka panjang, tabel sementara untuk penggunaan khusus sesi, tabel eksternal untuk mengkueri sumber data eksternal, dan tabel dinamis untuk pemeliharaan hasil kueri secara otomatis.
Bagaimana cara membuat tabel dasar di Snowflake?⌄
Gunakan perintah CREATE TABLE dengan skema yang Anda inginkan. Contoh: "CREATE TABLE customers (customer_id INTEGER PRIMARY KEY, first_name VARCHAR(50), last_name VARCHAR(50))". Sertakan tipe data dan constraint yang sesuai.
Apa itu tabel dinamis di Snowflake dan kapan harus menggunakannya?⌄
Tabel dinamis secara otomatis mempertahankan hasil kueri yang selalu mutakhir, mirip dengan materialized view. Tabel ini ideal untuk dasbor real-time, transformasi data otomatis, dan mempertahankan data teragregasi yang memerlukan pembaruan sering.
Apa praktik terbaik untuk penamaan tabel di Snowflake?⌄
Gunakan huruf kecil dengan garis bawah (snake_case), hindari spasi dan karakter khusus, buat nama deskriptif namun ringkas, gunakan bentuk tunggal untuk nama tabel, dan pertimbangkan penambahan prefiks lingkungan (dev_, test_, prod_).
Bagaimana cara meningkatkan performa tabel di Snowflake?⌄
Tingkatkan performa dengan menggunakan clustering key yang sesuai, memilih tipe data yang benar, menetapkan constraint yang tepat, membuat tabel yang lebih kecil dan terfokus alih-alih yang besar, serta secara berkala memantau pola penggunaan tabel.
Saya adalah kreator konten data science dengan pengalaman lebih dari 2 tahun dan salah satu dengan jumlah pengikut terbesar di Medium. Saya suka menulis artikel mendalam tentang AI dan ML dengan sedikit gaya sarkastik—karena harus ada sesuatu untuk membuatnya tidak terlalu membosankan. Saya telah menghasilkan lebih dari 130 artikel dan satu kursus di DataCamp, dengan satu lagi sedang dalam proses. Konten saya telah dilihat oleh lebih dari 5 juta pasang mata, dan 20 ribu di antaranya menjadi pengikut di Medium dan LinkedIn.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Snowflake adalah platform gudang data berbasis cloud yang andal untuk membantu organisasi menyimpan, mengelola, dan menganalisis data secara efisien. Berbeda dengan gudang data tradisional yang memerlukan penyiapan perangkat keras yang kompleks, Snowflake berjalan sepenuhnya di cloud, sehingga memudahkan bisnis untuk meningkatkan skala operasi data sesuai kebutuhan.
Membuat tabel di Snowflake adalah keterampilan mendasar yang menjadi fondasi manajemen data. Tabel adalah tempat Anda menyimpan data terstruktur, sehingga memungkinkan menjalankan kueri, menghasilkan laporan, dan mendapatkan wawasan berharga dari informasi Anda. Baik Anda bekerja dengan data pelanggan, angka penjualan, atau hasil analitik, memahami cara membuat dan mengelola tabel di Snowflake itu penting.
Dalam tutorial ini, Anda akan mempelajari semua yang perlu diketahui tentang pembuatan tabel di Snowflake. Kami akan membahas berbagai jenis tabel, menunjukkan contoh langkah demi langkah, dan membagikan praktik terbaik untuk desain tabel. Pada akhirnya, Anda akan percaya diri dalam memilih jenis tabel yang tepat untuk kebutuhan Anda dan membuat tabel yang mengikuti standar industri untuk kinerja dan kemudahan pemeliharaan.
Memahami Jenis Tabel di Snowflake
Sebelum kita masuk ke contoh kode tentang cara membuat tabel, mari jelajahi berbagai jenis tabel di Snowflake karena masing-masing memiliki tujuan yang unik serta karakteristik berbeda terkait persistensi data, aksesibilitas, dan lokasi penyimpanan.
Tabel permanen
Tabel permanen adalah jenis tabel standar di Snowflake. Tabel ini bertahan hingga dihapus secara eksplisit dan disimpan di penyimpanan internal Snowflake. Tabel ini ideal untuk menyimpan data bisnis inti yang perlu dipertahankan jangka panjang dan diakses lintas banyak sesi. Data dalam tabel permanen tetap utuh antar sesi dan dapat diakses oleh pengguna berwenang mana pun.
Tabel sementara
Tabel sementara adalah tabel khusus sesi yang otomatis dihapus saat sesi Anda berakhir. Tabel ini berfungsi sebagai ruang kerja untuk langkah pemrosesan intermediate, membantu mengatur transformasi data yang kompleks tanpa membuat penyimpanan permanen Anda berantakan. Data dalam tabel sementara hanya terlihat oleh sesi yang membuatnya dan dibersihkan secara otomatis saat sesi ditutup.
Tabel eksternal
Tabel eksternal menyediakan cara untuk mengkueri data yang berada di luar penyimpanan Snowflake. Tabel ini bertindak sebagai lapisan metadata yang memetakan ke data di lokasi penyimpanan eksternal seperti AWS S3 atau Azure Blob Storage. Alih-alih mengimpor data, tabel eksternal membuat referensi ke data tersebut, memungkinkan Anda mengkueri data eksternal secara langsung. Pendekatan ini sangat berguna saat bekerja dengan data yang perlu tetap berada di lokasi sumbernya atau memerlukan pembaruan berkala dari sistem eksternal.
Tabel dinamis
Tabel dinamis adalah fitur canggih di Snowflake yang secara otomatis mempertahankan hasil kueri yang selalu mutakhir. Tabel ini bertindak seperti materialized view yang menyegarkan diri secara otomatis berdasarkan perubahan pada tabel sumber di bawahnya. Saat Anda membuat tabel dinamis, Anda mendefinisikannya menggunakan pernyataan SELECT, dan Snowflake secara otomatis mengelola proses penyegaran untuk memastikan data tetap terbaru.
Tabel dinamis sangat berguna untuk:
Fitur utama tabel dinamis meliputi:
Setiap jenis tabel memiliki tujuan berbeda dalam arsitektur data. Tabel permanen membentuk fondasi gudang data Anda, tabel sementara memfasilitasi alur kerja pemrosesan data, tabel eksternal memungkinkan integrasi dengan sumber data eksternal, dan tabel dinamis menyediakan transformasi data otomatis secara real-time.
Membandingkan tabel Snowflake
Pada tabel di bawah, kami merangkum berbagai jenis tabel Snowflake sebagai panduan referensi cepat:
Jenis Tabel
Persistensi
Visibilitas
Terbaik Untuk
Permanen
Hingga dihapus
Sesi mana pun
Data bisnis inti
Sementara
Khusus sesi
Sesi yang sama
Transformasi intermediate
Eksternal
Penyimpanan eksternal
Sesi mana pun
Mengkueri data eksternal (mis., S3)
Dinamis
Penyegaran otomatis
Sesi mana pun
Analitik real-time
Membuat Tabel: Menyiapkan Snowflake
Sebelum menjalankan contoh dalam tutorial ini, Anda memerlukan akses ke lingkungan Snowflake. Berikut beberapa cara untuk terhubung dan menjalankan perintah Snowflake:
1. Antarmuka web Snowflake (Snowsight)
Cara termudah untuk memulai adalah melalui antarmuka web Snowflake:
2. Snowflake CLI (alat baris perintah)
Untuk akses baris perintah:
Anda dapat menemukan kredensial akun Snowflake Anda di tempat berikut:
Demi keamanan, jangan pernah membagikan atau meng-commit kredensial ini. Simpan dengan aman di variabel lingkungan atau berkas konfigurasi.
3. Koneksi Python
Jika Anda menggunakan Python, Anda dapat menggunakan pustaka
snowflake-connector-python:Catatan Keamanan Penting:
Sekarang penyiapan sudah siap, mari kita buat tabel!
Membuat Tabel di Snowflake: Contoh Langkah demi Langkah
Contoh 1: Membuat tabel Snowflake sederhana
Mari buat tabel untuk menyimpan informasi pelanggan. Contoh ini menunjukkan pembuatan tabel dasar dengan berbagai tipe data dan constraint.
Poin penting dari contoh ini:
CREATE OR REPLACE TABLE- Membuat tabel baru atau menggantinya jika sudah adaPRIMARY KEY- Memastikan identifikasi unik untuk setiap rekamanNOT NULL- Mencegah nilai null pada kolom yang wajib diisiUNIQUE- Memastikan alamat email tidak duplikatTIMESTAMP_NTZ- Timestamp tanpa zona waktuDEFAULT- Secara otomatis mengisi cap waktu pembuatanContoh 2: Membuat tabel sementara
Tabel sementara sangat cocok untuk pemrosesan data intermediate. Berikut contoh yang membuat tabel sementara untuk menganalisis pesanan pelanggan:
Poin penting tentang tabel sementara:
TEMPORARYmenunjukkan bahwa tabel ini hanya ada dalam sesi saat ini. Artinya pengguna lain tidak dapat melihat atau mengakses tabel ini.CREATE TABLE AS(CTAS) memungkinkan Anda membuat dan mengisi tabel dalam satu langkah dengan menggabungkan definisi tabel dengan pernyataan SELECT.Contoh 3: Membuat tabel eksternal di Snowflake
Contoh ini menunjukkan cara membuat tabel eksternal yang membaca data dari berkas yang disimpan di bucket penyimpanan cloud:
Pernyataan pertama mendefinisikan spesifikasi format berkas yang memberi tahu Snowflake cara mengurai berkas CSV eksternal, termasuk pemisah kolom, penanganan header, dan representasi nilai NULL.
Pernyataan kedua membuat objek stage yang membangun koneksi ke penyimpanan cloud eksternal (dalam hal ini, S3) menggunakan kredensial yang diberikan. Stage ini bertindak sebagai titik referensi untuk mengakses berkas data eksternal.
Pernyataan ketiga membuat tabel eksternal itu sendiri, menggunakan definisi kolom dengan klausa AS untuk secara eksplisit mengubah data string mentah dari CSV menjadi tipe data Snowflake yang tepat. Klausa WITH LOCATION menunjuk ke jalur spesifik dalam stage tempat berkas berada.
Parameter PATTERN memfilter berkas mana yang harus disertakan menggunakan pencocokan regex, memastikan hanya berkas CSV yang diproses.
Prasyarat untuk menjalankan kueri pembuatan tabel eksternal ini:
1. Akses ke akun Snowflake dengan izin untuk:
2. Kredensial AWS yang valid (
AWS_KEY_IDdanAWS_SECRET_KEY) dengan izin untuk:3. Persyaratan data sumber:
customer_idsebagai stringpurchase_datesebagai dateproduct_idsebagai stringamountsebagai decimal4. Konektivitas jaringan:
5. Sumber daya komputasi:
Contoh 4: Membuat tabel dinamis
Contoh ini membuat tabel dinamis yang mempertahankan ringkasan data penjualan yang selalu mutakhir:
Parameter
TARGET_LAGsebesar '20 minutes' mendefinisikan jeda maksimum yang diizinkan antara pembaruan pada tabel sumber dan saat perubahan tersebut tercermin di tabel dinamis. Ini memastikan kesegaran data dalam jendela waktu tersebut.Parameter
WAREHOUSEmenentukan sumber daya komputasi (dalam hal iniCOMPUTE_WH) yang akan digunakan untuk menyegarkan tabel dinamis secara berkala. Warehouse ini harus memiliki kapasitas yang memadai untuk menangani operasi penyegaran.Tabel dinamis secara otomatis memperbarui isinya ketika tabel
sales_transactionsyang mendasarinya berubah tanpa memerlukan intervensi manual. Ini menyediakan kemampuan analitik hampir real-time.Dengan mempertahankan ringkasan penjualan harian yang telah diagregasi berdasarkan kategori produk, tabel dinamis memungkinkan kueri lebih cepat dibanding menghitung metrik tersebut saat dibutuhkan dari data transaksi mentah. Ini meningkatkan performa kueri untuk keperluan pelaporan dan analitik.
Setiap contoh ini menunjukkan skenario pembuatan tabel berbeda yang mungkin Anda temui dalam aplikasi dunia nyata. Ingat untuk menyesuaikan nama kolom, tipe data, dan parameter lain sesuai kebutuhan spesifik Anda.
Praktik Terbaik untuk Membuat Tabel di Snowflake
Mari jelajahi beberapa praktik terbaik yang perlu diikuti saat membuat tabel di Snowflake untuk memastikan kemudahan pemeliharaan, performa, dan kualitas data.
1. Konvensi penamaan
Selalu gunakan nama yang jelas dan konsisten untuk tabel dan kolom Anda:
Tips penamaan:
dev_,test_,prod_)2. Tipe data kolom
Pilih tipe data yang tepat untuk menghemat penyimpanan dan meningkatkan performa:
Tipe data umum untuk digunakan:
NUMBER/INTEGER: Untuk bilangan bulatDECIMAL/NUMERIC: Untuk bilangan desimal presisi (terutama uang)VARCHAR: Untuk teks dengan panjang maksimum yang diketahuiTEXT: Untuk teks dengan panjang tak terbatasTIMESTAMP_NTZ: Untuk tanggal dan waktu (tanpa zona waktu)BOOLEAN: Untuk nilai benar/salah3. Menggunakan clustering key
Tambahkan clustering key untuk meningkatkan performa kueri:
Kapan menggunakan clustering:
4. Menambahkan constraint tabel
Gunakan constraint untuk menjaga kebersihan data Anda:
Constraint penting:
PRIMARY KEY: Untuk pengidentifikasi unikFOREIGN KEY: Untuk menautkan tabel satu sama lainNOT NULL: Untuk kolom wajibUNIQUE: Untuk kolom yang tidak boleh duplikatCHECK: Untuk validasi data sederhana5. Kesalahan umum yang harus dihindari
Jangan lakukan ini:
Lakukan ini sebagai gantinya:
Versi yang ditingkatkan memastikan integritas data dengan primary key, menggunakan tipe data yang benar untuk tanggal dan angka agar memungkinkan pemfilteran dan perhitungan yang efisien, serta mempertahankan konsistensi definisi kolom untuk keterbacaan dan kompatibilitas yang lebih baik.
6. Tips performa
Mengoptimalkan performa tabel di Snowflake dapat secara signifikan meningkatkan kecepatan kueri dan mengurangi biaya penyimpanan. Ikuti praktik terbaik berikut untuk memastikan tabel Anda efisien dan dapat diskalakan.
7. Praktik terbaik keamanan
Langkah keamanan yang tepat sangat penting untuk melindungi data sensitif dan mengontrol akses. Terapkan praktik terbaik ini untuk menjaga lingkungan Snowflake Anda dari akses tidak sah dan pelanggaran data.
Ingat: Tabel yang dirancang dengan baik akan memudahkan pekerjaan Anda ke depannya. Luangkan waktu untuk merencanakan struktur tabel sebelum membuatnya!
Kesimpulan
Dalam tutorial ini, kami telah membahas hal-hal penting dalam membuat tabel di Snowflake, termasuk:
Pengetahuan ini menjadi fondasi untuk membangun solusi data yang efisien dan dapat diskalakan di Snowflake.
Langkah Berikutnya
Untuk memperdalam keahlian Snowflake Anda, lihat sumber daya berharga berikut:
1. Kursus interaktif:
2. Tutorial komprehensif:
3. Sumber daya karier:
Jangan lupa, cara terbaik untuk belajar adalah dengan praktik. Mulailah membuat tabel, bereksperimen dengan berbagai jenis, dan bangun proyek nyata. Saat menghadapi tantangan, rujuk kembali ke sumber daya ini dan terus jelajahi fitur Snowflake yang baru.