

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, lihat [posting blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

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
<a name="c-spectrum-external-schemas"></a>

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 [BUAT SKEMA EKSTERNAL](r_CREATE_EXTERNAL_SCHEMA.md) 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](https://docs.aws.amazon.com/athena/latest/ug/catalog.html), di, atau [AWS Glue Data Catalog](https://docs.aws.amazon.com/glue/latest/dg/components-overview.html#data-catalog-intro)di metastore Apache Hive, seperti Amazon EMR.](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html) 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, pertama-tama Anda 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 `CREATE EXTERNAL SCHEMA` Redshift. Untuk informasi selengkapnya tentang otorisasi, lihat[Kebijakan IAM untuk Amazon Redshift Spectrum](c-spectrum-iam-policies.md).

Untuk membuat database eksternal pada saat yang sama Anda membuat skema eksternal, tentukan `FROM DATA CATALOG` dan sertakan `CREATE EXTERNAL DATABASE` klausa dalam pernyataan Anda`CREATE 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 Amazon EMR, grup keamanan Anda harus dikonfigurasi untuk mengizinkan lalu lintas antar kluster. 

Dalam pernyataan CREATE EXTERNAL SCHEMA, tentukan `FROM HIVE METASTORE` dan sertakan URI dan nomor port metastore. 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 katalog PG\$1EXTERNAL\$1SCHEMA atau tampilan SVV\$1EXTERNAL\$1SCHEMAS. Contoh berikut query SVV\$1EXTERNAL\$1SCHEMAS, yang bergabung dengan PG\$1EXTERNAL\$1SCHEMA dan PG\$1NAMESPACE.

```
select * from svv_external_schemas
```

Untuk sintaks perintah lengkap dan contoh, lihat[BUAT SKEMA EKSTERNAL](r_CREATE_EXTERNAL_SCHEMA.md).

## Bekerja dengan katalog eksternal di Amazon Redshift Spectrum
<a name="c-spectrum-external-catalogs"></a>

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
<a name="c-spectrum-athena-external-catalogs"></a>

Anda dapat membuat database eksternal dengan menyertakan klausa CREATE EXTERNAL DATABASE IF NOT EXISTS sebagai bagian dari pernyataan CREATE EXTERNAL SCHEMA 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 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 sistem SVV\$1EXTERNAL\$1TABLES, Anda akan 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
<a name="c-spectrum-hive-metastore"></a>

Jika Anda membuat tabel eksternal dalam metastore Apache Hive, Anda dapat menggunakan CREATE EXTERNAL SCHEMA untuk mendaftarkan tabel tersebut di Redshift Spectrum. 

Dalam pernyataan CREATE EXTERNAL SCHEMA, tentukan klausa FROM HIVE METASTORE dan berikan URI metastore Hive dan nomor port. Peran IAM 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 kluster EMR Amazon Anda
<a name="c-spectrum-enabling-emr-access"></a>

Jika metastore Hive Anda ada di Amazon EMR, Anda harus memberikan akses kluster Amazon Redshift ke cluster EMR Amazon Anda. Untuk melakukannya, Anda membuat grup keamanan Amazon EC2. Anda kemudian mengizinkan semua lalu lintas masuk ke grup keamanan EC2 dari grup keamanan klaster Amazon Redshift dan grup keamanan klaster Amazon EMR Anda. Kemudian Anda menambahkan keamanan EC2 ke cluster Amazon Redshift dan cluster EMR Amazon Anda.

**Lihat nama grup keamanan klaster Amazon Redshift Anda**

Untuk menampilkan grup keamanan, lakukan hal berikut:

1. Masuk ke Konsol Manajemen AWS dan buka konsol Amazon Redshift di. [https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/)

1. Pada menu navigasi, pilih **Cluster**, lalu pilih cluster dari daftar untuk membuka detailnya.

1. Pilih **Properti** dan lihat bagian **Pengaturan Jaringan dan keamanan**. 

1. Temukan grup keamanan Anda di **grup keamanan VPC** dan catat. 

****

**Lihat nama grup keamanan simpul master EMR Amazon**

1. Buka kluster EMR Amazon Anda. Untuk informasi selengkapnya, lihat [Menggunakan konfigurasi keamanan untuk menyiapkan keamanan klaster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) di Panduan Manajemen *EMR Amazon*.

1. Di bawah **Keamanan dan akses**, catat nama grup keamanan simpul master Amazon EMR.  
![\[Tangkapan layar yang menyoroti nama grup keamanan simpul master EMR Amazon di konsol EMR Amazon.\]](http://docs.aws.amazon.com/id_id/redshift/latest/dg/images/spectrum-emr-security-groups.png)

**Untuk membuat atau memodifikasi grup keamanan Amazon EC2 untuk memungkinkan koneksi antara Amazon Redshift dan Amazon EMR**

1. Di dasbor Amazon EC2, pilih Grup **keamanan**. Untuk informasi selengkapnya, lihat [Aturan grup keamanan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/security-group-rules.html) di Panduan *Pengguna Amazon EC2* 

1. Pilih **Buat grup keamanan**. 

1. Jika Anda menggunakan VPC, pilih VPC tempat Amazon Redshift dan Amazon EMR cluster Anda berada. 

1. Tambahkan aturan masuk. 

   1. Untuk **Jenis**, pilih **TCP kustom**. 

   1. Untuk **Sumber**, pilih **Kustom**. 

   1. Masukkan nama grup keamanan Amazon Redshift Anda. 

1. Tambahkan aturan masuk lainnya. 

   1. Untuk **Type**, pilih **TCP**. 

   1. Untuk **Port Range**, masukkan **9083**.
**catatan**  
Port default untuk EMR HMS adalah 9083. Jika HMS Anda menggunakan port yang berbeda, tentukan port itu dalam aturan masuk dan dalam definisi skema eksternal. 

   1. Untuk **Sumber**, pilih **Kustom**. 

1. Masukkan nama dan deskripsi grup keamanan. 

1. Pilih **Buat grup keamanan**. 

**Untuk menambahkan grup keamanan Amazon EC2 yang Anda buat di prosedur sebelumnya ke cluster Amazon Redshift Anda**

1. Di Amazon Redshift, pilih cluster Anda. 

1. Pilih **Properti**. 

1. Lihat **pengaturan Jaringan dan keamanan** dan pilih **Edit**. 

1. Di **grup keamanan VPC, pilih nama grup** keamanan baru. 

1. Pilih **Simpan perubahan**. 

**Untuk menambahkan grup keamanan Amazon EC2 ke cluster EMR Amazon Anda**

1. Di Amazon EMR, pilih cluster Anda. Untuk informasi selengkapnya, lihat [Menggunakan konfigurasi keamanan untuk menyiapkan keamanan klaster](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-configurations.html) di Panduan Manajemen *EMR Amazon*.

1. Di bawah **Hardware**, pilih link untuk node Master. 

1. Pilih tautan di kolom **ID instans EC2**.   
![\[Tangkapan layar yang menyoroti nilai ID instans Amazon EC2 di konsol EMR Amazon.\]](http://docs.aws.amazon.com/id_id/redshift/latest/dg/images/spectrum-emr-add-security-group.png)

1. Untuk **Tindakan**, pilih **Keamanan**, **Ubah grup keamanan**. 

1. Di **Grup sercurity terkait**, pilih grup keamanan baru, dan pilih **Tambahkan grup keamanan**. 

1. Pilih **Simpan**. 