Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Muatkan data dari S3 ke dalam Snowflake dan panggil lambda dalam 1 dengan 1 pesanan

Muatkan data dari S3 ke dalam Snowflake dan panggil lambda dalam 1 dengan 1 pesanan

王林
王林ke hadapan
2024-02-09 11:00:041173semak imbas

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

Kandungan soalan

Saya cuba memuatkan data daripada folder baldi S3 ke jadual kepingan salji menggunakan lambda. Saya menyediakan pencetus S3 di mana fail saya diserap dan membentuk penyepaduan antara lambda dan kepingan salji untuk memuatkan fail masuk ke dalam s3 saya ke dalam jadual kepingan salji.

Masalahnya ialah terdapat 1000 fail ditarik ke dalam folder S3 saya dan kesesakan berlaku antara kepingan salji dan lambda saya. Saya sedang mencari cara apabila 1000 fail diserap ke dalam baldi S3 saya, lambda harus memproses satu fail pada satu masa. Selepas memuatkan fail pertama, hanya ia memproses fail seterusnya mengikut urutan. Contohnya: Sama ada terima pengesahan daripada Snowflake atau terima pengesahan padanya.


Jawapan Betul


Anda boleh mengkonfigurasi fungsi AWS Lambda untuk mempunyai Reserved Concurrency - AWS Lambda:

Dengan menetapkan Reserved Concurrency = 1, hanya satu tika fungsi Lambda akan dijalankan pada satu masa. Bergantung pada konfigurasi Snowflake anda, anda boleh memilih untuk meningkatkan ini kepada 2 atau 3 untuk memproses fail dengan lebih pantas tanpa mengeringkan Snowflake.

Anda juga boleh mengkonfigurasi saiz kelompok, iaitu bilangan maksimum acara yang dihantar ke fungsi. Jika S3 menghantar berbilang fail ke contoh Lambda yang sama, kod anda boleh melingkari peristiwa dan memproses berbilang fail pada setiap permohonan.

Saya cuma sedikit bimbang jika anda mencipta banyak objek dan fungsi Lambda dihadkan oleh kiraan serentak 1, panggilan S3 ke Lambda mungkin menyebabkan tamat masa selepas beberapa kali percubaan semula. Jika ya, anda harus:

  • Konfigurasikan S3 untuk menghantar acara ke baris gilir Amazon SQS (bukan terus ke fungsi Lambda), dan
  • Konfigurasikan Lambda untuk tarik mesej daripada baris gilir SQS

Dengan cara ini, mesej akan dibariskan dengan selamat dan bukannya (mungkin) tamat masa kerana fail tertunggak yang besar.

Atas ialah kandungan terperinci Muatkan data dari S3 ke dalam Snowflake dan panggil lambda dalam 1 dengan 1 pesanan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam