Kursus
Snowflake menawarkan arsitektur khusus untuk berbagi data yang aman dan efisien di berbagai lingkungan. Baik saat berkolaborasi di dalam organisasi maupun dengan mitra eksternal, Snowflake menyediakan berbagai opsi yang dibuat khusus, seperti direct shares, data exchanges, dan Snowflake Marketplace.
Dalam konteks perusahaan, fitur-fitur ini memungkinkan kolaborasi yang mulus sekaligus mengendalikan biaya dan memastikan keamanan yang kuat. Artikel ini bertujuan membantu Anda memahami setiap metode berbagi dan memberikan panduan praktis tentang cara menggunakannya secara efektif dalam skenario dunia nyata. Jika Anda baru mengenal Snowflake, saya sarankan Anda melihat jalur keterampilan Snowflake Foundations kami.
Apa itu Berbagi Data Snowflake?
Secara tradisional, berbagi data bergantung pada proses ETL (Extract, Transform, Load), yang melibatkan ekstraksi data dari sistem sumber dan memuatnya ke sistem tujuan. Metode ini memerlukan penyalinan dan pemindahan data secara fisik, mengonsumsi sumber daya penyimpanan dan komputasi.
Snowflake menghilangkan kebutuhan untuk menyalin atau memindahkan data secara fisik. Dengan arsitektur berbagi data Snowflake, satu akun (penyedia) dapat memberikan akses langsung, hanya-baca ke dataset tertentu untuk akun lain (konsumen) tanpa mentransfer atau menggandakan data.
Konsumen dapat melakukan kueri terhadap data seolah-olah data tersebut ada secara lokal, meskipun secara fisik tersimpan di akun penyedia. Karena data tetap berada di satu lokasi, penyedia hanya menanggung biaya penyimpanan, membuat pendekatan ini jauh lebih efisien dan skalabel untuk kolaborasi lintas akun.
Bagaimana Cara Kerja Berbagi Data Snowflake?
Snowflake memungkinkan berbagi data zero-copy yang aman menggunakan pointer metadata alih-alih menyalin atau memindahkan data antar sistem. Sistem ini membuat referensi ke objek asli di akun penyedia, memungkinkan konsumen mengakses referensi tersebut untuk mengkueri data yang dibagikan.
Konsumen diberikan akses hanya-baca, artinya mereka dapat membaca dan menjelajahi data tetapi tidak dapat memodifikasi data sumber. Karena konsumen melakukan kueri langsung ke penyimpanan penyedia tanpa menggandakannya, tidak ada biaya penyimpanan yang dibebankan ke akun konsumen.
Selain itu, arsitektur Snowflake memisahkan komputasi dan penyimpanan, memfasilitasi operasi data yang hemat biaya. Penyedia bertanggung jawab atas biaya penyimpanan dan sumber daya komputasi yang mereka gunakan, sementara konsumen hanya membayar sumber daya komputasi yang mereka manfaatkan.
Berbagi data Snowflake juga skalabel. Setiap akun Snowflake yang memiliki akses ke data bersama dapat membuat virtual warehouse-nya sendiri dan menjalankan kueri secara independen, semakin mendukung berbagi data yang skalabel.
Selain itu, Snowflake menggabungkan kontrol tata kelola dan keamanan untuk mengelola akses bersama. Penyedia dapat menentukan visibilitas data melalui kontrol akses berbasis peran dan memantau penggunaan dengan log audit. Fitur-fitur ini memastikan visibilitas dan kontrol penuh atas data yang dibagikan.
Cara Berbagi Data di Snowflake
Berbagi data di Snowflake hadir dalam berbagai bentuk, masing-masing dirancang untuk kasus penggunaan tertentu. Mari jelajahi kemampuan berbagi data yang berbeda agar Anda tahu mana yang harus digunakan.
Direct shares
Gunakan direct shares untuk berbagi data dengan banyak pengguna dalam wilayah Snowflake yang sama. Anda membuat objek share yang mencakup basis data, tabel, dan view yang dipilih, lalu memberikan akses kepada akun Snowflake konsumen tertentu. Anda harus mencantumkan secara eksplisit setiap akun yang dapat mengakses data.
Konsumen membuat basis data dari share dan dapat langsung melakukan kueri. Basis data ini tidak mengonsumsi penyimpanan data; ini berfungsi sebagai referensi logis ke data yang dibagikan.
Direct shares hanya berfungsi saat Anda berbagi data dalam penyedia cloud dan wilayah yang sama. Opsi ini ideal untuk berbagi data dengan tim internal, mitra bisnis tepercaya, atau sejumlah terbatas akun Snowflake. Pengaturan ini paling cocok untuk hubungan one-to-few.
Data exchanges
Ketika Anda perlu berbagi data dengan banyak akun atau grup konsumen, direct shares bisa menjadi tidak efisien karena Anda harus menentukan setiap akun Snowflake satu per satu. Dalam hal ini, data exchange adalah opsi yang lebih baik.
Dengan data exchange, Anda mempublikasikan dataset sebagai produk data di marketplace privat dan mengundang grup konsumen untuk mengaksesnya. Pengaturan ini berfungsi seperti katalog yang dapat dicari, tempat konsumen dapat menelusuri dan berlangganan data yang mereka butuhkan. Karena exchange bersifat privat, hanya akun internal atau grup yang diundang yang dapat mengaksesnya.
Berbagi data lintas wilayah atau multi-cloud dimungkinkan menggunakan replikasi data Snowflake, menjadikan data exchange ideal untuk berbagi di berbagai unit bisnis atau waralaba dalam organisasi besar.
Misalnya, jika Anda ingin berbagi data penjualan pelanggan dengan berbagai tim di seluruh perusahaan, Anda dapat membuat Snowflake Data Exchange privat bernama “customer_behaviour_data” dan memublikasikan beberapa listing dari dataset yang sama, masing-masing dengan izin akses yang bervariasi. Setiap tim dapat berlangganan listing yang memenuhi kebutuhan data mereka, memfasilitasi kolaborasi yang lebih lancar dan aman di antara tim dengan tingkat akses berbeda.
Snowflake Marketplace
Snowflake Marketplace berfungsi seperti App Store milik Apple, tetapi untuk data. Ini adalah marketplace publik tempat penyedia membagikan produk data kepada pengguna Snowflake mana pun. Penyedia membuat listing, menambahkan metadata, menawarkan pratinjau, dan menetapkan ketentuan penggunaan agar konsumen dapat dengan mudah menemukan yang mereka butuhkan.
Saat memublikasikan, penyedia dapat memilih antara listing publik (terlihat oleh semua pelanggan Snowflake) atau listing privat (hanya terlihat oleh akun yang dipilih).
Konsumen dapat menelusuri Marketplace menggunakan kata kunci yang relevan. Untuk listing publik, mereka dapat berlangganan langsung; untuk listing privat, mereka harus meminta akses. Setelah disetujui, mereka dapat melihat dan mengkueri dataset langsung di akun Snowflake mereka.
Snowflake Marketplace mendukung listing berbayar dengan penetapan harga berbasis penggunaan dan berlangganan. Penagihan diproses oleh Snowflake (misalnya, melalui Stripe) dan dapat mengurangi kapasitas kontrak untuk konsumen yang memenuhi syarat. Misalnya, sebuah perusahaan finansial dapat menjual paket yang berisi data ekuitas real-time dan harga historis. Snowflake akan menagih pengguna berdasarkan model harga penyedia dan penggunaan aktual.
Reader accounts
Reader account Snowflake memungkinkan Anda berbagi data dengan pihak ketiga yang tidak memiliki akun Snowflake.
Alih-alih mengharuskan konsumen menyiapkan dan membayar Snowflake, penyedia membuat dan mengelola reader account atas nama mereka.
Penyedia kemudian menggunakan share untuk membagikan basis data kepada reader account dan memberikan akun-akun tersebut kepada konsumen. Penting untuk diingat bahwa reader account hanya dapat mengonsumsi data dari akun penyedia yang membuatnya.
Reader account terutama ditujukan untuk melakukan kueri pada dataset yang dibagikan. Komputasi apa pun yang digunakan dalam reader account melalui virtual warehouse ditagihkan ke akun penyedia. Untuk membatasi penggunaan, Anda dapat menyiapkan monitor sumber daya untuk warehouse.
Gambaran Umum Penyedia dan Konsumen Data
Sekarang Anda telah mengenal berbagai jenis data share di Snowflake, mari pahami penyedia dan konsumen data. Apa tanggung jawab masing-masing peran, dan batasan apa yang perlu Anda ketahui saat berbagi atau mengakses data?
Tentang penyedia
Di Snowflake, penyedia data memiliki data yang ingin mereka bagikan. Mereka memiliki kontrol penuh atas data yang dibagikan dan dapat memutuskan data apa yang akan dibagikan dan siapa yang dapat mengaksesnya. Mereka sering bertanggung jawab untuk:
- Menentukan konten apa yang akan dibagikan dan kepada siapa
- Memberikan atau mencabut izin akses
- Memastikan data bersama bersih, andal, dan mutakhir
- Mengaudit akses dan melacak penggunaan melalui log untuk kepatuhan
Untuk memastikan berbagi data yang aman dan andal, penyedia harus mengikuti praktik terbaik berikut:
- Gunakan secure view untuk mengekspos hanya kolom atau baris yang diperlukan, menyamarkan data sensitif atau mentah
- Terapkan katalog metadata untuk mempermudah penemuan dan pemahaman aset yang dibagikan
- Gabungkan pelacakan lineage dan pencatatan log untuk memantau perubahan pada dataset yang dibagikan
- Terapkan kontrol akses berbasis peran untuk memastikan hanya pengguna berwenang yang dapat mengakses data tertentu
Tentang konsumen
Konsumen berada di sisi penerima berbagi data Snowflake. Mereka tidak memiliki data; sebagai gantinya, mereka mengkueri data yang dibagikan oleh penyedia menggunakan sumber daya komputasi mereka sendiri. Artinya, konsumen mengakses dan menganalisis data.
Karena mereka tidak membayar penyimpanan, tanggung jawab utama mereka adalah mengelola virtual warehouse dan efisiensi kueri untuk biaya komputasi yang optimal.
Jika mereka melakukan kueri dari reader account, sumber daya komputasi yang mereka gunakan juga ditagihkan kepada penyedia.
Batasan utama konsumen adalah mereka hanya dapat membaca data yang dibagikan. Mereka tidak dapat memodifikasi, menyisipkan, atau menghapus catatan dalam dataset. Selain itu, konsumen tidak melihat perubahan internal yang dilakukan oleh penyedia. Mereka selalu melihat versi data terbaru yang tersedia.
Menerapkan Berbagi Data di Snowflake
Kami telah membahas konsep kunci untuk membantu Anda memulai berbagi data di Snowflake. Apakah Anda menyiapkan profil penyedia, mengonfigurasi akun konsumen, atau mengelola reader account, bagian ini membahas semuanya.
Menyiapkan sebagai penyedia data
Untuk memublikasikan data ke Snowflake Marketplace atau Data Exchange privat, Anda harus terlebih dahulu menyiapkan profil penyedia. Setelah Anda meminta profil penyedia, Snowflake meninjau dan menyetujui detail perusahaan Anda. Setelah disetujui, Anda dapat mulai membuat dan memublikasikan listing.
Berikut cara menyiapkan profil penyedia:
- Langkah 1: Masuk ke akun Snowflake Anda.
- Langkah 2: Pastikan Anda berada dalam peran ACCOUTADMIN.
- Langkah 3: Di bilah sisi kiri, klik Data Products, lalu pilih Provider Studio.

- Langkah 4: Pilih tab Profiles, lalu klik tombol Create Profile, seperti terlihat pada gambar di bawah.

- Langkah 5: Pada formulir yang muncul, isi informasi organisasi dan kontak yang diperlukan untuk melengkapi penyiapan profil penyedia Anda.
Menyiapkan sebagai konsumen data
- Langkah 1: Masuk ke akun Snowflake Anda.
- Langkah 2: Di bilah sisi kiri, klik Data Products, lalu pilih Private Sharing.

- Langkah 3: Buka tab Shared with You untuk melihat data share yang dikirimkan kepada Anda.
Berbagi dengan reader account
Langkah 1: Masuk ke akun Snowflake Anda.
Langkah 2: Di menu sisi kiri, pilih Admin dan Accounts.

Langkah 3: Pilih tab Accounts, lalu buka sub-tab Reader Accounts.
Langkah 4: Untuk menambahkan reader account baru, klik tombol +Reader Account di pojok kanan atas, lalu isi detail yang diperlukan di formulir pop-up.

Arsitektur Keamanan
Data share di Snowflake secara bawaan aman karena konsumen memiliki akses hanya-baca dan tidak dapat memodifikasi, menyisipkan, atau menghapus data yang dibagikan. Untuk semakin memperkuat keamanan di luar kontrol akses default ini, Snowflake juga mengikuti langkah-langkah berikut:
Objek data aman
Anda dapat membagikan tabel, secure view, dan UDF aman; non-secure view tidak dapat dibagikan. Secure view mencegah konsumen mengakses tabel dasar di baliknya atau melihat logika SQL yang digunakan untuk mendefinisikan view. Ini memastikan bahwa logika bisnis sensitif, perhitungan kepemilikan, atau fungsi kustom tetap tersembunyi dari pengguna akhir.
Secure view juga mendukung kebijakan akses tingkat baris dan masking tingkat kolom, menjadikannya efektif untuk menegakkan kontrol akses data yang terperinci. Anda dapat menggabungkan kebijakan ini dengan kontrol akses berbasis peran untuk memastikan setiap konsumen hanya melihat data yang mereka berwenang untuk melihat.
Snowflake juga memungkinkan Anda menerapkan skema terpisah untuk share internal dan eksternal. Misalnya, Anda dapat menyimpan dataset mentah yang sensitif dalam satu skema dan mengekspos hanya view yang dimask atau diagregasi di skema lain, membatasi akses konsumen ke data sensitif.
Keamanan lintas wilayah
Dalam direct share, Snowflake berbagi metadata dan pointer ke objek asli dalam wilayah dan platform cloud yang sama. Namun jika akun konsumen berada di wilayah atau platform cloud lain, direct share tidak berfungsi. Di sinilah replikasi berperan.
Penyedia terlebih dahulu mereplikasi data ke wilayah tempat akun konsumen berada. Lalu mereka membuat objek share yang menunjuk ke data yang direplikasi dan memberikan akses kepada konsumen. Konsumen kemudian melakukan kueri pada data yang direplikasi menggunakan akses hanya-baca, sama seperti pada direct share.
Snowflake mengamankan semua data yang direplikasi dengan mengenkripsinya saat disimpan dan saat ditransmisikan.
Selain itu, replikasi data mengikuti jalur data internal yang dikontrol Snowflake, bukan rute internet publik. Sama seperti direct share, konsumen tidak pernah memiliki basis data yang direplikasi; aksesnya selalu hanya-baca.
Praktik Terbaik untuk Data Share Snowflake
Praktik terbaik ini melindungi data sensitif, mengoptimalkan penggunaan sumber daya, dan memastikan kepatuhan terhadap regulasi privasi data, sehingga memungkinkan kolaborasi yang skalabel di berbagai lingkungan.
Kerangka tata kelola
Kerangka tata kelola yang kuat memastikan data share sampai ke pengguna yang tepat dengan izin akses yang sesuai. Ini mencegah penyalahgunaan dan menjaga semua akses serta tindakan dapat dilacak.
Mulailah dengan klasifikasi data. Tandai data Anda dengan jelas sebagai sensitif, terbatas, atau publik, dan terapkan kontrol keamanan spesifik kategori untuk meminimalkan risiko dan mencegah paparan tidak disengaja.
Gabungkan tinjauan akses berkala dan audit penggunaan. Hanya karena seorang pengguna membutuhkan akses enam bulan lalu tidak berarti mereka masih membutuhkannya hari ini. Jadi tinjau dan perbarui izin secara berkala agar selaras dengan peran dan tanggung jawab saat ini.
Gunakan log akses Snowflake untuk memantau penggunaan data bersama. Log ini melacak siapa yang mengkueri data, seberapa sering, dan tindakan apa yang mereka lakukan, mendukung kepatuhan sekaligus penyetelan performa.
Untuk menerapkan kontrol akses terperinci, manfaatkan keamanan tingkat baris dan tingkat kolom. Masking tingkat kolom menyembunyikan kolom sensitif sekaligus mengekspos bagian lain dari dataset. Kebijakan tingkat baris memungkinkan Anda membatasi akses ke catatan tertentu berdasarkan peran atau atribut pengguna.
Optimasi performa
Selain mengamankan data bersama, penyedia bertanggung jawab mengoptimalkan performa dataset untuk memastikan akses dan pengkuerian yang efisien bagi konsumen.
Gunakan clustering key di Snowflake untuk meningkatkan performa kueri dan efisiensi penyimpanan. Ini bekerja seperti partisi untuk tabel. Misalnya, jika dataset penjualan Anda sering dikueri berdasarkan “price” dan “region”, Anda dapat menetapkannya sebagai clustering key. Snowflake akan mengatur data dasar secara fisik sehingga baris dengan nilai serupa untuk “price” dan “region” disimpan berdekatan. Ini memungkinkan akses lebih cepat dan pengkuerian yang efisien.
Untuk metrik bisnis yang sering digunakan, bagikan materialized view bersama dataset dasar. Ini berarti melakukan pra-komputasi metrik seperti pendapatan bulanan per wilayah, rata-rata penjualan mingguan, atau jumlah promosi, dan membagikannya bersama data yang mendasarinya. Konsumen dapat melakukan kueri langsung pada view ini, yang meningkatkan performa dan konsistensi di berbagai kasus penggunaan.
Memvalidasi dan memperbarui data share
Berbagi data yang akurat adalah kunci untuk penggunaan berbagi data Snowflake yang efisien. Untuk memastikan kualitas data, validasikan data yang Anda bagikan terhadap sumbernya. Cocokkan jumlah baris, jalankan pemeriksaan agregasi atau statistik ringkasan, dan lakukan pemeriksaan integritas skema, null check, serta validasi metadata. Validasi ini memastikan Anda membagikan data yang lengkap dan akurat.
Menambahkan sumber data baru atau mengubah skema bisa sulit dikelola, terutama di banyak data share. Untuk menyederhanakan migrasi, bagikan view alih-alih tabel mentah. View bertindak sebagai lapisan fleksibel, memungkinkan Anda mengubah struktur data yang mendasarinya atau tabel backend tanpa mengganggu kueri konsumen.
Saat Anda memperbarui dataset bersama, gunakan versioning. View ber-versi atau versi skema memungkinkan Anda melacak perubahan, menguji logika baru, dan melakukan rollback jika terjadi masalah.
Beri tahu konsumen Anda tentang perubahan yang akan datang yang dapat memengaruhi data yang dibagikan. Pemberitahuan sederhana memberi waktu kepada pengguna untuk menyesuaikan dan mempersiapkan transisi.
Batasan dan Pertimbangan
Data share Snowflake memiliki beberapa pembatasan bawaan. Ini bukan hambatan besar, tetapi penting untuk diantisipasi.
Tidak semua jenis objek dapat dibagikan. Anda dapat membagikan tabel, secure view, dan UDF aman. Anda tidak dapat membagikan non-secure view, stored procedure, file stage, serta task atau stream.
Walaupun Snowflake Marketplace dan data exchange dapat berbagi data lintas wilayah, direct data share hanya bisa dalam wilayah dan lingkungan cloud yang sama. Untuk melewati batasan ini, Anda memerlukan replikasi lintas wilayah/lintas cloud Snowflake (yang membutuhkan Enterprise Edition atau lebih tinggi).
Konsumen hanya memiliki akses hanya-baca ke data yang dibagikan. Mereka tidak dapat memodifikasi, menyisipkan, atau menghapus catatan. Jika mereka perlu melakukan transformasi atau menulis ke data, mereka harus menyalinnya ke lingkungan mereka sendiri, yang menimbulkan biaya penyimpanan dan komputasi tambahan.
Kesimpulan
Menggunakan data share secara efektif di Snowflake membuka potensi penuh kolaborasi yang aman dan hemat biaya. Penyedia dapat membagikan data live yang dapat dikueri kepada konsumen, tanpa memerlukan ETL atau duplikasi data. Pembaruan apa pun pada data sumber segera tercermin di akun konsumen, memastikan akses ke informasi terbaru.
Dengan mengadopsi model berbagi data Snowflake, organisasi dapat meningkatkan skala kolaborasi analitik, memperkuat tata kelola, dan memaksimalkan nilai aset data mereka. Namun, ini hanya berguna ketika konsumen tidak perlu mengedit data yang dibagikan.
Jika Anda baru mengenal Snowflake, mulailah dengan panduan ramah pemula ini tentang cara mempelajari Snowflake. Untuk memperdalam keahlian Anda, lihat jalur keterampilan Snowflake Foundations kami dan kursus kami tentang pemodelan data di Snowflake.
FAQ Berbagi Data Snowflake
Bagaimana Snowflake memastikan keamanan data saat berbagi?
Snowflake menggunakan arsitektur zero-copy yang memberikan akses hanya-baca kepada konsumen melalui pointer metadata yang aman. Secara default, Snowflake juga menggunakan secure view saat berbagi data.
Apa perbedaan utama antara direct share dan data exchange di Snowflake?
Direct share digunakan untuk berbagi data dengan akun Snowflake tertentu dalam wilayah yang sama. Opsi ini cocok untuk pengaturan berbagi data one-to-one atau one-to-few. Data exchange cocok untuk berbagi data yang skalabel, di mana penyedia memublikasikan data ke marketplace dan konsumen mengaksesnya dari sana.
Apa manfaat menggunakan secure view untuk berbagi data di Snowflake?
Secure view mencegah konsumen melihat tabel dasar di baliknya dan logika SQL. View ini mendukung keamanan tingkat baris dan kolom, memungkinkan kontrol visibilitas yang terperinci.
Objek apa yang dapat dibagikan di Snowflake?
Anda dapat membagikan tabel, view (standar, aman), materialized view, UDF, sequence, external table, dan fungsi aman.
Dapatkah kami melacak penggunaan data yang kami bagikan?
Ya. Snowflake menyediakan fitur riwayat akses dan riwayat kueri yang memungkinkan Anda memantau bagaimana objek bersama digunakan, siapa yang mengakses, dan kapan. Ini membantu dalam audit dan tata kelola.
Srujana adalah penulis lepas di bidang teknologi dengan gelar sarjana Ilmu Komputer. Menulis tentang berbagai topik, termasuk data science, komputasi awan, pengembangan, pemrograman, keamanan, dan banyak lainnya adalah hal yang alami baginya. Ia menyukai sastra klasik dan menjelajahi destinasi baru.


