Performance-Optimierung von Openflow Connector for Amazon Kinesis Data Streams¶
Bemerkung
Dieser Connector unterliegt den `Nutzungsbedingungen für Snowflake Connector<https://www.snowflake.com/legal/snowflake-connector-terms/>`_.
Wenn Sie den Openflow-Konnektor für Kinesis für optimale Leistung konfigurieren, berücksichtigen Sie die folgenden Schlüsselfaktoren, die sich auf den Durchsatz und die Latenz der Datenaufnahme auswirken.
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¶
Eine geringere Latenzzeit zwischen Kinesis und Openflow verbessert die Gesamtleistung. Es wird dringend empfohlen, dass sich Ihr Kinesis Stream und Openflow in der gleichen Clouddienstanbieter (CSP)-Region befinden.
Empfehlungen zur Knotengröße¶
Die folgende Tabelle enthält Konfigurationsempfehlungen auf der Grundlage der erwarteten Workload-Eigenschaften. Die Durchsatzwerte sind relativ und hängen stark von der Konfiguration des Quellsystems, den Größen der Themen und Streams, dem Datenformat und anderen Faktoren ab.
Knotengröße |
Empfohlen für |
Meldungsratenkapazität |
|---|---|---|
Klein (S) |
Szenarien mit niedrigem bis mittlerem Durchsatz |
Bis zu 27 MB/s pro Knoten |
Mittel (M) |
Szenarien mit mittlerem bis hohem Durchsatz |
Bis zu 135 MB/s pro Knoten |
Groß (L) |
Szenarien mit hohem Durchsatz |
Über 135 MB/s pro Knoten Bis zu 310 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 ConsumeKinesis- 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 Configure aus dem Kontextmenü.
Navigieren Sie zur Registerkarte Scheduling.
Geben Sie in das Feld Concurrent tasks die gewünschte Anzahl gleichzeitiger Aufgaben ein.
Wählen Sie Apply, um die Konfiguration zu speichern.
Empfohlene Einstellungen für gleichzeitige Aufgaben¶
Knotengröße |
ConsumeKinesis Aufgaben |
PublishSnowpipeStreaming Aufgaben |
|---|---|---|
Klein (S) |
2 |
1 |
Mittel (M) |
4 |
2 |
Groß (L) |
6 |
3 |
Wichtige Hinweise¶
Arbeitsspeichernutzung: Jede gleichzeitige Aufgabe verbraucht zusätzlichen Speicher. Überwachen Sie die JVM-Nutzung bei Erhöhung der parallelen Aufgaben.
Vorsichtig starten: Beginnen Sie mit niedrigeren Werten, und erhöhen Sie diese schrittweise unter Überwachung der Leistungsmetriken.
Beheben allgemeiner Leistungsengpässe¶
Hohe Verbraucherverzögerung oder Engpässe bei der Snowflake-Datenaufnahme¶
Wenn die Verzögerung des Kinesis-Verbrauchers zunimmt oder die Snowflake-Datenaufnahme langsam ist, führen Sie die folgenden Aufgaben aus:
Überprüfen Sie die Netzwerkkonnektivität und die Bandbreite zwischen Openflow und Kinesis.
Beobachten Sie, ob die Warteschlange vor dem PublishSnowpipeStreaming-Prozessor zunimmt.
Wenn ja, sollten Sie weitere parallele Aufgaben für den PublishSnowpipeStreaming-Prozessor innerhalb der unter Anpassen der Parallelaufgaben des Prozessors angegebenen Bereichsbeschränkungen hinzufügen.
Wenn nicht, können Sie weitere parallele Aufgaben für den ConsumeKinesis-Prozessor innerhalb der unter Anpassen der Parallelaufgaben des Prozessors angegebenen Bereichsbeschränkungen hinzufügen.
Ziehen Sie die Verwendung eines größeren Knotentyps in Betracht.
Ziehen Sie in Erwägung, die Anzahl der Knoten für die Laufzeitumgebung zu erhöhen. Dies kann durch Anhalten der Konnektoren zur Laufzeit erfolgen. Ändern Sie die Mindest- und Höchstgröße des Knotens und starten Sie die Konnektoren erneut.
Speicherauslastung¶
Wenn Probleme mit dem Speicher auftreten:
Reduzieren Sie die Batchgrößen, um den Speicherbedarf zu verringern. Dies kann durch Ändern der Parameter Dateifragmentgröße und Dateifragmentanzahl im PublishSnowpipeStreaming-Prozessor erfolgen.
Reduzieren Sie die Anzahl der gleichzeitigen Aufgaben für den ConsumeKinesis-Prozessor.
Ziehen Sie die Verwendung eines größeren Knotentyps in Betracht.
Probleme mit der Netzwerklatenz¶
Wenn eine hohe Latenz auftritt:
Überprüfen Sie die Netzwerkkonfiguration zwischen Openflow und externen Systemen.
Erwägen Sie, Openflow in derselben Region wie Ihren Kinesis-Stream bereitzustellen.
Bei geringem Durchsatz sollten Sie in Betracht ziehen, die Client-Lag-Einstellungen im PublishSnowpipeStreaming-Prozessor und die maximale Zeit ohne Commit im ConsumeKinesis-Prozessor zu verringern.