Integrasi DynamoDB Zero-ETL dengan Amazon Redshift - Amazon DynamoDB

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

Integrasi DynamoDB Zero-ETL dengan Amazon Redshift

Integrasi Amazon DynamoDB Zero-ETL dengan Amazon Redshift memungkinkan analisis tanpa batas pada data DynamoDB tanpa pengkodean apa pun. Fitur yang dikelola sepenuhnya ini secara otomatis mereplikasi tabel DynamoDB ke dalam database Amazon Redshift sehingga pengguna dapat menjalankan kueri dan analitik SQL pada data DynamoDB mereka tanpa harus menyiapkan proses ETL yang kompleks. Integrasi bekerja dengan mereplikasi data dari tabel DynamoDB ke database Amazon Redshift.

Untuk mengatur integrasi, cukup tentukan tabel DynamoDB sebagai sumber dan database Amazon Redshift sebagai target. Pada aktivasi, integrasi mengekspor tabel DynamoDB lengkap untuk mengisi database Amazon Redshift. Waktu yang dibutuhkan untuk proses awal ini untuk menyelesaikan tergantung pada ukuran tabel DynamoDB. Integrasi nol-ETL kemudian secara bertahap mereplikasi pembaruan dari DynamoDB ke Amazon Redshift setiap 15-30 menit menggunakan ekspor tambahan DynamoDB. Ini berarti data DynamoDB yang direplikasi di Amazon Redshift disimpan secara otomatis. up-to-date

Setelah dikonfigurasi, pengguna dapat menganalisis data DynamoDB di Amazon Redshift menggunakan klien dan alat SQL standar, tanpa memengaruhi kinerja tabel DynamoDB. Dengan menghilangkan ETL yang rumit, integrasi nol-ETL ini menyediakan cara cepat dan mudah untuk membuka wawasan dari DynamoDB melalui analitik Amazon Redshift dan kemampuan pembelajaran mesin.

Prasyarat sebelum membuat integrasi DynamoDB Zero-ETL dengan Amazon Redshift

  1. Anda harus memiliki tabel DynamoDB sumber dan menargetkan klaster Amazon Redshift yang dibuat sebelum membuat integrasi. Informasi ini tercakup dalam Langkah 1: Mengkonfigurasi tabel DynamoDB sumber danLangkah 2: Membuat gudang data Amazon Redshift.

  2. Integrasi nol-ETL antara Amazon DynamoDB dan Amazon Redshift memerlukan tabel DynamoDB sumber Anda untuk mengaktifkan pemulihan (PITR). Point-in-time

  3. Untuk kebijakan berbasis sumber daya, jika Anda membuat integrasi di mana tabel DynamoDB dan gudang data Amazon Redshift berada di akun yang sama, Anda dapat menggunakan opsi Perbaiki untuk saya selama langkah buat integrasi untuk menerapkan kebijakan sumber daya yang diperlukan secara otomatis ke DynamoDB dan Amazon Redshift.

    Jika Anda membuat integrasi di mana tabel DynamoDB dan gudang data Amazon Redshift berada di akun yang AWS berbeda, Anda harus menerapkan kebijakan sumber daya berikut pada tabel DynamoDB Anda.

    JSON
    { "Version": "2012-10-17", "Statement": [ { "Sid": "Statement that allows Amazon Redshift service to DescribeTable and ExportTable", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "dynamodb:ExportTableToPointInTime", "dynamodb:DescribeTable" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "<account>" }, "ArnEquals": { "aws:SourceArn": "arn:aws:redshift:<region>:<account>:integration:*" } } }, { "Sid": "Statement that allows Amazon Redshift service to see all exports performed on the table", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "dynamodb:DescribeExport", "Resource": "arn:aws:dynamodb:<region>:<account>:table/<table-name>/export/*", "Condition": { "StringEquals": { "aws:SourceAccount": "<account>" }, "ArnEquals": { "aws:SourceArn": "arn:aws:redshift:<region>:<account>:integration:*" } } } ] }

    Anda mungkin juga perlu mengonfigurasi kebijakan sumber daya di gudang data Amazon Redshift Anda. Untuk informasi selengkapnya, lihat Mengonfigurasi otorisasi menggunakan Amazon Redshift API.

  4. Untuk kebijakan berbasis identitas:
    1. Pengguna yang membuat integrasi memerlukan kebijakan berbasis identitas yang mengotorisasi tindakan berikut:GetResourcePolicy,, dan. PutResourcePolicy UpdateContinuousBackups

      catatan

      Contoh kebijakan berikut akan menunjukkan sumber daya sebagaiarn:aws:redshift{-serverless}. Ini adalah contoh untuk menunjukkan bahwa arn dapat berupa arn:aws:redshift atau arn:aws:redshift-serverless bergantung pada apakah namespace Anda adalah cluster Amazon Redshift atau namespace Tanpa Server Amazon Redshift.

      JSON
      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:ListTables" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "dynamodb:GetResourcePolicy", "dynamodb:PutResourcePolicy", "dynamodb:UpdateContinuousBackups" ], "Resource": [ "arn:aws:dynamodb:<region>:<account>:table/<table-name>" ] }, { "Sid": "AllowRedshiftDescribeIntegration", "Effect": "Allow", "Action": [ "redshift:DescribeIntegrations" ], "Resource": "*" }, { "Sid": "AllowRedshiftCreateIntegration", "Effect": "Allow", "Action": "redshift:CreateIntegration", "Resource": "arn:aws:redshift:<region>:<account>:integration:*" }, { "Sid": "AllowRedshiftModifyDeleteIntegration", "Effect": "Allow", "Action": [ "redshift:ModifyIntegration", "redshift:DeleteIntegration" ], "Resource": "arn:aws:redshift:<region>:<account>:integration:<uuid>" }, { "Sid": "AllowRedshiftCreateInboundIntegration", "Effect": "Allow", "Action": "redshift:CreateInboundIntegration", "Resource": // The Amazon Resource Name (arn) for a Redshift provisioned cluster and a Redshift Serverless namespace have different formats. // Choose the one that applies to you: "arn:aws:redshift:<region>:<account>:namespace:<uuid>" "arn:aws:redshift-serverless:<region>:<account>:namespace/<uuid>" } ] }
    2. Pengguna yang bertanggung jawab untuk mengonfigurasi namespace Amazon Redshift tujuan memerlukan kebijakan berbasis identitas yang mengizinkan tindakan berikut:,, dan. PutResourcePolicy DeleteResourcePolicy GetResourcePolicy

      JSON
      { "Statement": [ # This statement authorizes the user to change, view or remove resource policies on a specific namespace { "Effect": "Allow", "Action": [ "redshift:PutResourcePolicy", "redshift:DeleteResourcePolicy", "redshift:GetResourcePolicy" ], "Resource": [ "arn:aws:redshift{-serverless}:<region>:<account>:namespace/ExampleNamespace" ] }, # This statement authorizes the user to view integrations connected to any target namespaces in the account { "Effect": "Allow", "Action": [ "redshift:DescribeInboundIntegrations" ], "Resource": [ "arn:aws:redshift{-serverless}:<region>:<account>:namespace/*" ] } ], "Version": "2012-10-17" }
  5. Izin kunci enkripsi

    Jika tabel DynamoDB sumber dienkripsi menggunakan kunci AWS KMS terkelola pelanggan, Anda harus menambahkan kebijakan berikut pada kunci KMS Anda. Kebijakan ini memungkinkan Amazon Redshift untuk dapat mengekspor data dari tabel terenkripsi menggunakan kunci KMS Anda.

    { "Sid": "Statement to allow Amazon Redshift service to perform Decrypt operation on the source DynamoDB Table", "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com" ] }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "<account>" }, "ArnEquals": { "aws:SourceArn": "arn:aws:redshift:<region>:<account>:integration:*" } } }

Anda juga dapat mengikuti langkah-langkah Memulai integrasi Nol-ETL di panduan pengelolaan Amazon Redshift untuk mengonfigurasi izin namespace Amazon Redshift.

Keterbatasan saat menggunakan integrasi DynamoDB Zero-ETL dengan Amazon Redshift

Keterbatasan umum berikut berlaku untuk rilis integrasi ini saat ini. Keterbatasan ini dapat berubah dalam rilis berikutnya.

catatan

Selain batasan di bawah ini, tinjau juga pertimbangan umum saat menggunakan integrasi nol-ETL lihat Pertimbangan saat menggunakan integrasi nol-ETL dengan Amazon Redshift di Panduan Manajemen Pergeseran Merah Amazon.

  • Tabel DynamoDB dan cluster Amazon Redshift harus berada di Wilayah yang sama.

  • Tabel DynamoDB sumber harus dienkripsi dengan kunci milik Amazon atau yang dikelola Pelanggan. AWS KMS Enkripsi terkelola Amazon tidak didukung untuk tabel DynamoDB sumber.