Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Contoh penulisan bersamaan
Contoh kode semu berikut menunjukkan bagaimana transaksi berjalan atau menunggu ketika dijalankan secara bersamaan.
Contoh penulisan bersamaan dengan isolasi yang dapat diserialkan
Operasi COPY bersamaan ke dalam tabel yang sama dengan isolasi yang dapat diserialkan
Transaksi 1 menyalin baris ke tabel LISTING:
begin; copy listing from ...; end;
Transaksi 2 dimulai secara bersamaan dalam sesi terpisah dan mencoba menyalin lebih banyak baris ke tabel LISTING. Transaksi 2 harus menunggu sampai transaksi 1 melepaskan kunci tulis pada tabel LISTING, kemudian dapat dilanjutkan.
begin; [waits] copy listing from ; end;
Perilaku yang sama akan terjadi jika salah satu atau kedua transaksi berisi perintah INSERT alih-alih perintah COPY.
Operasi DELETE bersamaan dari tabel yang sama dengan isolasi yang dapat diserialkan
Transaksi 1 menghapus baris dari tabel:
begin; delete from listing where ...; end;
Transaksi 2 dimulai secara bersamaan dan mencoba menghapus baris dari tabel yang sama. Ini akan berhasil karena menunggu transaksi 1 selesai sebelum mencoba menghapus baris.
begin [waits] delete from listing where ; end;
Perilaku yang sama akan terjadi jika salah satu atau kedua transaksi berisi perintah UPDATE ke tabel yang sama alih-alih perintah DELETE.
Transaksi bersamaan dengan campuran operasi baca dan tulis dengan isolasi yang dapat diserialkan
Dalam contoh ini, transaksi 1 menghapus baris dari tabel USERS, memuat ulang tabel, menjalankan kueri COUNT (*), dan kemudian ANALYSIS, sebelum melakukan:
begin; delete one row from USERS table; copy ; select count(*) from users; analyze ; end;
Sementara itu, transaksi 2 dimulai. Transaksi ini mencoba menyalin baris tambahan ke tabel USERS, menganalisis tabel, dan kemudian menjalankan kueri COUNT (*) yang sama dengan transaksi pertama:
begin; [waits] copy users from ...; select count(*) from users; analyze; end;
Transaksi kedua akan berhasil karena harus menunggu yang pertama selesai. Kueri COUNT-nya akan mengembalikan hitungan berdasarkan beban yang telah diselesaikan.
Contoh penulisan bersamaan dengan isolasi snapshot
Operasi COPY bersamaan ke tabel yang sama dengan isolasi snapshot
Transaksi 1 menyalin baris ke tabel LISTING:
begin; copy listing from ...; end;
Transaksi 2 dimulai secara bersamaan dalam sesi terpisah dan mencoba menyalin lebih banyak baris ke tabel LISTING. Transaksi 2 dapat berlangsung secara bersamaan sampai salah satu transaksi perlu menulis data ke tabel targetlisting, di mana mereka akan berjalan secara berurutan.
begin; //When the COPY statement from T1 needs to write data to the table, the COPY statement from T2 waits. copy listing from ...; end;
Perilaku yang sama akan terjadi jika salah satu atau kedua transaksi berisi perintah INSERT alih-alih perintah COPY.
Operasi DELETE bersamaan dari tabel yang sama dengan isolasi snapshot
Operasi DELETE atau UPDATE bersamaan dari tabel yang sama dengan isolasi snapshot berjalan sama seperti operasi yang dijalankan dengan isolasi yang dapat diserialisasi.
Transaksi bersamaan dengan campuran operasi baca dan tulis dengan isolasi snapshot
Transaksi bersamaan yang dijalankan dengan campuran operasi dengan isolasi snapshot berjalan sama seperti transaksi dengan campuran operasi yang dijalankan dengan isolasi yang dapat diserialisasi.