Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Opsi konfigurasi lainnya
Di halaman ini, Anda dapat menemukan deskripsi untuk opsi yang dapat Anda tentukan untuk konektor Amazon Redshift Spark.
Ukuran maksimum kolom string
Redshift membuat kolom string sebagai kolom teks saat membuat tabel, yang disimpan sebagai VARCHAR (256). Jika Anda menginginkan kolom yang mendukung ukuran yang lebih besar, Anda dapat menggunakan maxlength untuk menentukan panjang maksimum kolom string. Berikut ini adalah contoh cara menentukanmaxlength
.
columnLengthMap.foreach { case (colName, length) => val metadata = new MetadataBuilder().putLong("maxlength", length).build() df = df.withColumn(colName, df(colName).as(colName, metadata)) }
Tipe kolom
Untuk mengatur jenis kolom, gunakan redshift_type
bidang.
columnTypeMap.foreach { case (colName, colType) => val metadata = new MetadataBuilder().putString("redshift_type", colType).build() df = df.withColumn(colName, df(colName).as(colName, metadata)) }
Pengkodean kompresi pada kolom
Untuk menggunakan pengkodean kompresi tertentu pada kolom, gunakan bidang pengkodean. Untuk daftar lengkap penyandian kompresi dukungan, lihat Pengkodean kompresi.
Deskripsi untuk kolom
Untuk mengatur deskripsi, gunakan description
bidang.
Otentikasi antara Redshift dan Amazon S3
Secara default, hasilnya diturunkan ke Amazon S3 dalam format parket. Untuk membongkar hasilnya sebagai file teks yang dibatasi pipa, tentukan opsi berikut.
.option("unload_s3_format", "TEXT")
Pernyataan pushdown
Parameter | Diperlukan | Default | Deskripsi |
---|---|---|---|
spark.datasource.redshift.community.autopushdown. lazyMode | Tidak | True | Menentukan apakah konektor harus malas menjalankan pernyataan pushdown Redshift. Jika benar, konektor percikan mengambil semua model dan informasi terkait sebelum menjalankan kueri, yang umumnya menghasilkan kinerja yang lebih baik. Jika salah, konektor percikan menjalankan pernyataan pushdown segera di utas driver Spark utama dan diserialisasikan di seluruh ekspresi. |
Parameter konektor
Peta parameter atau OPTIONS
di Spark SQL mendukung pengaturan berikut.
Parameter | Diperlukan | Default | Deskripsi |
---|---|---|---|
dbtable | Ya, kecuali kueri ditentukan | N/A | Tabel untuk membuat atau membaca dari Redshift. Parameter ini diperlukan saat menyimpan data kembali ke Redshift. |
kueri | Ya, kecuali dbtable ditentukan | N/A | Kueri untuk dibaca di Redshift. |
user | Tidak | N/A | Nama pengguna Redshift. Harus digunakan dengan parameter kata sandi. Berlaku hanya jika pengguna dan kata sandi bukan parameter dalamURL. Menggunakan keduanya akan menyebabkan kesalahan. |
password | Tidak | N/A | Kata sandi Redshift. Harus digunakan dengan parameter pengguna. Berlaku hanya jika pengguna dan kata sandi bukan parameter dalamURL. Menggunakan keduanya akan menyebabkan kesalahan. |
url | Tidak | N/A |
A JDBCURL. Formatnya adalah jdbc:subprotocol: //host:port/database? user=username&password=password. Subprotokol dapat berupa postgresql atau Redshift, tergantung pada JDBC driver mana yang telah Anda muat. Perhatikan bahwa satu driver yang kompatibel dengan Redshift harus berada di classpath dan mencocokkan ini. URL Host dan port harus menunjuk ke node master Redshift, jadi Anda harus mengkonfigurasi grup keamanan dan/atau VPC untuk mengizinkan akses dari aplikasi driver Anda. Database adalah nama database Redshift. Pengguna dan kata sandi adalah kredensil untuk mengakses database, yang harus disematkan dalam hal ini URL untukJDBC, dan pengguna database harus memiliki izin yang diperlukan untuk mengakses tabel. |
aws_iam_role | Hanya jika menggunakan IAM peran untuk mengotorisasi COPY Redshift/operasi UNLOAD | N/A | Sepenuhnya ditentukan ARN dari IAM Peran yang dilampirkan ke cluster Redshift. |
forward_spark_s3_credentials | Tidak | False | Menunjukkan apakah pustaka ini akan secara otomatis menemukan kredensil yang digunakan Spark untuk terhubung ke Amazon S3, dan apakah akan meneruskan kredensialnya ke Redshift melalui driver. JDBC Kredensyal ini dikirim sebagai bagian dari kueri. JDBC Oleh karena itu kami sarankan Anda mengaktifkan SSL enkripsi dengan JDBC koneksi saat menggunakan opsi ini. |
temporary_aws_access_key_id | Tidak | N/A | AWS kunci akses. Harus memiliki izin menulis ke bucket S3. |
temporary_aws_secret_access_key | Tidak | N/A | AWS kunci akses rahasia yang sesuai dengan kunci akses. |
temporary_aws_session_token | Tidak | N/A | AWS token sesi sesuai dengan kunci akses yang disediakan. |
tempdir | Tidak | N/A | Lokasi yang dapat ditulis di Amazon S3. Digunakan untuk membongkar data saat membaca dan data Avro untuk dimuat ke Redshift saat menulis. Jika Anda menggunakan sumber data Redshift untuk Spark sebagai bagian dari ETL pipeline reguler, akan berguna untuk menetapkan kebijakan siklus hidup pada bucket dan menggunakannya sebagai lokasi sementara untuk data ini. |
jdbcdriver | Tidak | Ditentukan oleh JDBC URL subprotokol | Nama kelas JDBC pengemudi yang akan digunakan. Kelas ini harus berada di classpath. Dalam kebanyakan kasus, seharusnya tidak perlu menentukan opsi ini, karena nama kelas driver yang sesuai harus secara otomatis ditentukan oleh JDBC URL subprotokol. |
diststyle | Tidak | Bahkan | Gaya Distribusi Redshift untuk digunakan saat membuat tabel. Opsi yang valid adalahEVEN, KEY atauALL. Saat menggunakanKEY, Anda juga harus mengatur kunci distribusi dengan opsi distkey. |
distkey | Tidak, kecuali menggunakan DISTSTYLE _ KEY | N/A | Nama kolom dalam tabel untuk digunakan sebagai kunci distribusi saat membuat tabel. |
sortkeyspec | Tidak | N/A | Sebuah definisi Redshift Sort Key lengkap. |
include_column_list | Tidak | False | Menunjukkan apakah pustaka ini harus secara otomatis mengekstrak kolom dari skema dan menambahkannya ke COPY perintah sesuai dengan opsi pemetaan Kolom. |
deskripsi | Tidak | N/A | Deskripsi untuk tabel. Deskripsi diatur dengan SQL COMMENT perintah, dan muncul di sebagian besar alat kueri. Lihat description metadata untuk mengatur deskripsi pada kolom individual. |
preaksi | Tidak | N/A | Sebuah daftar perintah yang dibatasi titik koma untuk dijalankan sebelum memuat SQL perintah. COPY Mungkin berguna untuk menjalankan DELETE perintah atau serupa sebelum memuat data baru. Jika perintah berisi %s, nama tabel akan diformat sebelum runtime (jika Anda menggunakan tabel pementasan). Jika perintah ini gagal, itu diperlakukan sebagai pengecualian. Jika Anda menggunakan tabel pementasan, perubahan akan dikembalikan dan mengembalikan tabel cadangan jika preaksi gagal. |
ekstrakoopiopsi | Tidak | N/A |
Daftar opsi tambahan untuk ditambahkan ke perintah COPY Redshift saat memuat data ( Perhatikan bahwa karena opsi ini ditambahkan ke akhir |
sse_kms_key | Tidak | N/A | ID AWS KMS kunci yang digunakan untuk enkripsi sisi server di S3 selama UNLOAD operasi Redshift daripada enkripsi default. AWS IAMPeran Redshift harus memiliki akses ke KMS kunci untuk menulis dengannya, dan IAM peran Spark harus memiliki akses ke kunci untuk operasi baca. Membaca data terenkripsi tidak memerlukan perubahan (AWS menangani ini) selama IAM peran Spark memiliki akses yang tepat. |
tempformat | Tidak | AVRO | Format untuk menyimpan file sementara di Amazon S3 saat menulis ke Redshift. Nilai yang valid adalahAVRO,CSV, dan CSV GZIP (dikompresiCSV). |
csvnullstring (eksperimental) | Tidak | Null | Nilai string untuk menulis untuk nulls saat menggunakan tempformat. CSV Ini harus menjadi nilai yang tidak muncul dalam data aktual Anda. |
autopushdown | Tidak | True | Menunjukkan apakah akan menerapkan predikat dan permintaan pushdown dengan menangkap dan menganalisis rencana logis Spark untuk operasi. SQL Operasi diterjemahkan ke dalam SQL kueri dan kemudian dijalankan di Redshift untuk meningkatkan kinerja. |
autopushdown.s3_result_cache | Tidak | False | Cache kueri SQL untuk membongkar data pemetaan jalur Amazon S3 di memori, sehingga kueri yang sama tidak perlu dijalankan lagi di sesi Spark yang sama. Hanya didukung saat autopushdown dihidupkan. Kami tidak menyarankan menggunakan parameter ini saat mencampur operasi baca dan tulis karena hasil cache mungkin berisi informasi basi. |
unload_s3_format | Tidak | Parquet | Format yang digunakan untuk membongkar hasil kueri. Opsi yang valid adalah Parket dan Teks, yang menentukan untuk membongkar hasil kueri dalam format teks yang dibatasi pipa. |
extraunloadoptions | Tidak | N/A | Opsi tambahan untuk ditambahkan ke perintah UNLOADRedshift. Tidak semua opsi dijamin berfungsi karena beberapa opsi mungkin bertentangan dengan opsi lain yang ditetapkan dalam konektor. |
copydelay | Tidak | 30000 | Penundaan (dalam ms) antara percobaan ulang untuk operasi COPY Redshift. |
copyretrycount | Tidak | 2 | Berapa kali untuk mencoba lagi operasi COPY Redshift. |
tempdir_region | Tidak | N/A | AWS Wilayah di mana Pengaturan ini direkomendasikan dalam situasi berikut: 1) Ketika konektor berjalan di luar AWS, karena penemuan Wilayah otomatis akan gagal dan berdampak negatif pada kinerja konektor. 2) Kapan 3) Ketika konektor berjalan di Wilayah yang berbeda dari |
rahasia.id | Tidak | N/A | Nama atau ARN rahasia Anda disimpan di AWS Secrets Manager. Anda dapat menggunakan parameter ini untuk secara otomatis menyediakan kredenal Redshift, tetapi hanya jika pengguna, kata sandi, dan DbUser kredensialnya tidak diteruskan ke atau sebagai opsi lain. JDBC URL |
secret.region | Tidak | N/A | AWS Wilayah utama, seperti US East (Virginia N.), untuk mencari Jika Anda tidak menentukan Wilayah ini, konektor akan mencoba menggunakan rantai penyedia kredensi default untuk menyelesaikan Wilayah. 1) Saat konektor berjalan di luar AWS, karena penemuan Wilayah otomatis akan gagal dan mencegah otentikasi dengan Redshift Ketika konektor berjalan di Wilayah yang berbeda dari |
rahasia. vpcEndpointUrl | Tidak | N/A | PrivateLink DNSTitik akhir URL untuk AWS Secrets Manager saat mengganti rantai penyedia kredensi Default. |
rahasia. vpcEndpointRegion | Tidak | N/A | Wilayah PrivateLink DNS titik akhir untuk AWS Secrets Manager saat mengganti rantai penyedia kredensi Default. |
jdbc. * | Tidak | N/A | Parameter tambahan untuk diteruskan ke JDBC driver yang mendasarinya di mana wildcard adalah nama JDBC parameter, seperti jdbc.ssl. Perhatikan bahwa jdbc awalan akan dihapus sebelum diteruskan ke JDBC driver. Untuk melihat semua opsi yang mungkin untuk JDBC driver Redshift, lihat Opsi untuk konfigurasi JDBC driver versi 2.1. |
label | Tidak | " " | Pengidentifikasi untuk disertakan dalam kumpulan kueri yang disetel saat menjalankan kueri dengan konektor. Harus 100 atau kurang karakter, dan semua karakter harus validunicodeIdentifierParts . Jika pengenal Anda memiliki lebih dari 100 karakter, kelebihannya akan dihapus. Saat menjalankan kueri dengan konektor, grup kueri akan ditetapkan sebagai string JSON format, seperti . Opsi ini menggantikan nilai lbl kunci. |
catatan
Pengakuan: Dokumentasi ini berisi kode contoh dan bahasa yang dikembangkan oleh Apache Software Foundation