Migration vom Kafka-Konnektor v3 auf v4¶
Unter diesem Thema wird beschrieben, wie Sie vom klassischen Kafka-Konnektor (v3 und früher) zum Snowflake Connector for Kafka (v4) migrieren.
Übersicht¶
Snowflake Connector for Kafka (v4) ist eine grundlegende Neufassung, die ausschließlich Snowpipe Streaming-Architektur mit hoher Performance verwendet. Sie müssen manuell eine neue Konnektorkonfiguration erstellen, um auf v4 zu migrieren.
Wichtig
Der v4-Konnektor kann nicht als Ersatz für v3 verwendet werden. Er verwendet eine andere Konnektorklasse, andere Standardverhaltensweisen und einen anderen Funktionsumfang. Prüfen Sie vor der Migration die unten aufgeführten grundlegenden Änderungen und Migrationspfade.
Preisänderungen¶
Der v4-Konnektor verwendet durchsatzabhängige Pauschalpreise, die auf der Menge der aufgenommenen Daten basieren (GB). Dies ist das gleiche Preismodell wie bei der:doc:Snowpipe Streaming-Architektur mit hoher Performance</user-guide/snowpipe-streaming/snowpipe-streaming-high-performance-cost>. Um die Kosten abzuschätzen, multiplizieren Sie Ihre Datenaufnahmerate mit dem Pro-GB-Preis, der auf der Seite mit den Kosten für Snowpipe Streaming angegeben ist.
Dies ersetzt das v3-Preismodell, das auf serverlosem Computing und Dateibenachrichtigungen basierte.
Validierung der Kompatibilität¶
Standardmäßig aktiviert v4 eine Start-Kompatibilitätsprüfung (snowflake.streaming.validate.compatibility.with.classic=true), die verhindert, dass Sie versehentlich v4 mit einer kopierten v3-Konfiguration ausführen. Wenn diese Option aktiviert ist, überprüft der Konnektor beim Start, ob Sie die wichtigsten Migrationseinstellungen explizit konfiguriert haben. Wenn eine fehlt oder nicht kompatibel ist, schlägt der Konnektor mit einer beschreibenden Fehlermeldung fehl, die genau angibt, was eingestellt werden muss.
Der Validator prüft Folgendes:
snowflake.validationist aufclient_sidegesetzt.snowflake.compatibility.enable.column.identifier.normalizationist auftruegesetzt.snowflake.compatibility.enable.autogenerated.table.name.sanitizationist auftruegesetzt.snowflake.enable.schematizationist explizit auftrueoderfalsegesetzt (die Standardeinstellung wurde vonfalsein v3 auftruein v4 geändert, sodass der Validator Sie auffordert, Ihre Auswahl zu bestätigen).snowflake.streaming.classic.offset.migrationist explizit festgelegt.snowflake.streaming.classic.offset.migration.include.connector.nameist explizit festgelegt ist (wenn die Offset-Migrationstrictoderbest_effortist).
Nachdem Sie die grundlegenden Änderungen überprüft und diese Einstellungen explizit konfiguriert haben, können Sie snowflake.streaming.validate.compatibility.with.classic=false einstellen, um die Überprüfung bei nachfolgenden Neustarts zu überspringen.
Eine vollständige Beschreibung dieser Eigenschaften finden Sie unter :ref:` Schematisierungs-, Validierungs- und Kompatibilitätseigenschaften<label-kafkahp_migration_properties>` und Eigenschaften der Offset-Migration.
Migrationspfade¶
Der Migrationspfad hängt davon ab, wie Ihr v3-Konnektor konfiguriert wurde.
Stellen Sie vor der Migration sicher, dass snowflake.metadata.topic, snowflake.metadata.offset.and.partition und snowflake.metadata.createtime in Ihrem v3-Konnektor aktiviert sind (standardmäßig aktiviert). Dies stellt sicher, dass RECORD_METADATA die Felder für das Thema, die Partition und den Offset enthält, die für die Deduplizierung benötigt werden, falls Probleme auftreten.
Migration vom v3-Snowpipe-Modus¶
Wenn Ihr v3-Konnektor klassisches Snowpipe verwendet (Standard snowflake.ingestion.method=SNOWPIPE), migriert v4 nahtlos unter Verwendung von Kafka-Verbrauchergruppen-Offsets.
Stoppen Sie den v3-Konnektor.
Warten Sie, bis alle Stagingdaten in Snowflake aufgenommen wurden. Dateien werden im klassischen Snowpipe zuerst im Stagingbereich bereitgestellt, bevor sie geladen werden, und alle Dateien, die sich noch in der Warteschlange befinden, wenn Sie den Konnektor stoppen, werden asynchron geladen. Das Starten des v4-Konnektors vor diesem Abschluss kann dazu führen, dass die Daten nicht in der richtigen Reihenfolge integriert werden.
Stellen Sie die neue v4-Konfiguration mit demselben Konnektornamen wie v3 (dieselbe Kafka-Verbrauchergruppe) bereit. Stellen Sie die Offset-Migrationskonfiguration so ein, dass die SSv1-Migration übersprungen wird:
Starten Sie den v4-Konnektor. Er erbt die Offsets der Kafka-Verbrauchergruppe und setzt die Datenaufnahme dort fort, wo v3 aufgehört hat.
Führen Sie den Wechsel innerhalb von offsets.retention.minutes durch (Standard 7 Tage), um das Ablaufen des Offsets zu vermeiden.
Dieser Migrationspfad führt nicht zu Duplikaten oder Lücken.
Migration vom v3 Snowpipe Streaming-Modus¶
Wenn Ihr v3-Konnektor Snowpipe Streaming verwendet hat (snowflake.ingestion.method=SNOWPIPE_STREAMING), kann v4 die bestätigten Offsets automatisch vom v3 Snowpipe Streaming (SSv1)-Kanälen migrieren. Dies verhindert Duplikate oder Lücken.
Stoppen Sie den v3-Konnektor.
Stellen Sie die neue v4-Konfiguration mit demselben Konnektornamen wie v3 bereit. Konfigurieren Sie die Einstellungen für die Offset-Migration:
Starten Sie den v4-Konnektor. Er stellt die bestätigten Offsets von den bestehenden SSv1-Kanälen wieder her und setzt die Datenaufnahme fort, wo v3 aufgehört hat.
Führen Sie den Wechsel innerhalb von offsets.retention.minutes durch (Standard 7 Tage).
Downgrade von v4 auf v3¶
Ein Downgrade von v4 zurück auf v3 ist möglich, indem der Migrationsprozess rückgängig gemacht wird. Nach einem Downgrade werden jedoch doppelte Datensätze erwartet, da v3 und v4 Offsets unterschiedlich verfolgen.
So führen Sie ein Downgrade durch:
Stoppen Sie den v4-Konnektor.
Stellen Sie Ihre v3-Konfiguration mit demselben Konnektornamen bereit.
Starten Sie den v3-Konnektor.
Nach dem Downgrade können Sie Ihre Daten mit der Spalte
RECORD_METADATAdeduplizieren. Die folgende Abfrage entfernt doppelte Datensätze mithilfe einer Fensterfunktion für Thema, Partition und Offset:
Wichtig
Die Deduplizierung erfordert, dass RECORD_METADATA Themen-, Partitions- und Offsetfelder enthält. Stellen Sie sicher, dass die snowflake.metadata.topic- und snowflake.metadata.offset.and.partition-Einstellungen vor der Migration auf v4 aktiviert sind.
Wenn Sie während des Downgrades auf Probleme stoßen, wenden Sie sich an den ` Snowflake-Support`_.
Grundlegende Änderungen¶
Neue Konnektorklasse¶
Änderung |
v3 |
v4 |
|---|---|---|
Konnektorklasse |
|
|
Datenaufnahmemethoden |
Snowpipe (Batch) oder Snowpipe Streaming (optional) |
Nur Snowpipe Streaming |
Java-Version |
Java 8+ |
Java 11+ |
Standardverhalten geändert¶
Konfiguration |
v3-Standard |
v4-Standard |
|---|---|---|
|
|
|
|
Clientseitiges Äquivalent |
|
|
|
|
|
|
|
Entfernte Konfigurationen¶
Die folgenden Konfigurationseigenschaften von v3 werden in v4 nicht akzeptiert:
snowflake.ingestion.method(v4 verwendet ausschließlich Snowpipe Streaming)buffer.flush.time,buffer.size.bytes,buffer.count.records(verwaltet vom Snowpipe Streaming SDK)snowflake.streaming.max.client.lag(verwaltet vom SDK)snowflake.streaming.enable.single.buffersnowflake.streaming.max.memory.limit.bytessnowflake.streaming.closeChannelsInParallel.enabled(immer parallel in v4)snowflake.streaming.iceberg.enabled(in v4 automatisch erkannt)snowflake.snowpipe.*(Snowpipe ohne Streaming wird nicht unterstützt)enable.streaming.client.optimizationenable.streaming.channel.offset.migration(Migration des internen Kanalnamenformats von v3, nicht erforderlich in v4)snowflake.streaming.channel.name.include.connector.nameenable.streaming.channel.offset.verificationsnowflake.authenticator(nur Schlüsselpaar-Authentifizierung unterstützt)snowflake.oauth.*(OAuth wird in v4 nicht unterstützt)provider
Kundenspezifische Konverter wurden entfernt¶
Die folgenden von Snowflake bereitgestellten benutzerdefinierten Konverter sind in v4 nicht verfügbar:
com.snowflake.kafka.connector.records.SnowflakeJsonConvertercom.snowflake.kafka.connector.records.SnowflakeAvroConvertercom.snowflake.kafka.connector.records.SnowflakeAvroConverterWithoutSchemaRegistry
Verwenden Sie stattdessen Standard-Community-Konverter:
org.apache.kafka.connect.json.JsonConverterio.confluent.connect.avro.AvroConverterio.confluent.connect.protobuf.ProtobufConverter
Authentifizierung¶
v4 unterstützt nur die Authentifizierung mit Schlüsselpaaren. Wenn Sie OAuth mit v3 verwenden, müssen Sie vor der Migration zur Authentifizierung mit einem Schlüsselpaar wechseln.
Schritte zur Migration¶
Grundlegende Änderungen überprüfen: Überprüfen Sie die oben genannten Änderungen und stellen Sie fest, wie sich diese auf Ihre aktuelle Bereitstellung auswirken.
Metadateneinstellungen überprüfen: Bestätigen Sie vor der Migration, dass
snowflake.metadata.topicundsnowflake.metadata.offset.and.partitionin Ihrem v3-Konnektor aktiviert sind (standardmäßig aktiviert). Dadurch wird sichergestellt, dass eine Deduplizierung bei Bedarf möglich ist.Neue Konnektorkonfiguration erstellen: Erstellen Sie eine neue Konfigurationsdatei unter Verwendung der
SnowflakeStreamingSinkConnector-Klasse. Sie können Ihre v3-Konfiguration nicht direkt kopieren, da v4 andere Standardeinstellungen für Schematisierung, Validierung und die Behandlung von Bezeichnern hat. Siehe Snowflake Connector for Kafka: Installation und Konfiguration für die vollständige Konfigurationsreferenz.Kompatibilität und Offset-Migrationseinstellungen konfigurieren: Der v4-Konnektor validiert diese Einstellungen beim Start. Sie müssen explizit Folgendes festlegen:
snowflake.enable.schematization: Setzen Sie dies auftrue(neues v4-Verhalten) oderfalse(v3-Verhalten).snowflake.validation: Setzen Sie dies aufclient_sidefür v3-Kompatibilität oderserver_sidefür v4-Standardwerte.snowflake.compatibility.enable.autogenerated.table.name.sanitization: Setzen Sie dies auftruefür v3-Kompatibilität.snowflake.compatibility.enable.column.identifier.normalization: Setzen Sie dies auftruefür v3-Kompatibilität.snowflake.streaming.classic.offset.migration: Setzen Sie dies aufskipbei Migration vom Snowpipe-Modus oder aufbest_effort/strictbei Migration vom Snowpipe Streaming-Modus.
Weitere Informationen dazu finden Sie unter Validierung der Kompatibilität.
Kundenspezifische Konverter ersetzen: Wenn Sie von Snowflake bereitgestellte Konverter verwenden, ersetzen Sie diese durch die oben aufgeführten Community-Äquivalente.
Folgen Sie dem Migrationspfad für Ihren Datenaufnahmemodus: Siehe Migration vom Snowpipe-Modus oder Migration vom Snowpipe Streaming-Modus oben.
Test mit Beispieldaten: Stellen Sie die neue Konnektorkonfiguration in einer Testumgebung bereit, und überprüfen Sie, ob die Daten korrekt übergeben werden, bevor Sie die Produktions-Workloads migrieren.
V4-Standardwerte inkrementell übernehmen: Sobald Ihre Migration validiert ist, sollten Sie in Erwägung ziehen, schrittweise die v4-Standardeinstellungen zu übernehmen (serverseitige Validierung, Groß-/Kleinschreibung bei Bezeichnern), um die Leistung zu verbessern und die Übereinstimmung mit den Snowflake-Konventionen sicherzustellen.
Empfohlene Migrationskonfigurationen¶
Migration vom v3 Snowpipe-Modus (v3-kompatibel)¶
Die folgende Konfiguration repliziert das v3-Verhalten bei Ausführung auf dem v4-Konnektor für Benutzer, die vom klassischen Snowpipe migrieren:
Migration vom v3 Snowpipe Streaming-Modus (v3-kompatibel)¶
Die folgende Konfiguration repliziert das v3-Verhalten und migriert Offsets von v3 Snowpipe Streaming (SSv1)-Kanälen: