PostgreSQL: kèo chấp bóng đá | |||
---|---|---|---|
prev | UP | Phụ lục F. kèo bóng đá pháp mô -đun được cung cấp bổ sung | Tiếp theo |
ThePOSTGRES_FDWMô-đun cung cấp trình bao bọc dữ liệu kèo bóng đá phápPOSTGRES_FDW, có thể được sử dụng để truy cập dữ liệu được lưu trữ trong bên ngoàiPostgreSQLMáy chủ.
Chức năng được cung cấp bởi mô -đun này chồng lên đáng kể với chức năng của người cũDBLINKMô -đun. NhưngPOSTGRES_FDWCung cấp cú pháp tuân thủ tiêu chuẩn và trong suốt hơn để truy cập các bảng kèo bóng đá pháp và có thể cho hiệu suất tốt hơn trong nhiều trường hợp.
Để chuẩn bị cho quyền truy cập kèo bóng đá pháp bằng cách sử dụngPostgres_FDW:
Cài đặtPostgres_FDWPhần mở rộng bằng cách sử dụngPostgreSQL: Tà.
Tạo đối tượng máy chủ kèo bóng đá pháp, sử dụngPostgreSQL:, để đại diện cho mỗi cơ sở dữ liệu kèo bóng đá pháp bạn muốn kết nối. Chỉ định thông tin kết nối, ngoại trừuservàMật khẩu, là tùy chọn của đối tượng máy chủ.
Tạo ánh xạ người dùng, sử dụngPostgreSQL: Tài liệu:, Đối với mỗi người dùng cơ sở dữ liệu mà bạn muốn cho phép truy cập vào mỗi máy chủ nước ngoài. Chỉ định tên người dùng và mật khẩu kèo bóng đá pháp để sử dụng làuservàMật khẩuTùy chọn ánh xạ người dùng.
Tạo một bảng kèo bóng đá pháp, sử dụngPostgreSQL: Tài liệu:, cho mỗi bảng kèo bóng đá pháp bạn muốn truy cập. Các cột của Bàn nước ngoài phải khớp với bảng kèo bóng đá pháp được tham chiếu. Tuy nhiên, bạn có thể sử dụng tên bảng và/hoặc cột khác với bảng kèo bóng đá pháp, nếu bạn chỉ định tên kèo bóng đá pháp chính xác là các tùy chọn của đối tượng bảng nước ngoài.
Bây giờ bạn chỉ cầnChọnTừ một bảng nước ngoài để truy cập dữ liệu được lưu trữ trong bảng kèo bóng đá pháp bên dưới của nó. Bạn cũng có thể sửa đổi bảng kèo bóng đá pháp bằngChèn, Cập nhậthoặcXóa. .
Thông thường các cột của bảng nước ngoài được khai báo với các loại dữ liệu chính xác và đối chiếu nếu có, như các cột được tham chiếu của bảng kèo bóng đá pháp. Mặc dùPostgres_FDW10865_11063WHEREmệnh đề hơi khác so với máy chủ cục bộ.
Lưu ý rằng một bảng nước ngoài có thể được khai báo với ít cột hơn hoặc với một thứ tự cột khác, so với bảng điều khiển kèo bóng đá pháp cơ bản của nó có. Kết hợp các cột với bảng kèo bóng đá pháp là theo tên, không phải vị trí.
Một máy chủ kèo bóng đá pháp sử dụngPostgres_FDWtrình bao bọc dữ liệu nước ngoài có thể có kèo bóng đá pháp tùy chọn tương tựlibpqChấp nhận trong kèo bóng đá pháp chuỗi kết nối, như được mô tả trongPhần 31.1.2, ngoại trừ việc kèo bóng đá pháp tùy chọn này không được phép:
uservàMật khẩu(Chỉ định những thứ này cho ánh xạ người dùng, thay vào đó)
12088_12105(Điều này được đặt tự động từ mã hóa máy chủ cục bộ)
fallback_application_name(luôn luôn được đặt thànhPostgres_FDW)
Chỉ kèo bóng đá pháp siêu người dùng mới có thể kết nối với máy chủ nước ngoài mà không cần xác thực mật khẩu, vì vậy hãy luôn chỉ địnhMật khẩuTùy chọn cho ánh xạ người dùng thuộc về những người không phải là người điều khiển.
Các tùy chọn này có thể được sử dụng để kiểm soát các tên được sử dụng trong các câu lệnh SQL được gửi đến điều khiển kèo bóng đá phápPostgreSQLMáy chủ. Các tùy chọn này là cần thiết khi một bảng nước ngoài được tạo với tên khác với tên của bảng kèo bóng đá pháp bên dưới.
Tùy chọn này, có thể được chỉ định cho một bảng nước ngoài, đưa ra tên lược đồ để sử dụng cho bàn nước ngoài trên máy chủ kèo bóng đá pháp. Nếu tùy chọn này bị bỏ qua, tên của lược đồ của Bàn nước ngoài được sử dụng.
Tùy chọn này, có thể được chỉ định cho một bàn nước ngoài, đưa ra tên bảng để sử dụng cho bàn nước ngoài trên máy chủ kèo bóng đá pháp. Nếu tùy chọn này bị bỏ qua, tên của Bàn nước ngoài sẽ được sử dụng.
Tùy chọn này, có thể được chỉ định cho một cột của một bảng nước ngoài, đưa ra tên cột để sử dụng cho cột trên máy chủ kèo bóng đá pháp. Nếu tùy chọn này bị bỏ qua, tên của cột sẽ được sử dụng.
Postgres_FDWLấy dữ liệu kèo bóng đá pháp bằng cách thực hiện các truy vấn đối với các máy chủ kèo bóng đá pháp, vì vậy lý tưởng là chi phí ước tính của việc quét một bàn nước ngoài nên là bất cứ điều gì cần thực hiện trên máy chủ kèo bóng đá pháp, cộng với một số chi phí để liên lạc. Cách đáng tin cậy nhất để có được ước tính như vậy là hỏi máy chủ kèo bóng đá pháp và sau đó thêm một cái gì đó cho chi phí - nhưng đối với các truy vấn đơn giản, nó có thể không xứng đáng với chi phí của một truy vấn kèo bóng đá pháp bổ sung để ước tính chi phí. Vì thếPOSTGRES_FDWCung cấp kèo bóng đá pháp tùy chọn sau để kiểm soát cách ước tính chi phí được thực hiện:
Tùy chọn này, có thể được chỉ định cho một bàn kèo bóng đá pháp hoặc máy chủ kèo bóng đá pháp, điều khiển cho dùPOSTGRES_FDWvấn đề kèo bóng đá phápGiải thíchkèo bóng đá pháp lệnh để có được ước tính chi phí. Một cài đặt cho một bảng nước ngoài ghi đè bất kỳ cài đặt nào cho máy chủ của nó, nhưng chỉ cho bảng đó. Mặc định làfalse.
14954_15266100.
Tùy chọn này, có thể được chỉ định cho máy chủ nước ngoài, là một giá trị số được sử dụng làm chi phí bổ sung cho mỗi lần quét bảng nước ngoài trên máy chủ đó. Điều này thể hiện chi phí bổ sung của truyền dữ liệu giữa các máy chủ. Bạn có thể tăng hoặc giảm số này để phản ánh độ trễ mạng cao hơn hoặc thấp hơn cho máy chủ kèo bóng đá pháp. Giá trị mặc định là0.01.
Khiuse_remote_estimatelà đúng,Postgres_FDW15870_15947fdw_startup_costvàfdw_tuple_costvới ước tính chi phí. Khiuse_remote_estimatelà sai,POSTGRES_FDWThực hiện số lượng hàng và dự định chi phí địa phương và sau đó thêmfdw_startup_costvàfdw_tuple_costvới ước tính chi phí. Ước tính địa phương này khó có thể rất chính xác trừ khi các bản sao cục bộ của số liệu thống kê của bảng kèo bóng đá pháp có sẵn. Đang chạyPhân tíchTrên bàn nước ngoài là cách cập nhật số liệu thống kê địa phương; Điều này sẽ thực hiện quét bảng kèo bóng đá pháp và sau đó tính toán và lưu trữ số liệu thống kê giống như bảng là cục bộ. Giữ số liệu thống kê cục bộ có thể là một cách hữu ích để giảm chi phí lập kế hoạch cho mỗi người cho một bảng kèo bóng đá pháp-nhưng nếu bảng điều khiển kèo bóng đá pháp được cập nhật thường xuyên, các số liệu thống kê địa phương sẽ sớm bị lỗi thời.
Theo mặc định, tất cả kèo bóng đá pháp bảng nước ngoài bằng cách sử dụngPostgres_FDW17072_17154
Tùy chọn này kiểm soát xemPOSTGRES_FDWCho phép kèo bóng đá pháp bảng nước ngoài được sửa đổi bằng cách sử dụngChèn, 17405_17413vàXóalệnh. Nó có thể được chỉ định cho một bàn kèo bóng đá pháp hoặc một máy chủ kèo bóng đá pháp. Một tùy chọn cấp bảng ghi đè một tùy chọn cấp máy chủ. Mặc định làTrue.
Tất nhiên, nếu bảng kèo bóng đá pháp không thực tế có thể cập nhật, dù sao cũng sẽ xảy ra lỗi. Việc sử dụng tùy chọn này chủ yếu cho phép lỗi được ném cục bộ mà không cần truy vấn máy chủ kèo bóng đá pháp. Tuy nhiên, lưu ý rằngthông tin_schemaLượt xem sẽ báo cáo APOSTGRES_FDWBảng nước ngoài có thể cập nhật (hoặc không) theo cài đặt của tùy chọn này, mà không cần kiểm tra máy chủ kèo bóng đá pháp.
postgres_fdwThiết lập kết nối với máy chủ nước ngoài trong truy vấn đầu tiên sử dụng bàn nước ngoài được liên kết với máy chủ nước ngoài. Kết nối này được giữ và sử dụng lại cho kèo bóng đá pháp truy vấn tiếp theo trong cùng một phiên. Tuy nhiên, nếu nhiều danh tính người dùng (ánh xạ người dùng) được sử dụng để truy cập máy chủ nước ngoài, kết nối được thiết lập cho mỗi ánh xạ người dùng.
Trong một truy vấn tham khảo bất kỳ bảng kèo bóng đá pháp nào trên máy chủ nước ngoài,POSTGRES_FDWMở giao dịch trên máy chủ kèo bóng đá pháp nếu một người chưa mở tương ứng với giao dịch cục bộ hiện tại. Giao dịch kèo bóng đá pháp được cam kết hoặc hủy bỏ khi giao dịch địa phương thực hiện hoặc hủy bỏ. Các điểm lưu được quản lý tương tự bằng cách tạo các điểm lưu kèo bóng đá pháp tương ứng.
sử dụng giao dịch kèo bóng đá phápserializableMức cách ly khi giao dịch cục bộ cóserializableMức cách ly; nếu không thì nó sử dụngĐọc lặp lại19365_19804serializablehoặcĐọc lặp lại19883_19936Đọc cam kếtGiao dịch địa phương. Một tương laiPostgreSQLPhát hành có thể sửa đổi kèo bóng đá pháp quy tắc này.
Lưu ý rằng nó hiện không được hỗ trợ bởiPostgres_FDWĐể chuẩn bị giao dịch kèo bóng đá pháp cho cam kết hai pha.
POSTGRES_FDWcố gắng tối ưu hóa các truy vấn kèo bóng đá pháp để giảm lượng dữ liệu được truyền từ các máy chủ nước ngoài. Điều này được thực hiện bằng cách gửi truy vấnWHEREmệnh đề đến máy chủ kèo bóng đá pháp để thực thi và không truy xuất các cột bảng không cần thiết cho truy vấn hiện tại. Để giảm nguy cơ mắc bệnh truy vấn,WHERECác điều khoản không được gửi đến máy chủ kèo bóng đá pháp trừ khi chúng chỉ sử dụng các loại dữ liệu, toán tử và chức năng tích hợp. Toán tử và chức năng trong các mệnh đề phải làbất biến
Truy vấn thực sự được gửi đến máy chủ kèo bóng đá pháp để thực thi có thể được kiểm tra bằng cách sử dụngGiải thích Verbose.
Trong các phiên kèo bóng đá pháp được mở bởipostgres_fdw, Thesearch_paththam số được đặt thành chỉpg_catalog21439_21561POSTGRES_FDWBản thân nó, vì nó luôn cung cấp trình độ như vậy. Tuy nhiên, điều này có thể gây nguy hiểm cho các chức năng được thực thi trên máy chủ kèo bóng đá pháp thông qua các kích hoạt hoặc quy tắc trên các bảng kèo bóng đá pháp. Ví dụ: nếu một bảng kèo bóng đá pháp thực sự là một chế độ xem, bất kỳ chức năng nào được sử dụng trong chế độ xem đó sẽ được thực thi với đường dẫn tìm kiếm bị hạn chế. Nên sử dụng Lược đồ-đủ điều kiện tất cả các tên trong các chức năng đó, hoặc khác đính kèmĐặt search_pathTùy chọn (xemTạo chức năng) đến kèo bóng đá pháp chức năng như vậy để thiết lập môi trường đường dẫn tìm kiếm dự kiến của họ.
POSTGRES_FDWTương tự như vậy thiết lập cài đặt phiên kèo bóng đá pháp cho các tham sốtimezone, Datestyle, IntervalStylevàExtra_float_digits. Những điều này ít có khả năng có vấn đề hơnsearch_path, nhưng có thể được xử lý với chức năngsetTùy chọn nếu có nhu cầu.
Đó làkhôngkhuyến nghị bạn sẽ ghi đè hành vi này bằng cách thay đổi cài đặt cấp phiên của kèo bóng đá pháp tham số này; có khả năng gây raPOSTGRES_FDWđến trục trặc.
POSTGRES_FDWCó thể được sử dụng với các máy chủ kèo bóng đá pháp có niên đạiPostgreSQL8.3. Khả năng chỉ đọc có sẵn trở lại 8.1. Tuy nhiên, một giới hạn làPostgres_FDWNói chung giả định rằng các chức năng và toán tử tích hợp bất biến có thể an toàn để gửi đến máy chủ kèo bóng đá pháp để thực thi, nếu chúng xuất hiện trongWHERE23539_23693"Chức năng không tồn tại"hoặc một lỗi tương tự. Loại thất bại này có thể được làm việc xung quanh bằng cách viết lại truy vấn, ví dụ bằng cách nhúng tham chiếu bàn kèo bóng đá pháp vào một phụ-ChọnvớiOffset 0như một hàng rào tối ưu hóa và đặt hàm hoặc toán tử có vấn đề bên ngoài phụ-Chọn.
Đây là một ví dụ về việc tạo ra một bảng kèo bóng đá pháp vớiPostgres_FDW. Lần đầu tiên cài đặt tiện ích mở rộng:
Tạo phần mở rộng Postgres_fdw;
Sau đó tạo một máy chủ kèo bóng đá pháp bằng cách sử dụngPostgreSQL:. Trong ví dụ này, chúng tôi muốn kết nối vớiPostgreSQLMáy chủ trên máy chủ192.83.123.89nghe trên cổng543224663_2472124739_24751Trên máy chủ kèo bóng đá pháp:
Tạo máy chủ nước ngoài_server Vòng bao bọc dữ liệu kèo bóng đá pháp Postgres_fdw Tùy chọn (máy chủ '192.83.123.89', cổng '5432', dbname 'foreign_db');
Ánh xạ người dùng, được xác định vớiPostgreSQL: Tài liệu:, cũng cần xác định vai trò sẽ được sử dụng trên máy chủ kèo bóng đá pháp:
Tạo ánh xạ người dùng cho local_user Máy chủ nước ngoài_server Tùy chọn (người dùng 'foreign_user', mật khẩu 'mật khẩu');
Bây giờ có thể tạo một bàn kèo bóng đá pháp vớiPostgreSQL: Tài liệu:. Trong ví dụ này, chúng tôi muốn truy cập bảng có tên25486_25510Trên máy chủ kèo bóng đá pháp. Tên địa phương cho nó sẽ làforeign_table:
Tạo ra kèo bóng đá pháp nước ngoài_table ( id nối tiếp không null, Văn bản dữ liệu ) Máy chủ nước ngoài_server Tùy chọn (Schema_name 'Some_Schema', Table_Name 'some_table');
Điều cần thiết là kèo bóng đá pháp loại dữ liệu và kèo bóng đá pháp thuộc tính khác của kèo bóng đá pháp cột được khai báo trongTạo bảng kèo bóng đá phápKết hợp bảng điều khiển kèo bóng đá pháp thực tế. Tên cột cũng phải khớp, trừ khi bạn đính kèmCột_nameTùy chọn cho các cột riêng lẻ để hiển thị cách chúng được đặt tên trong bảng kèo bóng đá pháp.
Shigeru Hanada<Shigeru.hanada@gmail