Laden Sie Daten von S3 in Snowflake und rufen Sie Lambdas in der Reihenfolge 1 nach 1 auf

王林
Freigeben: 2024-02-09 11:00:04
nach vorne
1170 Leute haben es durchsucht

将数据从 S3 加载到 Snowflake,并按 1 by 1 的顺序调用 lambda

Frageninhalt

Ich versuche, Daten aus einem S3-Bucket-Ordner mit Lambda in eine Snowflake-Tabelle zu laden. Ich habe einen S3-Trigger eingerichtet, in dem meine Dateien aufgenommen werden, und eine Integration zwischen Lambda und Snowflake erstellt, um die eingehenden Dateien in meinem S3 in eine Snowflake-Tabelle zu laden.

Das Problem ist, dass 1000 Dateien in meinen S3-Ordner gezogen werden und sich zwischen meiner Schneeflocke und meinem Lambda eine Überlastung bildet. Ich suche nach einer Möglichkeit, dass das Lambda jeweils eine Datei verarbeitet, wenn 1000 Dateien in meinen S3-Bucket aufgenommen werden. Nach dem Laden der ersten Datei wird nur die nächste Datei der Reihe nach verarbeitet. Zum Beispiel: Entweder eine Bestätigung von Snowflake erhalten oder eine Bestätigung darüber erhalten.


Richtige Antwort


Sie können eine AWS Lambda-Funktion so konfigurieren, dass sie Reservierte Parallelität – AWS Lambda hat:

Durch die Einstellung Reserved Concurrency = 1 wird jeweils nur eine Lambda-Funktionsinstanz ausgeführt. Abhängig von Ihrer Snowflake-Konfiguration können Sie diesen Wert auf 2 oder 3 erhöhen, um Dateien schneller zu verarbeiten, ohne Snowflake zu überfordern.

Sie können auch die Batchgröße konfigurieren, die die maximale Anzahl von Ereignissen darstellt, die an die Funktion übergeben werden. Wenn S3 mehrere Dateien an dieselbe Lambda-Instanz sendet, kann Ihr Code die Ereignisse durchlaufen und bei jedem Aufruf mehrere Dateien verarbeiten.

Ich mache mir nur ein wenig Sorgen, dass der S3-Aufruf an Lambda nach mehreren Wiederholungsversuchen zu einer Zeitüberschreitung führen könnte, wenn Sie viele Objekte erstellen und die Lambda-Funktion durch die Parallelitätsanzahl von 1 begrenzt ist. Wenn ja, sollten Sie:

  • Konfigurieren Sie S3 so, dass Ereignisse an eine Amazon SQS-Warteschlange (anstatt direkt an eine Lambda-Funktion) gesendet werden, und
  • Konfigurieren Sie Lambda, um Nachrichten aus der SQS-Warteschlange abzurufen

Auf diese Weise werden Nachrichten sicher in die Warteschlange gestellt, anstatt (möglicherweise) aufgrund großer Dateirückstände eine Zeitüberschreitung zu verursachen.

Das obige ist der detaillierte Inhalt vonLaden Sie Daten von S3 in Snowflake und rufen Sie Lambdas in der Reihenfolge 1 nach 1 auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!