Menggunakan tampilan Katalog Data di Athena - Amazon Athena

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

Membuat tampilan Katalog Data di Amazon Athena memerlukan pernyataan khususCREATE VIEW. Query mereka menggunakan SQL SELECT sintaks konvensional.

Membuat tampilan Katalog Data

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 JSONOpsi 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 AWS Glue objek 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, lihatCREATE PROTECTED MULTI DIALECT VIEW.

Kueri tampilan Katalog Data

Setelah tampilan dibuat, Lake Formation admin dapat memberikan SELECT izin pada tampilan Katalog Data ke Invoker prinsipal. InvokerPrinsipal 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

Batasan

Batasan tampilan Katalog Data berikut khusus untuk Athena. Untuk batasan tampilan Katalog Data yang berlaku untuk Athena dan layanan lainnya, 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 yang mendasari harus terdaftar di Lake Formation.

  • DEFINERKepala sekolah hanya bisa menjadi IAM peran.

  • DEFINERPeran harus memiliki izin penuh SELECT (dapat diberikan) pada tabel yang mendasarinya.

  • UNPROTECTEDTampilan 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 eksternal Hive metastores.

  • 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

Tampilan Katalog Data memerlukan tiga peran:Lake Formation Admin,Definer, danInvoker.

  • Lake Formation Admin— Memiliki akses untuk mengonfigurasi semua izin Lake Formation.

  • Definer— Membuat tampilan Katalog Data. DefinerPeran harus memiliki SELECT izin penuh yang dapat diberikan pada semua tabel yang mendasari referensi definisi tampilan.

  • Invoker— Dapat menanyakan tampilan Katalog Data atau memeriksa metadatanya. Untuk menampilkan pemanggil kueri, Anda dapat menggunakan invoker_principal() DML fungsi tersebut. Untuk informasi selengkapnya, lihat invoker_principal ().

Hubungan kepercayaan Definer peran harus memungkinkan sts:AssumeRole tindakan untuk AWS Glue dan kepala layanan Lake Formation. Untuk informasi selengkapnya, lihat Prasyarat untuk membuat tampilan di AWS Lake Formation Panduan Pengembang.

IAMizin untuk akses Athena juga diperlukan. Untuk informasi selengkapnya, lihat AWS kebijakan terkelola untuk Amazon Athena.