Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Detail Datashares untuk Amazon Redshift
Dengan Amazon Redshift, Anda dapat berbagi data langsung dengan aman di seluruh klaster Amazon Redshift tanpa harus menyalin atau mentransfer data. Datashares for Amazon Redshift memungkinkan Anda membagikan hasil kueri langsung, termasuk pembaruan data sumber, dengan klaster Amazon Redshift apa pun di akun dan Wilayah yang sama atau berbeda. AWS AWS
Topik
Nilai status Datashare di Amazon Redshift
Topik ini menjelaskan kemungkinan status yang dapat dimiliki oleh datashares di Amazon Redshift.
Dengan datashares lintas akun, ada berbagai status datashares yang memerlukan tindakan Anda. Datashare Anda dapat memiliki status aktif, tindakan yang diperlukan, atau tidak aktif.
Berikut ini menjelaskan setiap status datashare dan tindakan yang diperlukan:
Ketika administrator cluster produser membuat datashare, status datashare pada cluster produser adalah Otorisasi tertunda. Administrator klaster produsen dapat mengotorisasi konsumen data untuk mengakses datashare. Tidak ada tindakan apa pun untuk administrator cluster konsumen.
Ketika administrator cluster produser mengotorisasi datashare, status datashare menjadi Authorized pada cluster produser. Tidak ada tindakan apa pun untuk administrator cluster produser. Bila setidaknya ada satu asosiasi dengan konsumen data untuk datashare, status datashare berubah dari Authorized ke Active.
Status berbagi datashare kemudian menjadi Tersedia (Tindakan diperlukan di konsol Amazon Redshift) di cluster konsumen. Administrator cluster konsumen dapat mengaitkan datashare dengan konsumen data atau menolak datashare. Administrator cluster konsumen juga dapat menggunakan AWS CLI perintah
describeDatashareforConsumer
untuk melihat status datashares. Atau administrator dapat menggunakan CLI perintahdescribeDatashare
dan memberikan datashare Amazon Resource Name (ARN) untuk melihat status datashare.Ketika administrator cluster konsumen mengaitkan datashare dengan konsumen data, status datashare menjadi Aktif di cluster produsen. Bila setidaknya ada satu asosiasi dengan konsumen data untuk datashare, status datashare berubah dari Authorized ke Active. Tidak ada tindakan yang diperlukan untuk administrator cluster produser.
Status datashare menjadi Aktif di cluster konsumen. Tidak ada tindakan yang diperlukan untuk administrator cluster konsumen.
Ketika administrator cluster konsumen menghapus asosiasi konsumen dari datashare, status datashare menjadi Aktif atau Resmi. Ini menjadi Aktif ketika setidaknya ada satu asosiasi yang ada untuk datashare dengan konsumen data lain. Itu menjadi Resmi ketika tidak ada asosiasi konsumen dengan datashare di cluster produsen. Tidak ada tindakan apa pun untuk administrator cluster produser.
Status datashare menjadi Tindakan yang diperlukan pada cluster konsumen jika semua asosiasi dihapus. Administrator cluster konsumen dapat mengasosiasikan kembali datashare dengan konsumen data ketika datashare tersedia untuk konsumen.
Ketika administrator cluster konsumen menolak datashare, status datashare pada cluster produsen menjadi Action required dan Declined pada cluster konsumen. Administrator cluster produser dapat mengotorisasi ulang datashare. Tidak ada tindakan apa pun untuk administrator cluster konsumen.
Ketika administrator cluster produser menghapus otorisasi dari datashare, status datashare menjadi Action required pada cluster produser. Administrator cluster produser dapat memilih untuk mengotorisasi ulang datashare, jika perlu. Tidak ada tindakan yang diperlukan untuk administrator cluster konsumen.
Berbagi data di dalam dan di antara cluster
Anda hanya memerlukan datashares saat berbagi data antara berbagai kluster yang disediakan Amazon Redshift atau grup kerja tanpa server. Dalam cluster yang sama, Anda dapat menanyakan database lain menggunakan notasi tiga bagian sederhana database.schema.table
selama Anda memiliki izin yang diperlukan pada objek di database lain.
Mengelola izin untuk datashares di Amazon Redshift
Sebagai administrator klaster produser, Anda mempertahankan kontrol untuk kumpulan data yang Anda bagikan. Anda dapat menambahkan objek baru ke atau menghapusnya dari datashare. Anda juga dapat memberikan atau mencabut akses ke datashares secara keseluruhan untuk kluster konsumen, akun, atau Wilayah. AWS AWS Saat izin dicabut, kluster konsumen segera kehilangan akses ke objek bersama dan berhenti melihatnya di daftar rangkaian INBOUND data di _. SVV DATASHARES
Contoh berikut membuat datasharesalesshare
, menambahkan skemapublic
, dan menambahkan tabel ke. public.tickit_sales_redshift
salesshare
Ini juga memberikan izin penggunaan salesshare
ke namespace cluster yang ditentukan.
CREATE DATASHARE salesshare; ALTER DATASHARE salesshare ADD SCHEMA public; ALTER DATASHARE salesshare ADD TABLE public.tickit_sales_redshift; GRANT USAGE ON DATASHARE salesshare TO NAMESPACE '13b8833d-17c6-4f16-8fe4-1a018f5ed00d';
Untuk CREATEDATASHARE, superuser dan pemilik database dapat membuat datashares. Untuk informasi selengkapnya, lihat CREATE DATASHARE. Untuk ALTERDATASHARE, pemilik datashare dengan izin yang diperlukan pada objek datashare yang akan ditambahkan atau dihapus dapat mengubah datashare. Untuk informasi, lihat ALTER DATASHARE.
Sebagai administrator produser, ketika Anda menjatuhkan datashare, data berhenti terdaftar di cluster konsumen. Database dan referensi skema yang dibuat di cluster konsumen dari datashare yang dijatuhkan terus ada tanpa objek di dalamnya. Administrator cluster konsumen harus menghapus database ini secara manual.
Di sisi konsumen, administrator cluster konsumen dapat menentukan pengguna dan peran mana yang harus mendapatkan akses ke data bersama dengan membuat database dari datashare. Bergantung pada opsi yang Anda pilih saat membuat database, Anda dapat mengontrol akses ke sana sebagai berikut. Untuk informasi selengkapnya tentang membuat database dari datashare, lihat. CREATE DATABASE
Untuk informasi selengkapnya tentang menyiapkan datashare dan membaca data dari konsumen, lihat Berbagi akses baca ke data dalam akun AWS.
Membuat database tanpa WITH PERMISSIONS klausa
Administrator dapat mengontrol akses di tingkat database atau skema. Untuk mengontrol akses pada tingkat skema, administrator harus membuat skema eksternal dari database Amazon Redshift yang dibuat dari datashare.
Contoh berikut memberikan izin untuk mengakses tabel bersama di tingkat database dan tingkat skema.
GRANT USAGE ON DATABASE sales_db TO Bob; CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE sales_db SCHEMA 'public'; GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;
Untuk lebih membatasi akses, Anda dapat membuat tampilan di atas objek bersama, hanya mengekspos data yang diperlukan. Anda kemudian dapat menggunakan tampilan ini untuk memberikan akses ke pengguna dan peran.
Setelah pengguna diberikan akses ke database atau skema, mereka akan memiliki akses ke semua objek bersama dalam database atau skema itu.
Membuat database dengan WITH PERMISSIONS klausa
Setelah memberikan hak penggunaan pada database atau skema, administrator dapat mengontrol akses lebih lanjut menggunakan proses pemberian izin yang sama seperti yang mereka lakukan pada database atau skema lokal. Tanpa izin objek individual, pengguna tidak dapat mengakses objek apa pun dalam database atau skema datashared bahkan setelah diberikan izin. USAGE
Contoh berikut memberikan izin untuk mengakses tabel bersama di tingkat database.
GRANT USAGE ON DATABASE sales_db TO Bob; GRANT USAGE FOR SCHEMAS IN DATABASE sales_db TO Bob; GRANT SELECT ON sales_db.public.tickit_sales_redshift TO Bob;
Setelah diberikan akses ke database atau skema, pengguna masih perlu diberikan izin yang relevan untuk objek apa pun dalam database atau skema yang Anda ingin mereka akses.
Berbagi granular menggunakan WITH PERMISSIONS
Mengaktifkan cluster atau grup kerja Tanpa Server untuk menanyakan datashare
Langkah ini mengasumsikan datashare berasal dari cluster lain atau namespace Amazon Redshift Tanpa Server di akun Anda, atau berasal dari akun lain dan telah dikaitkan dengan namespace yang Anda gunakan.
Administrator database konsumen dapat membuat database dari datashare.
CREATE DATABASE my_ds_db [WITH PERMISSIONS] FROM DATASHARE my_datashare OF NAMESPACE 'abc123def';
Jika Anda membuat database, WITH PERMISSIONS Anda dapat memberikan izin granular pada objek datashare kepada pengguna dan peran yang berbeda. Tanpa ini, semua pengguna dan peran yang diberikan USAGE izin pada database datashare diberikan semua izin pada semua objek dalam database datashare.
Berikut ini menunjukkan cara memberikan izin kepada pengguna atau peran database Redshift. Anda harus terhubung ke database lokal untuk menjalankan pernyataan ini. Anda tidak dapat menjalankan pernyataan ini jika Anda menjalankan USE perintah pada database datashare sebelum menjalankan pernyataan hibah.
GRANT USAGE ON DATABASE my_ds_db TO ROLE data_eng; GRANT CREATE, USAGE ON SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng; GRANT ALL ON ALL TABLES IN SCHEMA my_ds_db.my_shared_schema TO ROLE data_eng; GRANT USAGE ON DATABASE my_ds_db TO bi_user; GRANT USAGE ON SCHEMA my_ds_db.my_shared_schema TO bi_user; GRANT SELECT ON my_ds_db.my_shared_schema.table1 TO bi_user;
Bekerja dengan tampilan di berbagi data Amazon Redshift
Kluster produser dapat berbagi tampilan reguler, pengikatan terlambat, dan terwujud. Saat berbagi tampilan reguler atau pengikatan akhir, Anda tidak perlu membagikan tabel dasar. Tabel berikut menunjukkan bagaimana tampilan didukung dengan berbagi data.
Nama tampilan | Bisakah tampilan ini ditambahkan ke datashare? | Bisakah konsumen membuat tampilan ini pada objek datashare di seluruh cluster? |
---|---|---|
Tampilan reguler | Ya | Tidak |
Tampilan pengikatan akhir | Ya | Ya |
Tampilan terwujud | Ya | Ya, tetapi hanya dengan penyegaran lengkap |
Kueri berikut menunjukkan output dari tampilan reguler yang didukung dengan berbagi data. Untuk informasi tentang definisi tampilan reguler, lihatCREATE VIEW.
SELECT * FROM tickit_db.public.myevent_regular_vw ORDER BY eventid LIMIT 5; eventid | eventname ----------+------------- 3835 | LeAnn Rimes 3967 | LeAnn Rimes 4856 | LeAnn Rimes 4948 | LeAnn Rimes 5131 | LeAnn Rimes
Kueri berikut menunjukkan output dari tampilan pengikatan akhir yang didukung dengan berbagi data. Untuk informasi tentang definisi tampilan pengikatan akhir, lihat. CREATE VIEW
SELECT * FROM tickit_db.public.event_lbv ORDER BY eventid LIMIT 5; eventid | venueid | catid | dateid | eventname | starttime --------+---------+-------+--------+------------------------------+--------------------- 1 | 305 | 8 | 1851 | Gotterdammerung | 2008-01-25 14:30:00 2 | 306 | 8 | 2114 | Boris Godunov | 2008-10-15 20:00:00 3 | 302 | 8 | 1935 | Salome | 2008-04-19 14:30:00 4 | 309 | 8 | 2090 | La Cenerentola (Cinderella) | 2008-09-21 14:30:00 5 | 302 | 8 | 1982 | Il Trovatore | 2008-06-05 19:00:00
Kueri berikut menunjukkan output dari tampilan terwujud yang didukung dengan berbagi data. Untuk informasi tentang definisi tampilan terwujud, lihatCREATE MATERIALIZED VIEW.
SELECT * FROM tickit_db.public.tickets_mv; catgroup | qtysold ----------+--------- Concerts | 195444 Shows | 149905
Anda dapat mempertahankan tabel umum di semua penyewa dalam klaster produsen. Anda juga dapat membagikan subset data yang difilter berdasarkan kolom dimensi, seperti tenant_id
(account_id
ataunamespace_id
), ke kluster konsumen. Untuk melakukan ini, Anda dapat menentukan tampilan pada tabel dasar dengan filter pada kolom ID ini, misalnyacurrent_aws_account = tenant_id
. Di sisi konsumen, saat Anda menanyakan tampilan, Anda hanya melihat baris yang memenuhi syarat untuk akun Anda. Untuk melakukan ini, Anda dapat menggunakan fungsi current_aws_account
konteks Amazon Redshift dan. current_namespace
Kueri berikut mengembalikan ID akun tempat klaster Amazon Redshift saat ini berada. Anda dapat menjalankan kueri ini jika Anda terhubung ke Amazon Redshift.
select current_user, current_aws_account; current_user | current_aws_account -------------+-------------------- dwuser | 111111111111 (1row)
Kueri berikut mengembalikan namespace dari cluster Amazon Redshift saat ini. Anda dapat menjalankan kueri ini jika Anda terhubung ke database.
select current_user, current_namespace; current_user | current_namespace -------------+-------------------------------------- dwuser | 86b5169f-01dc-4a6f-9fbb-e2e24359e9a8 (1 row)
Penyegaran tambahan untuk tampilan terwujud dalam datashare
Amazon Redshift mendukung penyegaran inkremental untuk tampilan terwujud dalam database konsumen saat tabel dasar dibagikan. Penyegaran tambahan adalah operasi di mana Amazon Redshift mengidentifikasi perubahan pada tabel dasar atau tabel yang terjadi setelah penyegaran sebelumnya dan hanya memperbarui catatan terkait dalam tampilan terwujud. Untuk informasi lebih lanjut tentang perilaku ini, lihat CREATEMATERIALIZEDVIEW.
Mengelola akses ke API operasi berbagi data dengan IAM kebijakan
Untuk mengontrol akses ke API operasi berbagi data, gunakan kebijakan IAM berbasis tindakan. Untuk informasi tentang cara mengelola IAM kebijakan, lihat Mengelola IAM kebijakan di Panduan IAM Pengguna.
Untuk informasi tentang izin yang diperlukan untuk menggunakan API operasi berbagi data, lihat Izin yang diperlukan untuk menggunakan API operasi berbagi data di Panduan Manajemen Amazon Redshift.
Untuk membuat berbagi data lintas akun lebih aman, Anda dapat menggunakan kunci bersyarat ConsumerIdentifier
untuk AuthorizeDataShare
dan DeauthorizeDataShare
API operasi. Dengan melakukan ini, Anda dapat secara eksplisit mengontrol mana yang Akun AWS dapat membuat panggilan ke dua API operasi.
Anda dapat menolak otorisasi atau membatalkan otorisasi berbagi data untuk setiap konsumen yang bukan akun Anda sendiri. Untuk melakukannya, tentukan Akun AWS nomor dalam IAM kebijakan.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Deny", "Action": [ "redshift:AuthorizeDataShare", "redshift:DeauthorizeDataShare" ], "Resource": "*", "Condition": { "StringNotEquals": { "redshift:ConsumerIdentifier": "555555555555" } } } ] }
Anda dapat mengizinkan produsen dengan a DataShareArn testshare2
untuk secara eksplisit berbagi dengan konsumen dengan Akun AWS 111122223333 dalam kebijakan. IAM
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "redshift:AuthorizeDataShare", "redshift:DeauthorizeDataShare" ], "Resource": "arn:aws:redshift:us-east-1:666666666666:datashare:af06285e-8a45-4ee9-b598-648c218c8ff1/testshare2", "Condition": { "StringEquals": { "redshift:ConsumerIdentifier": "111122223333" } } } ] }
Menanyakan datashares
Mengakses data bersama di Amazon Redshift
Anda dapat menemukan data bersama menggunakan SQL antarmuka standar, JDBC atau ODBC driver, dan DataAPI. Anda juga dapat meminta data dengan kinerja tinggi dari intelijen bisnis (BI) dan alat analitik yang sudah dikenal. Anda dapat melakukan kueri dengan merujuk ke objek dari database Amazon Redshift lainnya yang bersifat lokal dan jauh dari cluster Anda yang memiliki izin untuk diakses.
Anda dapat melakukannya hanya dengan tetap terhubung ke database lokal di cluster Anda. Kemudian Anda dapat membuat database konsumen dari datashares untuk mengkonsumsi data bersama.
Setelah Anda melakukannya, Anda dapat terhubung ke database konsumen dan menanyakan objek bersama menggunakan notasi sebagian. Atau, Anda dapat terhubung ke database cluster lokal dan objek kueri dalam database konsumen menggunakan notasi tiga bagian ().
Anda juga dapat melakukan kueri menggunakan tautan skema eksternal ke skema di database konsumen. Anda dapat menanyakan data lokal dan data yang dibagikan dari kluster lain dalam kueri yang sama. Kueri semacam itu dapat mereferensikan objek dari database yang terhubung saat ini dan dari database lain yang tidak terhubung, termasuk database konsumen yang dibuat dari datashares. consumer_database_name
.schema_name
.table_name
Mengakses metadata untuk datashares di Amazon Redshift
Untuk membantu administrator klaster menemukan rangkaian data, Amazon Redshift menyediakan serangkaian tampilan metadata untuk mencantumkan rangkaian data. Tampilan ini mencantumkan rangkaian data yang dibuat di klaster Anda dan juga yang diterima dari kluster lain dalam akun yang sama, dari akun lain, atau Wilayah lain. AWS Tampilan ini menampilkan informasi berikut:
Datashares yang dibagikan dan diterima oleh cluster
Isi objek database dalam datashares, termasuk metadata berbagi dasar, objek, dan konsumen
Gunakan SHOW SCHEMAS untuk melihat daftar skema bersama di datashare yang terkait dengan database yang terhubung. Untuk informasi selengkapnya, lihat SHOW SCHEMAS.
Gunakan SHOW TABLES untuk melihat daftar tabel dalam skema bersama dari datashare yang terkait dengan database yang terhubung. Untuk informasi selengkapnya, lihat SHOW TABLES.
Gunakan SHOW COLUMNS untuk melihat daftar kolom dari tabel bersama di datashare yang terkait dengan database yang terhubung. Untuk informasi selengkapnya, lihat SHOW COLUMNS.
Gunakan SVV _ DATASHARES untuk melihat daftar semua datashares yang dibuat di cluster Anda (outbound) dan dibagikan dari orang lain (inbound). Untuk informasi selengkapnya, lihat SVV_DATASHARES.
Gunakan SVV DATASHARE _ _ CONSUMERS untuk melihat daftar data konsumen. Untuk informasi selengkapnya, lihat SVV_DATASHARE_CONSUMERS.
Gunakan SVV _ DATASHARE _ OBJECTS untuk melihat daftar objek di semua datashares yang dibuat di cluster Anda (outbound) dan dibagikan dari orang lain (inbound). Untuk informasi selengkapnya, lihat SVV_DATASHARE_OBJECTS.
Mengintegrasikan berbagi data Amazon Redshift dengan alat intelijen bisnis
Untuk mengintegrasikan berbagi data dengan alat intelijen bisnis (BI), sebaiknya gunakan Amazon Redshift JDBC atau ODBC driver.
Amazon Redshift JDBC dan ODBC driver mendukung GetCatalogs
API operasi di driver, yang mengembalikan daftar semua database termasuk yang dibuat dari datashares. Driver juga mendukung operasi hilir, sepertiGetSchemas
,GetTables
, dan seterusnya, yang mengembalikan data dari semua database yang GetCatalogs
kembali. Driver memberikan dukungan ini bahkan ketika katalog tidak ditentukan secara eksplisit dalam panggilan. Untuk informasi selengkapnya tentang JDBC atau ODBC driver, lihat Mengonfigurasi koneksi di Amazon Redshift di Panduan Manajemen Pergeseran Merah Amazon.
Anda dapat terhubung ke database konsumen yang dibuat dari datashares secara langsung dengan cara yang sama seperti database lainnya. Jika Anda memiliki koneksi beralih antarmuka pengguna di alat Anda, daftar database harus menyertakan database yang dibuat dari datashares. Anda dapat menemukan database konsumen ini menggunakan SVV _ REDSHIFT _DATABASES.