Panoramica dei connettori

La tabella seguente elenca i tipi di connettori Kafka Connect supportati da Managed Service per Apache Kafka. Puoi utilizzare questi connettori per integrare Apache Kafka con le tue applicazioni e con altri servizi. Google Cloud

Connettore Descrizione Casi d'uso
Sink BigQuery Trasmette i dati dagli argomenti Kafka a una tabella BigQuery. Data warehousing, analisi
Origine Cloud SQL per PostgreSQL Legge le modifiche a livello di riga da un database Cloud SQL per PostgreSQL e le scrive in Kafka. Integrazione del database, monitoraggio e risposta agli eventi del database
Sink Cloud Storage Trasmette i dati dagli argomenti Kafka a un bucket Cloud Storage. Acquisizione di data lake, archiviazione dei dati
MirrorMaker 2.0 Replica gli argomenti e i dati da un cluster Kafka a un altro cluster Kafka. Replica dei dati, ripristino di emergenza, migrazione dei dati
Sink Pub/Sub Trasmette i dati dagli argomenti Kafka a un argomento Pub/Sub. Integrazione dei servizi, notifiche in tempo reale
Origine Pub/Sub Trasmette i messaggi da una sottoscrizione Pub/Sub a un argomento Kafka. Importazione dati in tempo reale, architetture basate su eventi
Origine PostgreSQL generica Legge le modifiche a livello di riga da un database PostgreSQL e le scrive in Kafka. Integrazione del database, monitoraggio e risposta agli eventi del database

Utenti che hanno completato una conversione

I convertitori sono responsabili della serializzazione e della deserializzazione dei dati dei record Kafka. Eseguono la conversione tra il formato byte non elaborato presente negli argomenti Kafka e la rappresentazione interna dei dati strutturati utilizzata da Kafka Connect.

  • Per i connettori sink, i convertitori deserializzano i dati dal formato wire dell'argomento al formato di dati interno di Kafka Connect, che il connettore utilizza per scrivere nel sistema di destinazione.

  • Per i connettori di origine, i convertitori serializzano i dati dal formato dei dati interno di Kafka Connect al formato di trasmissione specificato per l'argomento Kafka.

I convertitori assicurano che il connettore legga o scriva i record Kafka in un formato compatibile con il sistema esterno.

Quando configuri un connettore, imposta le seguenti proprietà:

  • Convertitore di chiavi (key.converter): il convertitore da utilizzare durante la serializzazione e la deserializzazione delle chiavi dei record Kafka.

  • Convertitore di valori (value.converter): il convertitore da utilizzare per la serializzazione e la deserializzazione dei valori dei record Kafka.

Se non specifichi un convertitore, il tipo di convertitore predefinito è org.apache.kafka.connect.converters.ByteArrayConverter, che passa i dati nel formato byte non elaborato.

Convertitori supportati

Managed Service per Apache Kafka supporta i seguenti convertitori integrati:

ConverterFormato
io.confluent.connect.avro.AvroConverter Apache Avro
org.apache.kafka.connect.converters.BooleanConverter Booleano
org.apache.kafka.connect.converters.ByteArrayConverter

Array di byte

Il tipo di convertitore predefinito. Conserva i contenuti esatti dei messaggi in due sistemi.

org.apache.kafka.connect.converters.DoubleConverter Doppio
org.apache.kafka.connect.converters.FloatConverter Numero in virgola mobile
org.apache.kafka.connect.converters.IntegerConverter Numero intero
org.apache.kafka.connect.json.JsonConverter

JSON

Per i dati JSON senza schema, imposta anche value.converter.schemas.enable=false.

org.apache.kafka.connect.converters.LongConverter Lungo
org.apache.kafka.connect.converters.ShortConverter Breve
org.apache.kafka.connect.storage.StringConverter Stringa

La scelta del convertitore dipende dal tipo di connettore e dai dati che memorizzi in Kafka. Per saperne di più, consulta la documentazione del connettore specifico.

Tasks

Un connettore trasferisce i dati creando una o più attività che operano in parallelo. Per impostare un limite massimo al numero di attività create da un connettore, imposta la proprietà di configurazione tasks.max del connettore. Il connettore potrebbe creare meno attività di questo valore.

L'aumento del valore di tasks.max può migliorare la velocità effettiva, ma anche aumentare il consumo di risorse (CPU e memoria). Il valore ottimale dipende dal carico di lavoro e dalle risorse allocate ai worker del cluster Connect. Per i connettori sink, anche il numero di partizioni dell'argomento Kafka può influire sul parallelismo.

Policy di riavvio attività

Puoi impostare la policy di riavvio delle attività di un connettore, che determina il comportamento quando si verifica un errore. I connettori supportano le seguenti norme:

  • Non riavviare mai. Il connettore non riavvia le attività non riuscite. Questa policy è il comportamento predefinito. È utile per il debug o in situazioni in cui è necessario un intervento manuale dopo un errore.

  • Riavvia con backoff esponenziale. Il connettore riavvia un'attività non riuscita dopo un ritardo (chiamato periodo di backoff). Il ritardo aumenta in modo esponenziale a ogni tentativo successivo non riuscito. Questo criterio è consigliato per la maggior parte dei carichi di lavoro di produzione.

    Se utilizzi il criterio di backoff esponenziale, imposta anche i valori per il backoff minimo e massimo. Il backoff minimo deve essere superiore a 60 secondi e il backoff massimo deve essere inferiore a 7200 secondi.

Trasformazioni e predicati

Managed Service per Apache Kafka supporta le trasformazioni e i predicati predefiniti di Kafka Connect.

Le trasformazioni ti consentono di modificare i singoli messaggi prima che vengano inviati a Managed Service per Apache Kafka (per i connettori di origine) o al sistema esterno (per i connettori sink). Puoi utilizzare una trasformazione per mascherare dati sensibili, aggiungere timestamp o rinominare campi.

I predicati consentono di filtrare i dati in base a condizioni specifiche, determinando a quali messaggi si applica una trasformazione in base alle proprietà dei messaggi.

Ad esempio, per configurare un connettore sink in modo che ignori i messaggi che contengono una chiave di intestazione DoNotProcess, aggiungi la seguente configurazione:

transforms=dropMessage
transforms.dropMessage.type=org.apache.kafka.connect.transforms.Filter
transforms.dropMessage.predicate=hasKey
predicates=hasKey
predicates.hasKey.type=org.apache.kafka.connect.transforms.predicates.HasHeaderKey
predicates.hasKey.name=DoNotProcess

Questa configurazione esegue le seguenti operazioni:

  1. Configura un predicato denominato hasKey di tipo org.apache.kafka.connect.transforms.predicates.HasHeaderKey. Questo predicato corrisponde a tutti i messaggi che contengono un'intestazione con la chiave DoNotProcess.

  2. Configura una trasformazione denominata dropMessage di tipo org.apache.kafka.connect.transforms.Filter. Questa trasformazione elimina tutti i messaggi che corrispondono al predicato configurato.

  3. Collega la trasformazione al predicato hasKey. In questo modo, solo i messaggi con la chiave di intestazione DoNotProcess presente vengono eliminati dalla trasformazione.

Passaggi successivi

Apache Kafka® è un marchio registrato di Apache Software Foundation o dei suoi affiliati negli Stati Uniti e/o in altri paesi.