Koneksi kepingan salju - AWS Glue

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 pengguna dan kata sandi. Anda dapat merujuk ke kredensil Snowflake yang disimpan melalui AWS Secrets Manager Katalog Data GlueAWS. Katalog Data Kredensil Kepingan Salju untuk AWS Glue for Spark disimpan secara terpisah dari kredenal Kepingan Salju Katalog Data untuk perayap. 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. Untuk informasi selengkapnya tentang SnowflakeAWS, lihat Snowflake Data Warehouse di Amazon Web Services.

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
  1. Di Snowflake, buat pengguna, SnowFlakeUser dan kata sandi, SnowFlakePassword.

  2. DiAWS 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, secretName untuk langkah selanjutnya.

    • Saat memilih pasangan kunci/nilai, buat pasangan untuk SnowFlakeUser dengan kuncinya. sfUser

    • Saat memilih pasangan kunci/nilai, buat pasangan untuk SnowFlakePassword dengan kuncinya. sfPassword

    • Saat memilih pasangan kunci/nilai, Anda dapat memberikan kunci kepada gudang Snowflake Anda. sfWarehouse

  3. Dalam AWS Glue Data Catalog, buat koneksi dengan mengikuti langkah-langkah diMenambahkan AWS Glue Koneksi. Setelah membuat koneksi, simpan nama koneksi, connectionName, untuk langkah selanjutnya.

    • Saat memilih jenis Koneksi, pilih Snowflake.

    • Saat memilih URL Snowflake, berikan URL instance Snowflake Anda. URL akan menggunakan nama host dalam formuliraccount_identifier.snowflakecomputing.com.

    • Saat memilih AWSSecret, berikan secretName.

  4. Dalam konfigurasi pekerjaan AWS Glue Anda, berikan ConnectionName sebagai koneksi jaringan Tambahan.

Dalam situasi berikut, Anda mungkin memerlukan yang berikut:

  • Untuk Snowflake yang dihosting AWS di VPC Amazon

    • 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 GlueAWS. Mengkonfigurasi VPC titik akhir antarmuka (AWS PrivateLink) untuk AWS Glue ()AWS PrivateLink.

    • Anda perlu membuat koneksi AWS Glue Data Catalog yang menyediakan informasi koneksi Amazon VPC (selain id AWS Secrets Manager rahasia yang mendefinisikan kredenal keamanan Snowflake Anda). URL Anda akan berubah saat menggunakanAWS 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. Anda akan memerlukan url Snowflake Anda SnowFlakeUrl, nama pengguna SnowFlakeUser dan kata sandi SnowFlakePassword. Jika pengguna Snowflake Anda tidak memiliki set namespace default, Anda akan memerlukan nama database Snowflake, DatabaseName dan nama skema SchemaName. Selain itu, jika pengguna Snowflake Anda tidak memiliki set gudang default, Anda akan memerlukan nama gudang WarehouseName.

Sebagai contoh:

Prasyarat Tambahan: Selesaikan langkah-langkah Untuk mengelola kredensil koneksi Anda dengan AWS Glue untuk mengkonfigurasi SnowFlakeUrl, SnowFlakeUsername dan SnowFlakePassword. Untuk meninjau langkah-langkah ini, lihatMengkonfigurasi koneksi Snowflake, bagian sebelumnya. Untuk memilih yang mana Koneksi jaringan tambahan untuk terhubung, kami akan menggunakan connectionName parameter.

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. Anda akan memerlukan url Snowflake Anda SnowFlakeUrl, nama pengguna SnowFlakeUser dan kata sandi SnowFlakePassword. Jika pengguna Snowflake Anda tidak memiliki set namespace default, Anda akan memerlukan nama database Snowflake, DatabaseName dan nama skema SchemaName. Selain itu, jika pengguna Snowflake Anda tidak memiliki set gudang default, Anda akan memerlukan nama gudang WarehouseName.

Sebagai contoh:

Prasyarat Tambahan: Selesaikan langkah-langkah Untuk mengelola kredensil koneksi Anda dengan AWS Glue untuk mengkonfigurasi SnowFlakeUrl, SnowFlakeUsername dan SnowFlakePassword. Untuk meninjau langkah-langkah ini, lihatMengkonfigurasi koneksi Snowflake, bagian sebelumnya. Untuk memilih yang mana Koneksi jaringan tambahan untuk terhubung, kami akan menggunakan connectionName parameter.

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 Katalog Data (sfUrl,,sfPassword)sfUser, dalam hal ini Anda tidak diharuskan untuk menyediakannya. Anda dapat melakukan ini dengan memberikan parameterconnectionName.

Anda dapat mengambil beberapa parameter di bagian ini dari AWS Secrets Manager rahasia (sfUser,sfPassword), dalam hal ini Anda tidak diharuskan untuk menyediakannya. Rahasianya harus menyediakan konten di bawah sfUser dan sfPassword kunci. Anda dapat melakukan ini dengan memberikan parametersecretId.

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 akan digunakan untuk sesi setelah menghubungkan.

  • sfUrl— (Wajib) Digunakan untuk Baca/Tulis. Menentukan nama host untuk akun Anda dalam format berikut:. account_identifier.snowflakecomputing.com Untuk informasi selengkapnya tentang pengenal akun, lihat Pengidentifikasi Akun di dokumentasi Snowflake.

  • sfUser— (Wajib) Digunakan untuk Baca/Tulis. Nama login untuk pengguna Snowflake.

  • sfPassword— (Diperlukan kecuali pem_private_key disediakan) 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— Digunakan untuk Membaca/Menulis. 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 kunci dalam dokumentasi Snowflake.

  • 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 Membaca/Menulis. 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 Membaca/Menulis. 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 Pushdown di 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 dalam dokumentasi Snowflake.

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_catalog danwrite_dynamic_frame.from_catalog.

  • Konektor ini tidak mendukung koneksi ke Snowflake dengan kredensil selain pengguna dan kata sandi.

  • Konektor ini tidak didukung dalam pekerjaan streaming.

  • Konektor ini mendukung query berbasis SELECT pernyataan saat mengambil informasi (seperti dengan query parameter). 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.