PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm cách nào để lệnh sao chép tiếp tục chạy trong dịch chuyển đỏ ngay cả sau khi hàm lambda khởi xướng nó đã hết thời gian chờ?

Tài liệu AWS không rõ ràng về những gì sẽ xảy ra khi thời gian chờ xảy ra. Nhưng tôi nghĩ có thể an toàn khi nói rằng nó chuyển sang giai đoạn "Tắt máy", tại thời điểm đó vùng chứa thời gian chạy bị buộc kết thúc bởi môi trường.

Điều này có nghĩa là kết nối ổ cắm được sử dụng bởi kết nối cơ sở dữ liệu sẽ bị đóng và quá trình Redshift đang lắng nghe ổ cắm đó sẽ nhận được phần cuối của tệp - ngắt kết nối máy khách. Hành vi bình thường của bất kỳ cơ sở dữ liệu nào trong trường hợp này là chấm dứt bất kỳ truy vấn nào còn tồn đọng và khôi phục các giao dịch của chúng.

Lý do mà tôi đưa ra mô tả đó là để cho bạn biết rằng bạn không thể mở rộng vòng đời của một truy vấn ngoài vòng đời của Lambda khởi tạo truy vấn đó. Nếu bạn muốn tiếp tục sử dụng thư viện kết nối cơ sở dữ liệu, bạn sẽ cần sử dụng dịch vụ không hết thời gian chờ:AWS Batch hoặc ECS là hai tùy chọn.

Tuy nhiên, có một tùy chọn tốt hơn: API dữ liệu Redshift , được hỗ trợ bởi Boto3 .

API này hoạt động không đồng bộ:bạn gửi một truy vấn đến Redshift và nhận một mã thông báo có thể được sử dụng để kiểm tra hoạt động của truy vấn. Bạn cũng có thể hướng dẫn Redshift gửi thông báo tới AWS Eventbridge khi truy vấn hoàn thành / không thành công (vì vậy bạn có thể tạo một Lambda khác để thực hiện hành động thích hợp).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả về từ một hàm có tham số OUT

  2. Làm thế nào để cào db:thả và cào db:tạo trên Heroku?

  3. Làm cách nào để tạo phân vùng cửa sổ được đặt tên (bí danh) trong PostgreSQL?

  4. Có cách nào để đột nhập vào cơ sở dữ liệu PostgreSQL nếu bạn quên mật khẩu không?

  5. org.postgresql.util.PSQLException:LỖI:cột user0_.id không tồn tại - Hibernate