

 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 ](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/) 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 dengan konsumsi streaming dari sumber Apache Kafka
<a name="materialized-view-streaming-ingestion-getting-started-MSK"></a>

Topik ini menjelaskan cara menggunakan data streaming dari Amazon MSK, Apache Kafka, atau Confluent Cloud menggunakan tampilan yang terwujud.

 Tujuan dari penyerapan streaming Amazon Redshift adalah untuk menyederhanakan proses untuk langsung menelan data aliran dari layanan streaming ke Amazon Redshift atau Amazon Redshift Serverless. Ini bekerja dengan Amazon MSK Provisioned dan Amazon MSK Serverless, dengan sumber terbuka Apache Kafka, dan dengan Confluent Cloud. Penyerapan streaming Amazon Redshift menghilangkan kebutuhan untuk menampilkan topik Apache Kafka di Amazon S3 sebelum menelan data aliran ke Redshift.

 Pada tingkat teknis, penyerapan streaming menyediakan penyerapan data aliran atau topik dengan latensi rendah dan berkecepatan tinggi ke dalam tampilan terwujud Amazon Redshift. Setelah pengaturan, menggunakan penyegaran tampilan terwujud, Anda dapat mengambil volume data yang besar. 

Anda harus memiliki sumber Apache Kafka yang tersedia sebelum mengonfigurasi konsumsi streaming Amazon Redshift. Jika Anda tidak memiliki sumber, buat satu menggunakan petunjuk berikut:
+ **Amazon MSK ** — Mem [ ulai Menggunakan Amazon MSK ](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html)
+ **Apache Kafka ** — Memulai Cepat [ Apache Kafka ](https://kafka.apache.org/quickstart)
+ **Confluent Cloud ** — Mulai C [ epat untuk Confluent Cloud ](https://docs.confluent.io/cloud/current/get-started/index.html)

## Menyiapkan konsumsi streaming dari Kafka
<a name="materialized-view-streaming-ingestion-getting-started-MSK-setup"></a>

Gunakan prosedur berikut untuk mengatur penyerapan streaming ke Amazon Redshift dari Amazon MSK, atau sumber Apache Kafka yang tidak AWS dikelola (Apache Kafka dan Confluent Cloud).

**Topics**
+ [Siapkan otentikasi](#materialized-view-streaming-ingestion-getting-started-MSK-setup-auth)
+ [Menyiapkan VPC Anda](#materialized-view-streaming-ingestion-getting-started-MSK-Setup-VPC)
+ [Buat Tampilan Terwujud](#materialized-view-streaming-ingestion-getting-started-MSK-setup-materialized-view)

### Siapkan otentikasi
<a name="materialized-view-streaming-ingestion-getting-started-MSK-setup-auth"></a>

Bagian ini menjelaskan pengaturan otentikasi untuk memungkinkan aplikasi Amazon Redshift Anda mengakses sumber Amazon MSK. 

Setelah Anda membuat peran aplikasi, lampirkan salah satu kebijakan berikut untuk mengizinkan akses ke cluster Amazon MSK, Apache Kafka, atau Confluent Cloud. Untuk otentikasi MTL, Anda dapat menyimpan sertifikat yang digunakan Amazon Redshift di ACM atau Secrets Manager, jadi Anda harus memilih kebijakan yang cocok dengan tempat penyimpanan sertifikat. 

Perhatikan bahwa sertifikat yang ditandatangani sendiri tidak didukung untuk otentikasi atau data dalam perjalanan saat Anda menggunakan penyerapan streaming langsung ke Amazon Redshift dengan salah satu sumber streaming Apache Kafka yang didukung. Ini termasuk Amazon MSK, Apache Kafka, dan Confluent Cloud. Pertimbangkan untuk menggunakan sertifikat yang dibuat dengan AWS Certificate Manager atau otoritas sertifikat tepercaya publik lainnya.

Otentikasi Amazon Redshift IAM dengan MSK hanya didukung pada Kafka versi 2.7.1 atau lebih tinggi.

**OTENTIKASI IAM (hanya Amazon MSK): **

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "MSKIAMpolicy",
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeTopic",
                "kafka-cluster:Connect"
            ],
            "Resource": [
                "arn:aws:kafka:*:{{111122223333}}:cluster/MyTestCluster/*",
                "arn:aws:kafka:*:{{111122223333}}:topic/MyTestCluster/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeGroup"
            ],
            "Resource": [
                "arn:aws:kafka:*:{{111122223333}}:group/MyTestCluster/*"
            ]
        }
    ]
}
```

------

**OTENTIKASI MTLS: menggunakan sertifikat yang disimpan di AWS Certificate Manager**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "MSKmTLSACMpolicy",
            "Effect": "Allow",
            "Action": [
                "acm:ExportCertificate" 
            ],
            "Resource": [
                "arn:aws:acm:us-east-1:444455556666:certificate/certificate_ID"
            ]
        }
    ]
}
```

------

**OTENTIKASI MTLS: menggunakan sertifikat yang disimpan di AWS Secrets Manager**

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "MSKmTLSSecretsManagerpolicy",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue" 
            ],
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:444455556666:secret:secret_ID"
            ]
        }
    ]
}
```

------

------
#### [ Amazon MSK ]

Jika Anda menggunakan AUTHENTICATION NONE untuk menyambung ke sumber Amazon MSK, tidak diperlukan peran IAM. Namun, jika Anda menggunakan AUTHENTICATION IAM atau MTLS untuk mengotentikasi dengan cluster Amazon MSK Anda, cluster Amazon Redshift atau namespace Tanpa Server Amazon Redshift Anda harus memiliki peran IAM terlampir dengan izin yang sesuai. Buat peran IAM dengan kebijakan kepercayaan yang memungkinkan cluster Amazon Redshift atau ruang nama Amazon Redshift Serverless Anda mengambil peran tersebut. Setelah Anda membuat peran, tambahkan salah satu izin berikut untuk mendukung IAM atau MTLS. Untuk otentikasi MTL, sertifikat yang digunakan Amazon Redshift dapat disimpan di AWS Certificate Manager atau AWS Secrets Manager, jadi Anda harus memilih kebijakan yang cocok dengan tempat penyimpanan sertifikat. Lampirkan peran ke cluster yang disediakan Amazon Redshift atau namespace Redshift Serverless Anda. Untuk informasi tentang cara mengonfigurasi kebijakan kepercayaan untuk peran IAM, lihat Mengotor [ isasi Amazon Redshift untuk mengakses AWS layanan lain atas nama Anda. ](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) 

Tabel berikut menunjukkan opsi konfigurasi gratis untuk disetel untuk konsumsi streaming dari Amazon MSK:


| Konfigurasi Amazon Redshift | Konfigurasi Amazon MSK | Port untuk dibuka antara Redshift dan Amazon MSK | 
| --- | --- | --- | 
|  OTENTIKASI TIDAK ADA  |  Transportasi TLS dinonaktifkan  | 9092 | 
|  OTENTIKASI TIDAK ADA  |  Transportasi TLS diaktifkan  | 9094 | 
|  OTENTIKASI SUDAH  |  IAM  | 9098/9198 | 
|  OTENTIKASI MTLS  |  Transportasi TLS diaktifkan  | 9094 | 

Otentikasi Amazon Redshift diatur dalam pernyataan CREATE EXTERNAL SCHEMA.

**catatan**  
Dalam kasus di mana cluster Amazon MSK mengaktifkan otentikasi Mutual Transport Layer Security (MTL), mengonfigurasi Amazon Redshift untuk menggunakan AUTHENTICATION NONE mengarahkannya ke menggunakan port 9094 untuk akses yang tidak diautentikasi. Namun, ini akan gagal karena port sedang digunakan oleh otentikasi MTL. Karena itu, kami menyarankan Anda beralih ke OTENTIKASI mtls saat Anda menggunakan MTL.

------
#### [ Apache Kafka or Confluent Cloud ]

Untuk Apache Kafka dan Confluent Cloud, Amazon Redshift mendukung protokol koneksi berikut:
+ Anda dapat menggunakan MTL atau plaintext dengan transportasi TLS untuk otentikasi saat menghubungkan ke Apache Kafka.
+ Anda hanya dapat menggunakan MTL untuk otentikasi saat menghubungkan ke Confluent Cloud.

Amazon Redshift mendukung protokol enkripsi berikut untuk menghubungkan ke Apache Kafka atau Confluent Cloud:

**Metode otentikasi yang didukung untuk Apache Kafka dan Confluent Cloud **


| Amazon Redshift | Protokol Keamanan Kafka | Dukungan Apache Kafka | Dukungan Confluent Cloud | 
| --- | --- | --- | --- | 
| OTENTIKASI TIDAK ADA | TEKS BIASA | Tidak | Tidak | 
| OTENTIKASI TIDAK ADA | SSL | Ya | Tidak | 
| OTENTIKASI SUDAH | SASL\_SSL | Tidak | Tidak | 
| OTENTIKASI MTLS | SSL | Ya (dengan sertifikat) | Ya (dengan sertifikat) | 

Perhatikan bahwa Amazon Redshift tidak mendukung SASL/SCRAM atau SASL/PLAINTEXT.

------

### Menyiapkan VPC Anda
<a name="materialized-view-streaming-ingestion-getting-started-MSK-Setup-VPC"></a>

Setelah Anda membuat sumber daya otentikasi, periksa VPC Anda dan verifikasi bahwa cluster Amazon Redshift atau grup kerja Amazon Redshift Serverless Anda memiliki rute untuk mengakses sumber Apache Kafka Anda. 

**catatan**  
Untuk Amazon MSK, aturan grup keamanan masuk untuk cluster Amazon MSK Anda harus mengizinkan grup keamanan cluster Amazon Redshift atau grup kerja Redshift Serverless Anda. Port yang Anda tentukan bergantung pada metode otentikasi yang dikonfigurasi pada cluster Amazon MSK Anda. Untuk informasi selengkapnya, lihat Informasi [ port ](https://docs.aws.amazon.com/msk/latest/developerguide/port-info.html) dan [ Akses dari dalam AWS tetapi di luar VPC](https://docs.aws.amazon.com/msk/latest/developerguide/aws-access.html).

Selanjutnya, aktifkan perutean VPC yang disempurnakan pada cluster Amazon Redshift atau grup kerja Amazon Redshift Serverless Anda. Untuk informasi selengkapnya, lihat Meng [ aktifkan routing ](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-enabling-cluster.html) VPC yang disempurnakan.

### Buat Tampilan Terwujud
<a name="materialized-view-streaming-ingestion-getting-started-MSK-setup-materialized-view"></a>

Di bagian ini, Anda mengatur tampilan terwujud yang digunakan Amazon Redshift untuk mengakses data streaming Apache Kafka Anda.

Dengan asumsi Anda memiliki cluster Apache Kafka yang tersedia, langkah pertama adalah mendefinisikan skema di Redshift dengan `CREATE EXTERNAL SCHEMA` dan mereferensikan cluster sebagai sumber data. Setelah itu, untuk mengakses data dalam topik, tentukan `STREAM` dalam tampilan yang terwujud. Anda dapat menyimpan catatan dari topik menggunakan tipe data Amazon Redshift VARBYTE default, atau menentukan skema yang mengonversi data ke format semi-terstruktur. `SUPER` Saat Anda menanyakan tampilan yang terwujud, catatan yang dikembalikan adalah tampilan titik waktu dari topik.

1. Di Amazon Redshift, buat skema eksternal untuk dipetakan ke cluster Apacke Kafka. Sintaksnya adalah sebagai berikut:

   ```
   CREATE EXTERNAL SCHEMA MySchema
   FROM KAFKA
   [ IAM_ROLE [ default | 'iam-role-arn' ] ]
   AUTHENTICATION [ none | iam | mtls ]
   {AUTHENTICATION_ARN 'acm-certificate-arn' |  SECRET_ARN 'asm-secret-arn'};
   ```

   Dalam `FROM` klausa, `KAFKA` menunjukkan bahwa skema memetakan data dari sumber Apache Kafka. 

    `AUTHENTICATION`menunjukkan jenis otentikasi untuk konsumsi streaming. Ada tiga jenis yang tersedia: 
   + **none ** — Menentukan bahwa tidak ada otentikasi yang diperlukan. Ini sesuai dengan akses yang tidak diautentikasi di MSK. Ini sesuai dengan otentikasi SSL di Apache Kafka. Metode otentikasi ini tidak didukung untuk Confluent Cloud.
   + **iam ** — Menentukan otentikasi IAM. Anda hanya dapat menggunakan otentikasi IAM dengan Amazon MSK. Ketika Anda memilih ini, pastikan bahwa peran IAM memiliki izin untuk otentikasi IAM. Untuk informasi selengkapnya tentang menyiapkan kebijakan IAM yang diperlukan, lihat[Menyiapkan konsumsi streaming dari Kafka](#materialized-view-streaming-ingestion-getting-started-MSK-setup).
   + **mtls ** — Menentukan bahwa keamanan lapisan transportasi bersama menyediakan komunikasi yang aman dengan memfasilitasi otentikasi antara klien dan server. Dalam hal ini, kliennya adalah Redshift dan servernya adalah Apache Kafka. Untuk informasi selengkapnya tentang mengonfigurasi konsumsi streaming dengan MTL, lihat[Otentikasi dengan MTL untuk penyerapan streaming Redshift dari sumber Apache Kafka](materialized-view-streaming-ingestion-mtls.md).

   Perhatikan bahwa otentikasi Amazon MSK dengan nama pengguna dan kata sandi tidak didukung untuk konsumsi streaming. 

   `AUTHENTICATION_ARN`Parameter menentukan ARN sertifikat ACM Mutual Transport Layer Security (MTL) yang Anda gunakan untuk membuat koneksi terenkripsi.

   `SECRET_ARN`Parameter menentukan arn AWS Secrets Manager rahasia yang berisi sertifikat yang akan digunakan oleh Amazon Redshift untuk MTL.

   Contoh berikut menunjukkan cara mengatur URI broker untuk cluster Amazon MSK saat Anda membuat skema eksternal:

   **Menggunakan otentikasi IAM: **

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION IAM
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9098,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9098'
   ```

   **Tidak menggunakan otentikasi: **

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA 
   AUTHENTICATION none
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9092,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9092'
   ```

   **Menggunakan MTL: **

   ```
   CREATE EXTERNAL SCHEMA my_schema
   FROM KAFKA
   IAM_ROLE 'arn:aws:iam::012345678901:role/my_role'
   AUTHENTICATION MTLS
   URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094,b- 2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094'
   {AUTHENTICATION_ARN 'acm-certificate-arn' |  SECRET_ARN 'asm-secret-arn'}
   ```

   Untuk informasi selengkapnya tentang membuat skema eksternal, lihat [ MEMBUAT SKEMA EKSTERNAL](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html).

1. Buat tampilan yang terwujud untuk mengkonsumsi data dari topik. Gunakan perintah SQL seperti contoh berikut.

   ```
   CREATE MATERIALIZED VIEW MyView AUTO REFRESH YES AS
   SELECT *
   FROM MySchema."mytopic";
   ```

   Nama topik Kafka peka huruf besar dan dapat berisi huruf besar dan kecil. Untuk mengambil dari topik dengan nama huruf besar, Anda dapat mengatur konfigurasi `enable_case_sensitive_identifier` ke `true` tingkat sesi atau database. Untuk informasi selengkapnya, lihat [ Nama dan pengidentifikasi ](https://docs.aws.amazon.com/redshift/latest/dg/r_names.html) dan [ enable ](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html) \_case\_sensitive\_identifier.

   Untuk mengaktifkan penyegaran otomatis, gunakan`AUTO REFRESH YES`. Perilaku defaultnya adalah penyegaran manual. 

1. Kolom metadata meliputi:


<table>
<thead>
  <tr><th>Kolom metadata</th><th>Jenis data</th><th>Deskripsi</th></tr>
</thead>
<tbody>
  <tr><td> kafka_partisi </td><td> bigint </td><td> ID partisi rekaman dari topik Kafka </td></tr>
  <tr><td> kafka_offset </td><td> bigint </td><td> Offset rekaman dalam topik Kafka untuk partisi tertentu </td></tr>
  <tr><td> kafka_tipe_timestamp_ </td><td> harimau (1) </td><td>Jenis stempel waktu yang digunakan dalam catatan Kafka:<ul><li><i>C </i> - Rekam waktu pembuatan (CREATE_TIME) di sisi klien</li><li><i>L </i> - Rekam waktu penambahan (LOG_APPEND_TIME) di sisi server Kafka </li><li><i>U </i> - Waktu pembuatan rekaman tidak tersedia (NO_TIMESTAMP_TYPE)</li></ul></td></tr>
  <tr><td> cap waktu kafka </td><td> stempel waktu tanpa zona waktu </td><td> Nilai stempel waktu untuk catatan </td></tr>
  <tr><td> kafka_key </td><td> warbyte </td><td> Kunci rekor Kafka </td></tr>
  <tr><td> nilai_kafka </td><td> warbyte </td><td> Rekor yang diterima dari Kafka </td></tr>
  <tr><td> kafka_header </td><td> super </td><td> Header rekaman diterima dari Kafka </td></tr>
  <tr><td> Refresh_time </td><td> stempel waktu tanpa zona waktu </td><td> Waktu penyegaran dimulai </td></tr>
</tbody>
</table>


   Penting untuk dicatat jika Anda memiliki logika bisnis dalam definisi tampilan terwujud yang mengakibatkan kesalahan logika bisnis, hal ini dapat mengakibatkan kegagalan penyerapan dalam penyerapan streaming dalam beberapa kasus. Ini mungkin menyebabkan Anda harus melepaskan dan membuat kembali tampilan yang terwujud. Untuk menghindari hal ini, kami sarankan Anda menjaga logika bisnis Anda tetap sederhana dan menjalankan logika tambahan pada data setelah Anda menelannya.

1. Segarkan tampilan, yang memanggil Amazon Redshift untuk membaca dari topik dan memuat data ke tampilan yang terwujud.

   ```
   REFRESH MATERIALIZED VIEW MyView;
   ```

1. Data kueri dalam tampilan terwujud.

   ```
   select * from MyView;
   ```

   Tampilan terwujud diperbarui langsung dari topik saat `REFRESH` dijalankan. Anda membuat tampilan terwujud yang dipetakan ke sumber data topik Kafka. Anda dapat melakukan pemfilteran dan agregasi pada data sebagai bagian dari definisi tampilan yang terwujud. Tampilan terwujud penyerapan streaming Anda (tampilan terwujud dasar) hanya dapat mereferensikan satu topik Kafka, tetapi Anda dapat membuat tampilan terwujud tambahan yang bergabung dengan tampilan materialisasi dasar dan dengan tampilan atau tabel terwujud lainnya.

Untuk informasi selengkapnya tentang batasan untuk konsumsi streaming, lihat[Perilaku penyerapan streaming dan tipe data](materialized-view-streaming-ingestion.md#materialized-view-streaming-ingestion-limitations).