Sechs Tipps und Tricks zur Optimierung der SnapLogic-Pipeline-Leistung

3 Minuten lesen

Mit über 500 Snaps, die auf der SnapLogic-Plattform zur Verfügung stehen, kann die Strukturierung einer datenintensiven Pipeline für eine optimale Leistung eine Kunst sein. Wie die Versionshinweise für unsere letzten Releases zeigen, haben wir intern an der Optimierung der Leistung gearbeitet. Dabei haben wir Möglichkeiten zur Verbesserung der Pipeline-Leistung entdeckt.

In diesem Blogbeitrag konzentrieren wir uns auf Tipps, wie Sie Ihre Ziele mit möglichst wenigen Operationen erreichen können. Die Minimierung der durchgeführten Operationen mag offensichtlich erscheinen, aber selbst erfahrene Pipeline-Entwickler hier bei SnapLogic sind dafür bekannt, dass sie es vermasseln.

Im Folgenden finden Sie einige dieser Tipps zur Optimierung der Pipeline-Leistung, grob geordnet in der Reihenfolge ihres Schwierigkeitsgrades:

  1. Filtern Sie vor der Verknüpfung und nicht danach, wenn möglich. Weniger zu verknüpfende Daten (eine der teureren Operationen) bedeuten schnellere Verknüpfungen.
  1. Verwenden Sie einen Sortier-Snap unmittelbar vor einem Join-Snap - dies verbessert die Speichernutzung und die Leistung.
  1. Wenn Sie Felder aus Dokumenten löschen wollen, sollten Sie dies so bald wie möglich tun, da Sie dann Speicherplatz sparen.
  1. Ziehen Sie bei Ausdrücken einfachere Ausdrücke komplexeren vor (wenn Sie z. B. die Wahl zwischen einem einfachen String split() und einem Regex haben, wählen Sie den Split).
  1. Wenn möglich, verwenden Sie Snaps anstelle der Expression Language. Wenn Sie z. B. die Verarbeitung von Dokumenten verzweigen, sollten Sie einen Router anstelle eines Mappers mit einer Reihe von Ternaries verwenden. Es wird einfacher sein, dem Fluss zu folgen, und Sie können sich einen Haufen wiederholten Codes sparen.For example, you could do a transform to handle numbers via a mapper with the expression:$value <= 0 ? Math.abs($value) : ($value % 2 == 0 ? $value * 2 : ($value % 2 == 1 ? $value + 2 : null )) .Or you could use the pipeline below, which most people think is clearer and more maintainable. You also get four threads doing the computation (one per mapper), though you do pick up overhead owing to the Union and Sort. Still, using Snaps instead of the Expression Language is a good rule to follow when possible.
  1. Einige fortgeschrittene Benutzer verwenden eine in JavaScript verbreitete Technik zur Auswahl von Werten:expr1 || expr2 || ... || exprn

    Dies ist nur die ODER-Verknüpfung einer Reihe von Ausdrücken. Im Allgemeinen sehen Sie dies mit einer Funktion wie Date.parse(). Da ein Datum auf mehrere Arten dargestellt werden kann, müssen Sie möglicherweise mehrere verschiedene Darstellungsstrings ausprobieren, um den richtigen zu finden. Die SnapLogic-Ausdruckssprache verfügt wie JavaScript über ein kurzgeschlossenes ODER (||). Das bedeutet, dass der erste Ausdruck, der wahrheitsgemäß ausgewertet wird, genommen wird (von links nach rechts gelesen) und keine weitere Ausführung stattfindet. Wenn Sie also dieses Muster verwenden, versuchen Sie, die Ausdrücke in absteigender Reihenfolge der Ausführungshäufigkeit anzuordnen.

Bitte besuchen Sie das SnapLogic-Gemeinschaftsforum da SnapLogic-Benutzer und -Mitarbeiter regelmäßig Tipps und Anregungen geben. Die Wahrscheinlichkeit ist groß, dass jemand aus der SnapLogic-Community die Herausforderung(en), vor denen Sie stehen, bereits gelöst hat. Darüber hinaus sind die Produkt- und Technik-Teams immer daran interessiert, die Probleme unserer Kunden zu verstehen und helfen Ihnen gerne über die SnapLogic Community.

Ehemaliger Senior Data Scientist bei SnapLogic
Kategorie: Produkt

Wir stellen ein!

Entdecken Sie Ihre nächste große Karrierechance.