Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Koneksi kepingan salju
Anda dapat menggunakan AWS Glue for Spark untuk membaca dan menulis ke tabel di Snowflake di AWS Glue 4.0 dan versi yang lebih baru. Anda dapat membaca dari Snowflake dengan query SQL. Anda dapat terhubung ke Snowflake menggunakan salah satu dari tiga metode - otentikasi dasar (menggunakan nama pengguna dan kata sandi), otentikasi, atau OAuth otentikasi pasangan kunci. Anda dapat merujuk ke kredensil Snowflake yang disimpan melalui koneksi Glue AWS Secrets Manager AWS Data. Koneksi data Kredensil Snowflake untuk AWS Glue for Spark disimpan secara terpisah dari kredenal Data Catalog Snowflake untuk crawler. Anda harus memilih SNOWFLAKE jenis koneksi dan bukan jenis koneksi yang JDBC dikonfigurasi untuk terhubung ke Snowflake.
Untuk informasi lebih lanjut tentang Snowflake, lihat situs web Snowflake
Mengkonfigurasi koneksi Snowflake
Tidak ada AWS prasyarat untuk menghubungkan ke database Snowflake yang tersedia melalui internet.
Secara opsional, Anda dapat melakukan konfigurasi berikut untuk mengelola kredensil koneksi Anda dengan Glue. AWS
Untuk mengelola kredensi koneksi Anda dengan Glue AWS
Di AWS Secrets Manager, buat rahasia menggunakan kredensi Snowflake Anda. Untuk membuat rahasia di Secrets Manager, ikuti tutorial yang tersedia di Buat AWS Secrets Manager rahasia dalam AWS Secrets Manager dokumentasi. Setelah membuat rahasia, simpan nama Rahasia,
secretNameuntuk langkah selanjutnya.-
Untuk OAuth otentikasi:
Saat memilih pasangan kunci/nilai, buat pasangan
snowflakeUserdengan kuncisfUserSaat memilih pasangan kunci/nilai, buat pasangan
OAUTH_CLIENT_SECRETdengan kunciUSER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET
-
Untuk otentikasi pasangan kunci:
Saat memilih pasangan kunci/nilai, buat pasangan
snowflakeUserdengan kuncisfUserSaat memilih pasangan kunci/nilai, buat pasangan
private keydengan kuncipem_private_key
-
Untuk otentikasi dasar:
Saat memilih pasangan kunci/nilai, buat pasangan
snowflakeUserdengan kunciUSERNAMESaat memilih pasangan kunci/nilai, buat pasangan
snowflakePassworddengan kunciPASSWORD
-
Saat memilih pasangan kunci/nilai, Anda dapat memberikan kunci kepada gudang Snowflake Anda.
sfWarehouse -
Saat memilih pasangan kunci/nilai, Anda dapat memberikan properti koneksi Snowflake tambahan menggunakan nama properti Spark yang sesuai sebagai kunci. Properti yang didukung meliputi:
sfDatabase- Nama database SnowflakesfSchema- Nama skema kepingan saljusfRole- Nama peran kepingan salju
-
Di AWS Glue Studio Console, buat koneksi dengan memilih Koneksi Data, lalu Buat koneksi. Mengikuti langkah-langkah di wizard koneksi untuk menyelesaikan proses:
Saat memilih sumber Data, pilih Snowflake, lalu pilih Berikutnya.
Masukkan detail koneksi seperti host dan port. Saat memasukkan URL Snowflake host, berikan URL instance Snowflake Anda. URL biasanya akan menggunakan nama host dalam formulir
. Namun, format URL dapat bervariasi tergantung pada jenis akun Snowflake Anda (misalnya, Azure AWS, atau Snowflake yang dihosting).account_identifier.snowflakecomputing.com-
Saat memilih peran layanan IAM, pilih dari menu tarik-turun. Ini adalah peran IAM dari akun Anda yang akan digunakan untuk mengakses AWS Secrets Manager dan menetapkan IP jika VPC ditentukan.
Saat memilih AWS Rahasia, berikan
secretName.
Pada langkah berikutnya dalam wizard, atur properti untuk koneksi Snowflake Anda.
Pada langkah terakhir di wizard, tinjau pengaturan Anda dan kemudian selesaikan proses untuk membuat koneksi Anda.
Untuk Snowflake yang dihosting AWS di VPC Amazon, Anda mungkin memerlukan yang berikut:
-
Anda akan memerlukan konfigurasi VPC Amazon yang sesuai untuk Snowflake. Untuk informasi selengkapnya tentang cara mengonfigurasi VPC Amazon Anda, lihat AWS PrivateLink & Snowflake di dokumentasi Snowflake
. -
Anda akan memerlukan konfigurasi Amazon VPC yang sesuai untuk Glue AWS . Mengkonfigurasi titik akhir VPC antarmuka () untuk AWS PrivateLink() AWS GlueAWS PrivateLink.
-
Anda perlu membuat koneksi Katalog Data AWS Glue yang menyediakan informasi koneksi Amazon VPC (selain id AWS Secrets Manager rahasia yang mendefinisikan kredenal keamanan Snowflake Anda). URL Anda akan berubah saat menggunakan AWS PrivateLink, seperti yang dijelaskan dalam dokumentasi Snowflake yang ditautkan di item sebelumnya.
-
Anda akan memerlukan konfigurasi pekerjaan Anda termasuk koneksi Katalog Data sebagai koneksi jaringan tambahan.
Membaca dari tabel Snowflake
Prasyarat: Meja Kepingan Salju yang ingin Anda baca. Anda akan membutuhkan nama tabel Snowflake,. tableName Jika pengguna Snowflake Anda tidak memiliki set namespace default, Anda akan memerlukan nama database Snowflake, dan nama skema. databaseName schemaName Selain itu, jika pengguna Snowflake Anda tidak memiliki set gudang default, Anda akan memerlukan nama gudang. warehouseName Untuk memilih yang mana Koneksi jaringan tambahan untuk terhubung, connectionName parameter akan digunakan.
snowflake_read = glueContext.create_dynamic_frame.from_options( connection_type="snowflake", connection_options={ "connectionName": "connectionName", "dbtable": "tableName", "sfDatabase": "databaseName", "sfSchema": "schemaName", "sfWarehouse": "warehouseName", } )
Selain itu, Anda dapat menggunakan query parameter autopushdown dan untuk membaca sebagian dari tabel Snowflake. Ini bisa jauh lebih efisien daripada memfilter hasil Anda setelah dimuat ke Spark. Pertimbangkan contoh di mana semua penjualan disimpan dalam tabel yang sama, tetapi Anda hanya perlu menganalisis penjualan dari toko tertentu pada hari libur. Jika informasi tersebut disimpan dalam tabel, Anda dapat menggunakan predikat pushdown untuk mengambil hasil sebagai berikut:
snowflake_node = glueContext.create_dynamic_frame.from_options( connection_type="snowflake", connection_options={ "autopushdown": "on", "query": "select * from sales where store='1' and IsHoliday='TRUE'", "connectionName": "snowflake-glue-conn", "sfDatabase": "databaseName", "sfSchema": "schemaName", "sfWarehouse": "warehouseName", } )
Menulis ke tabel Snowflake
Prasyarat: Database Snowflake yang ingin Anda tulis. Anda akan memerlukan nama tabel saat ini atau yang diinginkan,tableName. Jika pengguna Snowflake Anda tidak memiliki set namespace default, Anda akan memerlukan nama database Snowflake, dan nama skema. databaseName schemaName Selain itu, jika pengguna Snowflake Anda tidak memiliki set gudang default, Anda akan memerlukan nama gudang. warehouseName Untuk memilih yang mana Koneksi jaringan tambahan untuk terhubung, connectionName parameter akan digunakan.
glueContext.write_dynamic_frame.from_options( connection_type="snowflake", connection_options={ "connectionName": "connectionName", "dbtable": "tableName", "sfDatabase": "databaseName", "sfSchema": "schemaName", "sfWarehouse": "warehouseName", }, )
Referensi opsi koneksi kepingan salju
Jenis koneksi Snowflake mengambil opsi koneksi berikut:
Anda dapat mengambil beberapa parameter di bagian ini dari koneksi AWS Glue (sfUrl,,sfPassword)sfUser, dalam hal ini Anda tidak diharuskan untuk menyediakannya. Anda dapat melakukan ini dengan memberikan parameterconnectionName.
Anda dapat mengambil parameter koneksi dari AWS Secrets Manager rahasia menggunakan secretId parameter. Saat menggunakan Secrets Manager, properti Spark berikut dapat diambil secara otomatis jika ada dalam rahasia:
sfUser(menggunakan kunciUSERNAMEatausfUser)sfPassword(menggunakan kunciPASSWORDatausfPassword, saat menggunakan otentikasi dasar)sfWarehouse(menggunakan kuncisfWarehouse)sfDatabase(menggunakan kuncisfDatabase)sfSchema(menggunakan kuncisfSchema)sfRole(menggunakan kuncisfRole)pem_private_key(menggunakan kuncipem_private_key, saat menggunakan otentikasi pasangan kunci)USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET(saat menggunakan OAuth otentikasi)
Urutan Prioritas Properti: Ketika properti yang sama ditentukan di beberapa lokasi, AWS Glue menggunakan urutan prioritas berikut (tertinggi ke terendah):
Opsi koneksi yang disediakan secara eksplisit dalam kode pekerjaan Anda
Sifat koneksi Glue
AWS Secrets Manager nilai rahasia (kapan
secretIdditentukan)Default pengguna kepingan salju
Parameter berikut digunakan secara umum saat menghubungkan ke Snowflake.
sfDatabase— Diperlukan jika default pengguna tidak diatur di Snowflake. Digunakan untuk Baca/Tulis. Database yang akan digunakan untuk sesi setelah menghubungkan.sfSchema— Diperlukan jika default pengguna tidak diatur di Snowflake. Digunakan untuk Baca/Tulis. Skema yang digunakan untuk sesi setelah menghubungkan.sfWarehouse— Diperlukan jika default pengguna tidak diatur di Snowflake. Digunakan untuk Baca/Tulis. Gudang virtual default untuk digunakan untuk sesi setelah menghubungkan.sfRole— Diperlukan jika default pengguna tidak diatur di Snowflake. Digunakan untuk Baca/Tulis. Peran keamanan default yang digunakan untuk sesi setelah menghubungkan.-
sfUrl— (Diperlukan) Digunakan untuk Baca/Tulis. Menentukan nama host untuk akun Anda dalam format berikut:.Untuk informasi selengkapnya tentang pengenal akun, lihat Pengidentifikasi Akun di dokumentasiaccount_identifier.snowflakecomputing.comSnowflake. sfUser— (Diperlukan) Digunakan untuk Baca/Tulis. Nama login untuk pengguna Snowflake.sfPassword— (Diperlukan saat menggunakan authnetication dasar) Digunakan untuk Baca/Tulis. Kata sandi untuk pengguna Snowflake.dbtable— Diperlukan saat bekerja dengan tabel lengkap. Digunakan untuk Baca/Tulis. Nama tabel yang akan dibaca atau tabel tempat data ditulis. Saat membaca, semua kolom dan catatan diambil.-
pem_private_key— (Diperlukan saat menggunakan otentikasi pasangan kunci) Digunakan untuk Baca/Tulis. String kunci pribadi yang dikodekan b64 yang tidak terenkripsi. Kunci pribadi untuk pengguna Snowflake. Adalah umum untuk menyalin ini dari file PEM. Untuk informasi selengkapnya, lihat Autentikasi pasangan kunci dan rotasi pasangan kuncidalam dokumentasi Snowflake. -
USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET— (Diperlukan saat menggunakan OAuth Otentikasi) Digunakan untuk operasi baca dan tulis. Nilai ini sesuai dengan OAUTH_CLIENT_SECRET, yang dapat diperoleh dari integrasi keamanan Snowflake yang dikonfigurasi untuk mengaktifkan otentikasi berbasis untuk akun Anda. OAuth Untuk detail selengkapnya, lihat dokumentasi pengaturan integrasi OAuth keamanan Snowflake Anda - Konfigurasi Snowflake OAuthuntuk klien khusus. query— Diperlukan saat membaca dengan kueri. Digunakan untuk Baca. Kueri (SELECTpernyataan) yang tepat untuk dijalankan
Opsi berikut digunakan untuk mengonfigurasi perilaku tertentu selama proses menghubungkan ke Snowflake.
-
preactions— Digunakan untuk Baca/Tulis. Nilai Valid: Titik koma dipisahkan daftar pernyataan SQL sebagai String. Pernyataan SQL dijalankan sebelum data ditransfer antara AWS Glue dan Snowflake. Jika pernyataan berisi%s, diganti dengan nama tabel direferensikan untuk operasi.%s -
postactions— Digunakan untuk Baca/Tulis. Pernyataan SQL dijalankan setelah data ditransfer antara AWS Glue dan Snowflake. Jika pernyataan berisi%s, diganti dengan nama tabel direferensikan untuk operasi.%s -
autopushdown— Default:"on". Nilai yang Valid:"on","off". Parameter ini mengontrol apakah pushdown kueri otomatis diaktifkan. Jika pushdown diaktifkan, maka ketika kueri dijalankan di Spark, jika bagian dari kueri dapat “didorong ke bawah” ke server Snowflake, itu didorong ke bawah. Ini meningkatkan kinerja beberapa kueri. Untuk informasi tentang apakah kueri Anda dapat ditekan ke bawah, lihat Pushdowndi dokumentasi Snowflake.
Selain itu, beberapa opsi yang tersedia pada konektor Snowflake Spark mungkin didukung di Glue. AWS Untuk informasi selengkapnya tentang opsi yang tersedia di konektor Snowflake Spark, lihat Mengatur Opsi Konfigurasi untuk Konektor
Metode otentikasi kepingan salju
AWS Glue mendukung metode otentikasi berikut untuk menghubungkan ke Snowflake:
-
Otentikasi dasar: Menyediakan
sfUserdansfPasswordparameter. -
Otentikasi pasangan kunci: Menyediakan
sfUserdan parameter.pem_private_keySaat menggunakan otentikasi pasangan kunci,sfPasswordparameter tidak diperlukan. -
OAuth otentikasi: Konektor Kepingan Salju mendukung jenis hibah AUTHORIZATION_CODE untuk meminta akses ke data Snowflake Anda. Jenis hibah ini disebut sebagai “3-legged OAuth”, karena melibatkan pengalihan pengguna ke server otorisasi pihak ketiga di mana mereka dapat mengautentikasi dan menyetujui akses. Metode ini digunakan saat membuat koneksi melalui AWS Glue Console.
-
Prasyarat: Untuk menggunakan metode otentikasi ini, pastikan penyiapan berikut selesai:
-
Konfigurasikan Snowflake OAuth untuk klien khusus dengan mengikuti dokumentasi Snowflake resmi: Konfigurasikan
Snowflake untuk klien khusus. OAuth -
Atur URI pengalihan yang benar saat membuat integrasi keamanan Snowflake. Misalnya: Jika Anda membuat koneksi di wilayah DUB (eu-west-1), URI pengalihan Anda harus:
https://eu-west-1.console.aws.amazon.com/gluestudio/oauth -
Setelah membuat integrasi keamanan, simpan informasi berikut untuk digunakan saat membuat koneksi Glue:
OAUTH_CLIENT_ID: Nilai ini harus diberikan sebagai ID Klien Aplikasi Klien Terkelola Pengguna pada halaman pembuatan koneksi Glue.
OAUTH_CLIENT_SECRET: Nilai ini harus disimpan dalam Rahasia yang digunakan untuk koneksi, di bawah kunci AWS USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET.
-
-
OAuth Cakupan — (Opsional) Mendefinisikan izin tertentu atau tingkat akses yang diminta dari akun Snowflake. Misalnya, ruang lingkup mungkin membatasi akses ke sumber daya atau operasi tertentu.
Nilai ini dapat ditentukan dalam format berikut:
session:role:Snowflake_Role_NameContoh:
session:role:ANALYST_ROLE
-
URL Kode Otorisasi — (Wajib) Titik akhir tempat pengguna dialihkan untuk masuk dan memberikan otorisasi.
Contoh:
https://host/oauth/authorize
-
URL Token Otorisasi — (Wajib) Titik akhir yang digunakan untuk menukar kode otorisasi dengan token akses.
Contoh:
https://host/oauth/token-request
-
Id Klien Aplikasi Klien Terkelola Pengguna - (Wajib) Pengidentifikasi unik untuk aplikasi OAuth klien terdaftar Anda di Snowflake
-
AWS Rahasia — (Diperlukan) Mengacu pada AWS rahasia Secrets Manager yang berisi pasangan kunci-nilai berikut:
SFuser - Nama pengguna Snowflake
USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET - Rahasia klien yang terkait dengan aplikasi klien OAuth
-
Ketiga metode otentikasi didukung penuh dan dapat dikonfigurasi menggunakan kombinasi opsi koneksi, koneksi Glue, atau AWS Secrets Manager rahasia apa pun.
Keterbatasan konektor kepingan salju
Menghubungkan ke Snowflake dengan AWS Glue for Spark tunduk pada batasan berikut.
-
Konektor ini tidak mendukung bookmark pekerjaan. Untuk informasi selengkapnya tentang bookmark pekerjaan, lihatMelacak data yang diproses menggunakan bookmark pekerjaan.
-
Konektor ini tidak mendukung Snowflake membaca dan menulis melalui tabel di Katalog Data AWS Glue menggunakan metode
create_dynamic_frame.from_catalogdanwrite_dynamic_frame.from_catalog. -
Konektor ini mendukung otentikasi dasar, otentikasi pasangan kunci, dan otentikasi. OAuth Metode otentikasi lainnya (seperti SALL) saat ini tidak didukung.
-
Konektor ini tidak didukung dalam pekerjaan streaming.
-
Konektor ini mendukung query berbasis
SELECTpernyataan saat mengambil informasi (seperti denganqueryparameter). Jenis kueri lainnya (sepertiSHOW,DESC, atau pernyataan DHTML) tidak didukung. -
Snowflake membatasi ukuran teks kueri (yaitu pernyataan SQL) yang dikirimkan melalui klien Snowflake hingga 1 MB per pernyataan. Untuk detail selengkapnya, lihat Batas Ukuran Teks Kueri
.