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.
Kueri Tabel Amazon S3 dari Amazon Redshift
Amazon Redshift terintegrasi dengan bucket tabel Amazon S3, memungkinkan Anda mengakses sumber daya tabel S3 menggunakan Amazon Redshift. Baik Anda baru memulai atau mengelola ribuan tabel di lingkungan Iceberg Anda, bucket tabel menyederhanakan pengelolaan danau data pada skala apa pun. Untuk informasi selengkapnya, lihat Bucket tabel.
Topik ini menjelaskan cara memulai dengan Amazon S3 Tables dan Redshift dan mengakses objek Tabel S3 menggunakan Amazon Redshift.
Prasyarat
Sebelum menanyakan Tabel S3 dari Amazon Redshift, Anda harus mengintegrasikan Tabel S3 dengan. AWS Glue Data Catalog Untuk petunjuk, lihat Meng integrasikan Tabel Amazon S3 dengan AWS Glue Data Catalog.
Setelah Tabel S3 terintegrasi dengan AWS Glue Data Catalog, kepala IAM dengan Tabel S3 yang diperlukan dan izin AWS Glue IAM dapat menemukan Tabel S3 melalui. AWS Glue Data Catalog
catatan
Metode 3 (Auto-mounted awsdatacatalog) memiliki prasyarat tambahan. Lihat Metode 3: Auto-mounted awsdatacatalog untuk detail.
Kueri Tabel S3 dari Amazon Redshift
Untuk memulai kueri Tabel S3, ikuti langkah-langkah berikut:
Langkah 1: Buat peran IAM untuk Amazon Redshift
Langkah 2: Lampirkan peran IAM ke cluster Amazon Redshift Anda
Langkah 3: Kueri Tabel S3 dari Amazon Redshift
Langkah 1: Buat peran IAM untuk Amazon Redshift
Cluster Anda memerlukan otorisasi untuk mengakses katalog Tabel S3 eksternal di AWS Glue. Untuk memberikan otorisasi tersebut, Amazon Redshift menggunakan peran IAM yang dilampirkan ke cluster Anda. Buat peran IAM dengan izin kebijakan berikut.
catatan
Dalam kebijakan dan contoh di bawah ini, ganti us-west-2 dengan Wil AWS ayah Anda dan 111122223333 dengan ID AWS akun Anda.
Untuk membuat kebijakan:
Buka konsol IAM di https://console.aws.amazon.com/iam/
. Di panel navigasi, pilih Kebijakan.
Pilih Buat kebijakan.
Pilih tab JSON.
Tempel di dokumen kebijakan JSON berikut:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GlueDataCatalogPermissions", "Effect": "Allow", "Action": [ "glue:GetCatalog", "glue:GetDatabase", "glue:GetTable", "glue:GetTables", "glue:UpdateTable", "glue:DeleteTable" ], "Resource": [ "arn:aws:glue:us-west-2:111122223333:catalog", "arn:aws:glue:us-west-2:111122223333:catalog/s3tablescatalog", "arn:aws:glue:us-west-2:111122223333:catalog/s3tablescatalog/*", "arn:aws:glue:us-west-2:111122223333:database/s3tablescatalog/*/*", "arn:aws:glue:us-west-2:111122223333:table/s3tablescatalog/*/*/*", "arn:aws:glue:us-west-2:111122223333:database/*", "arn:aws:glue:us-west-2:111122223333:table/*/*" ] }, { "Sid": "S3TablesDataAccessPermissions", "Effect": "Allow", "Action": [ "s3tables:GetTableBucket", "s3tables:GetNamespace", "s3tables:GetTable", "s3tables:GetTableMetadataLocation", "s3tables:GetTableData", "s3tables:ListTableBuckets", "s3tables:CreateTable", "s3tables:PutTableData", "s3tables:UpdateTableMetadataLocation", "s3tables:ListNamespaces", "s3tables:ListTables", "s3tables:DeleteTable" ], "Resource": [ "arn:aws:s3tables:us-west-2:111122223333:bucket/*", "arn:aws:s3tables:us-west-2:111122223333:bucket/*/table/*" ] } ] }Pilih Tinjau kebijakan.
Pada halaman Kebijakan Tinjauan,
GlueCatalogS3Tables_Policymasukkan Nama. Secara opsional, masukkan deskripsi. Tinjau ringkasan kebijakan, lalu pilih Buat kebijakan.
Untuk membuat peran IAM untuk Amazon Redshift:
Buka konsol IAM
. Di panel navigasi, pilih Peran.
Pilih Buat peran.
Pilih AWS layanan sebagai entitas tepercaya, lalu pilih Redshift sebagai kasus penggunaan.
Di bawah Kasus penggunaan untuk AWS layanan lain, pilih Redshift - Disesuaikan, lalu pilih Ber ikutnya.
Pada halaman Tambah izin, lampirkan
GlueCatalogS3Tables_Policykebijakan yang Anda buat di atas. Pilih Berikutnya.Untuk Nama Per an, masukkan nama untuk peran Anda, misalnya
RedshiftS3TablesRole.Tinjau informasi, lalu pilih Buat peran.
Di panel navigasi, pilih Peran. Pilih nama peran baru Anda untuk melihat ringkasan, lalu salin Role ARN ke clipboard Anda. Anda akan menggunakan ARN ini saat membuat skema eksternal untuk ruang nama Tabel S3.
catatan
Cakupan ke sumber daya tertentu dengan mengganti wildcard dengan Nama Sumber Daya Amazon (ARN) yang tepat.
Langkah 2: Lampirkan peran IAM ke cluster Amazon Redshift Anda
Kaitkan peran IAM yang Anda konfigurasikan di Langkah 1 dengan cluster Amazon Redshift Anda.
Menggunakan Konsol AWS Manajemen:
Masuk ke Konsol AWS Manajemen dan buka konsol Amazon Redshift di https://console.aws.amazon.com/redshiftv2/
. Pada menu navigasi, pilih Cluster, lalu pilih cluster yang ingin Anda perbarui.
Untuk Tind akan, pilih Kelola peran IAM untuk menampilkan daftar peran IAM saat ini yang terkait dengan cluster.
Pada halaman Kelola peran IAM, pilih peran IAM untuk ditambahkan, lalu pilih Tam bah peran IAM.
Pilih Selesai untuk menyimpan perubahan Anda.
Menggunakan AWS CLI:
Jalankan perintah berikut untuk mengaitkan peran IAM dengan cluster atau namespace yang ada. Ganti my-redshift-cluster atau my-redshift-namespace dengan pengidentifikasi cluster atau namespace Anda dan 111122223333 dengan ID AWS akun Anda.
aws redshift modify-cluster-iam-roles \ --cluster-identifier my-redshift-cluster \ --add-iam-roles arn:aws:iam::111122223333:role/RedshiftS3TablesRole -- for serverless aws redshift-serverless update-namespace \ --namespace-name my-redshift-namespace \ --iam-roles "arn:aws:iam::111122223333:role/RedshiftS3TablesRole"
Untuk informasi selengkapnya, lihat Mengaitkan peran IAM dengan cluster di Panduan Manajemen Amazon Redshift.
Langkah 3: Kueri Tabel S3 dari Amazon Redshift
Saat Anda mengintegrasikan Tabel S3 dengan AWS Glue Data Catalog, layanan membuat struktur katalog federasi yang memetakan sumber daya Tabel S3 ke objek AWS Glue katalog:
Bucket tabel S3 menjadi katalog di AWS Glue Data Catalog.
Sebuah namespace S3 menjadi AWS Glue database.
Tabel S3 menjadi objek AWS Glue tabel.
Integrasi menciptakan hierarki berikut:
Katalog federasi:
s3tablescatalog(dibuat secara otomatis)Katalog anak: Setiap ember tabel S3 menjadi katalog anak di bawahnya
s3tablescatalog.Database: Setiap namespace S3 dalam bucket tabel menjadi database.
Tabel: Setiap tabel S3 dalam namespace menjadi tabel.
Misalnya, jika Anda memiliki bucket tabel S3 bernama analytics-bucket dengan namespace sales yang berisi tabeltransactions, jalur lengkap di dalamnya AWS Glue Data Catalog adalah:s3tablescatalog/analytics-bucket/sales/transactions.
Buat tautan sumber daya
Sebelum menggunakan salah satu dari tiga metode kueri di bawah ini, Anda harus membuat tautan sumber daya di AWS Glue Data Catalog. Tautan sumber daya memungkinkan Amazon Redshift mereferensikan database Tabel S3 melalui katalog standar.
Menggunakan AWS Glue konsol:
Buka AWS Glue konsol di https://console.aws.amazon.com/glue/
. Di panel navigasi, pilih Basis data.
Pilih Buat, lalu pilih Taut an sumber daya.
Pada halaman Buat tautan sumber daya, berikan informasi berikut:
Nama tautan sumber daya: Masukkan nama untuk tautan sumber daya (misalnya,
sales_resource_link).Database bersama: Masukkan jalur database Tabel S3 (misalnya,
s3tablescatalog/analytics-bucket/sales).Pemilik database bersama: Masukkan ID AWS akun Anda.
ID katalog database bersama: Masukkan ID katalog dalam format
<account-id>:s3tablescatalog/<bucket-name>.
Pilih Buat.
Menggunakan AWS CLI:
aws glue create-database \ --region us-west-2 \ --cli-input-json '{ "CatalogId": "111122223333", "DatabaseInput": { "Name": "sales_resource_link", "TargetDatabase": { "CatalogId": "111122223333:s3tablescatalog/analytics-bucket", "DatabaseName": "sales" } } }'
Perintah ini membuat tautan sumber daya yang sales_resource_link dinamai di Katalog AWS Glue Data default Anda yang menunjuk ke sales database di bucket tabel S3analytics-bucket.
Setelah tautan sumber daya dibuat, Amazon Redshift menyediakan tiga metode untuk menanyakan Tabel S3. Pilih metode yang paling sesuai dengan kasus penggunaan Anda.
catatan
Untuk membuat tautan sumber daya di tingkat database, Redshift Administrator harus memiliki AWS Glue:CreateDatabase izin pada katalog default dan database yang sedang dibuat.
Metode 1: BUAT SKEMA EKSTERNAL
Gunakan CREATE EXTERNAL SCHEMA untuk membuat skema eksternal yang mereferensikan database Tabel S3 Anda. Metode ini memberikan kontrol eksplisit atas penamaan skema dan konfigurasi.
Untuk detail sintaks lengkap, lihat MEMBUAT SKEMA EKSTERNAL di Panduan Pengembang Database Amazon Redshift.
Contoh
Gunakan nama database dan ID katalog dari Langkah 3. Ganti 111122223333 dengan ID AWS akun Anda.
CREATE EXTERNAL SCHEMA s3tables_schema FROM DATA CATALOG DATABASE 'sales_resource_link' IAM_ROLE 'arn:aws:iam::111122223333:role/RedshiftS3TablesRole' REGION 'us-west-2' CATALOG_ID '111122223333'; SELECT * FROM s3tables_schema.transactions;
Metode 2: BUAT DATABASE DARI ARN
Gunakan CREATE DATABASE dengan FROM ARN klausa untuk membuat database federasi yang secara langsung mereferensikan tautan AWS Glue sumber daya Anda. Metode ini secara otomatis memet AWS Glue akan database ke database Redshift.
Untuk detail sintaks lengkap, lihat MEMBUAT DATABASE di Panduan Pengembang Database Amazon Redshift.
Contoh
Ganti 111122223333 dengan ID AWS akun Anda.
CREATE DATABASE s3tables_db FROM ARN 'arn:aws:glue:us-west-2:111122223333:database/sales_resource_link' WITH DATA CATALOG SCHEMA analytics_schema IAM_ROLE 'arn:aws:iam::111122223333:role/RedshiftS3TablesRole'; SELECT * FROM s3tables_db.analytics_schema.transactions;
Metode 3: Auto-mounted awsdatacatalog
Amazon Redshift dapat secara otomatis memasang AWS Glue Data Catalog database, termasuk tautan sumber daya Tabel S3, melalui awsdatacatalog database. Metode ini memerlukan akses federasi ke Spectrum (FAS) untuk diaktifkan pada cluster Anda.
Prasyarat
Untuk menggunakan awsdatacatalog database yang dipasang secara otomatis, Anda harus mengaktifkan akses federasi ke Spectrum. Hal ini memungkinkan Amazon Redshift menggunakan kredentif identitas federasi untuk mengakses AWS Glue Data Catalog dan sumber data eksternal.
Untuk mengaktifkan akses federasi ke Spectrum:
Hubungkan ke cluster Redshift Anda menggunakan identitas IAM dengan izin berikut:
redshift:GetClusterCredentialsWithIAM(untuk cluster yang disediakan) atauredshift-serverless:GetCredentials(untuk Tanpa Server)AmazonS3ReadOnlyAccessAWSGlueConsoleFullAccessIzin Tabel S3 (seperti yang didefinisikan pada Langkah 1)
Saat Anda terhubung dengan identitas IAM, Amazon Redshift secara otomatis membuat pengguna database yang diawali dengan
IAM:(untuk pengguna) atauIAMR:(untuk peran).Sebagai administrator cluster, berikan izin pengguna federasi untuk mengakses skema eksternal. Ganti
my_userdengan peran IAM atau nama pengguna Anda:GRANT ALL ON SCHEMA awsdatacatalog TO "IAMR:my_user";
Untuk petunjuk terperinci tentang cara menyiapkan akses federasi, lihat Menggunakan identitas federasi untuk mengelola akses Amazon Redshift ke sumber daya lokal dan tabel eksternal Amazon Redshift Spectrum di Panduan Manajemen Amazon Redshift.
Tabel Kueri S3
Setelah akses federasi dikonfigurasi, verifikasi skema yang dipasang dan kueri Tabel S3 Anda.
Verifikasi skema yang dipasang:
SHOW SCHEMAS FROM DATABASE awsdatacatalog;
Kueri Tabel S3 menggunakan nama tautan sumber daya dari Langkah 3:
SELECT * FROM awsdatacatalog.sales_resource_link.transactions;