

 Amazon Redshift tidak akan lagi mendukung pembuatan Python UDFs baru mulai Patch 198. Python yang ada UDFs akan terus berfungsi hingga 30 Juni 2026. Untuk informasi lebih lanjut, 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/). 

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 mengonsumsi data streaming dari Amazon MSK, Apache Kafka atau Confluent Cloud menggunakan tampilan terwujud.

 Tujuan dari konsumsi streaming Amazon Redshift adalah untuk menyederhanakan proses untuk secara langsung menelan data streaming dari layanan streaming ke Amazon Redshift atau Amazon Redshift Serverless. Ini berfungsi dengan Amazon MSK Provisioned dan Amazon MSK Serverless, dengan Apache Kafka open-source, dan dengan Confluent Cloud. Konsumsi streaming Amazon Redshift menghilangkan kebutuhan untuk mementaskan topik Apache Kafka di Amazon S3 sebelum menelan data aliran ke Redshift.

 Pada tingkat teknis, konsumsi streaming menyediakan latensi rendah, konsumsi data aliran atau topik berkecepatan tinggi ke dalam tampilan terwujud Amazon Redshift. Setelah penyiapan, 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 instruksi berikut:
+ **Amazon MSK** - [Memulai Menggunakan Amazon](https://docs.aws.amazon.com/msk/latest/developerguide/getting-started.html) MSK
+ **Apache Kafka — Apache Kafka** [Mulai](https://kafka.apache.org/quickstart) Cepat
+ **Confluent Cloud** — [Mulai Cepat untuk](https://docs.confluent.io/cloud/current/get-started/index.html) Confluent Cloud

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

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

**Topics**
+ [Mengatur 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)

### Mengatur 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 MSK Amazon. 

Setelah Anda membuat peran aplikasi, lampirkan salah satu kebijakan berikut untuk mengizinkan akses ke kluster Amazon MSK, Apache Kafka, atau Confluent Cloud Anda. Untuk autentikasi mTLS, 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 autentikasi atau data dalam perjalanan saat Anda menggunakan konsumsi 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 dihasilkan dengan AWS Certificate Manager atau otoritas sertifikat tepercaya publik lainnya.

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

**AUTENTIKASI 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 MSK Amazon, tidak diperlukan peran IAM. Namun, jika Anda menggunakan AUTHENTICATION IAM atau MTLS untuk mengautentikasi dengan klaster MSK Amazon, cluster Amazon Redshift atau namespace Tanpa Server Amazon Redshift harus memiliki peran IAM terlampir dengan izin yang sesuai. Buat peran IAM dengan kebijakan kepercayaan yang memungkinkan klaster Amazon Redshift atau namespace Tanpa Server Amazon Redshift Anda untuk mengambil peran tersebut. Setelah Anda membuat peran, tambahkan salah satu izin berikut untuk mendukung IAM atau MTLS. Untuk autentikasi mTLS, sertifikat yang digunakan Amazon Redshift dapat disimpan AWS Certificate Manager di AWS Secrets Manager atau, jadi Anda harus memilih kebijakan yang cocok dengan tempat penyimpanan sertifikat. Lampirkan peran ke klaster yang disediakan Amazon Redshift atau namespace Tanpa Server Redshift. Untuk informasi tentang cara mengonfigurasi kebijakan kepercayaan untuk peran IAM, lihat [Mengotorisasi Amazon Redshift untuk mengakses layanan AWS lain](https://docs.aws.amazon.com/redshift/latest/mgmt/authorizing-redshift-service.html) atas nama Anda. 

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


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

Autentikasi Amazon Redshift diatur dalam pernyataan CREATE EXTERNAL SCHEMA.

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

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

Untuk Apache Kafka dan Confluent Cloud, Amazon Redshift mendukung protokol koneksi berikut:
+ Anda dapat menggunakan mTLS 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 | PLAINTEXT | Tidak | Tidak | 
| OTENTIKASI TIDAK ADA | SSL | Ya | Tidak | 
| OTENTIKASI IAM | 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 autentikasi, periksa VPC Anda dan verifikasi bahwa klaster Amazon Redshift atau grup kerja Amazon Redshift Tanpa Server memiliki rute untuk menuju ke sumber Apache Kafka Anda. 

**catatan**  
Untuk Amazon MSK, aturan grup keamanan masuk untuk klaster MSK Amazon Anda harus mengizinkan klaster Amazon Redshift atau grup keamanan grup kerja Redshift Tanpa Server Anda. Port yang Anda tentukan bergantung pada metode otentikasi yang dikonfigurasi pada kluster MSK Amazon 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 di cluster Amazon Redshift atau workgroup Amazon Redshift Tanpa Server. Untuk informasi selengkapnya, lihat [Mengaktifkan perutean VPC yang disempurnakan](https://docs.aws.amazon.com/redshift/latest/mgmt/enhanced-vpc-enabling-cluster.html).

### 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 `CREATE EXTERNAL SCHEMA` dengan dan merujuk cluster sebagai sumber data. Setelah itu, untuk mengakses data dalam topik, tentukan `STREAM` dalam tampilan 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 terwujud, catatan yang dikembalikan adalah point-in-time tampilan 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 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 autentikasi 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 timbal balik menyediakan komunikasi yang aman dengan memfasilitasi otentikasi antara klien dan server. Dalam hal ini, klien adalah Redshift dan servernya adalah Apache Kafka. Untuk informasi selengkapnya tentang mengonfigurasi konsumsi streaming dengan mTL, lihat. [Otentikasi dengan mTL untuk konsumsi streaming Redshift dari sumber Apache Kafka](materialized-view-streaming-ingestion-mtls.md)

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

   `AUTHENTICATION_ARN`Parameter menentukan ARN dari sertifikat ACM mutual transport layer security (mTLS) 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 mTLS.

   Contoh berikut menunjukkan cara mengatur URI broker untuk klaster MSK Amazon 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 mTLS:**

   ```
   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 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/kecil dan dapat berisi huruf besar dan kecil. Untuk menyerap dari topik dengan nama huruf besar, Anda dapat mengatur konfigurasi `enable_case_sensitive_identifier` ke `true` tingkat sesi atau basis data. Untuk informasi selengkapnya, lihat [Nama dan pengenal dan [enable\_case\_sensitive\_identifier](https://docs.aws.amazon.com/redshift/latest/dg/r_enable_case_sensitive_identifier.html)](https://docs.aws.amazon.com/redshift/latest/dg/r_names.html).

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

1. Kolom metadata meliputi yang berikut:    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/redshift/latest/dg/materialized-view-streaming-ingestion-getting-started-MSK.html)

   Penting untuk dicatat jika Anda memiliki logika bisnis dalam definisi tampilan terwujud yang menghasilkan kesalahan logika bisnis, ini dapat mengakibatkan kegagalan konsumsi dalam konsumsi streaming dalam beberapa kasus. Ini mungkin menyebabkan Anda harus menjatuhkan dan membuat ulang tampilan yang terwujud. Untuk menghindari hal ini, kami sarankan Anda menjaga logika bisnis Anda 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 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 memetakan ke sumber data topik Kafka. Anda dapat melakukan pemfilteran dan agregasi pada data sebagai bagian dari definisi tampilan yang terwujud. Tampilan terwujud konsumsi streaming Anda (tampilan terwujud dasar) hanya dapat mereferensikan satu topik Kafka, tetapi Anda dapat membuat tampilan terwujud tambahan yang bergabung dengan tampilan dasar yang terwujud dan dengan tampilan atau tabel terwujud lainnya.

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