Snowflake High Performance connector for Kafka¶
Unter diesem Thema werden die grundlegenden Konzepte von Snowflake High Performance connector for Kafka beschrieben, seine Anwendungsfälle und Vorteile, die wichtigsten Features, wie er funktioniert sowie seine Einschränkungen.
Bemerkung
Snowflake High Performance connector for Kafka ist ein Sink-Konnektor, der Daten aus Kafka-Topics liest und diese Daten in Snowflake-Tabellen lädt. Weitere Informationen zu Kafka Connect und seinem Framework finden Sie unter Das Apache Kafka und Kafka Connect Framework.
Vorteile¶
Snowflake High Performance connector for Kafka nutzt die von leistungsstarke Snowpipe Streaming-Architektur von Snowflake, die für moderne, datenintensive Unternehmen entwickelt wurde, die Erkenntnisse nahezu in Echtzeit benötigen. Diese Architektur der nächsten Generation verbessert Durchsatz, Effizienz und Flexibilität bei der Echtzeiterfassung in Snowflake erheblich.
Die leistungsstarke Architektur bietet mehrere entscheidende Vorteile:
Überlegener Durchsatz und Latenz: Es ist auf Unterstützung von Erfassungsgeschwindigkeiten von bis zu 10 GB/s pro Tabelle mit End-to-End-Erfassung ausgelegt, um Latenzen innerhalb von 5 bis 10 Sekunden abzufragen und so Analysen nahezu in Echtzeit zu ermöglichen.
Vereinfachte Abrechnung: Sorgt für eine transparente, durchsatzbasierte Abrechnung, die die Kosten vorhersehbar und verständlicher macht.
Verbesserte Performance: Verwendet einen auf Rust basierenden Client-Kern, der im Vergleich zu früheren Implementierungen eine verbesserte clientseitige Performance und einen geringeren Ressourcenverbrauch bietet.
Transformationen während der Ausführung: Unterstützt die Bereinigung und Umstellung von Daten während der Aufnahme anhand der COPY-Befehlssyntax innerhalb des PIPE-Objekts, sodass Sie Daten transformieren können, bevor sie die Zieltabelle erreichen.
Serverseitige Schemavalidierung: Verschiebt die Schemavalidierung über das PIPE-Objekt von der Clientseite auf die Serverseite und stellt so die Datenqualität sicher und reduziert die Client-Komplexität.
Pre-Clustering-Funktion: Kann Daten während der Aufnahme gruppieren, wenn für die Zieltabelle Gruppierungsschlüssel definiert sind, wodurch die Abfrageleistung verbessert wird, ohne dass eine Wartung nach der Datenaufnahme erforderlich ist.
Der Konnektor verwendet Snowflake PIPE-Objekte als zentrale Komponente für die Verwaltung der Datenaufnahme. Das PIPE-Objekt dient als Einstiegspunkt und Definitionsschicht für alle Streaming-Daten und definiert, wie Daten verarbeitet, transformiert und validiert werden, bevor sie in die Zieltabelle übertragen werden. Weitere Informationen darüber, wie der Konnektor mit Tabellen und Pipes funktioniert, finden Sie unter Funktionsweise des Konnektors mit Tabellen und Pipes.
Auswählen einer Konnektorversion¶
Der Kafka-Konnektor wird in einem Kafka Connect-Cluster ausgeführt, liest Daten aus den Kafka-Themen und schreibt in Snowflake-Tabellen.
Snowflake bietet zwei Versionen des Konnektors: Beide Versionen des Konnektors bieten die gleiche Kernfunktionalität für das Streamen von Daten von Kafka in Snowflake.
Confluent-Version des Konnektors
Der leistungsstarke Snowflake-Konnektor für Kafka ist noch nicht auf Confluent Cloud verfügbar. Wenn Sie Confluent Cloud verwenden, müssen Sie den Konnektor manuell als benutzerdefinierten Plugin-Konnektor installieren.
Die Confluent-Version ist für eine einfache Installation über Confluent Hub oder Confluent Control Center gepackt und enthält Optimierungen für die Umgebung der Confluent-Plattform.
Wählen Sie diese Version, wenn Sie die Confluent Platform, das Confluent-Kafka-Docker-Image oder die Confluent Cloud verwenden.
Wenden Sie sich an den Snowflake-Support, um die Confluent-Version des Konnektors zu erhalten und zu installieren.
Weitere Informationen zu Kafka Connect finden Sie unter https://docs.confluent.io/current/connect/.
open source software (OSS) Apache Kafka package https://mvnrepository.com/artifact/com.snowflake/snowflake-kafka-connector/ – OSS Apache Kafka-Version des Konnektors.
Die Apache -Version wird als standardmäßige JAR-Datei verteilt und erfordert eine manuelle Installation in Ihrem Apache Kafka Connect-Cluster. Wählen Sie diese Version, wenn Sie Apache Kafka ausführen.
Weitere Informationen zu Apache Kafka finden Sie unter https://kafka.apache.org/.
Einschränkungen¶
Snowflake High Performance connector for Kafka weist folgende Einschränkungen auf:
- Erstellen der Tabellen:
Die Zieltabellen müssen vor dem Starten des Konnektors manuell erstellt werden. Der Konnektor erstellt Tabellen nicht automatisch.
- Migration von Version 3.x und früher
Sie können Ihre vorhandenen Pipelines manuell von Version 3.x und früher auf den neuen Konnektor migrieren. Stellen Sie sicher, dass Ihre bestehenden Pipelines nicht auf Features angewiesen sind, die mit dem neuen Konnektor noch nicht verfügbar sind.
- Stabilität der Konfiguration
Die Namen der Konfigurationsparameter können sich während der Phase der privaten Vorschau ändern. Alle von Ihnen verwendeten Konfigurationsparameter können vor der öffentlichen Vorschau umbenannt oder umstrukturiert werden. Snowflake bietet eine Migrationsanleitung, wenn sich Parameternamen ändern.
Einschränkungen für Kafka-Konnektor¶
- Migration bestehender Pipelines von Version 3.x und niedriger
Der Konnektor unterstützt nicht die Migration der bestehenden Pipelines von Version 3.x und niedriger. Sie müssen die vorhandenen Pipelines manuell auf den neuen Konnektor migrieren.
- Single Message Transformations (SMTs):
Die meisten Singe Message Transformations (SMTs) werden bei der Verwendung von Community-Konvertern unterstützt, mit Ausnahme von
regex.router, der derzeit nicht unterstützt wird.
Weitere Informationen über SMTs finden Sie unter Kafka Connect Single Message Transform Reference for Confluent Cloud or Confluent Platform.
Unterstützte Kafka-Version¶
Wichtig
Nur bestimmte Versionen des Konnektors werden nicht unterstützt. Die unterstützten Versionen sowie Informationen zu Pre-Releases und Release-Kandidaten finden Sie in der Tabelle unten.
Release-Serie |
Status |
Anmerkungen |
|---|---|---|
4.x.x |
Private Vorschau |
Frühzeitiger Zugriff. Derzeit wird die Migration von den Versionen 3.x und 2.x nicht unterstützt. |
3.x.x |
Offiziell unterstützt |
Neueste Version und dringend empfohlen. |
2.x.x |
Offiziell unterstützt |
Upgrade empfohlen. |
1.x.x |
Nicht unterstützt |
Verwenden Sie diese Release-Serie nicht. |
Nicht unterstützte Features¶
Die folgenden Features werden nicht unterstützt:
- Schemaentwicklung
Die Schemaentwicklung wird nicht unterstützt. Sie müssen Schemaänderungen manuell verwalten. Weitere Informationen dazu finden Sie unter Schemaentwicklung.
- Iceberg-Tabellen
Die Aufnahme in Iceberg-Tabellen wird nicht unterstützt.
- Automatische Tabellenerstellung
Der Konnektor erstellt Tabellen nicht automatisch. Sie müssen die Tabellen vor dem Starten des Konnektors manuell erstellen.
Beschädigte Datensätze werden vom Konnektor nicht an die Dead Letter Queue (DLQ) gesendet
Wenn Sie
errors.tolerance=allunderrors.deadletterqueue.topic.namefestlegen, werden nur nicht konvertierbare Datensätze durch den Fehlerhandler auf Kafka Connect-Ebene an die DLQ gesendet. Wenn der Datensatz an den Konnektor übergeben wird und er nicht in Snowflake aufgenommen werden kann, wird er nicht an die DLQ gesendet. Dies ist eine bestehende Einschränkung für Snowpipe Streaming High Performance. Der Konnektor kann nicht erkennen, welche Datensätze nicht in Snowflake aufgenommen wurden. Er kann nur feststellen, dass eine bestimmte Anzahl von Datensätzen nicht aufgenommen wurde. Aus diesem Grund wird mit demerrors.tolerance=all-Parameter für den Konnektor nur eine höchstens einmalige Zustellung garantiert.
- Für beschädigte Datensätze, die nicht erfasst wurden, muss ein neuer Versuch vorgenommen werden.
Wenn Sie
errors.tolerance=nonefestlegen, lässt der Konnektor die Aufgabe fehlschlagen, sobald er erkennt, dassrows_error_countim Kanalstatus größer als 0 ist. Um einen erneuten Versuch für defekte Datensätze zu unternehmen, muss der Benutzer diese finden, indem er den Kanalverlauf überprüft. Weitere Informationen zur Problembehandlung bei defekten Datensätzen und Datenaufnahmefehlern finden Sie unter Fehlerbehandlung. Sie können auch die unter Metadaten-Offsets zum Erkennen und Wiederherstellen von Fehlern verwenden beschriebene Lückensuchmethode verwenden. Die für die Verwendung dieser Technik benötigten Informationen zum Kafka-Offset sind in der SpalteRECORD_METADATAverfügbar.
Externalisieren von Geheimnissen¶
Snowflake empfiehlt dringend, Geheimnisse wie den privaten Schlüssel zu externalisieren und in verschlüsselter Form bzw. in einem Schlüsselverwaltungsdienst wie AWS KMS, Azure Key Vault oder HashiCorp Vault zu speichern. Dies kann mithilfe einer ConfigProvider-Implementierung in Ihrem Kafka Connect-Cluster erreicht werden.
Weitere Informationen dazu finden Sie in der Beschreibung des Confluent-Dienstes.
Cache-Hinweise für Testen und Prototyping¶
Der Konnektor speichert Überprüfungen auf das Vorhandensein von Tabellen und Pipes im Cache, um die Performance beim Rebalancing von Partitionen zu verbessern. Beim Testen und beim Prototyping kann dieses Caching-Verhalten jedoch dazu führen, dass der Konnektor manuell erstellte Tabellen oder Pipes nicht sofort erkennt.
Problem: Wenn Sie eine Tabelle oder Pipe manuell erstellen, während der Konnektor ausgeführt wird, kann der Konnektor standardmäßig bis zu 5 Minuten lang zwischengespeicherte Ergebnisse der Existenzprüfung verwenden (die darauf hinweisen können, dass das Objekt nicht existiert). Dies kann zu unerwarteten Fehlern oder Verhaltensweisen beim Testen führen.
Empfehlung zum Testen: Um Cache-bezogene Probleme während des Testens und Prototyping zu vermeiden, konfigurieren Sie für beide Parameter für den Cacheablauf den Mindestwert von 1 Millisekunden, oder deaktivieren Sie das Caching:
snowflake.cache.table.exists.expire.ms=1
snowflake.cache.pipe.exists.expire.ms=1
Diese Konfiguration stellt sicher, dass der Konnektor bei jedem Neuausgleichen einer Partition neue Existenzprüfungen durchführt, sodass Sie die Auswirkungen von manuell erstellten Tabellen und Pipes sofort sehen können.
Wichtig
Diese minimalen Cache-Einstellungen werden nur für Tests und Prototyping empfohlen. Verwenden Sie in Produktionsumgebungen die Standardwerte für den Cache-Ablauf (5 Minuten oder mehr), um Metadaten-Abfragen an Snowflake zu minimieren und die Performance beim Neuausgleichen zu verbessern, insbesondere wenn Sie viele Partitionen verarbeiten.
Grundlegende Änderungen in der Private Preview-Version¶
Eine Liste der grundlegenden Änderungen finden Sie in den Versionshinweisen der Private Preview-Versionen
Nächste Schritte¶
Sehen Sie sich das Einrichten von Aufgaben für den Snowflake High Performance connector for Kafka-Thema an, um eine Anleitung zum Einrichten von Snowflake High Performance connector for Kafka zu erhalten. . Sehen Sie sich das Thema zur Funktionsweise des Konnektors an, um weitere Informationen dazu zu erhalten, wie der Konnektor mit Tabellen und Pipes funktioniert.