PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana cara membuat perintah salin terus berjalan di pergeseran merah bahkan setelah fungsi lambda yang memulainya telah habis?

Dokumentasi AWS tidak eksplisit tentang apa yang terjadi ketika batas waktu terjadi. Tapi saya rasa aman untuk mengatakan bahwa transisi ke fase "Shutdown", di mana runtime container dihentikan secara paksa oleh lingkungan.

Artinya, koneksi soket yang digunakan oleh koneksi basis data akan ditutup, dan proses Redshift yang mendengarkan soket tersebut akan menerima file akhir -- pemutusan klien. Perilaku normal dari basis data apa pun dalam situasi ini adalah menghentikan kueri yang belum diselesaikan dan mengembalikan transaksinya.

Alasan saya memberikan deskripsi itu adalah untuk memberi tahu Anda bahwa Anda tidak bisa memperpanjang umur kueri di luar masa pakai Lambda yang memulai kueri itu. Jika Anda ingin tetap menggunakan perpustakaan koneksi database, Anda harus menggunakan layanan yang tidak memiliki batas waktu:AWS Batch atau ECS adalah dua opsi.

Namun, ada opsi yang lebih baik:API Data Redshift , yang didukung oleh Boto3 .

API ini beroperasi secara asinkron:Anda mengirimkan kueri ke Redshift, dan mendapatkan token yang dapat digunakan untuk memeriksa operasi kueri. Anda juga dapat menginstruksikan Redshift untuk mengirim pesan ke AWS Eventbridge saat kueri selesai/gagal (sehingga Anda dapat membuat Lambda lain untuk mengambil tindakan yang sesuai).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tunggu beberapa koneksi db sebelum memulai server ekspres?

  2. Apa urutan default dari daftar yang dikembalikan dari panggilan filter Django?

  3. Bagaimana cara menyimpan file gambar pada database Postgres?

  4. PostgreSQL:nilai kunci duplikat melanggar batasan unik pada perintah UPDATE

  5. Buat batasan unik dengan kolom nol