03 Managed Postgres CDC
Catatan instruktur untuk modul 03 — waktu, alur pembicaraan, kegagalan umum, dan langkah reset.
Pendamping fasilitator untuk pelajaran pembelajar 03 Managed Postgres CDC.
Waktu
Sekitar 20 menit. Instance managed Postgres menerima koneksi dalam waktu sekitar satu menit
setelah clickhousectl cloud postgres create, jadi peserta bisa menyiapkannya dan mengisi
env mereka sementara Anda menarasikan CDC. ClickPipe sering butuh beberapa menit untuk snapshot dan mulai
streaming, tapi validasi mengamati provisioning melebihi 10 menit. Mulai lebih awal dan gunakan
pemeriksaan eskalasi troubleshooting pembelajar alih-alih menjanjikan waktu penyelesaian yang
pasti.
Alur pembicaraan
- Setiap peserta membuat Postgres MILIK SENDIRI yang dikelola ClickHouse di org trial mereka —
tidak ada instance bersama di jalur utama. Satu peserta butuh tepat satu
replication slot, dan setiap instance terkelola dikirim dengan
wal_level=logicaldan 10 slot secara default, jadi gerbang "naikkan max_replication_slots" sederhananya tidak berlaku bagi mereka. - Postgres dan ClickPipe mereka berada di org yang sama dan keduanya dibuat dengan
clickhousectl; tidak perlu bercabang ke wizard console. - Jelaskan CDC secara garis besar (membaca write-ahead log) dan mengapa tabel tujuan membawa
kolom bookkeeping
_peerdb_*; MV memfilter_peerdb_is_deleted = 0. - Tunjukkan bahwa log generator itu sendiri adalah sinyal kesiapan — aplikasi adalah probe-nya;
mereka tidak pernah mem-polling API status (panggilan beta
postgres get/listbisa mengembalikan kosong atau FORBIDDEN bahkan pada instance yang sehat).
Kegagalan umum
- Kehilangan password sekali pakai. Password hanya ditampilkan sekali oleh
create. Reset dengan:clickhousectl cloud postgres reset-password <service-id>, lalu perbarui.env.workshopdan restart generator. - Generator mencatat error koneksi di awal. Instance masih dalam provisioning; container keluar dan restart otomatis, jadi ia memulihkan diri dalam waktu sekitar satu menit. Selidiki hanya jika error bertahan lebih dari beberapa menit.
- ClickPipe tidak bisa connect. Biasanya host atau password salah, atau
PGSSLMODEtidak disetel kerequire(managed Postgres mewajibkan TLS). - Region tidak cocok. Postgres-ke-ClickHouse antar-region bisa berjalan tapi menambah latensi; arahkan peserta untuk membuat Postgres di region yang sama dengan service ClickHouse mereka.
- Data generator belum dijalankan, sehingga tampaknya tidak ada yang bergerak — periksa
pg-trip-writersudah up dan log-nya menampilkaninserted N trips. - Pembuatan pipe gagal dengan
BAD_REQUEST: table realtime_trips exists and is not empty. Hanya terjadi pada re-run/reset, bukan pada peserta baru: menghapus ClickPipe akan menghapus replication slot di sumbernya tapi meninggalkan tabel tujuannya, dan CLI menolak memakai ulang tabel yang tidak kosong. Gunakan prosedur backup bertimestamp di panduan troubleshooting pembelajar, lalu buat ulang pipe-nya; jangan buang data peserta secara default. - Managed Postgres tidak tersedia di org (ketersediaan beta bervariasi) — ini satu-satunya kasus yang jatuh ke pool instruktur bersama; lihat di bawah.
Cadangan: cloud Postgres yang dikelola instruktur
Jika org peserta tidak dapat membuat managed Postgres, berikan mereka slip koneksi managed-cloud.
Pool cloud (beserta catatan soal slot/sender yang menyertainya pada skala 30+) disiapkan
dan didokumentasikan di infra/README.md. Pada jalur bersama, tabel dan
publication sudah dibuat sebelumnya, jadi log generator menampilkan publication ... already exists
alih-alih membuatnya — itu memang diharapkan, bukan error.
Langkah reset
- Hapus dan buat ulang ClickPipe dengan perintah di Modul 03 pembelajar.
- Restart data generator:
docker compose --profile cdc --env-file .env.workshop -f docker-compose.workshop.yml up -d pg-trip-writer(matikan dengan--scale pg-trip-writer=0). - Reset password Postgres yang hilang dengan
clickhousectl cloud postgres reset-password. - Setelah acara, peserta menghapus ClickPipe mereka (modul 09); managed Postgres milik peserta
adalah tanggung jawab mereka untuk dihapus dari console atau dengan
clickhousectl cloud postgres delete <service-id>.