Menambahkan tabel data lake ke datashare - Amazon Redshift

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

Menambahkan tabel data lake ke datashare

Dengan datashare, produsen data dapat dengan aman berbagi objek database dengan perincian halus, seperti skema dan tabel, dengan konsumen di akun yang sama AWS atau di akun yang berbeda. Produsen juga dapat berbagi objek di seluruh wilayah. Topik ini menjelaskan cara menambahkan objek dari data lake, khususnya, dari katalog AWS Glue data, ke datashare. Ini mencakup dua kasus penggunaan:

  • Menambahkan tampilan pengikatan akhir ke datashare yang mereferensikan tabel dari danau data — Ini nyaman bagi konsumen, karena konfigurasi awal, seperti mendefinisikan izin pada data sumber eksternal, misalnya dengan Lake Formation, kemungkinan sudah selesai. Manfaat tambahan adalah tampilan yang ditambahkan ke datashare dapat menggabungkan tabel dari danau data dengan tabel asli Redshift.

  • Menambahkan tabel dari skema eksternal ke datashare secara langsung — Ini membuat objek dari data lake tersedia bagi konsumen tanpa lapisan atau logika tambahan. Konsumen dapat menanyakan tabel atau menggabungkannya dengan tabel pada konsumen.

Kasus ini berlaku setelah Anda mereferensikan tabel dari katalog AWS data di Redshift menggunakan CREATE EXTERNAL SCHEMA. Setiap tabel dari katalog AWS data dapat menjadi sumbernya.

catatan

Tabel data lake yang Anda tambahkan ke datashare dapat menyertakan tabel yang terdaftar dengan Lake Formation dan tabel katalog AWS Glue data.

Buat skema eksternal dan tabel eksternal

Anda membuat skema eksternal dan tabel eksternal untuk menambahkannya ke datashare di bagian berikut. Ini adalah langkah awal. Jika Anda sudah melakukan ini, Anda dapat melewati bagian ini.

  1. Pada produsen, buat skema eksternal yang mereferensikan data lake data yang disimpan di Amazon S3. Skema eksternal mereferensikan Katalog Data AWS Glue. Peran dan wilayah dalam sampel adalah contoh:

    CREATE EXTERNAL SCHEMA external_schema_name FROM DATA CATALOG DATABASE 'glue_database_name' IAM_ROLE 'arn:aws:iam::123456789012:role/sample-role' REGION 'us-east-1';
  2. Buat tabel data lake dalam skema eksternal.

    CREATE EXTERNAL TABLE external_schema_name.sales( salesid INTEGER, sellerid INTEGER, buyerid INTEGER, saledate DATE, pricepaid DECIMAL(8,2)) ROW FORMAT delimited FIELDS TERMINATED BY '\t' STORED AS textfile LOCATION 's3://redshift-downloads/tickit/spectrum/sales/';

    Sampel termasukLOCATION. Itu harus dalam formulirs3://{bucket_name}/{folder}/, di mana folder ditentukan. Folder harus memiliki panjang setidaknya satu karakter. Anda dapat secara opsional menyertakan subfolder. Untuk melihat contoh tambahan untuk membuat tabel di data lake, lihat Contoh untuk MEMBUAT TABEL EKSTERNAL.

    catatan

    Berbagi hanya didukung untuk tabel di mana peran IAM pada produser memiliki akses SELECT di atas meja.

Tambahkan tampilan pengikatan akhir yang mereferensikan tabel data lake ke datashare

Saat Anda membuat tabel berdasarkan skema eksternal dari katalog AWS data, dan Anda ingin menambahkannya ke datashare, cara paling umum untuk melakukannya adalah dengan menambahkan tampilan pengikatan akhir Redshift yang mereferensikan tabel yang Anda buat, yang berisi data dari data lake. Prosedur berikut menunjukkan langkah-langkahnya:

  1. Buat tampilan pengikatan akhir yang mereferensikan tabel eksternal yang Anda buat sebelumnya:

    CREATE VIEW lbv AS select * from external_schema_name.sales, other_schema.t1 WITH NO SCHEMA BINDING;
  2. Tambahkan skema tampilan ke datashare. Ini adalah skema lokal yang berisi tampilan pengikatan akhir.

    ALTER DATASHARE dsx_datashare ADD SCHEMA public;
  3. Tambahkan skema yang berisi tabel yang direferensikan oleh tampilan pengikatan akhir ke datashare. Menambahkan skema diperlukan untuk setiap tabel dasar yang direferensikan dalam tampilan yang ditambahkan ke datashare, apakah skema berisi objek database lokal atau objek dari danau data. Perhatikan bahwa Anda harus menambahkan skema ini sebelum menambahkan tampilan pengikatan akhir.

    ALTER DATASHARE dsx_datashare ADD SCHEMA external_schema_name; ALTER DATASHARE dsx_datashare ADD SCHEMA other_schema;
  4. Tambahkan tampilan ke datashare, menggunakan perintah SQL. Perhatikan bahwa nama tabel menyertakan awalan skema.

    ALTER DATASHARE my_datashare ADD TABLE public.lbv;
  5. Konfirmasikan bahwa tampilan dan skema berhasil ditambahkan ke datashare:

    SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare';
  6. Administrator konsumen membuat database dari datashare dan kemudian memberikan penggunaan kepada pengguna konsumen.

Setelah Anda menyelesaikan langkah-langkahnya, pengguna konsumen database dengan akses ke tampilan datashare dapat melakukan kueri data.

Tambahkan tabel data lake langsung ke datashare

Menambahkan tabel dalam skema eksternal ke datashare mirip dengan menambahkan tampilan. Ini berfungsi dengan baik untuk kasus di mana konsumen ingin menanyakan tabel data lake dalam keadaan aslinya, atau jika konsumen ingin menggabungkannya ke tabel di gudang data konsumen. Langkah-langkah berikut menunjukkan cara menambahkan tabel data lake ke datashare, menggunakan SQL.

  1. Buat skema eksternal dan tabel eksternal, seperti yang dijelaskan di bagian pertama topik ini.

  2. Temukan tabel yang ada di skema eksternal, untuk mengonfirmasi bahwa tabel yang Anda buat tersedia:

    SELECT * FROM svv_external_tables WHERE schemaname = 'external_schema_name';
  3. Tambahkan skema eksternal ke datashare:

    ALTER DATASHARE my_datashare ADD SCHEMA external_schema_name;
  4. Tambahkan tabel eksternal ke datashare. Perhatikan bahwa nama tabel menyertakan awalan skema:

    ALTER DATASHARE my_datashare ADD TABLE external_schema_name.sales;
  5. Konfirmasikan bahwa tabel berhasil ditambahkan ke datashare:

    SELECT * FROM svv_datashare_objects WHERE share_name = 'my_datashare';

    Untuk instruksi lebih detail, lihat Berbagi akses baca ke data dalam AWS akun.

  6. Pada konsumen, yang merupakan database yang menerima data bersama, administrator mengaitkan datashare untuk membuat tabel bersama tersedia bagi pengguna untuk kueri. Untuk informasi selengkapnya mengenai cara melakukan langkah ini, lihat Mengelola datashares dari akun lain sebagai konsumen.

Setelah administrator menyelesaikan langkah-langkah, pengguna database pada konsumen dapat menulis kueri untuk mengambil data dari tabel bersama dan bergabung dengan tabel lain pada konsumen.

Catatan penggunaan untuk menambahkan objek data lake ke datashare

Ada beberapa item yang perlu diperhatikan saat Anda menggunakan tabel dan tampilan dari data lake di datashare:

  • Logging with AWS CloudTrail — Akun produsen data dapat menggunakan AWS CloudTrail log untuk mengaudit saat tabel data lake yang dibagikan melalui datashare diakses:

    • Menggunakan data log untuk mengontrol akses data — CloudTrail Log mencatat detail tentang siapa yang mengakses tabel bersama, termasuk produsen dan konsumen data Redshift. Pengidentifikasi tersedia di ExternalId bidang di bawah AssumeRole CloudTrail log. Pemilik data dapat mengonfigurasi batasan tambahan pada akses data dalam kebijakan IAM melalui tindakan. Untuk informasi selengkapnya tentang menentukan akses data melalui kebijakan, lihat Akses ke AWS akun yang dimiliki oleh pihak ketiga.

  • Keamanan dan izin konsumen — Untuk tabel terdaftar Lake Formation, sumber daya Amazon S3 diamankan oleh Lake Formation dan tersedia menggunakan kredensil yang disediakan oleh Lake Formation.

Pertimbangan penagihan untuk menambahkan objek data lake ke datashare

Berikut ini merinci bagaimana biaya dikaitkan untuk menyimpan dan memindai objek data lake dalam datashare:

  • Ketika konsumen menanyakan objek bersama dari danau data, biaya pemindaian ditagih ke konsumen.

    • Saat konsumen adalah cluster yang disediakan, Redshift menggunakan Redshift Spectrum untuk memindai data Amazon S3. Oleh karena itu, biaya Spectrum ditagihkan ke akun konsumen.

    • Ketika konsumen adalah grup kerja Amazon Redshift Serverless, tidak ada biaya terpisah untuk Spectrum.

  • Biaya Amazon S3 untuk penyimpanan dan operasi, seperti daftar bucket, ditagih ke akun yang memiliki setiap bucket Amazon S3.

Untuk detail tambahan mengenai penagihan Amazon Redshift Tanpa Server, lihat Penagihan untuk Amazon Redshift Tanpa Server. Informasi penagihan dan harga lainnya tersedia dengan harga Amazon Redshift.