View a markdown version of this page

Memulai penyerapan streaming dari Amazon Kinesis Data Streams - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

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

Memulai penyerapan streaming dari Amazon Kinesis Data Streams

Topik ini menjelaskan cara menggunakan data streaming dari Kinesis Data Streams menggunakan tampilan yang terwujud.

Menyiapkan penyerapan streaming Amazon Redshift melibatkan pembuatan skema eksternal yang dipetakan ke sumber data streaming dan membuat tampilan terwujud yang mereferensikan skema eksternal. Penyerapan streaming Amazon Redshift mendukung Kinesis Data Streams sebagai sumbernya. Dengan demikian, Anda harus memiliki sumber Kinesis Data Streams yang tersedia sebelum mengonfigurasi penyerapan streaming. Jika Anda tidak memiliki sumber, ikuti petunjuk dalam dokumentasi Kinesis di Mem ulai dengan Amazon Kinesis Data Streams atau buat satu di konsol menggunakan petunjuk di Membuat Stream melalui Konsol AWS Manajemen.

Penyerapan streaming Amazon Redshift menggunakan tampilan terwujud, yang diperbarui langsung dari aliran saat REFRESH dijalankan. Tampilan terwujud memetakan ke sumber data aliran. Anda dapat melakukan pemfilteran dan agregasi pada data aliran sebagai bagian dari definisi tampilan terwujud. Tampilan terwujud penyerapan streaming Anda (tampilan ter wujud dasar) hanya dapat mereferensikan satu aliran, tetapi Anda dapat membuat tampilan terwujud tambahan yang bergabung dengan tampilan terwujud dasar dan dengan tampilan atau tabel terwujud lainnya.

catatan

Penyerapan streaming dan Amazon Redshift Serverless - Langkah-langkah konfigurasi dalam topik ini berlaku untuk cluster Amazon Redshift yang disediakan dan ke Amazon Redshift Serverless. Untuk informasi selengkapnya, lihat Perilaku penyerapan streaming dan tipe data.

Dengan asumsi Anda memiliki aliran Kinesis Data Streams yang tersedia, langkah pertama adalah menentukan skema di Amazon Redshift dengan CREATE EXTERNAL SCHEMA dan mereferensikan sumber daya Kinesis Data Streams. Setelah itu, untuk mengakses data dalam aliran, tentukan STREAM dalam tampilan yang terwujud. Anda dapat menyimpan catatan aliran dalam SUPER format semi-terstruktur, atau menentukan skema yang menghasilkan data yang dikonversi ke tipe data Redshift. Saat Anda menanyakan tampilan yang terwujud, catatan yang dikembalikan adalah tampilan point-in-time dari aliran.

  1. Buat peran IAM dengan kebijakan kepercayaan yang memungkinkan cluster Amazon Redshift atau grup kerja Amazon Redshift Serverless Anda mengambil peran tersebut. Untuk informasi tentang cara mengonfigurasi kebijakan kepercayaan untuk peran IAM, lihat Mengotor isasi Amazon Redshift untuk mengakses AWS layanan lain atas nama Anda. Setelah dibuat, peran harus memiliki kebijakan IAM berikut, yang memberikan izin untuk komunikasi dengan aliran data Amazon Kinesis.

    Kebijakan IAM untuk aliran yang tidak dienkripsi dari Kinesis Data Streams

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "ReadStream", "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:*:111122223333:stream/*" }, { "Sid": "ListStream", "Effect": "Allow", "Action": "kinesis:ListStreams", "Resource": "*" } ] }

    Kebijakan IAM untuk aliran terenkripsi dari Kinesis Data Streams

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "ReadStream", "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:GetShardIterator", "kinesis:GetRecords", "kinesis:ListShards", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:*:111122223333:stream/*" }, { "Sid": "DecryptStream", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Sid": "ListStream", "Effect": "Allow", "Action": "kinesis:ListStreams", "Resource": "*" } ] }
  2. Periksa VPC Anda dan verifikasi bahwa cluster Amazon Redshift atau Amazon Redshift Serverless Anda memiliki rute untuk mencapai titik akhir Kinesis Data Streams melalui internet menggunakan gateway NAT atau gateway internet. Jika Anda ingin lalu lintas antara Redshift dan Kinesis Data Streams tetap berada di dalam AWS jaringan, pertimbangkan untuk menggunakan Titik Akhir VPC Antarmuka Kinesis. Untuk informasi selengkapnya, lihat Menggunakan Amazon Kinesis Data Streams Kinesis Data Streams dengan Titik Akhir Antarmuka VPC.

  3. Di Amazon Redshift, buat skema eksternal untuk memetakan data dari Kinesis ke skema.

    CREATE EXTERNAL SCHEMA kds FROM KINESIS IAM_ROLE { default | 'iam-role-arn' };

    Penyerapan streaming untuk Kinesis Data Streams tidak memerlukan jenis otentikasi. Ini menggunakan peran IAM yang ditentukan dalam CREATE EXTERNAL SCHEMA pernyataan untuk membuat permintaan Kinesis Data Streams.

    Opsional: Gunakan kata kunci REGION untuk menentukan Wilayah tempat aliran Amazon Kinesis Data Streams atau Amazon MSK berada.

    CREATE EXTERNAL SCHEMA kds FROM KINESIS REGION 'us-west-2' IAM_ROLE { default | 'iam-role-arn' };

    Dalam sampel ini, Wilayah menentukan lokasi aliran sumber. IAM_ROLE adalah contoh.

  4. Buat tampilan terwujud untuk menggunakan data aliran. Dengan pernyataan seperti berikut, jika catatan tidak dapat diurai, itu menyebabkan kesalahan. Gunakan perintah seperti ini jika Anda tidak ingin catatan kesalahan dilewati.

    CREATE MATERIALIZED VIEW my_view AUTO REFRESH YES AS SELECT * FROM kds.my_stream_name;

    Nama aliran Kinesis peka huruf besar dan dapat berisi huruf besar dan kecil. Untuk mengambil dari aliran dengan nama huruf besar, Anda dapat mengatur konfigurasi enable_case_sensitive_identifier ke true tingkat database. Untuk informasi selengkapnya, lihat Nama dan pengidentifikasi dan enable _case_sensitive_identifier.

    Untuk mengaktifkan penyegaran otomatis, gunakanAUTO REFRESH YES. Perilaku defaultnya adalah penyegaran manual. Perhatikan saat Anda menggunakan CAN_JSON_PARSE, ada kemungkinan bahwa catatan yang tidak dapat diurai dilewati.

    Kolom metadata meliputi:

    Kolom metadata Jenis data Deskripsi
    perkiraan timestamp kedatangan_kedatangan_ stempel waktu tanpa zona waktu Perkiraan waktu rekaman dimasukkan ke dalam aliran Kinesis
    partition_key bangsawan (256) Kunci yang digunakan oleh Kinesis untuk menetapkan catatan ke pecahan
    shard_id arang (20) Pengidentifikasi unik pecahan di dalam aliran dari mana catatan diambil
    urut_nomor_ bangkai (128) Pengidentifikasi unik rekaman dari pecahan Kinesis
    Refresh_time stempel waktu tanpa zona waktu Waktu penyegaran dimulai
    kinesis_data warbyte Rekaman dari aliran Kinesis

    Penting untuk dicatat jika Anda memiliki logika bisnis dalam definisi tampilan terwujud bahwa kesalahan logika bisnis dapat menyebabkan konsumsi streaming diblokir dalam beberapa kasus. Ini mungkin menyebabkan Anda harus melepaskan dan membuat kembali tampilan yang terwujud. Untuk menghindari hal ini, kami menyarankan agar Anda menjaga logika Anda sesederhana mungkin dan melakukan sebagian besar pemeriksaan logika bisnis Anda pada data setelah dicerna.

  5. Segarkan tampilan, yang memanggil Redshift untuk membaca dari aliran dan memuat data ke tampilan yang terwujud.

    REFRESH MATERIALIZED VIEW my_view;
  6. Data kueri dalam tampilan terwujud.

    select * from my_view;