Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konektor Amazon Athena Apache Kafka
Konektor Amazon Athena untuk Apache Kafka memungkinkan Amazon Athena menjalankan SQL kueri pada topik Apache Kafka Anda. Gunakan konektor ini untuk melihat topik Apache Kafka
Prasyarat
Menyebarkan konektor ke Anda Akun AWS menggunakan konsol Athena atau. AWS Serverless Application Repository Untuk informasi selengkapnya, lihat Menyebarkan konektor sumber data atau Gunakan AWS Serverless Application Repository untuk menyebarkan konektor sumber data.
Batasan
-
DDLOperasi tulis tidak didukung.
-
Batas Lambda yang relevan. Untuk informasi selengkapnya, lihat Kuota Lambda dalam Panduan Pengembang AWS Lambda .
-
Tipe data tanggal dan stempel waktu dalam kondisi filter harus dilemparkan ke tipe data yang sesuai.
-
Tipe data tanggal dan stempel waktu tidak didukung untuk jenis CSV file dan diperlakukan sebagai nilai varchar.
-
Pemetaan ke JSON bidang bersarang tidak didukung. Konektor hanya memetakan bidang tingkat atas.
-
Konektor tidak mendukung tipe yang kompleks. Tipe kompleks ditafsirkan sebagai string.
-
Untuk mengekstrak atau bekerja dengan JSON nilai kompleks, gunakan fungsi JSON terkait yang tersedia di Athena. Untuk informasi selengkapnya, lihat Ekstrak JSON data dari string.
-
Konektor tidak mendukung akses ke metadata pesan Kafka.
Ketentuan
-
Metadata handler — Penangan Lambda yang mengambil metadata dari instance database Anda.
-
Record handler - Handler Lambda yang mengambil catatan data dari instance database Anda.
-
Composite handler — Handler Lambda yang mengambil data metadata dan data dari instance database Anda.
-
Endpoint Kafka — String teks yang membuat koneksi ke instance Kafka.
Kompatibilitas cluster
Konektor Kafka dapat digunakan dengan jenis cluster berikut.
-
Standalone Kafka — Koneksi langsung ke Kafka (diautentikasi atau tidak diautentikasi).
-
Confluent — Koneksi langsung ke Confluent Kafka. Untuk informasi tentang penggunaan Athena dengan data Confluent Kafka, lihat Memvisualisasikan data Confluent di Amazon menggunakan QuickSight Amazon Athena di
Blog Business Intelligence.AWS
Menghubungkan ke Confluent
Menghubungkan ke Confluent membutuhkan langkah-langkah berikut:
-
Hasilkan API kunci dari Confluent.
-
Simpan nama pengguna dan kata sandi untuk API kunci Confluent ke dalam. AWS Secrets Manager
-
Berikan nama rahasia untuk variabel
secrets_manager_secret
lingkungan di konektor Kafka. -
Ikuti langkah-langkah di Menyiapkan konektor Kafka bagian dokumen ini.
Metode otentikasi yang didukung
Konektor mendukung metode otentikasi berikut.
-
SASL/PLAIN
-
SASL/PLAINTEXT
-
TIDAK_ AUTH
-
Platform Kafka dan Confluent yang dikelola sendiri —SSL,SASL/,/, NO_ SCRAM SASL PLAINTEXT AUTH
-
Kafka dan Confluent Cloud yang dikelola sendiri —/SASLPLAIN
Untuk informasi selengkapnya, lihat Mengkonfigurasi otentikasi untuk konektor Athena Kafka.
Format data input yang didukung
Konektor mendukung format data input berikut.
-
JSON
-
CSV
-
AVRO
-
PROTOBUF (PROTOCOL BUFFERS)
Parameter
Gunakan variabel lingkungan Lambda yang disebutkan di bagian ini untuk mengonfigurasi konektor Athena Kafka.
-
auth_type - Menentukan jenis otentikasi cluster. Konektor mendukung jenis otentikasi berikut:
-
NO_ AUTH — Hubungkan langsung ke Kafka (misalnya, ke cluster Kafka yang digunakan melalui EC2 instance yang tidak menggunakan otentikasi).
-
SASL_ SSL _ PLAIN — Metode ini menggunakan protokol
SASL_SSL
keamanan danPLAIN
SASL mekanismenya. Untuk informasi selengkapnya, lihat SASLkonfigurasidalam dokumentasi Apache Kafka. -
SASL_ PLAINTEXT _ PLAIN — Metode ini menggunakan protokol
SASL_PLAINTEXT
keamanan danPLAIN
SASL mekanismenya. Untuk informasi selengkapnya, lihat SASLkonfigurasidalam dokumentasi Apache Kafka. -
SASL_ SSL _ SCRAM _ SHA512 - Anda dapat menggunakan jenis otentikasi ini untuk mengontrol akses ke cluster Apache Kafka Anda. Metode ini menyimpan nama pengguna dan kata sandi di AWS Secrets Manager. Rahasianya harus dikaitkan dengan cluster Kafka. Untuk informasi selengkapnya, lihat Otentikasi menggunakanSASL/SCRAM
dalam dokumentasi Apache Kafka. -
SASL_ PLAINTEXT _ SCRAM _ SHA512 — Metode ini menggunakan protokol
SASL_PLAINTEXT
keamanan danSCRAM_SHA512 SASL
mekanismenya. Metode ini menggunakan nama pengguna dan kata sandi Anda yang disimpan di AWS Secrets Manager. Untuk informasi selengkapnya, lihat bagian SASLkonfigurasidokumentasi Apache Kafka. -
SSL— SSL otentikasi menggunakan penyimpanan kunci dan file toko kepercayaan untuk terhubung dengan cluster Apache Kafka. Anda harus membuat file trust store dan key store, mengunggahnya ke bucket Amazon S3, dan memberikan referensi ke Amazon S3 saat Anda menggunakan konektor. Toko kunci, toko kepercayaan, dan SSL kunci disimpan di AWS Secrets Manager. Klien Anda harus memberikan kunci AWS rahasia saat konektor dikerahkan. Untuk informasi selengkapnya, lihat Enkripsi dan Otentikasi menggunakan SSL
dokumentasi Apache Kafka. Untuk informasi selengkapnya, lihat Mengkonfigurasi otentikasi untuk konektor Athena Kafka.
-
-
certificates_s3_reference — Lokasi Amazon S3 yang berisi sertifikat (penyimpanan kunci dan file penyimpanan kepercayaan).
-
disable_spill_encryption — (Opsional) Ketika diatur ke, menonaktifkan enkripsi tumpahan.
True
DefaultnyaFalse
agar data yang tumpah ke S3 dienkripsi menggunakan AES - GCM — baik menggunakan kunci yang dihasilkan secara acak atau untuk menghasilkan kunci. KMS Menonaktifkan enkripsi tumpahan dapat meningkatkan kinerja, terutama jika lokasi tumpahan Anda menggunakan enkripsi sisi server. -
kafka_endpoint — Detail titik akhir untuk diberikan kepada Kafka.
-
schema_registry_url — URL Alamat untuk registri skema (misalnya,).
http://schema-registry.example.org:8081
Berlaku untuk formatAVRO
danPROTOBUF
data. -
secrets_manager_secret — Nama rahasia tempat AWS kredensialnya disimpan.
-
Parameter tumpahan — Fungsi Lambda menyimpan sementara (“tumpahan”) data yang tidak sesuai dengan memori ke Amazon S3. Semua instance database yang diakses oleh fungsi Lambda yang sama tumpah ke lokasi yang sama. Gunakan parameter dalam tabel berikut untuk menentukan lokasi tumpahan.
Parameter Deskripsi spill_bucket
Wajib. Nama bucket Amazon S3 tempat fungsi Lambda dapat menumpahkan data. spill_prefix
Wajib. Awalan dalam ember tumpahan tempat fungsi Lambda dapat menumpahkan data. spill_put_request_headers
(Opsional) Peta header permintaan dan nilai yang JSON dikodekan untuk putObject
permintaan Amazon S3 yang digunakan untuk menumpahkan (misalnya,).{"x-amz-server-side-encryption" : "AES256"}
Untuk kemungkinan header lainnya, lihat PutObjectdi APIReferensi Layanan Penyimpanan Sederhana Amazon. -
Subnet IDs — Satu atau lebih subnet IDs yang sesuai dengan subnet yang dapat digunakan fungsi Lambda untuk mengakses sumber data Anda.
-
Cluster Kafka Publik atau cluster Confluent Cloud standar — Kaitkan konektor dengan subnet pribadi yang memiliki Gateway. NAT
-
Cluster Confluent Cloud dengan konektivitas pribadi — Kaitkan konektor dengan subnet pribadi yang memiliki rute ke cluster Confluent Cloud.
-
Untuk AWS Transit Gateway
, subnet harus berada dalam a VPC yang dilampirkan ke gateway transit yang sama yang digunakan Confluent Cloud. -
Untuk VPCPeering
, subnet harus berada di sebuah VPC yang diintip ke Confluent Cloud. VPC -
Untuk AWS PrivateLink
, subnet harus berada dalam rute VPC yang memiliki rute ke VPC titik akhir yang terhubung ke Confluent Cloud.
-
-
catatan
Jika Anda menyebarkan konektor ke VPC dalam untuk mengakses sumber daya pribadi dan juga ingin terhubung ke layanan yang dapat diakses publik seperti Confluent, Anda harus mengaitkan konektor dengan subnet pribadi yang memiliki Gateway. NAT Untuk informasi selengkapnya, lihat NATgateway di VPC Panduan Pengguna Amazon.
Dukungan tipe data
Tabel berikut menunjukkan tipe data yang sesuai yang didukung untuk Kafka dan Apache Arrow.
Kafka | Panah |
---|---|
CHAR | VARCHAR |
VARCHAR | VARCHAR |
TIMESTAMP | MILLISECOND |
DATE | DAY |
BOOLEAN | BOOL |
SMALLINT | SMALLINT |
INTEGER | INT |
BIGINT | BIGINT |
DECIMAL | FLOAT8 |
DOUBLE | FLOAT8 |
Partisi dan split
Topik Kafka dibagi menjadi beberapa partisi. Setiap partisi dipesan. Setiap pesan dalam partisi memiliki ID tambahan yang disebut offset. Setiap partisi Kafka dibagi lagi menjadi beberapa split untuk pemrosesan paralel. Data tersedia untuk periode retensi yang dikonfigurasi dalam cluster Kafka.
Praktik terbaik
Sebagai praktik terbaik, gunakan predikat pushdown saat Anda menanyakan Athena, seperti pada contoh berikut.
SELECT * FROM "
kafka_catalog_name
"."glue_schema_registry_name
"."glue_schema_name
" WHERE integercol = 2147483647
SELECT * FROM "
kafka_catalog_name
"."glue_schema_registry_name
"."glue_schema_name
" WHERE timestampcol >= TIMESTAMP '2018-03-25 07:30:58.878'
Menyiapkan konektor Kafka
Sebelum Anda dapat menggunakan konektor, Anda harus mengatur cluster Apache Kafka Anda, menggunakan AWS Glue Schema Registry untuk menentukan skema Anda, dan mengkonfigurasi otentikasi untuk konektor.
Saat bekerja dengan AWS Glue Schema Registry, perhatikan poin-poin berikut:
-
Pastikan bahwa teks di bidang Description dari AWS Glue Schema Registry menyertakan string
{AthenaFederationKafka}
. String penanda ini diperlukan untuk AWS Glue Registries yang Anda gunakan dengan konektor Amazon Athena Kafka. -
Untuk kinerja terbaik, gunakan hanya huruf kecil untuk nama database dan nama tabel Anda. Menggunakan casing campuran menyebabkan konektor melakukan pencarian case insensitive yang lebih intensif secara komputasi.
Untuk mengatur lingkungan Apache Kafka dan AWS Glue Registri Skema
-
Siapkan lingkungan Apache Kafka Anda.
-
Unggah file deskripsi topik Kafka (yaitu, skemanya) dalam JSON format ke Registri AWS Glue Skema. Untuk informasi selengkapnya, lihat Mengintegrasikan dengan Registri AWS Glue Skema di Panduan AWS Glue Pengembang.
-
Untuk menggunakan format
AVRO
atauPROTOBUF
data saat Anda menentukan skema di Registri AWS Glue Skema:-
Untuk nama Skema, masukkan nama topik Kafka dalam casing yang sama dengan aslinya.
-
Untuk format Data, pilih Apache Avro atau Protocol Buffers.
Misalnya skema, lihat bagian berikut.
-
Gunakan format contoh di bagian ini saat Anda mengunggah skema Anda ke Registri AWS Glue Skema.
JSONcontoh skema jenis
Dalam contoh berikut, skema yang akan dibuat dalam AWS Glue Schema Registry menentukan json
sebagai nilai untuk dataFormat
dan menggunakan untuk. datatypejson
topicName
catatan
Nilai untuk topicName
harus menggunakan casing yang sama dengan nama topik di Kafka.
{ "topicName": "datatypejson", "message": { "dataFormat": "json", "fields": [ { "name": "intcol", "mapping": "intcol", "type": "INTEGER" }, { "name": "varcharcol", "mapping": "varcharcol", "type": "VARCHAR" }, { "name": "booleancol", "mapping": "booleancol", "type": "BOOLEAN" }, { "name": "bigintcol", "mapping": "bigintcol", "type": "BIGINT" }, { "name": "doublecol", "mapping": "doublecol", "type": "DOUBLE" }, { "name": "smallintcol", "mapping": "smallintcol", "type": "SMALLINT" }, { "name": "tinyintcol", "mapping": "tinyintcol", "type": "TINYINT" }, { "name": "datecol", "mapping": "datecol", "type": "DATE", "formatHint": "yyyy-MM-dd" }, { "name": "timestampcol", "mapping": "timestampcol", "type": "TIMESTAMP", "formatHint": "yyyy-MM-dd HH:mm:ss.SSS" } ] } }
CSVcontoh skema jenis
Dalam contoh berikut, skema yang akan dibuat dalam AWS Glue Schema Registry menentukan csv
sebagai nilai untuk dataFormat
dan menggunakan untuk. datatypecsvbulk
topicName
Nilai untuk topicName
harus menggunakan casing yang sama dengan nama topik di Kafka.
{ "topicName": "datatypecsvbulk", "message": { "dataFormat": "csv", "fields": [ { "name": "intcol", "type": "INTEGER", "mapping": "0" }, { "name": "varcharcol", "type": "VARCHAR", "mapping": "1" }, { "name": "booleancol", "type": "BOOLEAN", "mapping": "2" }, { "name": "bigintcol", "type": "BIGINT", "mapping": "3" }, { "name": "doublecol", "type": "DOUBLE", "mapping": "4" }, { "name": "smallintcol", "type": "SMALLINT", "mapping": "5" }, { "name": "tinyintcol", "type": "TINYINT", "mapping": "6" }, { "name": "floatcol", "type": "DOUBLE", "mapping": "7" } ] } }
AVROcontoh skema jenis
Contoh berikut digunakan untuk membuat skema AVRO berbasis di Schema AWS Glue
Registry. Saat Anda menentukan skema di Registri AWS Glue Skema, untuk nama Skema, Anda memasukkan nama topik Kafka dalam casing yang sama dengan aslinya, dan untuk format Data, Anda memilih Apache Avro. Karena Anda menentukan informasi ini secara langsung di registri, topicName
bidang dataformat
dan tidak diperlukan.
{ "type": "record", "name": "avrotest", "namespace": "example.com", "fields": [{ "name": "id", "type": "int" }, { "name": "name", "type": "string" } ] }
PROTOBUFcontoh skema jenis
Contoh berikut digunakan untuk membuat skema PROTOBUF berbasis di Schema AWS Glue Registry. Saat Anda menentukan skema di Registri AWS Glue Skema, untuk nama Skema, Anda memasukkan nama topik Kafka dalam casing yang sama dengan aslinya, dan untuk format Data, Anda memilih Protocol Buffer. Karena Anda menentukan informasi ini secara langsung di registri, topicName
bidang dataformat
dan tidak diperlukan. Baris pertama mendefinisikan skema sebagai. PROTOBUF
syntax = "proto3"; message protobuftest { string name = 1; int64 calories = 2; string colour = 3; }
Untuk informasi selengkapnya tentang menambahkan registri dan skema di AWS Glue Schema Registry, lihat Memulai Schema Registry di dokumentasi. AWS Glue
Mengkonfigurasi otentikasi untuk konektor Athena Kafka
Anda dapat menggunakan berbagai metode untuk mengautentikasi ke cluster Apache Kafka Anda, termasuk,SASL/SSL,/SCRAM, danSASL/PLAIN. SASL PLAINTEXT
Tabel berikut menunjukkan jenis otentikasi untuk konektor dan protokol keamanan dan SASL mekanisme untuk masing-masing. Untuk informasi lebih lanjut, lihat bagian Keamanan
auth_type | security.protocol | sasl.mekanisme | Kompatibilitas tipe cluster |
---|---|---|---|
SASL_SSL_PLAIN |
SASL_SSL |
PLAIN |
|
SASL_PLAINTEXT_PLAIN |
SASL_PLAINTEXT |
PLAIN |
|
SASL_SSL_SCRAM_SHA512 |
SASL_SSL |
SCRAM-SHA-512 |
|
SASL_PLAINTEXT_SCRAM_SHA512 |
SASL_PLAINTEXT |
SCRAM-SHA-512 |
|
SSL |
SSL |
N/A |
|
SSL
Jika cluster SSL diautentikasi, Anda harus membuat file trust store dan key store dan mengunggahnya ke bucket Amazon S3. Anda harus memberikan referensi Amazon S3 ini saat Anda menggunakan konektor. Toko kunci, toko kepercayaan, dan SSL kunci disimpan di AWS Secrets Manager. Anda memberikan kunci AWS rahasia saat Anda menggunakan konektor.
Untuk informasi tentang cara membuat rahasia di Secrets Manager, lihat Membuat AWS Secrets Manager rahasia.
Untuk menggunakan jenis otentikasi ini, atur variabel lingkungan seperti yang ditunjukkan pada tabel berikut.
Parameter | Nilai |
---|---|
auth_type |
SSL |
certificates_s3_reference |
Lokasi Amazon S3 yang berisi sertifikat. |
secrets_manager_secret |
Nama kunci AWS rahasiamu. |
Setelah Anda membuat rahasia di Secrets Manager, Anda dapat melihatnya di konsol Secrets Manager.
Untuk melihat rahasia Anda di Secrets Manager
Buka konsol Secrets Manager di https://console.aws.amazon.com/secretsmanager/
. -
Di panel navigasi, pilih Rahasia.
-
Pada halaman Rahasia, pilih tautan ke rahasia Anda.
-
Pada halaman detail untuk rahasia Anda, pilih Ambil nilai rahasia.
Gambar berikut menunjukkan contoh rahasia dengan tiga pasangan kunci/nilai:
keystore_password
,truststore_password
, dan.ssl_key_password
Untuk informasi selengkapnya tentang penggunaan SSL dengan Kafka, lihat Enkripsi dan Otentikasi menggunakan SSL dalam dokumentasi
SASL/SCRAM
Jika klaster Anda menggunakan SCRAM autentikasi, berikan kunci Secrets Manager yang terkait dengan klaster saat Anda menerapkan konektor. AWS Kredensi pengguna (kunci rahasia dan kunci akses) digunakan untuk mengautentikasi dengan cluster.
Mengatur variabel lingkungan seperti yang ditunjukkan pada tabel berikut.
Parameter | Nilai |
---|---|
auth_type |
SASL_SSL_SCRAM_SHA512 |
secrets_manager_secret |
Nama kunci AWS rahasiamu. |
Gambar berikut menunjukkan contoh rahasia di konsol Secrets Manager dengan dua pasangan kunci/nilai: satu untukusername
, dan satu untuk. password
Untuk informasi selengkapnya tentang SASL SCRAM menggunakan/dengan Kafka, lihat Otentikasi menggunakanSASL/SCRAMdalam dokumentasi
Informasi lisensi
Dengan menggunakan konektor ini, Anda mengakui penyertaan komponen pihak ketiga, daftar yang dapat ditemukan dalam file pom.xml
Sumber daya tambahan
Untuk informasi tambahan tentang konektor ini, kunjungi situs terkait