

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan tampilan Katalog Data di Athena
<a name="views-glue"></a>

Membuat tampilan Katalog Data di Amazon Athena memerlukan pernyataan khusus`CREATE VIEW`. Query mereka menggunakan sintaks SQL `SELECT` konvensional. Tampilan Katalog Data juga disebut sebagai tampilan *multi dialek*, atau MDVs.

## Membuat tampilan Katalog Data
<a name="views-glue-creating-a-data-catalog-view"></a>

Untuk membuat tampilan Katalog Data di Athena, gunakan sintaks berikut.

```
CREATE [ OR REPLACE ] PROTECTED MULTI DIALECT VIEW {{view_name}} 
SECURITY DEFINER 
[ SHOW VIEW JSON ]
AS {{athena-sql-statement}}
```

**catatan**  
`SHOW VIEW JSON`Opsi ini hanya berlaku untuk tampilan Katalog Data dan bukan untuk tampilan Athena. Menggunakan `SHOW VIEW JSON` opsi melakukan “dry run” yang memvalidasi input dan, jika validasi berhasil, mengembalikan JSON dari objek AWS Glue tabel yang akan mewakili tampilan. Tampilan sebenarnya tidak dibuat. Jika `SHOW VIEW JSON` opsi tidak ditentukan, validasi dilakukan dan tampilan dibuat seperti biasa di Katalog Data.

Contoh berikut menunjukkan bagaimana pengguna `Definer` peran membuat tampilan Katalog `orders_by_date` Data. Contoh mengasumsikan bahwa `Definer` peran memiliki `SELECT` izin penuh pada `orders` tabel dalam database. `default`

```
CREATE PROTECTED MULTI DIALECT VIEW orders_by_date 
SECURITY DEFINER 
AS 
SELECT orderdate, sum(totalprice) AS price 
FROM orders 
WHERE order_city = 'SEATTLE' 
GROUP BY orderdate
```

Untuk informasi sintaks, lihat[CREATE PROTECTED MULTI DIALECT VIEW](create-view.md#create-protected-multi-dialect-view).

## Kueri tampilan Katalog Data
<a name="views-glue-querying-a-data-catalog-view"></a>

Setelah tampilan dibuat, `Lake Formation` admin dapat memberikan `SELECT` izin pada tampilan Katalog Data ke `Invoker` prinsipal. `Invoker`Prinsipal kemudian dapat menanyakan tampilan tanpa memiliki akses ke tabel dasar yang mendasari yang direferensikan oleh tampilan. Berikut ini adalah contoh `Invoker` query.

```
SELECT * from orders_by_date where price > 5000
```

## Pertimbangan dan batasan
<a name="views-glue-limitations"></a>

Sebagian besar batasan tampilan Katalog Data berikut khusus untuk Athena. Untuk batasan tambahan pada tampilan Katalog Data yang juga berlaku untuk layanan lain, lihat dokumentasi Lake Formation.
+ Tampilan Katalog Data tidak dapat mereferensikan tampilan lain, tautan sumber daya database, atau tautan sumber daya tabel.
+ Anda dapat mereferensikan hingga 10 tabel dalam definisi tampilan.
+ Tabel tidak boleh memiliki izin `IAMAllowedPrincipals` data lake di Lake Formation. Jika ada, kesalahan tampilan Multi Dialek mungkin hanya referensi tabel tanpa izin IAMAllowed Prinsipal terjadi.
+ Lokasi Amazon S3 tabel harus terdaftar sebagai lokasi danau data Lake Formation. Jika tabel tidak begitu terdaftar, kesalahan tampilan Multi Dialek mungkin hanya referensi tabel terkelola Lake Formation terjadi. *Untuk informasi tentang cara mendaftarkan lokasi Amazon S3 di Lake Formation, lihat [Mendaftarkan lokasi Amazon S3](https://docs.aws.amazon.com/lake-formation/latest/dg/register-location.html) di AWS Lake Formation Panduan Pengembang.*
+ Panggilan AWS Glue [GetTables](https://docs.aws.amazon.com/glue/latest/webapi/API_GetTables.html)dan [SearchTables](https://docs.aws.amazon.com/glue/latest/webapi/API_SearchTables.html)API tidak memperbarui `IsRegisteredWithLakeFormation` parameter. Untuk melihat nilai parameter yang benar, gunakan AWS Glue [GetTable](https://docs.aws.amazon.com/glue/latest/webapi/API_GetTable.html)API. Untuk informasi selengkapnya, lihat [GetTables dan SearchTables APIs jangan perbarui nilai IsRegisteredWithLakeFormation parameter](https://docs.aws.amazon.com/lake-formation/latest/dg/limitations.html#issue-GetTables-value) di *Panduan AWS Lake Formation Pengembang*.
+ `DEFINER`Kepala sekolah hanya dapat menjadi peran IAM.
+ `DEFINER`Peran harus memiliki izin penuh `SELECT` (dapat diberikan) pada tabel yang mendasarinya.
+ `UNPROTECTED`Tampilan Katalog Data tidak didukung.
+ Fungsi yang ditentukan pengguna (UDFs) tidak didukung dalam definisi tampilan.
+ Sumber data federasi Athena tidak dapat digunakan dalam tampilan Katalog Data.
+ Tampilan Katalog Data tidak didukung untuk Hive metastor eksternal.
+ Athena menampilkan pesan kesalahan saat mendeteksi tampilan basi. Tampilan basi dilaporkan saat salah satu hal berikut terjadi:
  + Tampilan referensi tabel atau basis data yang tidak ada.
  + Perubahan skema atau metadata dibuat dalam tabel direferensikan. 
  + Sebuah tabel direferensikan dijatuhkan dan diciptakan dengan skema yang berbeda atau konfigurasi.

## Izin
<a name="views-glue-permissions"></a>

Tampilan Katalog Data memerlukan tiga peran:`Lake Formation Admin`,`Definer`, dan`Invoker`. 
+ **`Lake Formation Admin`**— Memiliki akses untuk mengonfigurasi semua izin Lake Formation.
+ **`Definer`**— Membuat tampilan Katalog Data. `Definer`Peran harus memiliki `SELECT` izin penuh yang dapat diberikan pada semua tabel dasar yang referensi definisi tampilan.
+ **`Invoker`**— Dapat menanyakan tampilan Katalog Data atau memeriksa metadatanya. Untuk menampilkan pemanggil kueri, Anda dapat menggunakan fungsi `invoker_principal()` DHTML. Untuk informasi selengkapnya, lihat [invoker\_principal ()](functions-env3.md#functions-env3-invoker-principal).

Hubungan kepercayaan `Definer` peran harus memungkinkan `sts:AssumeRole` tindakan untuk kepala layanan AWS Glue dan Lake Formation. *Untuk informasi selengkapnya, lihat [Prasyarat untuk membuat tampilan](https://docs.aws.amazon.com/lake-formation/latest/dg/working-with-views.html#views-prereqs) di Panduan Pengembang.AWS Lake Formation *

Izin IAM untuk akses Athena juga diperlukan. Untuk informasi selengkapnya, lihat [AWS kebijakan terkelola untuk Amazon Athena](security-iam-awsmanpol.md).