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

Mẹo &Thủ thuật để Điều hướng Cộng đồng PostgreSQL

Blog này là về cộng đồng PostgreSQL, cách hoạt động và cách tốt nhất để điều hướng nó. Lưu ý rằng đây chỉ là một cái nhìn tổng quan ... có rất nhiều tài liệu hiện có.

Tổng quan về cộng đồng, Cách thức hoạt động của sự phát triển

PostgreSQL được phát triển và duy trì bởi một mạng lưới phân tán toàn cầu gồm các tình nguyện viên có tay nghề cao đam mê tính toán cơ sở dữ liệu quan hệ được gọi là Nhóm Phát triển Toàn cầu PostgreSQL. Một số thành viên cốt lõi trong nhóm cùng nhau xử lý các trách nhiệm đặc biệt như điều phối các hoạt động phát hành, liên lạc nội bộ đặc biệt, thông báo chính sách, giám sát các đặc quyền cam kết và cơ sở hạ tầng lưu trữ, các vấn đề kỷ luật và lãnh đạo khác cũng như trách nhiệm cá nhân đối với các lĩnh vực đóng góp mã hóa, phát triển và bảo trì đặc biệt . Khoảng bốn mươi cá nhân khác được coi là những người đóng góp chính, như tên của nó, đã thực hiện các hoạt động phát triển hoặc bảo trì toàn diện cho các tính năng cơ sở mã quan trọng hoặc các dự án có liên quan chặt chẽ. Và hàng chục cá nhân khác đang tích cực đóng góp nhiều hoạt động khác. Ngoài những người đóng góp tích cực, một danh sách dài những người đóng góp trong quá khứ được công nhận cho công việc trong dự án. Chính kỹ năng và tiêu chuẩn cao của đội ngũ này đã tạo ra bộ tính năng phong phú và mạnh mẽ của PostgreSQL.

Nhiều người trong số những người đóng góp có công việc toàn thời gian liên quan trực tiếp đến PostgreSQL hoặc phần mềm Mã nguồn mở khác và sự hỗ trợ nhiệt tình của người sử dụng lao động khiến cho sự gắn bó lâu dài của họ với cộng đồng PostgreSQL trở nên khả thi.

Các cá nhân đóng góp phối hợp sử dụng các công cụ cộng tác như Internet Relay Chat (irc://irc.freenode.net/PostgreSQL) và danh sách gửi thư cộng đồng PostgreSQL (https://www.PostgreSQL.org/community/lists). Nếu bạn chưa quen với IRC hoặc danh sách gửi thư, hãy nỗ lực cụ thể để đọc các nghi thức và giao thức (một bài viết hay xuất hiện tại https://fedoramagazine.org/beginners-guide-irc/) và sau khi bạn tham gia, hãy chi tiêu đôi khi chỉ nghe các cuộc trò chuyện đang diễn ra và tìm kiếm trong kho lưu trữ các câu hỏi tương tự trước đó trước khi bắt đầu giải quyết các vấn đề của riêng bạn.

Lưu ý rằng nhóm không cố định:Bất kỳ ai cũng có thể trở thành cộng tác viên bằng cách, tốt, đóng góp… nhưng đóng góp của bạn sẽ phải đáp ứng các tiêu chuẩn cao đó!

Nhóm duy trì một trang Wiki (https://wiki.postgresql.org/), trong số rất nhiều thông tin rất chi tiết và hữu ích như các bài báo, hướng dẫn, đoạn mã và hơn thế nữa, trình bày danh sách CẦN LÀM gồm các lỗi và yêu cầu tính năng của PostgreSQL và các lĩnh vực khác mà có thể cần nỗ lực. Nếu bạn muốn trở thành một phần của nhóm, đây là một nơi tốt để duyệt qua. Các mục chỉ được thêm vào sau khi thảo luận kỹ lưỡng về danh sách gửi thư của nhà phát triển.

Cộng đồng tuân theo một quy trình, được hình dung như các bước trong Hình 1.

Hình 1. Sơ lược khái niệm về quy trình phát triển PostgreSQL.

Có nghĩa là, giá trị của bất kỳ triển khai mã mới không tầm thường nào được kỳ vọng sẽ được thảo luận đầu tiên và được coi là mong muốn (theo sự đồng thuận). Sau đó, đầu tư vào thiết kế:thiết kế giao diện, cú pháp, ngữ nghĩa và hành vi, và xem xét các vấn đề tương thích ngược. Bạn muốn nhận được sự ủng hộ từ cộng đồng nhà phát triển về vấn đề cần giải quyết là gì và việc triển khai này sẽ đạt được kết quả gì. Bạn chắc chắn KHÔNG muốn tự mình bắt đầu và phát triển một thứ gì đó trong môi trường chân không. Theo đúng nghĩa đen, có nhiều thập kỷ kinh nghiệm tập thể chất lượng cao thể hiện trong nhóm và bạn muốn, và họ mong đợi, có những ý tưởng được hiệu chỉnh sớm.

Mã nguồn PostgreSQL được lưu trữ và quản lý bằng hệ thống kiểm soát phiên bản Git, vì vậy bạn có thể kiểm tra bản sao cục bộ từ https://git.postgresql.org/ để bắt đầu triển khai. Lưu ý rằng để có khả năng bảo trì lâu bền, các bản vá lỗi phải hòa nhập với mã xung quanh và tuân theo các quy ước mã hóa đã thiết lập (http://developer.postgresql.org/pgdocs/postgres/source.html), vì vậy bạn nên nghiên cứu bất kỳ mã nào tương tự phần tìm hiểu và thi đua quy ước. Nói chung, kiểu BSD định dạng tiêu chuẩn được sử dụng. Ngoài ra, hãy đảm bảo cập nhật tài liệu khi thích hợp.

Thử nghiệm bao gồm việc đầu tiên đảm bảo rằng các thử nghiệm hồi quy hiện tại thành công và không có cảnh báo trình biên dịch nào, ngoài ra còn thêm các thử nghiệm mới tương ứng để thực hiện (các) tính năng mới được triển khai.

Khi việc triển khai chức năng mới trong kho lưu trữ cục bộ của bạn hoàn tất, hãy sử dụng chức năng khác biệt của Git để tạo bản vá. Các bản vá được gửi qua email tới danh sách gửi thư pgsql-hacker để xem xét và nhận xét, nhưng bạn không cần phải đợi cho đến khi công việc của mình hoàn thành… phương pháp thông minh là yêu cầu phản hồi tăng dần. Trang Wiki mô tả các kỳ vọng về định dạng và ngữ cảnh giải thích hữu ích cũng như cách thể hiện sự tôn trọng thời gian của người đánh giá mã.

Các nhà phát triển cốt lõi lập lịch trình cam kết theo định kỳ, trong đó tất cả các bản vá chưa được áp dụng tích lũy được thêm vào kho mã nguồn bởi những người cam kết được ủy quyền. Với tư cách là người đóng góp, mã của bạn sẽ phải trải qua quá trình xem xét nghiêm ngặt và có khả năng các kỹ năng dành cho nhà phát triển của chính bạn sẽ tốt hơn cho nó. Để đáp lại sự ưu ái, chúng tôi mong rằng bạn sẽ dành thời gian để xem xét các bản vá từ những người khác.

Tải xuống Báo cáo chính thức hôm nay Quản lý &Tự động hóa PostgreSQL với ClusterControlTìm hiểu về những điều bạn cần biết để triển khai, giám sát, quản lý và mở rộng PostgreSQLTải xuống Báo cáo chính thức

Các trang web hàng đầu để lấy thông tin hoặc tìm hiểu PostgreSQL

Trang web cộng đồng - đây là nơi khởi chạy chính của PostgreSQL https://www.postgresql.org/
Wiki - Các chủ đề rộng lớn liên quan đến PostgreSQL https://wiki.postgresql.org/
Kênh IRC - Các nhà phát triển là những người tham gia tích cực tại đây irc://irc.freenode.net/PostgreSQL
Kho mã nguồn https://git.postgresql.org/
pgAdmin GUI client https://www.pgadmin.org/
Tiểu sử của các thành viên quan trọng trong cộng đồng https://www.postgresql.org/community/contributor/
Bài đăng nổi tiếng của Eric Raymond về những câu hỏi thông minh http://www.catb.org/esr/faqs/smart-questions.html
Kiểm soát thay đổi giản đồ cơ sở dữ liệu http://sqitch.org/
Kiểm tra đơn vị cơ sở dữ liệu http://pgtap.org/

Một vài công cụ mà bạn không thể thiếu

Các công cụ dòng lệnh cơ bản để làm việc với cơ sở dữ liệu PostgreSQL là một phần của phân phối chuẩn. Workhorse là tiện ích dòng lệnh psql, cung cấp giao diện tương tác với nhiều chức năng để truy vấn, hiển thị và sửa đổi siêu dữ liệu cơ sở dữ liệu, cũng như thực thi các câu lệnh định nghĩa dữ liệu (DDL) và thao tác dữ liệu (DML).

Các tiện ích đi kèm khác của lưu ý bao gồm pg_basebackup để thiết lập đường cơ sở cho sao lưu dựa trên bản sao, pg_dump để trích xuất cơ sở dữ liệu thành tệp script hoặc tệp lưu trữ khác, pg_restore để khôi phục từ tệp lưu trữ pg_dump, và các tiện ích khác. Tất cả các công cụ này đều có các trang hướng dẫn tuyệt vời cũng như được trình bày chi tiết trong tài liệu tiêu chuẩn và nhiều hướng dẫn trực tuyến.

pgAdmin là một công cụ giao diện người dùng đồ họa rất phổ biến cung cấp chức năng tương tự như tiện ích dòng lệnh psql, nhưng với sự tiện lợi khi trỏ và nhấp. Hình 2 cho thấy ảnh chụp màn hình của pgAdmin III. Ở bên trái là một bảng hiển thị tất cả các đối tượng cơ sở dữ liệu trong cụm trên máy chủ lưu trữ đính kèm. Bạn có thể đi sâu vào cấu trúc để liệt kê tất cả cơ sở dữ liệu, lược đồ, bảng, dạng xem, hàm, v.v. và thậm chí mở bảng và dạng xem để kiểm tra dữ liệu được chứa. Đối với mỗi đối tượng, công cụ cũng sẽ tạo SQL DML để loại bỏ và tạo lại đối tượng, như được hiển thị trên bảng điều khiển phía dưới bên phải. Đây là một cách thuận tiện để thực hiện các sửa đổi trong quá trình phát triển cơ sở dữ liệu.

Hình 2. Tiện ích pgAdmin III.

Một vài công cụ yêu thích của tôi dành cho nhóm nhà phát triển ứng dụng là Sqitch (http://sqitch.org/), để kiểm soát thay đổi cơ sở dữ liệu và pgTAP (http://pgtap.org/). Sqitch cho phép quản lý thay đổi độc lập và phát triển lặp đi lặp lại bằng các tập lệnh được viết bằng phương ngữ SQL có nguồn gốc từ việc triển khai của bạn, không chỉ PostgreSQL. Đối với mỗi thay đổi thiết kế cơ sở dữ liệu, bạn viết ba tập lệnh:một để triển khai thay đổi, một để hoàn tác thay đổi trong trường hợp cần hoàn nguyên về phiên bản trước đó và một để xác minh hoặc kiểm tra thay đổi. Các tập lệnh và các tệp liên quan có thể được duy trì trong hệ thống kiểm soát sửa đổi của bạn ngay cùng với mã ứng dụng của bạn. PgTAP là một khuôn khổ thử nghiệm bao gồm một bộ chức năng để xác minh tính toàn vẹn của cơ sở dữ liệu. Tất cả các tập lệnh pgTAP đều là các tệp văn bản thuần túy tương tự tuân thủ các quy trình quản lý sửa đổi và kiểm soát thay đổi thông thường. Khi tôi bắt đầu sử dụng hai công cụ này, tôi thấy khó có thể tưởng tượng được sẽ lại làm công việc cơ sở dữ liệu mà không có.

Mẹo và Thủ thuật

Danh sách gửi thư chung PostgreSQL là danh sách tích cực nhất trong số các danh sách cộng đồng khác nhau và là giao diện cộng đồng chính để hỗ trợ miễn phí cho người dùng. Một loạt các câu hỏi xuất hiện trong danh sách này, đôi khi tạo ra nhiều câu hỏi qua lại dài dòng, nhưng hầu hết thường nhận được câu trả lời nhanh chóng, đầy đủ thông tin và trọng tâm.

Khi đăng câu hỏi liên quan đến việc sử dụng PostgreSQL, bạn thường muốn bao gồm thông tin cơ bản bao gồm phiên bản PostgreSQL bạn đang sử dụng (được liệt kê bởi công cụ dòng lệnh psql với “psql --version”), hệ điều hành mà máy chủ sử dụng. đang chạy, và sau đó có thể là mô tả về môi trường hoạt động, chẳng hạn như liệu nó có thể chủ yếu đọc nặng hoặc ghi nặng, số lượng người dùng điển hình và các mối quan tâm về đồng thời, những thay đổi bạn đã thực hiện từ cấu hình máy chủ mặc định (tức là pg_hba.conf và các tệp postgresql.conf), v.v. Thông thường, mô tả về những gì bạn đang cố gắng hoàn thành là có giá trị, thay vì một số phép tương tự sai lầm, vì bạn cũng có thể nhận được các đề xuất để cải thiện mà bạn thậm chí chưa nghĩ đến. Ngoài ra, bạn sẽ nhận được phản hồi tốt nhất nếu bạn bao gồm DDL, DML và dữ liệu mẫu thực tế minh họa sự cố và tạo điều kiện cho người khác tạo lại những gì bạn đang thấy - vâng, mọi người sẽ thực sự chạy mã mẫu của bạn và làm việc với bạn.

Ngoài ra, nếu bạn đang hỏi về việc cải thiện hiệu suất truy vấn, bạn sẽ muốn cung cấp kế hoạch truy vấn, tức là đầu ra GIẢI THÍCH. Điều này được tạo ra bằng cách chạy truy vấn của bạn không thay đổi ngoại trừ việc đặt tiền tố theo nghĩa đen bằng từ “GIẢI THÍCH”, như được hiển thị trong Hình 3 trong công cụ pgAdmin hoặc tiện ích dòng lệnh psql.

Hình 3. Tạo kế hoạch truy vấn với GIẢI THÍCH.

Trong GIẢI THÍCH, thay vì thực sự chạy truy vấn, máy chủ trả về kế hoạch truy vấn, kế hoạch này liệt kê kết quả chi tiết về cách truy vấn sẽ được thực thi, bao gồm chỉ mục nào sẽ được sử dụng để tối ưu hóa quyền truy cập dữ liệu, nơi có thể xảy ra quét bảng và ước tính của chi phí và lượng dữ liệu liên quan đến mỗi bước. Loại trợ giúp bạn sẽ nhận được từ các học viên có kinh nghiệm theo dõi danh sách gửi thư có thể xác định các vấn đề và giúp đề xuất các chỉ mục mới có thể có hoặc các thay đổi đối với tiêu chí lọc hoặc tham gia.

Cuối cùng, khi tham gia vào các cuộc thảo luận về danh sách gửi thư, có hai điều quan trọng bạn muốn ghi nhớ.

Đầu tiên, máy chủ danh sách thư được thiết lập để gửi thư được cấu hình để khi bạn trả lời, theo mặc định, phần mềm email của bạn sẽ chỉ trả lời tác giả thư gốc. Để đảm bảo thư của bạn được đưa vào danh sách, bạn phải sử dụng tính năng “trả lời tất cả” của phần mềm thư, sau đó sẽ bao gồm cả tác giả thư và địa chỉ danh sách.

Thứ hai, quy ước về danh sách gửi thư PostgreSQL là trả lời trong dòng và KHÔNG ĐĂNG HÀNG ĐẦU. Điểm cuối cùng này là một quy ước lâu đời trong cộng đồng này, và đối với nhiều người mới đến dường như bất thường đến mức những lời khuyên nhủ nhẹ nhàng là rất phổ biến. Các ý kiến ​​khác nhau về lượng tin nhắn gốc cần giữ lại cho phù hợp với ngữ cảnh trong câu trả lời của bạn. Một số người cảm thấy khó tin về sự phát triển về kích thước của thông điệp khi toàn bộ thông điệp gốc được giữ lại trong nhiều cuộc thảo luận qua lại. Cá nhân tôi, tôi muốn xóa bất kỳ thứ gì không liên quan đến những gì tôi đang trả lời cụ thể để giữ cho tin nhắn ngắn gọn và có trọng tâm. Chỉ cần lưu ý rằng có hàng thập kỷ lịch sử danh sách gửi thư được lưu giữ trực tuyến để làm tài liệu lịch sử và nghiên cứu trong tương lai, vì vậy việc lưu giữ bối cảnh và luồng IS được coi là rất quan trọng.

Bài viết này giúp bạn bắt đầu, bây giờ hãy tiếp tục và đi sâu vào!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để giải phóng các khóa hàng Postgres có thể có?

  2. Quản lý tính khả dụng cao trong PostgreSQL - Phần II:Trình quản lý nhân bản

  3. Xác minh kết nối cơ sở dữ liệu với pg-promise khi khởi động ứng dụng

  4. CHÈN VÀO ... QUAY LẠI - tham chiếu cột không rõ ràng

  5. Làm cách nào để tạo một hàm tạm thời trong PostgreSQL?