Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
BUAT PERPUSTAKAAN
Menginstal pustaka Python, yang tersedia bagi pengguna untuk digabungkan saat membuat fungsi yang ditentukan pengguna (UDF) dengan perintahCREATE FUNCTION. Ukuran total pustaka yang diinstal pengguna tidak boleh melebihi 100 MB.
CREATE LIBRARY tidak dapat dijalankan di dalam blok transaksi (BEGIN... END). Untuk informasi lebih lanjut tentang transaksi, lihatTingkat isolasi di Amazon Redshift.
Amazon Redshift mendukung Python versi 2.7. Untuk informasi lebih lanjut, lihat www.python.org
Untuk informasi selengkapnya, lihat Contoh: Mengimpor modul pustaka Python kustom.
Hak istimewa yang diperlukan
Berikut ini adalah hak istimewa yang diperlukan untuk CREATE LIBRARY:
-
Superuser
-
Pengguna dengan hak istimewa CREATE LIBRARY atau dengan hak istimewa bahasa yang ditentukan
Sintaksis
CREATE [ OR REPLACE ] LIBRARY library_name LANGUAGE plpythonu FROM { 'https://file_url' | 's3://bucketname/file_name' authorization [ REGION [AS] 'aws_region'] IAM_ROLE { default | ‘arn:aws:iam::<Akun AWS-id>:role/<role-name>’ } }
Parameter
- ATAU GANTI
-
Menentukan bahwa jika pustaka dengan nama yang sama seperti ini sudah ada, pustaka yang ada diganti. REPLACE segera melakukan commit. Jika UDF yang bergantung pada pustaka berjalan secara bersamaan, UDF mungkin gagal atau mengembalikan hasil yang tidak terduga, bahkan jika UDF berjalan dalam transaksi. Anda harus menjadi pemilik atau superuser untuk mengganti perpustakaan.
- nama_perpustakaan
-
Nama perpustakaan yang akan diinstal. Anda tidak dapat membuat pustaka yang berisi modul dengan nama yang sama dengan modul Pustaka Standar Python atau modul Python yang sudah diinstal sebelumnya Amazon Redshift. Jika pustaka yang diinstal pengguna yang ada menggunakan paket Python yang sama dengan pustaka yang akan diinstal, Anda harus menghapus pustaka yang ada sebelum menginstal pustaka baru. Untuk informasi selengkapnya, lihat Dukungan bahasa Python untuk UDF.
- LANGUAGE plpythonu
-
Bahasa yang digunakan. Python (plpythonu) adalah satu-satunya bahasa yang didukung. Amazon Redshift mendukung Python versi 2.7. Untuk informasi lebih lanjut, lihat www.python.org
. - FROM
-
Lokasi file perpustakaan. Anda dapat menentukan bucket Amazon S3 dan nama objek, atau Anda dapat menentukan URL untuk mengunduh file dari situs web publik. Perpustakaan harus dikemas dalam bentuk
.zipfile. Untuk informasi selengkapnya, lihat Membangun dan Menginstal Modul Pythondalam dokumentasi Python. - https://file_url
-
URL untuk mengunduh file dari situs web publik. URL dapat berisi hingga tiga pengalihan. Berikut ini adalah contoh URL file.
'https://www.example.com/pylib.zip' - s3:// bucket_name/file_name
-
Jalur ke objek Amazon S3 tunggal yang berisi file pustaka. Berikut ini adalah contoh jalur objek Amazon S3.
's3://amzn-s3-demo-bucket/my-pylib.zip'Jika Anda menentukan bucket Amazon S3, Anda juga harus memberikan kredenSIAL untuk AWS pengguna yang memiliki izin untuk mengunduh file.
penting
Jika bucket Amazon S3 tidak berada di Wil AWS ayah yang sama dengan cluster Amazon Redshift Anda, Anda harus menggunakan opsi REGION untuk menentukan AWS Wilayah tempat data berada. Nilai untuk aws_region harus cocok dengan AWS Region yang tercantum dalam tabel dalam deskripsi REGION parameter untuk perintah COPY.
- otorisasi
-
Klausa yang menunjukkan metode yang digunakan cluster Anda untuk otentikasi dan otorisasi untuk mengakses bucket Amazon S3 yang berisi file pustaka. Cluster Anda harus memiliki izin untuk mengakses Amazon S3 dengan tindakan LIST dan GET.
Sintaks untuk otorisasi sama dengan otorisasi perintah COPY. Untuk informasi selengkapnya, lihat Parameter otorisasi.
IAM_ROLE { default | ‘arn:aws:iam::<Akun AWS-id>:role/<role-name>’Gunakan kata kunci default agar Amazon Redshift menggunakan peran IAM yang ditetapkan sebagai default dan terkait dengan cluster saat perintah CREATE LIBRARY berjalan.
Gunakan Nama Sumber Daya Amazon (ARN) untuk peran IAM yang digunakan cluster Anda untuk otentikasi dan otorisasi. Jika Anda menentukan IAM_ROLE, Anda tidak dapat menggunakan ACCESS_KEY_ID dan SECRET_ACCESS_KEY, SESSION_TOKEN, atau CREDENTIALS.
Secara opsional, jika bucket Amazon S3 menggunakan enkripsi sisi server, berikan kunci enkripsi dalam string kredensials-args. Jika Anda menggunakan kredentif keamanan sementara, berikan token sementara dalam string credentials- args.
Untuk informasi selengkapnya, lihat Kredensial keamanan sementara.
- WILAYAH [AS] aws_region
-
Wil AWS ayah tempat bucket Amazon S3 berada. REGION diperlukan jika bucket Amazon S3 tidak berada di Wilayah yang sama AWS dengan cluster Amazon Redshift. Nilai untuk aws_region harus cocok dengan AWS Region yang tercantum dalam tabel dalam deskripsi REGION parameter untuk perintah COPY.
Secara default, CREATE LIBRARY mengasumsikan bahwa bucket Amazon S3 terletak di Wil AWS ayah yang sama dengan cluster Amazon Redshift.
Contoh
Dua contoh berikut menginstal modul Python urlparse3-1.0.3.zip
Perintah berikut menginstal pustaka UDF yang diberi f_urlparse nama dari paket yang telah diunggah ke bucket Amazon S3 yang terletak di Wilayah Timur AS.
create library f_urlparse language plpythonu from 's3://amzn-s3-demo-bucket/urlparse3-1.0.3.zip' credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>' region as 'us-east-1';
Contoh berikut menginstal pustaka bernama f_urlparse dari file pustaka di situs web.
create library f_urlparse language plpythonu from 'https://example.com/packages/urlparse3-1.0.3.zip';