Leistungsoptimierung des Openflow Connector für Kafka¶
Bemerkung
Dieser Connector unterliegt den `Nutzungsbedingungen für Snowflake Connector<https://www.snowflake.com/legal/snowflake-connector-terms/>`_.
Dieses Thema enthält Anleitungen zur Optimierung der Leistung von Snowflake Openflow Connector for Kafka, um einen optimalen Durchsatz zu erzielen und die Latenzzeit bei der Datenaufnahme in Snowflake zu minimieren.
Hinweise zur Performance¶
Wenn Sie den Openflow Connector für Kafka für eine optimale Leistung konfigurieren, sollten Sie die folgenden Schlüsselfaktoren berücksichtigen, die sich auf den Datenaufnahmedurchsatz und die Latenzzeit auswirken:
Kafka-Konfiguration¶
Anzahl der Partitionen¶
Weitere Partitionen ermöglichen eine höhere Parallelität, erfordern jedoch eine sorgfältige Koordination der Konfiguration des Verbrauchers. Übermäßige Partitionen können mehrere Probleme verursachen: erhöhter Speicherverbrauch, langsamere Leader-Wahlen bei Ausfällen und erheblicher Overhead bei der Metadatenverwaltung auf Brokern.
Kompression¶
Die Meldungskomprimierung kann die Netzwerkbandbreite reduzieren, erhöht jedoch die CPU-Auslastung.
FlowFile-Optimierung¶
FlowFile-Größe¶
Für eine optimale Leistung sollten FlowFiles im Bereich von 1–10 MB liegen und nicht einzelne kleine Meldungen enthalten. Größere Flowfiles reduzieren den Verarbeitungsaufwand und verbessern den Durchsatz, indem sie die Anzahl der einzelnen Dateioperationen minimieren. Die Standardeinstellungen sollten FlowFiles in einem akzeptablen Größenbereich ergeben. Bei geringem Durchsatz sind kleine Flowfiles zu erwarten.
Wenn Sie kleine Flowfiles mit hohem Durchsatz beobachten, wenden Sie sich an den Snowflake-Support.
Netzwerk und Infrastruktur¶
Netzwerklatenz¶
Geringere Latenz zwischen Kafka-Brokern und Openflow verbessert die Gesamtleistung. Snowflake empfiehlt, Kafka-Broker und Openflow in derselben CSP-Region bereitzustellen.
Empfehlungen zur Knotengröße¶
Die folgende Tabelle enthält Konfigurationsempfehlungen auf der Grundlage der erwarteten Workload-Eigenschaften:
Knotengröße |
Empfohlen für |
Meldungsratenkapazität |
|---|---|---|
Klein (S) |
Szenarien mit niedrigem bis mittlerem Durchsatz |
Bis zu 18 MB/s pro Knoten |
Mittel (M) |
Szenarien mit mittlerem bis hohem Durchsatz |
Bis zu 145 MB/s pro Knoten |
Groß (L) |
Szenarien mit hohem Durchsatz |
Bis zu 250 MB/s pro Knoten |
Best Practices zur Leistungsoptimierung¶
Anpassen der gleichzeitigen Aufgaben des Prozessors¶
Um die Prozessorleistung zu optimieren, können Sie die Anzahl der gleichzeitigen Tasks für ConsumeKafka- und PublishSnowpipeStreaming-Prozessoren anpassen. Gleichzeitige Aufgaben ermöglichen es Prozessoren, mehrere Threads gleichzeitig auszuführen, was den Durchsatz in Szenarios mit hohem Volumen verbessert.
Um die gleichzeitigen Aufgaben für einen Prozessor anzupassen, führen Sie die folgenden Aufgaben aus:
Klicken Sie mit der rechten Maustaste auf den Prozessor im Openflow-Canvas.
Wählen Sie im Kontextmenü „Konfigurieren“ aus.
Navigieren Sie zur Registerkarte „Scheduling“.
Geben Sie im Feld „gleichzeitige Aufgaben“ die gewünschte Anzahl der gleichzeitigen Aufgaben ein.
Wählen Sie Anwenden, um die Konfiguration zu speichern.
Empfohlene Einstellungen für gleichzeitige Aufgaben¶
Die folgende Tabelle enthält empfohlene Einstellungen für gleichzeitige Aufgaben für verschiedene Knotengrößen:
Knotengröße |
ConsumeKafka Tasks |
PublishSnowpipeStreaming Aufgaben |
|---|---|---|
Klein (S) |
1 |
1 |
Mittel (M) |
4 |
2 |
Groß (L) |
8 |
2 |
Wichtige Hinweise¶
- Speicherverbrauch
Jede gleichzeitig ausgeführte Aufgabe verbraucht zusätzlichen Speicherplatz. Überwachen Sie die JVM-Heap-Nutzung, wenn Sie die Anzahl gleichzeitiger Aufgaben erhöhen.
- Kafka-Partitionen
Für ConsumeKafka sollte die Anzahl der gleichzeitigen Tasks multipliziert mit der Anzahl der Laufzeitknoten die Gesamtanzahl der Kafka-Partitionen aus allen Topics nicht überschreiten.
- Beginnen Sie vorsichtig
Beginnen Sie mit niedrigeren Werten und erhöhen Sie diese schrittweise, während Sie die Leistungskennzahlen überwachen.
Problembehandlung bei Leistungsproblemen: Häufige Leistungsengpässe¶
Hohe Verbraucherverzögerung oder Engpässe bei der Snowflake-Datenaufnahme¶
Wenn die Verzögerung der Kafka-Verbraucher zunimmt oder die Snowflake-Datenaufnahme langsam ist, führen Sie die folgenden Aufgaben durch:
Überprüfen Sie die Konnektivität und Bandbreite des Netzwerks zwischen Openflow und Kafka-Brokern.
Beobachten Sie, ob die Warteschlange vor dem PublishSnowpipeStreaming-Prozessor zunimmt.
Wenn ja, erwägen Sie, weitere gleichzeitige Tasks für den PublishSnowpipeStreaming-Prozessor im Rahmen der in Empfohlene Einstellungen für gleichzeitige Aufgaben angegebenen Begrenzungen hinzuzufügen.
Wenn nicht, erwägen Sie, weitere gleichzeitige Tasks für den ConsumeKafka-Prozessor im Rahmen der in Empfohlene Einstellungen für gleichzeitige Aufgaben angegebenen Begrenzungen hinzuzufügen.
Ziehen Sie die Verwendung eines größeren Knotentyps in Betracht.
Erwägen Sie, die maximale Anzahl von Knoten für die Laufzeit zu erhöhen.
Speicherauslastung¶
Wenn Probleme mit dem Speicher auftreten:
Reduzieren Sie die Batchgrößen, um den Speicherbedarf zu verringern.
Reduzieren Sie die Anzahl der gleichzeitigen Aufgaben für den ConsumeKafka-Prozessor.
Ziehen Sie ein Upgrade auf einen größeren Knotentyp in Betracht.
Probleme mit der Netzwerklatenz¶
Wenn eine hohe Latenz auftritt:
Überprüfen Sie die Netzwerkkonfiguration zwischen Openflow und externen Systemen.
Ziehen Sie in Betracht, Openflow näher an Ihrem Kafka-Cluster zu installieren.
Bei geringem Durchsatz sollten Sie in Betracht ziehen, die Client-Lag-Einstellungen im PublishSnowpipeStreaming-Prozessor und die maximale uncommittete Zeit im ConsumeKafka-Prozessor zu verringern.