AI SREClickHouse Workshops

03 Managed Postgres CDC

Catatan instruktur untuk modul 03 — waktu, alur pembicaraan, kegagalan umum, dan langkah reset.

Your computer
macOS terminal: Run workshop commands in Terminal using zsh or bash.

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=logical dan 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/list bisa 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.workshop dan 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 PGSSLMODE tidak disetel ke require (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-writer sudah up dan log-nya menampilkan inserted 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>.

Di halaman ini

ID