Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
CREATE EXTERNAL SCHEMA
Membuat skema eksternal baru dalam database saat ini. Anda dapat menggunakan skema eksternal ini untuk terhubung ke Amazon untuk database Postgre atau Amazon RDS SQL Aurora Postgre -Compatible Edition. SQL Anda juga dapat membuat skema eksternal yang mereferensikan database dalam katalog data eksternal seperti AWS Glue, Athena, atau database di metastore Apache Hive, seperti Amazon. EMR
Pemilik skema ini adalah penerbit perintah. CREATE EXTERNAL SCHEMA Untuk mentransfer kepemilikan skema eksternal, gunakan ALTER SCHEMA untuk mengubah pemilik. Untuk memberikan akses ke skema ke pengguna lain atau grup pengguna, gunakan GRANT perintah.
Anda tidak dapat menggunakan REVOKE perintah GRANT atau untuk izin pada tabel eksternal. Sebagai gantinya, berikan atau cabut izin pada skema eksternal.
catatan
Jika saat ini Anda memiliki tabel eksternal Redshift Spectrum di katalog data Amazon Athena, Anda dapat memigrasikan katalog data Athena ke katalog data. AWS Glue Data Catalog Untuk menggunakan Katalog AWS Glue Data dengan Redshift Spectrum, Anda mungkin perlu mengubah kebijakan AWS Identity and Access Management (IAM). Untuk informasi selengkapnya, lihat Memutakhirkan ke Katalog AWS Glue Data di Panduan Pengguna Athena.
Untuk melihat detail skema eksternal, kueri tampilan SVV_EXTERNAL_SCHEMAS sistem.
Sintaks
Sintaks berikut menjelaskan CREATE EXTERNAL SCHEMA perintah yang digunakan untuk referensi data menggunakan katalog data eksternal. Untuk informasi selengkapnya, lihat Amazon Redshift Spectrum.
CREATE EXTERNAL SCHEMA [IF NOT EXISTS] local_schema_name FROM [ [ DATA CATALOG ] | HIVE METASTORE | POSTGRES | MYSQL | KINESIS | MSK | REDSHIFT ] [ DATABASE 'database_name' ] [ SCHEMA 'schema_name' ] [ REGION 'aws-region' ] [ IAM_ROLE [ default | 'SESSION' | 'arn:aws:iam::<Akun AWS-id>
:role/<role-name>
' ] ] [ AUTHENTICATION [ none | iam | mtls] ] [ AUTHENTICATION_ARN 'acm-certificate-arn' | SECRET_ARN 'ssm-secret- arn' ] [ URI ['hive_metastore_uri' [ PORT port_number ] | 'hostname' [ PORT port_number ] | 'msk bootstrap URL'] ] [ CLUSTER_ARN 'arn:aws:kafka:<region>
:<Akun AWS-id>
:cluster/msk/<cluster uuid>
' ] [ CATALOG_ROLE [ 'SESSION' | 'catalog-role-arn-string' ] ] [ CREATE EXTERNAL DATABASE IF NOT EXISTS ] [ CATALOG_ID 'Amazon Web Services account ID containing Glue or Lake Formation database' ]
Sintaks berikut menjelaskan CREATE EXTERNAL SCHEMA perintah yang digunakan untuk referensi data menggunakan query federasi ke atau RDS POSTGRES Aurora Postgre. SQL Anda juga dapat membuat skema eksternal yang mereferensikan sumber streaming, seperti Kinesis Data Streams. Untuk informasi selengkapnya, lihat Menanyakan data dengan kueri gabungan di Amazon Redshift.
CREATE EXTERNAL SCHEMA [IF NOT EXISTS] local_schema_name FROM POSTGRES DATABASE 'federated_database_name' [SCHEMA 'schema_name'] URI 'hostname' [ PORT port_number ] IAM_ROLE [ default | 'arn:aws:iam::<Akun AWS-id>
:role/<role-name>
' ] SECRET_ARN 'ssm-secret-arn'
Sintaks berikut menjelaskan CREATE EXTERNAL SCHEMA perintah yang digunakan untuk referensi data menggunakan kueri federasi ke RDS My atau SQL Aurora My. SQL Untuk informasi selengkapnya, lihat Menanyakan data dengan kueri gabungan di Amazon Redshift.
CREATE EXTERNAL SCHEMA [IF NOT EXISTS] local_schema_name FROM MYSQL DATABASE 'federated_database_name' URI 'hostname' [ PORT port_number ] IAM_ROLE [ default | 'arn:aws:iam::<Akun AWS-id>
:role/<role-name>
' ] SECRET_ARN 'ssm-secret-arn'
Sintaks berikut menjelaskan CREATE EXTERNAL SCHEMA perintah yang digunakan untuk referensi data dalam aliran Kinesis. Untuk informasi selengkapnya, lihat Streaming konsumsi ke tampilan yang terwujud.
CREATE EXTERNAL SCHEMA [IF NOT EXISTS] schema_name FROM KINESIS IAM_ROLE [ default | 'arn:aws:iam::<Akun AWS-id>
:role/<role-name>
' ]
Sintaks berikut menjelaskan CREATE EXTERNAL SCHEMA perintah yang digunakan untuk mereferensikan Amazon Managed Streaming for Apache Kafka cluster dan topiknya untuk dicerna. Untuk terhubung, Anda menyediakan brokerURI. Untuk informasi selengkapnya, lihat Streaming konsumsi ke tampilan yang terwujud.
CREATE EXTERNAL SCHEMA [IF NOT EXISTS] schema_name FROM MSK [ IAM_ROLE [ default | 'arn:aws:iam::<Akun AWS-id>
:role/<role-name>
' ] ] URI 'msk bootstrap URL' AUTHENTICATION [ none | iam | mtls ] [ AUTHENTICATION_ARN 'acm-certificate-arn' | SECRET_ARN 'ssm-secret- arn' ];
Sintaks berikut menjelaskan CREATE EXTERNAL SCHEMA perintah yang digunakan untuk referensi data menggunakan query cross-database.
CREATE EXTERNAL SCHEMA local_schema_name FROM REDSHIFT DATABASE 'redshift_database_name' SCHEMA 'redshift_schema_name'
Parameter
- JIKA NOT EXISTS
-
Klausa yang menunjukkan bahwa jika skema yang ditentukan sudah ada, perintah tidak boleh membuat perubahan dan mengembalikan pesan bahwa skema itu ada, daripada berakhir dengan kesalahan. Klausa ini berguna saat membuat skrip, sehingga skrip tidak gagal jika CREATE EXTERNAL SCHEMA mencoba membuat skema yang sudah ada.
- local_schema_name
-
Nama skema eksternal baru. Untuk informasi selengkapnya tentang nama yang valid, lihatNama dan pengenal.
- FROM [ DATA CATALOG ] | HIVE METASTORE | POSTGRES | MYSQL | KINESIS | MSK | REDSHIFT
-
Kata kunci yang menunjukkan di mana database eksternal berada.
DATACATALOGmenunjukkan bahwa database eksternal didefinisikan dalam katalog data Athena atau. AWS Glue Data Catalog
Jika database eksternal didefinisikan dalam Katalog Data eksternal di AWS Wilayah yang berbeda, REGION parameter diperlukan. DATACATALOGadalah default.
HIVEMETASTOREmenunjukkan bahwa database eksternal didefinisikan dalam metastore Apache Hive. Jika HIVEMETASTORE, ditentukan, URI diperlukan.
POSTGRESmenunjukkan bahwa database eksternal didefinisikan dalam RDS Postgre atau SQL Aurora Postgre. SQL
MYSQLmenunjukkan bahwa database eksternal didefinisikan dalam RDS My SQL atau Aurora My. SQL
KINESISmenunjukkan bahwa sumber data adalah aliran dari Kinesis Data Streams.
MSKmenunjukkan bahwa sumber data adalah kluster yang MSK disediakan Amazon atau tanpa server.
- FROM REDSHIFT
-
Kata kunci yang menunjukkan bahwa database terletak di Amazon Redshift.
- DATABASE'redshift_database_name' 'redshift_schema_name' SCHEMA
-
Nama database Amazon Redshift.
Redshift_schema_name menunjukkan skema di Amazon Redshift. Redshift_schema_name default adalah.
public
- DATABASE'federated_database_name'
-
Kata kunci yang menunjukkan nama database eksternal di Postgre SQL atau mesin SQL database Saya yang didukung.
- [SCHEMA'schema_name']
-
Schema_name menunjukkan skema dalam mesin database Postgre yang didukung. SQL Schema_name default adalah.
public
Anda tidak dapat menentukan SCHEMA kapan Anda menyiapkan kueri federasi ke mesin SQL database Saya yang didukung.
- REGION'aws-region'
-
Jika database eksternal didefinisikan dalam katalog data Athena atau AWS Glue Data Catalog, AWS Wilayah di mana database berada. Parameter ini diperlukan jika database didefinisikan dalam Katalog Data eksternal.
- URI['hive_metastore_uri' [port_number] | 'hostname' [PORTport_number] | 'msk bootstrap '] PORT URL
-
Nama host URI dan port_number dari Postgre SQL atau mesin database Saya yang didukung. SQL Nama host adalah simpul kepala dari set replika. Titik akhir harus dapat dijangkau (dapat dirutekan) dari cluster Amazon Redshift. Postgre SQL port_number default adalah 5432. Default My SQL port_number adalah 3306.
catatan
Mesin SQL database Postgre SQL atau My yang didukung harus VPC sama dengan cluster Amazon Redshift Anda dengan grup keamanan yang menautkan Amazon RDS Redshift dan rsPostgre SQL url- atau Aurora Postgre. SQL Selain itu, Anda dapat menggunakan VPC perutean yang disempurnakan untuk mengonfigurasi kasus VPC penggunaan silang. Untuk informasi selengkapnya, lihat Titik akhir yang dikelola RedShift VPC.
Menentukan metastore sarang URI
Jika database berada dalam metastore Hive, tentukan URI dan opsional nomor port untuk metastore. Nomor port default adalah 9083.
A URI tidak berisi spesifikasi protokol (“http://”). Contoh validURI:
uri '172.10.10.10'
.Menentukan broker URI untuk streaming ingestion
Termasuk bootstrap-broker URI menyediakan kemampuan untuk terhubung ke MSK cluster Amazon dan menerima data streaming. Untuk informasi selengkapnya dan untuk melihat contohnya, lihat Memulai konsumsi streaming dari Amazon Managed Streaming for Apache Kafka.
- IAM_ ROLE [default | 'SESSION' | 'arn:aws:iam::
<Akun AWS-id>
:peran/<role-name>
' ] -
Gunakan kata kunci default agar Amazon Redshift menggunakan IAM peran yang ditetapkan sebagai default dan terkait dengan cluster saat CREATE EXTERNAL SCHEMA perintah berjalan.
Gunakan
'SESSION'
jika Anda terhubung ke klaster Amazon Redshift menggunakan identitas federasi dan mengakses tabel dari skema eksternal yang dibuat menggunakan perintah ini. Untuk informasi selengkapnya, lihat Menggunakan identitas federasi untuk mengelola akses Amazon Redshift ke sumber daya lokal dan tabel eksternal Amazon Redshift Spectrum, yang menjelaskan cara mengonfigurasi identitas federasi. Perhatikan bahwa konfigurasi ini, menggunakan'SESSION'
sebagai penggantiARN, hanya dapat digunakan jika skema dibuat menggunakanDATA CATALOG
.Gunakan Amazon Resource Name (ARN) untuk IAM peran yang digunakan klaster Anda untuk autentikasi dan otorisasi. Minimal, IAM peran harus memiliki izin untuk melakukan LIST operasi pada bucket Amazon S3 untuk diakses dan GET operasi pada objek Amazon S3 yang berisi bucket.
Berikut ini menunjukkan sintaks untuk string ROLE parameter IAM _ untuk satuARN.
IAM_ROLE 'arn:aws:iam::
<aws-account-id>
:role/<role-name>
'Anda dapat merantai peran sehingga klaster Anda dapat mengambil IAM peran lain, mungkin milik akun lain. Anda dapat merantai hingga 10 peran. Untuk contoh peran rantai, lihatIAMPeran rantai di Amazon Redshift Spectrum.
Untuk IAM peran ini, lampirkan kebijakan IAM izin yang serupa dengan yang berikut ini.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessSecret", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": "arn:aws:secretsmanager:
us-west-2
:123456789012
:secret:my-rds-secret-VNenFy" }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "secretsmanager:GetRandomPassword", "secretsmanager:ListSecrets" ], "Resource": "*" } ] }Untuk langkah-langkah membuat IAM peran yang akan digunakan dengan kueri federasi, lihatMembuat rahasia dan IAM peran untuk menggunakan kueri federasi.
catatan
Jangan sertakan spasi dalam daftar peran yang dirantai.
Berikut ini menunjukkan sintaks untuk rantai tiga peran.
IAM_ROLE 'arn:aws:iam::
<aws-account-id>
:role/<role-1-name>
,arn:aws:iam::<aws-account-id>
:role/<role-2-name>
,arn:aws:iam::<aws-account-id>
:role/<role-3-name>
' - SECRET_ARN 'ssm-secret-arn'
-
Amazon Resource Name (ARN) dari rahasia mesin Postgre SQL atau My SQL database yang didukung yang dibuat menggunakan. AWS Secrets Manager Untuk informasi tentang cara membuat dan mengambil rahasia, lihat Membuat Rahasia Dasar dan Mengambil Rahasia Nilai Rahasia di AWS Secrets Manager Panduan Pengguna. ARN
- CATALOG_ROLE [ 'SESSION' | catalog-role-arn-string]
-
Gunakan
'SESSION'
untuk menyambung ke klaster Amazon Redshift menggunakan identitas federasi untuk autentikasi dan otorisasi ke katalog data. Untuk informasi selengkapnya tentang menyelesaikan langkah-langkah untuk identitas federasi, lihat Menggunakan identitas federasi untuk mengelola akses Amazon Redshift ke sumber daya lokal dan tabel eksternal Amazon Redshift Spectrum. Perhatikan bahwa'SESSION'
peran hanya dapat digunakan jika skema dibuat di DATACATALOG.Gunakan Nama Sumber Daya Amazon ARN untuk IAM peran yang digunakan klaster Anda untuk autentikasi dan otorisasi katalog data.
Jika CATALOG _ ROLE tidak ditentukan, Amazon Redshift menggunakan _ yang ditentukanIAM. ROLE Peran katalog harus memiliki izin untuk mengakses Katalog Data di AWS Glue atau Athena. Untuk informasi selengkapnya, lihat IAMkebijakan untuk Amazon Redshift Spectrum.
Berikut ini menunjukkan sintaks untuk string ROLE parameter CATALOG _ untuk satuARN.
CATALOG_ROLE 'arn:aws:iam::
<aws-account-id>
:role/<catalog-role>
'Anda dapat merantai peran sehingga klaster Anda dapat mengambil IAM peran lain, mungkin milik akun lain. Anda dapat merantai hingga 10 peran. Untuk informasi selengkapnya, lihat IAMPeran rantai di Amazon Redshift Spectrum.
catatan
Daftar peran yang dirantai tidak boleh menyertakan spasi.
Berikut ini menunjukkan sintaks untuk rantai tiga peran.
CATALOG_ROLE 'arn:aws:iam::
<aws-account-id>
:role/<catalog-role-1-name>
,arn:aws:iam::<aws-account-id>
:role/<catalog-role-2-name>
,arn:aws:iam::<aws-account-id>
:role/<catalog-role-3-name>
' - CREATEEXTERNALDATABASEJIKA NOT EXISTS
-
Klausa yang membuat database eksternal dengan nama yang ditentukan oleh DATABASE argumen, jika database eksternal yang ditentukan tidak ada. Jika database eksternal yang ditentukan ada, perintah tidak membuat perubahan. Dalam hal ini, perintah mengembalikan pesan bahwa database eksternal ada, bukan berakhir dengan kesalahan.
catatan
Anda tidak dapat menggunakan CREATE EXTERNAL DATABASE IF NOT EXISTS dengan HIVEMETASTORE.
Untuk menggunakan CREATE EXTERNAL DATABASE IF NOT EXISTS dengan Katalog Data diaktifkan AWS Lake Formation, Anda memerlukan
CREATE_DATABASE
izin pada Katalog Data. - CATALOG_ID 'ID akun Amazon Web Services yang berisi database Glue atau Lake Formation'
-
Id akun tempat database katalog data disimpan.
CATALOG_ID
dapat ditentukan hanya jika Anda berencana untuk terhubung ke klaster Amazon Redshift atau ke Amazon Redshift Tanpa Server menggunakan identitas federasi untuk otentikasi dan otorisasi ke katalog data dengan menyetel salah satu dari berikut ini:CATALOG_ROLE
untuk'SESSION'
IAM_ROLE
ke'SESSION'
dan'CATALOG_ROLE'
atur ke defaultnya
Untuk informasi selengkapnya tentang menyelesaikan langkah-langkah untuk identitas federasi, lihat Menggunakan identitas federasi untuk mengelola akses Amazon Redshift ke sumber daya lokal dan tabel eksternal Amazon Redshift Spectrum.
- AUTHENTICATION
-
Jenis otentikasi yang ditentukan untuk konsumsi streaming. Penyerapan streaming dengan jenis otentikasi berfungsi dengan Amazon Managed Streaming for Apache Kafka.
AUTHENTICATION
Jenisnya adalah sebagai berikut:none - Menentukan bahwa tidak ada otentikasi yang diperlukan. Ini sesuai dengan akses Tidak Diautentikasi pada. MSK
iam - Menentukan IAM otentikasi. Saat Anda memilih ini, pastikan IAM peran tersebut memiliki izin untuk IAM otentikasi. Untuk informasi lebih lanjut tentang mendefinisikan skema eksternal, lihat. Memulai dengan konsumsi streaming dari Amazon Managed Streaming for Apache Kafka (Amazon) MSK
mtls — Menentukan bahwa keamanan lapisan transportasi timbal balik menyediakan komunikasi yang aman dengan memfasilitasi otentikasi antara klien dan server. Dalam hal ini, klien adalah Redshift dan servernya adalah Amazon. MSK Untuk informasi selengkapnya tentang mengonfigurasi konsumsi streaming dengan mTLS, lihat. Otentikasi dengan m TLS untuk konsumsi streaming Redshift dari Amazon MSK
- AUTHENTICATION_ARN
-
AWS Certificate Manager Sertifikat ARN yang digunakan oleh Amazon Redshift untuk otentikasi mtls dengan Amazon. MSK ARNIni tersedia di ACM konsol ketika Anda memilih sertifikat yang dikeluarkan.
- CLUSTER_ARN
-
Untuk konsumsi streaming, CLUSTER _ ARN adalah pengenal cluster untuk cluster Amazon Managed Streaming for Apache Kafka Kafka tempat Anda streaming. Saat menggunakan CLUSTER _ARN, diperlukan kebijakan IAM peran yang menyertakan
kafka:GetBootstrapBrokers
izin. Opsi ini disediakan untuk kompatibilitas mundur. Saat ini, kami merekomendasikan menggunakan URI opsi bootstrap-broker untuk terhubung ke Amazon Managed Streaming for Apache Kafka Kafka cluster. Untuk informasi lebih lanjut, lihat Streaming ingestion.
Catatan penggunaan
Untuk batasan saat menggunakan katalog data Athena, lihat Batas Athena di. Referensi Umum AWS
Untuk batas saat menggunakan AWS Glue Data Catalog, lihat AWS Glue Batas di Referensi Umum AWS.
Batasan ini tidak berlaku untuk metastore Hive.
Ada maksimum 9.900 skema per database. Untuk informasi selengkapnya, lihat Kuota dan batasan di Panduan Manajemen Pergeseran Merah Amazon.
Untuk membatalkan pendaftaran skema, gunakan perintah. DROP SCHEMA
Untuk melihat detail skema eksternal, kueri tampilan sistem berikut:
Contoh
Contoh berikut membuat skema eksternal menggunakan database dalam katalog data bernama sampledb
di Wilayah Barat AS (Oregon). Gunakan contoh ini dengan Athena atau katalog AWS Glue data.
create external schema spectrum_schema from data catalog database 'sampledb' region 'us-west-2' iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole';
Contoh berikut membuat skema eksternal dan membuat database eksternal baru bernamaspectrum_db
.
create external schema spectrum_schema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole' create external database if not exists;
Contoh berikut membuat skema eksternal menggunakan database metastore Hive bernama. hive_db
create external schema hive_schema from hive metastore database 'hive_db' uri '172.10.10.10' port 99 iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole';
Contoh berikut merantai peran untuk menggunakan peran myS3Role
untuk mengakses Amazon S3 dan myAthenaRole
digunakan untuk akses katalog data. Untuk informasi selengkapnya, lihat IAMPeran rantai di Amazon Redshift Spectrum.
create external schema spectrum_schema from data catalog database 'spectrum_db' iam_role 'arn:aws:iam::123456789012:role/myRedshiftRole,arn:aws:iam::123456789012:role/myS3Role' catalog_role 'arn:aws:iam::123456789012:role/myAthenaRole' create external database if not exists;
Contoh berikut membuat skema eksternal yang referensi database Aurora SQL Postgre.
CREATE EXTERNAL SCHEMA [IF NOT EXISTS] myRedshiftSchema FROM POSTGRES DATABASE 'my_aurora_db' SCHEMA 'my_aurora_schema' URI 'endpoint to aurora hostname' PORT 5432 IAM_ROLE 'arn:aws:iam::123456789012:role/MyAuroraRole' SECRET_ARN 'arn:aws:secretsmanager:us-east-2:123456789012:secret:development/MyTestDatabase-AbCdEf'
Contoh berikut membuat skema eksternal untuk merujuk ke sales_db diimpor pada cluster konsumen.
CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE 'sales_db' SCHEMA 'public';
Contoh berikut membuat skema eksternal yang mereferensikan database Aurora MySQL.
CREATE EXTERNAL SCHEMA [IF NOT EXISTS] myRedshiftSchema FROM MYSQL DATABASE 'my_aurora_db' URI 'endpoint to aurora hostname' IAM_ROLE 'arn:aws:iam::123456789012:role/MyAuroraRole' SECRET_ARN 'arn:aws:secretsmanager:us-east-2:123456789012:secret:development/MyTestDatabase-AbCdEf'