Berbagi akses tulis ke data (Pratinjau) - Amazon Redshift

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

Berbagi akses tulis ke data (Pratinjau)

Anda dapat berbagi objek database untuk membaca dan menulis di berbagai kluster Amazon Redshift atau grup kerja Amazon Redshift Serverless dalam hal yang sama Akun AWS, di seluruh akun, dan lintas wilayah. Prosedur dalam topik ini menunjukkan cara mengatur berbagi data yang mencakup izin menulis. Anda dapat memberikan izin sepertiSELECT,INSERT, dan UPDATE untuk tabel yang berbeda dan USAGE dan CREATE untuk skema. Data aktif dan tersedia untuk semua gudang segera setelah transaksi tulis dilakukan. Administrator akun produser dapat menentukan apakah ruang nama atau wilayah tertentu mendapatkan hanya-baca atau tidak read-and-write, atau akses apa pun ke data.

Bagian berikut menunjukkan cara mengonfigurasi berbagi data. Prosedurnya mengasumsikan Anda bekerja di database di klaster yang disediakan atau grup kerja Amazon Redshift Tanpa Server.

Berbagi data hanya-baca vs. berbagi data untuk membaca dan menulis

Sebelumnya, objek dalam datashares hanya dibaca dalam semua keadaan. Menulis ke objek dalam datashare adalah fitur baru. Objek dalam datashares hanya diaktifkan penulisan ketika produser secara khusus memberikan hak istimewa menulis seperti INSERT atau pada objek ke datashare. CREATE Selain itu, untuk berbagi lintas akun, produsen harus mengotorisasi datashare untuk menulis dan konsumen harus mengaitkan cluster dan kelompok kerja tertentu untuk menulis. Detail mengikuti di bagian selanjutnya dalam topik ini.

Izin yang dapat Anda berikan ke datashares (pratinjau)

Jenis objek yang berbeda dan berbagai izin yang dapat Anda berikan kepada mereka dalam konteks berbagi data.

Skema:

  • USAGE

  • CREATE

Tabel:

  • SELECT

  • INSERT

  • UPDATE

  • DELETE

  • TRUNCATE

  • DROP

  • REFERENCES

Fungsi:

  • EXECUTE

Basis data:

  • CREATE

Persyaratan dan batasan untuk datasharing dalam pratinjau

  • Koneksi — Anda harus terhubung langsung ke database datashare atau menjalankan USE perintah untuk menulis ke datashares. Namun, kami akan segera mengaktifkan kemampuan untuk melakukan ini dengan notasi tiga bagian.

  • Ketersediaan - Anda harus menggunakan grup kerja Tanpa Server, klaster ra3.4xl, atau klaster ra3.16xl untuk menggunakan fitur ini. Support untuk klaster ra3.xlplus direncanakan.

  • Penemuan Metadata - Ketika Anda adalah konsumen yang terhubung langsung ke database database database melalui RedshiftJDBC,, atau driver PythonODBC, Anda dapat melihat data katalog dengan cara berikut:

    • SQLSHOWperintah.

    • Menanyakan tabel dan tampilan information_schema.

    • Menanyakan tampilan SVVmetadata.

  • Data API — Anda tidak dapat terhubung ke database datashare melalui Data. API Support untuk ini akan segera hadir.

  • Visibilitas izin — Konsumen tidak dapat melihat izin yang diberikan kepada datashares. Kami akan menambahkan ini segera.

  • Enkripsi — Untuk berbagi data lintas akun, baik produsen maupun cluster konsumen harus dienkripsi.

  • Tingkat isolasi — Tingkat isolasi database Anda harus berupa isolasi snapshot untuk memungkinkan kelompok kerja dan cluster Tanpa Server lainnya untuk menulis ke sana.

  • Operasi otomatis — Konsumen yang menulis ke objek datashare tidak akan memicu operasi analisis otomatis. Akibatnya, produsen harus menjalankan analisis secara manual setelah data dimasukkan ke dalam tabel agar statistik tabel diperbarui. Tanpa ini, rencana kueri mungkin tidak optimal.

  • Kueri dan transaksi multi-pernyataan — Kueri multi-pernyataan di luar blok transaksi saat ini tidak didukung. Akibatnya, jika Anda menggunakan editor kueri seperti dbeaver dan Anda memiliki beberapa kueri tulis, Anda perlu membungkus kueri Anda secara eksplisit... BEGIN ENDpernyataan transaksi.

SQLpernyataan yang didukung

Pernyataan ini didukung untuk rilis pratinjau publik berbagi data dengan menulis:

  • BEGIN | START TRANSACTION

  • END | COMMIT | ROLLBACK

  • COPYtanpa COMPUPDATE

  • { CREATE | DROP } SCHEMA

  • { CREATE | DROP | SHOW } TABLE

  • CREATETABLEtable_name AS

  • DELETE

  • {GRANT|REVOKE} privilege_name AKTIF OBJECT _ TYPE object_name UNTUK consumer_user

  • INSERT

  • SELECT

  • INSERT INTO SELECT

  • TRUNCATE

  • UPDATE

  • Kolom tipe data super

Jenis pernyataan yang tidak didukung - Berikut ini tidak didukung:

  • Kueri multi-pernyataan ke gudang konsumen saat menulis ke produsen.

  • Kueri penskalaan konkurensi yang ditulis dari konsumen ke produsen.

  • Auto-copy pekerjaan menulis dari konsumen ke produsen.

  • Streaming pekerjaan menulis dari konsumen ke produsen.

  • Konsumen membuat tabel nol ETL integrasi pada cluster produsen. Untuk informasi selengkapnya tentang ETL integrasi nol, lihat Bekerja dengan ETL integrasi nol.

  • Menulis ke meja dengan kunci sortir yang disisipkan.

Berbagi data dalam akun dengan izin menulis sebagai administrator akun produsen (pratinjau)

Sebelumnya, objek dalam datashares hanya dibaca dalam semua keadaan. Menulis ke objek dalam datashare adalah fitur baru. Objek dalam datashares hanya diaktifkan penulisan ketika produser secara khusus memberikan hak istimewa menulis seperti INSERT atau pada objek ke datashare. CREATE Detail mengikuti di bagian selanjutnya dalam topik ini.

Jika Anda mencari dokumentasi yang ada untuk rangkaian data hanya-baca, itu tersedia di Berbagi data di seluruh cluster di Amazon Redshift.

Untuk memulai berbagi data, administrator pada produser membuat datashare dan menambahkan objek ke dalamnya:

  1. Pemilik database produser atau superuser membuat datashare. Datashare adalah wadah logis dari objek database, izin, dan konsumen. (Konsumen adalah cluster atau ruang nama Amazon Redshift Tanpa Server di akun Anda dan akun lainnya.) Setiap datashare dikaitkan dengan database yang dibuatnya dan hanya objek dari database yang dapat ditambahkan. Perintah berikut membuat datashare:

    CREATE DATASHARE my_datashare [PUBLICACCESSIBLE = TRUE];

    Setting PUBLICACCESSIBLE = TRUE memungkinkan konsumen untuk menanyakan datashare Anda dari kluster yang dapat diakses publik dan kelompok kerja yang disediakan. Tinggalkan ini atau setel secara eksplisit ke false jika Anda tidak ingin mengizinkannya.

    Pemilik datashare harus memberikan skema USAGE yang ingin mereka tambahkan ke datashare. GRANTPerintahnya baru. Ini digunakan untuk memberikan berbagai tindakan pada skema, termasuk CREATE danUSAGE. Skema menyimpan objek bersama:

    CREATE SCHEMA myshared_schema1; CREATE SCHEMA myshared_schema2; GRANT USAGE ON SCHEMA myshared_schema1 TO DATASHARE my_datashare; GRANT CREATE, USAGE ON SCHEMA myshared_schema2 TO DATASHARE my_datashare;

    Atau, administrator dapat terus menjalankan ALTER perintah untuk menambahkan skema ke datashare. Hanya USAGE izin yang diberikan ketika skema ditambahkan dengan cara ini.

    ALTER DATASHARE my_datashare ADD SCHEMA myshared_schema1;
  2. Setelah administrator menambahkan skema, mereka dapat memberikan izin datashare pada objek dalam skema. Ini bisa berupa izin baca dan tulis. GRANTALLSampel menunjukkan cara memberikan semua izin.

    GRANT SELECT, INSERT ON TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1 TO DATASHARE my_datashare; GRANT ALL ON TABLE myshared_schema1.table4 TO DATASHARE my_datashare;

    Anda dapat terus menjalankan perintah seperti ALTER DATASHARE menambahkan tabel. Ketika Anda melakukannya, hanya SELECT izin yang diberikan pada objek yang ditambahkan.

    ALTER DATASHARE my_datashare ADD TABLE myshared_schema1.table1, myshared_schema1.table2, myshared_schema2.table1;
  3. Administrator memberikan penggunaan pada datashare ke namespace tertentu di akun. Anda dapat menemukan ID namespace sebagai bagian dari halaman detail klaster, ARN di halaman detail namespace Tanpa Server Amazon Redshift, atau dengan menjalankan perintah. SELECT current_namespace; Untuk informasi lebih lanjut, lihat CURRENT_ NAMESPACE.

    GRANT USAGE ON DATASHARE my_datashare TO NAMESPACE '86b5169f-012a-234b-9fbb-e2e24359e9a8';