CREATE EXTERNAL SCHEMA - Amazon Redshift

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 memigrasi katalog data Athena ke AWS Glue Data Catalog. Untuk menggunakan AWS Glue Katalog Data dengan Redshift Spectrum, Anda mungkin perlu mengubah AWS Identity and Access Management (IAM) kebijakan. Untuk informasi selengkapnya, lihat Memutakhirkan ke AWS Glue Katalog 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>' }
[ SECRET_ARN 'ssm-secret-arn' ]
[ AUTHENTICATION { none | iam } ]
[ URI 'hive_metastore_uri' [ PORT port_number ] | 'msk_broker_uri:port_number'  ] 
[ 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 broker URI dan CLUSTER _ARN. 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 'hive_metastore_uri' [ PORT port_number ] | 'msk_broker_uri:port_number' ]
[ CLUSTER_ARN 'arn:aws:kafka:<region>:<Akun AWS-id>:cluster/msk/<cluster uuid>' ]
AUTHENTICATION { none | iam };

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 pengidentifikasi.

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 tempat yang berbeda AWS Wilayah, 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 topik dari AmazonMSK.

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 Nama schema_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] | 'msk_broker_uri:port_number' PORT

menentukan metastore sarang URI

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.

Jika database berada dalam metastore Hive, tentukan URI dan opsional nomor port untuk metastore. Nomor port default adalah 9083.

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.

A URI tidak berisi spesifikasi protokol (“http://”). Contoh validURI:uri '172.10.10.10'.

menentukan broker URI untuk streaming konsumsi

Termasuk bootstrap-broker URI dan CLUSTER _ ARN 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'

Nama Sumber Daya Amazon (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 ARN AWS Secrets Manager Panduan Pengguna.

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 untuk 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_IDdapat 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_ROLEke '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. AUTHENTICATIONJenisnya adalah sebagai berikut:

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 dan CLUSTER _ ARN untuk terhubung ke Amazon Managed Streaming for Apache Kafka Kafka cluster. Untuk informasi selengkapnya, 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 dalam 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 AWS Glue katalog 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 mereferensikan database Aurora PostgreSQL.

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'