Memigrasi klaster yang disediakan ke Amazon Redshift Tanpa Server - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai 1 November 2025. Jika Anda ingin menggunakan Python UDFs, buat UDFs sebelum tanggal tersebut. Python yang ada UDFs akan terus berfungsi seperti biasa. Untuk informasi lebih lanjut, lihat posting blog.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memigrasi klaster yang disediakan ke Amazon Redshift Tanpa Server

Anda dapat memigrasikan kluster yang sudah ada ke Amazon Redshift Tanpa Server, memungkinkan penskalaan sumber daya komputasi sesuai permintaan dan otomatis. Memigrasikan klaster yang disediakan ke Amazon Redshift Serverless memungkinkan Anda mengoptimalkan biaya dengan hanya membayar sumber daya yang Anda gunakan dan secara otomatis menskalakan kapasitas berdasarkan tuntutan beban kerja. Kasus penggunaan umum untuk migrasi termasuk menjalankan kueri ad-hoc, pekerjaan pemrosesan data berkala, atau menangani beban kerja yang tidak dapat diprediksi tanpa penyediaan sumber daya yang berlebihan. Lakukan serangkaian tugas berikut untuk memigrasikan klaster Amazon Redshift yang telah disediakan ke opsi penerapan tanpa server.

Membuat snapshot dari klaster yang disediakan

catatan

Amazon Redshift secara otomatis mengonversi kunci interleaved menjadi kunci majemuk saat Anda memulihkan snapshot klaster yang disediakan ke namespace tanpa server.

Untuk mentransfer data dari cluster yang disediakan ke Amazon Redshift Serverless, buat snapshot klaster yang disediakan, lalu pulihkan snapshot di Amazon Redshift Serverless.

catatan

Sebelum memigrasikan data ke grup kerja tanpa server, pastikan kebutuhan klaster yang disediakan kompatibel dengan jumlah RPU yang Anda pilih di Amazon Redshift Tanpa Server.

Untuk membuat snapshot dari kluster yang telah disediakan

  1. Masuk ke AWS Management Console dan buka konsol Amazon Redshift di. https://console.aws.amazon.com/redshiftv2/

  2. Pada menu navigasi, pilih Clusters, Snapshots, dan kemudian pilih Create snapshot.

  3. Masukkan properti definisi snapshot, lalu pilih Buat snapshot. Mungkin perlu beberapa waktu agar snapshot tersedia.

Untuk memulihkan snapshot klaster yang disediakan ke namespace tanpa server:

  1. Masuk ke AWS Management Console dan buka konsol Amazon Redshift di. https://console.aws.amazon.com/redshiftv2/

  2. Mulai di konsol cluster yang disediakan Amazon Redshift dan navigasikan ke halaman Cluster, Snapshots.

  3. Pilih snapshot untuk digunakan.

  4. Pilih Pulihkan snapshot, Pulihkan ke namespace tanpa server.

  5. Pilih namespace untuk mengembalikan snapshot Anda.

  6. Konfirmasikan bahwa Anda ingin memulihkan dari snapshot Anda. Tindakan ini menggantikan semua database di titik akhir tanpa server Anda dengan data dari klaster yang disediakan. Pilih Pulihkan.

Untuk informasi selengkapnya tentang snapshot klaster yang disediakan, lihat snapshot Amazon Redshift.

Menghubungkan ke Amazon Redshift Tanpa Server menggunakan driver

Untuk terhubung ke Amazon Redshift Tanpa Server dengan klien SQL pilihan Anda, Anda dapat menggunakan driver JDBC yang disediakan Amazon Redshift versi 2.x. Sebaiknya sambungkan ke Amazon Redshift menggunakan versi terbaru dari driver Amazon Redshift JDBC versi 2.x. Nomor port adalah opsional. Jika Anda tidak menyertakannya, Amazon Redshift Serverless default ke nomor port 5439. Anda dapat mengubah ke port lain dari rentang port 5431-5455 atau 8191-8215. Untuk mengubah port default untuk titik akhir tanpa server, gunakan API Amazon AWS CLI Redshift dan Amazon.

Untuk menemukan titik akhir yang tepat untuk digunakan untuk driver JDBC, ODBC, atau Python, lihat Konfigurasi Workgroup di Amazon Redshift Serverless. Anda juga dapat menggunakan operasi Amazon Redshift Serverless API GetWorkgroup atau AWS CLI operasi get-workgroups untuk mengembalikan informasi tentang workgroup Anda, lalu menyambung.

Menghubungkan menggunakan otentikasi berbasis kata sandi

Untuk membuat sambungan menggunakan driver Amazon Redshift JDBC versi 2.x dengan autentikasi berbasis kata sandi, gunakan sintaks berikut:

jdbc:redshift://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/?username=username&password=password

Untuk membuat sambungan menggunakan konektor Amazon Redshift Python dengan autentikasi berbasis kata sandi, gunakan sintaks berikut:

import redshift_connector with redshift_connector.connect( host='<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com', database='<database-name>', user='username', password='password' # port value of 5439 is specified by default ) as conn: pass

Untuk membuat sambungan menggunakan driver Amazon Redshift ODBC versi 2.x dengan autentikasi berbasis kata sandi, gunakan sintaks berikut:

Driver={Amazon Redshift ODBC Driver (x64)}; Server=<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com; Database=database-name; User=username; Password=password

Menghubungkan menggunakan IAM

Jika Anda lebih suka masuk dengan IAM, gunakan operasi API Tanpa GetCredentialsServer Amazon Redshift.

Untuk menggunakan autentikasi IAM, tambahkan iam: ke URL Amazon Redshift JDBC jdbc:redshift: berikut, seperti yang ditunjukkan pada contoh berikut.

jdbc:redshift:iam://<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com:5439/<database-name>

Titik akhir Amazon Redshift Tanpa Server ini tidak mendukung penyesuaian DBUser, dbGroup, atau pembuatan otomatis. Secara default, driver secara otomatis membuat pengguna database saat login. Kemudian menetapkan pengguna ke peran database Amazon Redshift berdasarkan tag yang ditentukan dalam IAM, atau berdasarkan grup yang ditentukan dalam penyedia identitas Anda (iDP).

Pastikan AWS identitas Anda memiliki kebijakan IAM yang benar untuk redshift-serverless:GetCredentials tindakan tersebut. Berikut ini adalah contoh kebijakan IAM yang memberikan izin yang benar ke AWS identitas untuk terhubung ke Amazon Redshift Tanpa Server. Untuk informasi selengkapnya tentang izin IAM, lihat Menambahkan dan menghapus izin identitas IAM di Panduan Pengguna IAM.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Action": "redshift-serverless:GetCredentials", "Resource": "*" } ] }

Untuk membuat koneksi menggunakan konektor Amazon Redshift Python dengan autentikasi berbasis IAM, gunakan iam=true dalam kode Anda, seperti yang ditunjukkan dalam sintaks berikut:

import redshift_connector with redshift_connector.connect( iam=True, host='<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com', database='<database-name>' <IAM credentials> ) as conn: pass

UntukIAM credentials, Anda dapat menggunakan kredensil apa pun, termasuk yang berikut ini:

  • AWS konfigurasi profil.

  • Kredensi IAM (ID kunci akses, kunci akses rahasia, dan token sesi opsional).

  • Federasi penyedia identitas.

Untuk membuat koneksi menggunakan driver Amazon Redshift ODBC versi 2.x dengan autentikasi berbasis IAM dan profil, gunakan sintaks berikut:

Driver={Amazon Redshift ODBC Driver (x64)}; IAM=true; Server=<workgroup-name>.<account-number>.<aws-region>.redshift-serverless.amazonaws.com; Database=database-name; Profile=aws-profile-name;

Menghubungkan menggunakan IAM dengan API GetClusterCredentials

catatan

Saat menghubungkan ke Amazon Redshift Tanpa Server, kami sarankan Anda menggunakan API. GetCredentials API ini menawarkan fungsionalitas kontrol akses berbasis peran (RBAC) yang komprehensif serta fitur baru lainnya yang tidak tersedia. GetClusterCredentials Kami mendukung GetClusterCredentials API untuk menyederhanakan transisi dari klaster yang disediakan ke grup kerja tanpa server, tetapi kami sangat menyarankan untuk melakukan migrasi ke penggunaan GetCredentials sesegera mungkin untuk kompatibilitas yang optimal.

Anda dapat membuat koneksi ke Amazon Redshift Serverless menggunakan API. GetClusterCredentials Untuk menerapkan metode otentikasi ini, modifikasi klien atau aplikasi Anda dengan memasukkan parameter berikut:

  • iam=true

  • clusterid/cluster_identifier=redshift-serverless-<workgroup-name>

  • region=<aws-region>

Contoh berikut menunjukkan plugin BrowsersAML di ketiga driver. Ini merupakan salah satu dari beberapa pendekatan otentikasi yang tersedia. Contoh dapat dimodifikasi untuk menggunakan metode otentikasi alternatif atau plugin sesuai dengan kebutuhan spesifik Anda.

Izin kebijakan IAM untuk GetClusterCredentials

Berikut ini adalah contoh kebijakan IAM dengan izin yang diperlukan untuk digunakan GetClusterCredentials dengan Amazon Redshift Tanpa Server:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "redshift:CreateClusterUser", "redshift:JoinGroup", "redshift:GetClusterCredentials", "redshift:ExecuteQuery", "redshift:FetchResults", "redshift:DescribeClusters", "redshift:DescribeTable" ], "Resource": [ "arn:aws:redshift:us-east-1:<account-id>:cluster:redshift-serverless-<workgroup-name>", "arn:aws:redshift:us-east-1:<account-id>:dbgroup:redshift-serverless-<workgroup-name>", "arn:aws:redshift:us-east-1:<account-id>:dbname:redshift-serverless-<workgroup-name>/${redshift:DbName}", "arn:aws:redshift:us-east-1:<account-id>:dbuser:redshift-serverless-<workgroup-name>/${redshift:DbUser}" ] } ] }

Untuk membuat sambungan menggunakan driver Amazon Redshift JDBC versi 2.x denganGetClusterCredentials, gunakan sintaks berikut:

jdbc:redshift:iam://redshift-serverless-<workgroup-name>:<aws-region>/<database-name>?plugin_name=com.amazon.redshift.plugin.BrowserSamlCredentialsProvider&login_url=<single sign-on URL from IdP>"

Untuk membuat koneksi menggunakan konektor Amazon Redshift Python denganGetClusterCredentials, gunakan sintaks berikut:

import redshift_connector with redshift_connector.connect( iam=True, cluster_identifier='redshift-serverless-<workgroup-name>', region='<aws-region>', database='<database-name>', credentials_provider='BrowserSamlCredentialsProvider' login_url='<single sign-on URL from IdP>' # port value of 5439 is specified by default ) as conn: pass

Untuk membuat sambungan menggunakan driver Amazon Redshift ODBC versi 2.x denganGetClusterCredentials, gunakan sintaks berikut:

Driver= {Amazon Redshift ODBC Driver (x64)}; IAM=true; isServerless=true; ClusterId=redshift-serverless-<workgroup-name>; region=<aws-region>; plugin_name=BrowserSAML;login_url=<single sign-on URL from IdP>

Berikut ini adalah contoh konfigurasi ODBC DSN di Windows:

Tab Koneksi di Amazon Redshift ODBC Driver untuk Windows. Bidang yang sesuai dengan sintaks sampel di atas diisi.

Menggunakan Amazon Redshift Serverless SDK

Jika Anda menulis skrip manajemen apa pun menggunakan Amazon Redshift SDK, Anda harus menggunakan Amazon Redshift Serverless SDK baru untuk mengelola Amazon Redshift Tanpa Server dan sumber daya terkait. Untuk informasi selengkapnya tentang operasi API yang tersedia, lihat panduan Referensi API Tanpa Server Amazon Redshift.