Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Skema eksternal di Amazon Redshift Spectrum
Topik ini menjelaskan cara membuat dan menggunakan skema eksternal dengan Redshift Spectrum. Skema eksternal adalah kumpulan tabel yang Anda gunakan sebagai referensi untuk mengakses data di luar klaster Amazon Redshift Anda. Tabel ini berisi metadata tentang data eksternal yang dibaca Redshift Spectrum.
Semua tabel eksternal harus dibuat dalam skema eksternal, yang Anda buat menggunakan CREATE EXTERNAL SCHEMA pernyataan.
catatan
Beberapa aplikasi menggunakan istilah database dan skema secara bergantian. Di Amazon Redshift, kami menggunakan istilah skema.
Skema eksternal Amazon Redshift mereferensikan database eksternal dalam katalog data eksternal. Anda dapat membuat database eksternal di Amazon Redshift, di Amazon Athena, di, atau AWS Glue Data Catalogdi metastore Apache Hive, seperti Amazon. EMR Jika Anda membuat database eksternal di Amazon Redshift, database berada di Katalog Data Athena. Untuk membuat database di metastore Hive, Anda perlu membuat database di aplikasi Hive Anda.
Amazon Redshift memerlukan otorisasi untuk mengakses Katalog Data di Athena dan file data di Amazon S3 atas nama Anda. Untuk memberikan otorisasi tersebut, Anda terlebih dahulu membuat peran AWS Identity and Access Management (IAM). Kemudian Anda melampirkan peran ke cluster Anda dan memberikan Amazon Resource Name (ARN) untuk peran dalam pernyataan Amazon RedshiftCREATE EXTERNAL SCHEMA
. Untuk informasi selengkapnya tentang otorisasi, lihatIAMkebijakan untuk Amazon Redshift Spectrum.
catatan
Jika saat ini Anda memiliki tabel eksternal Redshift Spectrum di Katalog Data Athena, Anda dapat memigrasikan Katalog Data Athena ke Katalog Data. AWS Glue Untuk menggunakan Katalog AWS Glue Data dengan Redshift Spectrum, Anda mungkin perlu mengubah kebijakan AndaIAM. Untuk informasi selengkapnya, lihat Memutakhirkan ke Katalog AWS Glue Data di Panduan Pengguna Amazon Athena.
Untuk membuat database eksternal pada saat yang sama Anda membuat skema eksternal, tentukan FROM DATA CATALOG
dan sertakan CREATE EXTERNAL DATABASE
klausa dalam pernyataan AndaCREATE EXTERNAL SCHEMA
.
Contoh berikut membuat skema eksternal bernama spectrum_schema
menggunakan database spectrum_db
eksternal.
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;
Jika Anda mengelola katalog data menggunakan Athena, tentukan nama database Athena dan AWS Wilayah tempat Katalog Data Athena berada.
Contoh berikut membuat skema eksternal menggunakan sampledb
database default di Athena Data Catalog.
create external schema athena_schema from data catalog database 'sampledb' iam_role 'arn:aws:iam::123456789012:role/MySpectrumRole' region 'us-east-2';
catatan
region
Parameter tersebut mereferensikan AWS Wilayah tempat Katalog Data Athena berada, bukan lokasi file data di Amazon S3.
Jika Anda mengelola katalog data menggunakan metastore Hive, seperti AmazonEMR, grup keamanan Anda harus dikonfigurasi untuk mengizinkan lalu lintas antar kluster.
Dalam CREATE EXTERNAL SCHEMA pernyataan tersebut, tentukan FROM HIVE METASTORE
dan sertakan metastore URI dan nomor port. 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'
Untuk melihat skema eksternal untuk klaster Anda, kueri tabel SCHEMA katalog EXTERNAL PG_ _ atau tampilan SVV _ _EXTERNAL. SCHEMAS Contoh kueri berikut SVV _ EXTERNAL _SCHEMAS, yang bergabung dengan PG_ _ dan PG_EXTERNAL. SCHEMA NAMESPACE
select * from svv_external_schemas
Untuk sintaks perintah lengkap dan contoh, lihatCREATE EXTERNAL SCHEMA.
Bekerja dengan katalog eksternal di Amazon Redshift Spectrum
Metadata untuk database eksternal Amazon Redshift Spectrum dan tabel eksternal disimpan dalam katalog data eksternal. Secara default, metadata Redshift Spectrum disimpan dalam Katalog Data Athena. Anda dapat melihat dan mengelola database dan tabel Redshift Spectrum di konsol Athena Anda.
Anda juga dapat membuat dan mengelola database eksternal dan tabel eksternal menggunakan bahasa definisi data Hive (DDL) menggunakan Athena atau metastore Hive, seperti Amazon. EMR
catatan
Sebaiknya gunakan Amazon Redshift untuk membuat dan mengelola database eksternal dan tabel eksternal di Redshift Spectrum.
Melihat database Redshift Spectrum di Athena dan AWS Glue
Anda dapat membuat database eksternal dengan menyertakan NOT EXISTS klausa CREATE EXTERNAL DATABASE IF sebagai bagian dari CREATE EXTERNAL SCHEMA pernyataan Anda. Dalam kasus seperti itu, metadata database eksternal disimpan dalam Katalog Data Anda. Metadata untuk tabel eksternal yang Anda buat memenuhi syarat oleh skema eksternal juga disimpan dalam Katalog Data Anda.
Athena dan AWS Glue memelihara Katalog Data untuk setiap yang didukung. Wilayah AWS Untuk melihat metadata tabel, masuk ke Athena atau konsol. AWS Glue Di Athena, pilih Sumber data, milik Anda AWS Glue, lalu lihat detail database Anda. Di AWS Glue, pilih Database, database eksternal Anda, lalu lihat detail database Anda.
Jika Anda membuat dan mengelola tabel eksternal Anda menggunakan Athena, daftarkan database menggunakan. CREATE EXTERNAL SCHEMA Misalnya, perintah berikut mendaftarkan database Athena bernama. sampledb
create external schema athena_sample from data catalog database 'sampledb' iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole' region 'us-east-1';
Saat Anda menanyakan tampilan TABLES sistem SVV EXTERNAL _ _, Anda melihat tabel di sampledb
database Athena dan juga tabel yang Anda buat di Amazon Redshift.
select * from svv_external_tables;
schemaname | tablename | location --------------+------------------+-------------------------------------------------------- athena_sample | elb_logs | s3://athena-examples/elb/plaintext athena_sample | lineitem_1t_csv | s3://myspectrum/tpch/1000/lineitem_csv athena_sample | lineitem_1t_part | s3://myspectrum/tpch/1000/lineitem_partition spectrum | sales | s3://redshift-downloads/tickit/spectrum/sales spectrum | sales_part | s3://redshift-downloads/tickit/spectrum/sales_part
Mendaftarkan database metastore Apache Hive
Jika Anda membuat tabel eksternal di metastore Apache Hive, Anda dapat menggunakan CREATE EXTERNAL SCHEMA untuk mendaftarkan tabel tersebut di Redshift Spectrum.
Dalam CREATE EXTERNAL SCHEMA pernyataan tersebut, tentukan FROM HIVE METASTORE klausa dan berikan metastore URI Hive dan nomor port. IAMPeran harus menyertakan izin untuk mengakses Amazon S3 tetapi tidak memerlukan izin Athena. Contoh berikut mendaftarkan metastore Hive.
create external schema if not exists hive_schema from hive metastore database 'hive_database' uri 'ip-10-0-111-111.us-west-2.compute.internal' port 9083 iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole';
Mengaktifkan klaster Amazon Redshift Anda untuk mengakses klaster Amazon Anda EMR
Jika metastore Hive Anda ada di AmazonEMR, Anda harus memberikan akses klaster Amazon Redshift ke cluster Amazon Anda. EMR Untuk melakukannya, Anda membuat grup EC2 keamanan Amazon. Anda kemudian mengizinkan semua lalu lintas masuk ke grup EC2 keamanan dari grup keamanan klaster Amazon Redshift dan grup keamanan klaster EMR Amazon Anda. Kemudian Anda menambahkan EC2 keamanan ke cluster Amazon Redshift dan cluster Amazon EMR Anda.
Lihat nama grup keamanan klaster Amazon Redshift Anda
Untuk menampilkan grup keamanan, lakukan hal berikut:
-
Masuk ke AWS Management Console dan buka konsol Amazon Redshift di. https://console.aws.amazon.com/redshiftv2/
-
Pada menu navigasi, pilih Cluster, lalu pilih cluster dari daftar untuk membuka detailnya.
-
Pilih Properti dan lihat bagian Pengaturan Jaringan dan keamanan.
-
Temukan grup keamanan Anda di grup VPC keamanan dan catat.
Lihat nama grup keamanan simpul EMR master Amazon
Buka EMR kluster Amazon Anda. Untuk informasi selengkapnya, lihat Menggunakan konfigurasi keamanan untuk menyiapkan keamanan klaster di Panduan EMR Manajemen Amazon.
Di bawah Keamanan dan akses, catat nama grup keamanan node EMR master Amazon.
Untuk membuat atau memodifikasi grup EC2 keamanan Amazon agar memungkinkan koneksi antara Amazon Redshift dan Amazon EMR
Di EC2 dasbor Amazon, pilih Grup keamanan. Untuk informasi selengkapnya, lihat Aturan grup keamanan di Panduan EC2 Pengguna Amazon
Pilih Buat grup keamanan.
Jika Anda menggunakanVPC, pilih tempat VPC Amazon Redshift dan Amazon Anda EMR berada.
Tambahkan aturan masuk.
Untuk Jenis, pilih Kustom TCP.
Untuk Sumber, pilih Kustom.
Masukkan nama grup keamanan Amazon Redshift Anda.
Tambahkan aturan masuk lainnya.
Untuk Jenis, pilih TCP.
Untuk Port Range, masukkan 9083.
catatan
Port default untuk sebuah EMR HMS adalah 9083. Jika Anda HMS menggunakan port yang berbeda, tentukan port tersebut dalam aturan masuk dan dalam definisi skema eksternal.
Untuk Sumber, pilih Kustom.
Masukkan nama dan deskripsi grup keamanan.
Pilih Buat grup keamanan.
Untuk menambahkan grup EC2 keamanan Amazon yang Anda buat di prosedur sebelumnya ke cluster Amazon Redshift Anda
Di Amazon Redshift, pilih cluster Anda.
Pilih Properti.
Lihat pengaturan Jaringan dan keamanan dan pilih Edit.
Di grup VPC keamanan, pilih nama grup keamanan baru.
Pilih Simpan perubahan.
Untuk menambahkan grup EC2 keamanan Amazon ke EMR cluster Amazon Anda
Di AmazonEMR, pilih cluster Anda. Untuk informasi selengkapnya, lihat Menggunakan konfigurasi keamanan untuk menyiapkan keamanan klaster di Panduan EMR Manajemen Amazon.
Di bawah Hardware, pilih link untuk node Master.
Pilih tautan di kolom ID EC2 instance.
Untuk Tindakan, pilih Keamanan, Ubah grup keamanan.
Di Grup sercurity terkait, pilih grup keamanan baru, dan pilih Tambahkan grup keamanan.
Pilih Simpan.