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

Tips &Trik untuk Menavigasi Komunitas PostgreSQL

Blog ini berisi tentang komunitas PostgreSQL, cara kerjanya, dan cara terbaik untuk menavigasinya. Perhatikan bahwa ini hanyalah gambaran umum ... ada banyak dokumentasi yang ada.

Ikhtisar Komunitas, Cara Kerja Pembangunan

PostgreSQL dikembangkan dan dikelola oleh jaringan sukarelawan yang sangat terampil yang tersebar secara global yang bersemangat tentang komputasi basis data relasional yang disebut sebagai Grup Pengembangan Global PostgreSQL. Beberapa anggota tim inti bersama-sama menangani tanggung jawab khusus seperti mengoordinasikan kegiatan rilis, komunikasi internal khusus, pengumuman kebijakan, mengawasi hak komit dan infrastruktur hosting, masalah disiplin dan kepemimpinan lainnya serta tanggung jawab individu untuk area kontribusi pengkodean, pengembangan, dan pemeliharaan khusus . Sekitar empat puluh individu tambahan dianggap sebagai kontributor utama yang, sesuai dengan namanya, melakukan pengembangan komprehensif atau kegiatan pemeliharaan untuk fitur basis kode yang signifikan atau proyek yang terkait erat. Dan beberapa lusin individu lainnya secara aktif memberikan berbagai kontribusi lainnya. Selain kontributor aktif, daftar panjang kontributor masa lalu diakui untuk pekerjaan pada proyek. Keterampilan dan standar tinggi dari tim inilah yang telah menghasilkan rangkaian fitur PostgreSQL yang kaya dan tangguh.

Banyak dari kontributor memiliki pekerjaan penuh waktu yang berhubungan langsung dengan PostgreSQL atau perangkat lunak Open Source lainnya, dan dukungan antusias dari pemberi kerja mereka membuat keterlibatan mereka yang langgeng dengan komunitas PostgreSQL menjadi layak.

Individu yang berkontribusi berkoordinasi menggunakan alat kolaborasi seperti Obrolan Relay Internet (irc://irc.freenode.net/PostgreSQL) dan milis komunitas PostgreSQL (https://www.PostgreSQL.org/community/lists). Jika Anda baru mengenal IRC atau milis, maka berusahalah secara khusus untuk membaca tentang etiket dan protokol (satu artikel bagus muncul di https://fedoramagazine.org/beginners-guide-irc/), dan setelah Anda bergabung, belanjakan beberapa waktu hanya mendengarkan percakapan yang sedang berlangsung dan mencari arsip untuk pertanyaan serupa sebelumnya sebelum melompat ke masalah Anda sendiri.

Perhatikan bahwa tim tidak statis:Siapa pun dapat menjadi kontributor dengan, yah, berkontribusi … tetapi kontribusi Anda diharapkan memenuhi standar tinggi yang sama!

Tim mengelola halaman Wiki (https://wiki.postgresql.org/) yang, di antara banyak informasi yang sangat mendetail dan bermanfaat seperti artikel, tutorial, cuplikan kode, dan lainnya, menyajikan daftar TODO bug PostgreSQL dan permintaan fitur dan area lain di mana upaya mungkin diperlukan. Jika Anda ingin menjadi bagian dari tim, ini adalah tempat yang bagus untuk menjelajah. Item ditambahkan hanya setelah diskusi menyeluruh di milis pengembang.

Komunitas mengikuti sebuah proses, divisualisasikan sebagai langkah-langkah pada Gambar 1.

Gambar 1. Garis besar konsep proses pengembangan PostgreSQL.

Artinya, nilai dari implementasi kode baru non-sepele diharapkan pertama kali dibahas dan dianggap (melalui konsensus) diinginkan. Kemudian investasi dibuat dalam desain:desain antarmuka, sintaks, semantik dan perilaku, dan pertimbangan masalah kompatibilitas ke belakang. Anda ingin mendapatkan dukungan dari komunitas pengembang tentang masalah apa yang harus dipecahkan dan apa yang akan dicapai implementasi ini. Anda pasti TIDAK ingin pergi dan mengembangkan sesuatu dalam ruang hampa sendiri. Ada pengalaman kolektif berkualitas sangat tinggi selama beberapa dekade yang terkandung dalam tim, dan Anda ingin, dan mereka berharap, memiliki ide yang diperiksa lebih awal.

Kode sumber PostgreSQL disimpan dan dikelola menggunakan sistem kontrol versi Git, sehingga salinan lokal dapat diperiksa dari https://git.postgresql.org/ untuk memulai implementasi. Perhatikan bahwa untuk pemeliharaan yang tahan lama, tambalan harus berbaur dengan kode di sekitarnya dan mengikuti konvensi pengkodean yang ditetapkan (http://developer.postgresql.org/pgdocs/postgres/source.html), jadi ada baiknya untuk mempelajari kode serupa. bagian untuk mempelajari dan meniru konvensi. Umumnya, format standar gaya BSD digunakan. Juga, pastikan untuk memperbarui dokumentasi yang sesuai.

Pengujian melibatkan terlebih dahulu memastikan pengujian regresi yang ada berhasil dan bahwa tidak ada peringatan compiler, tetapi juga menambahkan pengujian baru yang sesuai untuk menjalankan fitur yang baru diimplementasikan.

Ketika implementasi fungsionalitas baru di repositori lokal Anda selesai, gunakan fungsionalitas Git diff untuk membuat tambalan. Patch dikirimkan melalui email ke milis pgsql-hackers untuk ditinjau dan dikomentari, tetapi Anda tidak perlu menunggu sampai pekerjaan Anda selesai ... praktik cerdas adalah meminta umpan balik secara bertahap. Halaman Wiki menjelaskan harapan tentang format dan konteks penjelasan yang membantu dan bagaimana menunjukkan rasa hormat terhadap waktu peninjau kode.

Pengembang inti secara berkala menjadwalkan fest komit, di mana semua tambalan yang belum diterapkan yang terakumulasi ditambahkan ke repositori kode sumber oleh komit yang berwenang. Sebagai kontributor, kode Anda akan menjalani tinjauan yang ketat dan kemungkinan keterampilan pengembang Anda sendiri akan menjadi lebih baik untuk itu. Untuk membalas budi, ada harapan bahwa Anda akan mencurahkan waktu untuk meninjau tambalan dari orang lain.

Unduh Whitepaper Hari Ini Pengelolaan &Otomatisasi PostgreSQL dengan ClusterControlPelajari tentang apa yang perlu Anda ketahui untuk menerapkan, memantau, mengelola, dan menskalakan PostgreSQLUnduh Whitepaper

Situs Web Teratas untuk Mendapatkan Informasi atau Mempelajari PostgreSQL

Situs Web Komunitas - ini adalah tempat peluncuran utama ke kehidupan dengan PostgreSQL https://www.postgresql.org/
Wiki - Topik luas terkait PostgreSQL https://wiki.postgresql.org/
Saluran IRC - Pengembang adalah peserta aktif di sini irc://irc.freenode.net/PostgreSQL
Repositori kode sumber https://git.postgresql.org/
klien GUI pgAdmin https://www.pgadmin.org/
Biografi anggota komunitas penting https://www.postgresql.org/community/contributors/
Pos terkenal Eric Raymond tentang pertanyaan cerdas http://www.catb.org/esr/faqs/smart-questions.html
Kontrol perubahan skema database http://sqitch.org/
Pengujian unit basis data http://pgtap.org/

Beberapa Alat yang Anda Tidak Bisa Hidup Tanpanya

Alat baris perintah dasar untuk bekerja dengan database PostgreSQL adalah bagian dari distribusi normal. Pekerja keras adalah utilitas baris perintah psql, yang menyediakan antarmuka interaktif dengan banyak fungsi untuk membuat kueri, menampilkan, dan memodifikasi metadata basis data, serta menjalankan definisi data (DDL) dan pernyataan manipulasi data (DML).

Utilitas catatan lain yang disertakan termasuk pg_basebackup untuk membuat baseline untuk backup berbasis replikasi, pg_dump untuk mengekstrak database ke dalam file skrip atau file arsip lainnya, pg_restore untuk memulihkan dari arsip pg_dump, dan lainnya. Semua alat ini memiliki halaman manual yang sangat baik serta dirinci dalam dokumentasi standar dan banyak tutorial online.

pgAdmin adalah alat antarmuka pengguna grafis yang sangat populer yang menyediakan fungsionalitas yang mirip dengan utilitas baris perintah psql, tetapi dengan kenyamanan titik-dan-klik. Gambar 2 menunjukkan tangkapan layar pgAdmin III. Di sebelah kiri adalah panel yang menampilkan semua objek database di cluster pada server host yang terpasang. Anda dapat menelusuri struktur untuk membuat daftar semua database, skema, tabel, tampilan, fungsi, dll, dan bahkan membuka tabel dan tampilan untuk memeriksa data yang ada. Untuk setiap objek, alat akan membuat SQL DML untuk menjatuhkan dan membuat ulang objek juga, seperti yang ditunjukkan pada panel kanan bawah. Ini adalah cara mudah untuk membuat modifikasi selama pengembangan database.

Gambar 2. Utilitas pgAdmin III.

Beberapa alat favorit saya untuk tim pengembang aplikasi adalah Sqitch (http://sqitch.org/), untuk kontrol perubahan basis data, dan pgTAP (http://pgtap.org/). Sqitch memungkinkan manajemen perubahan yang berdiri sendiri dan pengembangan berulang melalui skrip yang ditulis dalam dialek SQL asli untuk implementasi Anda, bukan hanya PostgreSQL. Untuk setiap perubahan desain database, Anda menulis tiga skrip:satu untuk menerapkan perubahan, satu untuk membatalkan perubahan jika perlu kembali ke versi sebelumnya, dan satu untuk memverifikasi atau menguji perubahan. Skrip dan file terkait dapat dipertahankan di sistem kontrol revisi Anda tepat di samping kode aplikasi Anda. PgTAP adalah kerangka kerja pengujian yang mencakup serangkaian fungsionalitas untuk memverifikasi integritas database. Semua skrip pgTAP juga merupakan file teks biasa yang sesuai dengan manajemen revisi normal dan proses kontrol perubahan. Setelah saya mulai menggunakan kedua alat ini, saya merasa sulit untuk membayangkan melakukan pekerjaan basis data lagi tanpanya.

Kiat dan Trik

Milis umum PostgreSQL adalah yang paling aktif dari berbagai daftar komunitas dan merupakan antarmuka komunitas utama untuk dukungan gratis kepada pengguna. Berbagai pertanyaan yang cukup luas muncul di daftar ini, terkadang menghasilkan pertanyaan yang panjang lebar, tetapi paling sering mendapatkan tanggapan yang cepat, informatif, dan langsung ke intinya.

Saat memposting pertanyaan terkait penggunaan PostgreSQL, Anda biasanya ingin selalu menyertakan informasi latar belakang termasuk versi PostgreSQL yang Anda gunakan (didaftarkan oleh alat baris perintah psql dengan "psql --version"), sistem operasi tempat server berjalan, dan kemudian mungkin deskripsi lingkungan operasi, seperti apakah itu mungkin didominasi membaca atau menulis berat, jumlah pengguna dan masalah konkurensi, perubahan yang Anda buat dari konfigurasi server default (yaitu, pg_hba.conf dan postgresql.conf), dll. Sering kali, deskripsi tentang apa yang ingin Anda capai lebih berharga, daripada analogi yang tumpul, karena Anda mungkin mendapatkan saran untuk perbaikan yang bahkan tidak terpikirkan oleh Anda sendiri. Selain itu, Anda akan mendapatkan respons terbaik jika menyertakan DDL, DML, dan data sampel aktual yang menggambarkan masalah dan memfasilitasi orang lain untuk membuat ulang apa yang Anda lihat -- ya, orang akan benar-benar menjalankan kode sampel Anda dan bekerja dengan Anda.

Selain itu, jika Anda bertanya tentang meningkatkan kinerja kueri, Anda akan ingin memberikan rencana kueri, yaitu, output EXPLAIN. Ini dihasilkan dengan menjalankan kueri Anda tanpa perubahan kecuali untuk mengawalinya secara harfiah dengan kata “MENJELASKAN”, seperti yang ditunjukkan pada Gambar 3 di alat pgAdmin atau utilitas baris perintah psql.

Gambar 3. Membuat rencana kueri dengan EXPLAIN.

Di bawah EXPLAIN, alih-alih benar-benar menjalankan kueri, server mengembalikan rencana kueri, yang mencantumkan keluaran terperinci tentang bagaimana kueri akan dieksekusi, termasuk indeks mana yang akan digunakan untuk mengoptimalkan akses data, di mana pemindaian tabel mungkin terjadi, dan perkiraan biaya dan jumlah data yang terlibat dengan setiap langkah. Jenis bantuan yang akan Anda dapatkan dari praktisi berpengalaman yang memantau milis dapat menunjukkan masalah dan membantu menyarankan kemungkinan indeks baru atau perubahan pada kriteria penyaringan atau bergabung.

Terakhir, ketika berpartisipasi dalam diskusi milis, ada dua hal penting yang ingin Anda ingat.

Pertama, server daftar surat diatur untuk mengirim pesan yang dikonfigurasi sehingga ketika Anda membalas, secara default perangkat lunak email Anda hanya akan membalas ke pembuat pesan asli. Untuk memastikan pesan Anda masuk ke daftar, Anda harus menggunakan fitur perangkat lunak email "balas semua", yang kemudian akan menyertakan pembuat pesan dan alamat daftar.

Kedua, konvensi pada milis PostgreSQL adalah untuk membalas in-line dan NOT TOP POST. Poin terakhir ini adalah konvensi lama di komunitas ini, dan bagi banyak pendatang baru tampaknya cukup tidak biasa sehingga teguran lembut sangat umum. Pendapat bervariasi tentang seberapa banyak pesan asli yang harus dipertahankan untuk konteks dalam balasan Anda. Beberapa orang kesal dengan pertumbuhan ukuran pesan yang terkadang berat ketika seluruh pesan asli dipertahankan dalam banyak diskusi bolak-balik. Saya pribadi, saya suka menghapus apa pun yang tidak relevan dengan apa yang secara spesifik saya balas agar pesan tetap singkat dan fokus. Ingatlah bahwa ada beberapa dekade riwayat milis yang disimpan secara online untuk dokumentasi sejarah dan penelitian di masa depan, jadi mempertahankan konteks dan alur IS dianggap sangat penting.

Artikel ini membantu Anda memulai, sekarang maju, dan selami!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Argumen opsional dalam fungsi PL/pgSQL

  2. Pembuatan data dan kualitas perangkat keras

  3. Adaptor Postgresql (hal):tidak dapat terhubung ke server

  4. Bagaimana cara memigrasi database PostgreSQL ke SQLServer?

  5. python pip instal kesalahan instal psycopg2