Tindakan administrator klaster konsumen - Amazon Redshift

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

Tindakan administrator klaster konsumen

Dengan Amazon Redshift, Anda dapat melakukan tugas administratif pada kluster konsumen untuk mengelola konsumsi data dan pemrosesan pemuatan.

Jika Anda adalah administrator cluster konsumen - ikuti langkah-langkah berikut:

  1. Buat daftar datashares yang tersedia untuk Anda dan lihat konten datashares. Konten datashares hanya tersedia ketika administrator klaster produsen telah mengotorisasi datashares dan administrator cluster konsumen telah menerima dan mengaitkan datashares. Untuk informasi selengkapnya, silakan lihat DESC DATASHARE dan SHOW DATASHARES.

    Contoh berikut menampilkan informasi datashares inbound dari namespace produsen tertentu. Saat menjalankan administrator klaster konsumen, Anda harus menentukan NAMESPACE dan ID akun untuk melihat datashares masuk. DESC DATAHSARE Untuk datashares keluar, tentukan nama datashare.

    SHOW DATASHARES LIKE 'sales%'; share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace -----------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------- salesshare | | | | INBOUND | | t | | 123456789012 | 'dd8772e1-d792-4fa4-996b-1870577efc0d'
    DESC DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d'; producer_account | producer_namespace | share_type | share_name | object_type | object_name ------------------+--------------------------------------+------------+------------+-------------+--------------------------------- 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_users_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_venue_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_category_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_date_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_event_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_listing_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | table | public.tickit_sales_redshift 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d | INBOUND | salesshare | schema | public (8 rows)

    Hanya superuser cluster yang bisa melakukan ini. Anda juga dapat menggunakan SVV _ DATASHARES untuk melihat datashares dan SVV _ DATASHARE _ OBJECTS untuk melihat objek dalam datashare.

    Contoh berikut menampilkan datashares masuk dalam cluster konsumen.

    SELECT * FROM SVV_DATASHARES WHERE share_name LIKE 'sales%'; share_name | share_owner | source_database | consumer_database | share_type | createdate | is_publicaccessible | share_acl | producer_account | producer_namespace -----------+-------------+-----------------+-------------------+------------+------------+---------------------+-----------+------------------+--------------------------------------- salesshare | | | | INBOUND | | t | | 123456789012 | 'dd8772e1-d792-4fa4-996b-1870577efc0d'
    SELECT * FROM SVV_DATASHARE_OBJECTS WHERE share_name LIKE 'sales%'; share_type | share_name | object_type | object_name | producer_account | producer_namespace ------------+------------+-------------+---------------------------------+------------------+-------------------------------------- INBOUND | salesshare | table | public.tickit_users_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_venue_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_category_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_date_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_event_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_listing_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | table | public.tickit_sales_redshift | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d INBOUND | salesshare | schema | public | 123456789012 | dd8772e1-d792-4fa4-996b-1870577efc0d (8 rows)
  2. Buat database lokal yang merujuk ke datashares. Tentukan NAMESPACE dan ID akun saat membuat database dari datashare. Untuk informasi selengkapnya, lihat CREATE DATABASE.

    CREATE DATABASE sales_db FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d';

    Jika Anda ingin kontrol lebih terperinci atas akses ke objek dalam database lokal, gunakan WITH PERMISSIONS klausa saat membuat database. Ini memungkinkan Anda memberikan izin tingkat objek untuk objek dalam database pada langkah 4.

    CREATE DATABASE sales_db WITH PERMISSIONS FROM DATASHARE salesshare OF ACCOUNT '123456789012' NAMESPACE 'dd8772e1-d792-4fa4-996b-1870577efc0d';

    Anda dapat melihat database yang Anda buat dari datashare dengan menanyakan tampilan. SVV_REDSHIFT_DATABASES Anda dapat terhubung ke database ini secara langsung, atau Anda dapat terhubung ke database lokal di cluster konsumen Anda dan melakukan kueri lintas basis data untuk menanyakan data dari database datashare. Anda tidak dapat membuat datashare di atas objek database yang dibuat dari datashare yang ada. Namun, Anda dapat menyalin data ke tabel terpisah di cluster konsumen, melakukan pemrosesan apa pun yang diperlukan, dan kemudian membagikan objek baru yang dibuat.

  3. (Opsional) Buat skema eksternal untuk merujuk dan menetapkan izin granular ke skema tertentu dalam database konsumen yang diimpor di cluster konsumen. Untuk informasi selengkapnya, lihat CREATE EXTERNAL SCHEMA.

    CREATE EXTERNAL SCHEMA sales_schema FROM REDSHIFT DATABASE 'sales_db' SCHEMA 'public';
  4. Berikan izin pada database dan referensi skema yang dibuat dari datashares kepada pengguna atau peran dalam cluster konsumen sesuai kebutuhan. Untuk informasi selengkapnya, lihat GRANT atau REVOKE.

    GRANT USAGE ON DATABASE sales_db TO Bob;
    GRANT USAGE ON SCHEMA sales_schema TO ROLE Analyst_role;

    Jika Anda membuat database tanpa WITHPERMISSIONS, Anda hanya dapat menetapkan izin pada seluruh database yang dibuat dari datashare ke pengguna atau peran Anda. Dalam beberapa kasus, Anda memerlukan kontrol halus pada subset objek database yang dibuat dari datashare. Jika demikian, Anda dapat membuat referensi skema eksternal yang menunjuk ke skema tertentu di datashare, seperti yang dijelaskan pada langkah sebelumnya. Anda kemudian dapat memberikan izin granular di tingkat skema. Anda juga dapat membuat tampilan pengikatan akhir di atas objek bersama dan menggunakannya untuk menetapkan izin granular. Anda juga dapat mempertimbangkan agar cluster produsen membuat datashares tambahan untuk Anda dengan perincian yang diperlukan. Anda dapat membuat referensi skema sebanyak mungkin ke database yang dibuat dari datashare yang Anda butuhkan.

    Jika Anda membuat database dengan WITH PERMISSIONS langkah 2, Anda harus menetapkan izin tingkat objek untuk objek dalam database bersama. Pengguna dengan hanya USAGE izin tidak dapat mengakses objek apa pun dalam database yang dibuat dengan WITH PERMISSIONS sampai mereka diberikan izin tingkat objek tambahan..

    GRANT SELECT ON sales_db.public.tickit_sales_redshift to Bob;
  5. Kueri data dalam objek bersama di datashares.

    Pengguna dan peran dengan izin pada database konsumen dan skema pada kluster konsumen dapat menjelajahi dan menavigasi metadata objek bersama. Mereka juga dapat menjelajahi dan menavigasi objek lokal di cluster konsumen. Untuk melakukan ini, gunakan JDBC atau ODBC driver atau SVV _ ALL dan SVV _ REDSHIFT tampilan.

    Cluster produser mungkin memiliki banyak skema dalam database, tabel, dan tampilan dalam setiap skema. Pengguna di sisi konsumen hanya dapat melihat subset objek yang tersedia melalui datashare. Pengguna ini tidak dapat melihat semua metadata dari cluster produsen. Pendekatan ini membantu memberikan kontrol keamanan metadata granular dengan berbagi data.

    Anda terus terhubung ke database cluster lokal. Tapi sekarang, Anda juga dapat membaca dari database dan skema yang dibuat dari datashare menggunakan notasi database.schema.table tiga bagian. Anda dapat melakukan kueri yang menjangkau setiap dan semua database yang terlihat oleh Anda. Ini bisa berupa database lokal pada cluster atau database yang dibuat dari datashares. Cluster konsumen tidak dapat terhubung ke database yang dibuat dari datashares.

    Anda dapat mengakses data menggunakan kualifikasi penuh. Untuk informasi selengkapnya, lihat Contoh kueri lintas basis data.

    SELECT * FROM sales_db.public.tickit_sales_redshift;

    Anda hanya dapat menggunakan SELECT pernyataan pada objek bersama. Namun, Anda dapat membuat tabel di cluster konsumen dengan menanyakan data dari objek bersama di database lokal yang berbeda.

    Selain melakukan kueri, konsumen dapat membuat tampilan pada objek bersama. Hanya tampilan yang mengikat akhir dan tampilan terwujud yang didukung. Amazon Redshift tidak mendukung tampilan reguler pada data bersama. Tampilan yang dibuat konsumen dapat menjangkau beberapa database lokal atau database yang dibuat dari datashares. Untuk informasi selengkapnya, lihat CREATE VIEW.

    // Connect to a local cluster database // Create a view on shared objects and access it. CREATE VIEW sales_data AS SELECT * FROM sales_db.public.tickit_sales_redshift WITH NO SCHEMA BINDING; SELECT * FROM sales_data;