Phiên bản được hỗ trợ:hiện tại(17)16/15/14/13
Phiên bản phát triển:Devel
Phiên bản không được hỗ trợ:12/11/10/9.6/9.5/9.4/9.3

F.38.Postgres_FDW - Dữ liệu truy cập được lưu trữ trong bên cách đọc kèo bóng đáPostgreSQLcách đọc kèo bóng đá chủ#

ThePostgres_FDWMô-đun cung cấp trình bao bọc dữ liệu nước cách đọc kèo bóng đápostgres_fdw, có thể được sử dụng để truy cập dữ liệu được lưu trữ trong bên cách đọc kèo bóng đáPostgreSQLcách đọc kèo bóng đá 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ách đọc kèo bóng đá bảng từ xa 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 cách đọc kèo bóng đá cập từ xa bằng cách sử dụngPostgres_FDW:

  1. Cài đặtPostgres_FDWTiện ích mở rộngTạo tiện ích mở rộng.

  2. Tạo đối tượng cách đọc kèo bóng đá chủ nước ngoài, sử dụngPostgreSQL: Tài tỷ lệ, để đại diện cho mỗi cơ sở dữ cách đọc kèo bóng đá từ xa bạn muốn kết nối. Chỉ định thông tin kết nối, ngoại trừuserMật khẩu, là tùy chọn của đối tượng cách đọc kèo bóng đá chủ.

  3. Tạo ánh xạ người dùng, sử dụngPostgreSQL: Tài liệu: 16: Tạo, Đố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 mỗi cách đọc kèo bóng đá chủ nước ngoài. Chỉ định tên người dùng và mật khẩu từ xa để sử dụng làuserMật khẩuTùy chọn ánh xạ người dùng.

  4. Tạo một bảng nước cách đọc kèo bóng đá, sử dụngPostgreSQL: Tài kèo tỷ số bónghoặcPostgreSQL: Tài liệu: 16: Nhập kèo, cho mỗi bảng từ xa bạn muốn truy cập. cách đọc kèo bóng đá cột của Bàn nước ngoài phải khớp với bảng từ xa được tham chiếu.

Bây giờ bạn chỉ cầnChọnTừ một bảng nước cách đọc kèo bóng đá để truy cập dữ liệu được lưu trữ trong bảng từ xa cơ bản của nó. Bạn cũng có thể sửa đổi bảng từ xa bằngChèn,Cập nhật,Xóa,Copyhoặccắt ngắn. .

Lưu ý rằngChỉTùy chọn được chỉ định cách đọc kèo bóng đáChọn,Cập nhật,Xóahoặccắt ngắnKhông có hiệu lực khi cách đọc kèo bóng đá cập hoặc sửa đổi bảng từ xa.

Lưu ý rằngPOSTGRES_FDWHiện đang thiếu hỗ trợ choChènCâu nói vớitrên xung đột do cập nhậtmệnh đề. Tuy nhiên,trên xung đột không làm gìmệnh đề được hỗ trợ, cung cấp một đặc tả suy luận chỉ số duy nhất bị bỏ qua. Cũng lưu ý rằngPOSTGRES_FDWHỗ trợ chuyển động hàng được gọi bởiCập nhậtcách đọc kèo bóng đá câu lệnh được thực thi trên cách đọc kèo bóng đá bảng được phân vùng, nhưng hiện tại nó không xử lý trường hợp phân vùng từ xa được chọn để chèn một hàng di chuyển vào cũng là mộtCập nhậtPhân vùng mục tiêu sẽ được cập nhật ở nơi khác cách đọc kèo bóng đá cùng một lệnh.

Thông thường cách đọc kèo bóng đá cột của bảng nước ngoài được khai báo với chính xác cách đọc kèo bóng đá loại dữ liệu và đối chiếu nếu có thể, như cách đọc kèo bóng đá cột được tham chiếu của bảng từ xa. Mặc dùPOSTGRES_FDWHiện đang tha thứ cho việc thực hiện chuyển đổi kiểu dữ liệu khi cần, sự bất thường ngữ nghĩa đáng ngạc nhiên có thể phát sinh khi cách đọc kèo bóng đá loại hoặc đối chiếu không khớp, do máy chủ từ xa diễn giải cách đọc kèo bóng đá điều kiện truy vấn khác 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 từ xa cơ bản của nó có. Kết hợp cách đọc kèo bóng đá cột với bảng từ xa là theo tên, không phải vị trí.

F.38.1.Tùy chọn FDW của Postgres_FDW#

F.38.1.1.Tùy chọn kết nối#

Một cách đọc kèo bóng đá chủ nước ngoài sử dụngPostgres_FDWtrình bao bọc dữ liệu nước ngoài có thể có cách đọc kèo bóng đá tùy chọn tương tựlibpqChấp nhận trong cách đọc kèo bóng đá chuỗi kết nối, như được mô tả trongPhần 34.1.2, ngoại trừ việc cách đọc kèo bóng đá tùy chọn này không được phép hoặc có xử lý đặc biệt:

  • user,Mật khẩuSSLPassword(Chỉ định những điều này cách đọc kèo bóng đá ánh xạ người dùng, thay vào đó hoặc sử dụng tệp dịch vụ)

  • client_encoding(Điều này được đặt tự động từ mã hóa cách đọc kèo bóng đá chủ cục bộ)

  • application_name- Điều này có thể xuất hiện cách đọc kèo bóng đáHoặc hoặc cảMột kết nối vàpostgres_fdw.application_name. Nếu cả hai đều có mặt,postgres_fdw.application_nameGhi đè cài đặt kết nối. Không giống nhưlibpq,POSTGRES_FDWcho phépapplication_nameĐể bao gồmTrình tự thoátHồi. Nhìn thấypostgres_fdw.application_nameĐể biết chi tiết.

  • fallback_application_name(luôn luôn được đặt thànhPOSTGRES_FDW)

  • SSLKeySSLCERT- Chúng có thể xuất hiện cách đọc kèo bóng đáhoặc cả haiMột kết nối và ánh xạ người dùng. Nếu cả hai đều có, cài đặt ánh xạ người dùng sẽ ghi đè cài đặt kết nối.

Chỉ cách đọc kèo bóng đá siêu người dùng mới có thể tạo hoặc sửa đổi ánh xạ người dùng bằngSSLCERThoặcSSLKeyCài đặt.

18428_18559Mật khẩu18594_18692

18704_18805password_required 'false', ví dụ:

thay đổi ánh xạ người dùng cho một số_non_superuser cách đọc kèo bóng đá chủ loopback_nopw

19024_19239

Cần phải chăm sóc để đảm bảo rằng điều này không cho phép người dùng được ánh xạ khả năng kết nối với tư cách là SuperUser với cơ sở dữ cách đọc kèo bóng đá được ánh xạ trên mỗi CVE-2007-3278 và CVE-2007-6601. Không đặtpassword_required = falsetrêncông khaiVai trò. Hãy nhớ rằng người dùng được ánh xạ có khả năng sử dụng bất kỳ chứng chỉ cách đọc kèo bóng đá khách nào,.pgass,.pg_service.confvv. Trong thư mục nhà Unix của người dùng hệ thống, cách đọc kèo bóng đá chủ Postgres chạy như.PeerhoặcNhận dạngXác thực.

F.38.1.2.Tùy chọn tên đối tượng#

cách đọc kèo bóng đá tùy chọn này có thể được sử dụng để kiểm soát cách đọc kèo bóng đá tên được sử dụng trong cách đọc kèo bóng đá câu lệnh SQL được gửi đến điều khiển từ xaPostgreSQLMáy chủ. cách đọc kèo bóng đá 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 từ xa bên dưới.

Schema_name(chuỗ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 cách đọc kèo bóng đá chủ từ xa. 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.

Table_Name(chuỗ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 bảng để sử dụng cho bàn nước ngoài trên cách đọc kèo bóng đá chủ từ xa. 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.

Cột_name(chuỗi)

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 cách đọc kèo bóng đá chủ từ xa. Nếu tùy chọn này bị bỏ qua, tên của cột sẽ được sử dụng.

F.38.1.3.Tùy chọn ước tính chi phí#

POSTGRES_FDWLấy dữ liệu từ xa bằng cách thực hiện cách đọc kèo bóng đá truy vấn đối với cách đọc kèo bóng đá máy chủ từ xa, vì vậy lý tưởng là chi phí ước tính của việc quét một bảng nước ngoài nên là bất cứ điều gì cần thực hiện trên máy chủ từ xa, cộng với một số chi phí giao tiếp. Cách đáng tin cậy nhất để có được ước tính như vậy là hỏi máy chủ từ xa và sau đó thêm một cái gì đó cho chi phí - nhưng đối với cách đọc kèo bóng đá 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 từ xa bổ sung để ước tính chi phí.POSTGRES_FDWCung cấp cách đọc kèo bóng đá tùy chọn sau để kiểm soát cách ước tính chi phí được thực hiện:

use_remote_estimate(Boolean)

Tùy chọn này, có thể được chỉ định cho một bàn nước ngoài hoặc cách đọc kèo bóng đá chủ nước ngoài, kiểm soát xemPOSTGRES_FDWvấn đề từ xaGiải thíchcách đọc kèo bóng đá 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 đó.false.

fdw_startup_cost(Điểm nổi)

Tùy chọn này, có thể được chỉ định cho cách đọc kèo bóng đá chủ nước ngoài, là giá trị điểm nổi được thêm vào chi phí khởi động ước tính của bất kỳ lần quét bàn nước ngoài nào trên cách đọc kèo bóng đá chủ đó. Điều này thể hiện chi phí bổ sung của việc thiết lập kết nối, phân tích cú pháp và lập kế hoạch truy vấn ở phía từ xa, v.v ... Giá trị mặc định là100.

fdw_tuple_cost(Điểm nổi)

Tùy chọn này, có thể được chỉ định cho máy chủ nước ngoài, là giá trị điểm nổi được sử dụng làm chi phí thêm cho mỗi lần quét bàn 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ách đọc kèo bóng đá máy chủ.0.01.

Khiuse_remote_estimatelà đúng,postgres_fdwLấy số lượng hàng và ước tính chi phí từ cách đọc kèo bóng đá chủ từ xa và sau đó thêmfdw_startup_costfdw_tuple_costvới ước tính chi phí. Khiuse_remote_estimatelà sai,postgres_fdwThực hiện số lượng hàng địa phương và ước tính chi phí và sau đó thêmfdw_startup_costfdw_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ách đọc kèo bóng đá bản sao cục bộ của số liệu thống kê của bảng từ xa có sẵn.Phân tíchTrên bàn nước cách đọc kèo bóng đá 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 từ xa 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ộ.

Tùy chọn sau đây kiểm soát cách thức như vậyPhân tíchHoạt động hành xử:

phân tích_sampling(chuỗi)

Tùy chọn này, có thể được chỉ định cho một bàn nước ngoài hoặc cách đọc kèo bóng đá chủ nước ngoài, xác định nếuPhân tíchTrên một bảng nước ngoài lấy mẫu dữ liệu ở phía từ xa, hoặc đọc và chuyển tất cả dữ liệu và thực hiện lấy mẫu cục bộ. cách đọc kèo bóng đá giá trị được hỗ trợ làTẮT,ngẫu nhiên,System,BernoulliAuto.TẮTvô hiệu hóa lấy mẫu từ xa, vì vậy tất cả dữ liệu được cách đọc kèo bóng đáền và lấy mẫu cục bộ.ngẫu nhiênThực hiện lấy mẫu từ xa bằng cách sử dụngngẫu nhiên ()chức năng chọn cách đọc kèo bóng đá hàng đã trả lại, trong khiSystemBernoullidựa vào tích hợpBảng mẫuPhương pháp của những tên đó.ngẫu nhiênHoạt động trên tất cả cách đọc kèo bóng đá phiên bản máy chủ từ xa, trong khiBảng mẫuchỉ được hỗ trợ kể từ 9,5.Auto(mặc định) chọn phương thức lấy mẫu được đề xuất tự động; Hiện tại nó có nghĩa làBernoullihoặcngẫu nhiênTùy thuộc vào phiên bản cách đọc kèo bóng đá chủ từ xa.

​​F.38.1.4.Tùy chọn thực thi từ xa#

Theo mặc định, chỉWHEREĐiều khoản sử dụng cách đọc kèo bóng đá toán tử và chức năng tích hợp sẽ được xem xét để thực hiện trên máy chủ từ xa. cách đọc kèo bóng đá điều khoản liên quan đến cách đọc kèo bóng đá chức năng không được xây dựng được kiểm tra cục bộ sau khi cách đọc kèo bóng đá hàng được tìm nạp.WHEREĐiều khoản để thực hiện từ xa. Hành vi này có thể được kiểm soát bằng cách sử dụng tùy chọn sau:

Phần mở rộng(chuỗi)

Tùy chọn này là danh sách cách đọc kèo bóng đá tên được phân tách bằng dấu phẩyPostgreSQLTiện ích mở rộng được cài đặt, trong cách đọc kèo bóng đá phiên bản tương thích, trên cả máy chủ cục bộ và máy chủ từ xa. cách đọc kèo bóng đá chức năng và toán tử là bất biến và thuộc về một tiện ích mở rộng được liệt kê sẽ được coi là có thể chia cho máy chủ từ xa.

Khi sử dụngTiện ích mở rộngTùy chọn,Đó là trách nhiệm của người dùngRằng cách đọc kèo bóng đá tiện ích mở rộng được liệt kê tồn tại và hoạt động giống hệt nhau trên cả máy chủ cục bộ và máy chủ từ xa. Nếu không, cách đọc kèo bóng đá truy vấn từ xa có thể thất bại hoặc cư xử bất ngờ.

fetch_size(Số nguyên)

Tùy chọn này chỉ định số lượng hàngPOSTGRES_FDWnên có được trong mỗi hoạt động tìm nạp. Nó có thể được chỉ định cho một bàn nước ngoài hoặc một cách đọc kèo bóng đá chủ nước ngoài.100.

Batch_Size(Số nguyên)

Tùy chọn này chỉ định số lượng hàngPOSTGRES_FDWNên chèn vào mỗi thao tác chèn. Nó có thể được chỉ định cho một bàn nước ngoài hoặc một cách đọc kèo bóng đá chủ nước ngoài.1.

Lưu ý số lượng hàng thực tếPOSTGRES_FDWChèn cùng một lúc phụ thuộc vào số lượng cột và được cung cấpBatch_SizeGiá trị. Lô được thực thi dưới dạng một cách đọc kèo bóng đá vấn duy nhất và giao thức libpq (màPOSTGRES_FDWSử dụng để kết nối với cách đọc kèo bóng đá chủ từ xa) giới hạn số lượng tham số trong một truy vấn duy nhất với 65535. Khi số lượng cột *Batch_Sizevượt quá giới hạn,Batch_Sizesẽ được điều chỉnh để tránh lỗi.

Tùy chọn này cũng áp dụng khi sao chép vào cách đọc kèo bóng đá bảng nước ngoài. Trong trường hợp đó, số lượng hàng thực tếPOSTGRES_FDWBản sao cùng một lúc được xác định theo cách tương tự như trường hợp chèn, nhưng nó bị giới hạn nhiều nhất là do cách đọc kèo bóng đá hạn chế thực hiện củaCopylệnh.

F.38.1.5.Tùy chọn thực thi không đồng bộ#

POSTGRES_FDWHỗ trợ thực thi không đồng bộ, chạy nhiều phần củaPhụ lụcNode đồng thời thay vì serol để cải thiện hiệu suất. Việc thực thi này có thể được kiểm soát bằng cách sử dụng tùy chọn sau:

async_capable(Boolean)

Tùy chọn này kiểm soát xemPOSTGRES_FDWCho phép cách đọc kèo bóng đá bảng nước ngoài được quét đồng thời để thực hiện không đồng bộ. Nó có thể được chỉ định cho một bàn nước ngoài hoặc một máy chủ nước ngoài.Sai.

Để đảm bảo rằng dữ liệu được trả về từ cách đọc kèo bóng đá chủ nước ngoài là nhất quán,Postgres_FDWSẽ chỉ mở một kết nối cho một máy chủ nước ngoài nhất định và sẽ chạy tất cả cách đọc kèo bóng đá truy vấn đối với máy chủ đó tuần tự ngay cả khi có nhiều bảng nước ngoài liên quan, trừ khi cách đọc kèo bóng đá bảng đó phải tuân theo ánh xạ người dùng khác nhau. Trong trường hợp như vậy, có thể hiệu quả hơn khi vô hiệu hóa tùy chọn này để loại bỏ chi phí liên quan đến việc chạy cách đọc kèo bóng đá truy vấn không đồng bộ.

Thực thi không đồng bộ được áp dụng ngay cả khiappendNode chứa Subplan (s) được thực hiện đồng bộ cũng như Sub (s) được thực hiện không đồng bộ. Trong trường hợp như vậy, nếu cách đọc kèo bóng đá mẫu con không đồng bộ được xử lý bằng cách sử dụngPOSTGRES_FDW, Tuples từ cách đọc kèo bóng đá mẫu con không đồng bộ không được trả lại cho đến khi ít nhất một lớp con đồng bộ trả về tất cả cách đọc kèo bóng đá bộ dữ liệu, vì sơ đồ con đó được thực thi trong khi cách đọc kèo bóng đá subs không đồng bộ đang chờ kết quả của cách đọc kèo bóng đá truy vấn không đồng bộ. Hành vi này có thể thay đổi trong bản phát hành trong tương lai.

F.38.1.6.Tùy chọn quản lý giao dịch#

Như được mô tả cách đọc kèo bóng đá phần Quản lý giao dịch, cách đọc kèo bóng đáPOSTGRES_FDWGiao dịch được quản lý bằng cách tạo cách đọc kèo bóng đá giao dịch từ xa tương ứng và cách đọc kèo bóng đá giao dịch phụ được quản lý bằng cách tạo cách đọc kèo bóng đá phép trừ từ xa tương ứng. Khi nhiều giao dịch từ xa tham gia vào giao dịch cục bộ hiện tại, theo mặc địnhPOSTGRES_FDWcam kết hoặc hủy bỏ cách đọc kèo bóng đá giao dịch từ xa đó khi giao dịch địa phương được thực hiện hoặc hủy bỏ. Khi nhiều lần trừ từ xa có liên quan đến việc trừ cục bộ hiện tại, theo mặc địnhPOSTGRES_FDWCam kết hoặc hủy bỏ những phép trừ từ xa đó khi dịch trừ cục bộ được thực hiện hoặc hủy bỏ. Hiệu suất có thể được cải thiện với cách đọc kèo bóng đá tùy chọn sau:

song song_commit(Boolean)

Tùy chọn này kiểm soát xemPOSTGRES_FDWKết quả, song song, cách đọc kèo bóng đá giao dịch từ xa được mở trên một máy chủ nước ngoài trong một giao dịch địa phương khi giao dịch địa phương được thực hiện. Cài đặt này cũng áp dụng cho cách đọc kèo bóng đá phép trừ từ xa và cục bộ.Sai.

song song_abort(Boolean)

Tùy chọn này kiểm soát xemPOSTGRES_FDWHủy bỏ, song song, cách đọc kèo bóng đá giao dịch từ xa được mở trên một máy chủ nước ngoài trong một giao dịch địa phương khi giao dịch địa phương bị hủy bỏ. Cài đặt này cũng áp dụng cho cách đọc kèo bóng đá phép trừ từ xa và cục bộ.false.

Nếu nhiều máy chủ nước ngoài có cách đọc kèo bóng đá tùy chọn này được kích hoạt có liên quan đến giao dịch cục bộ, nhiều giao dịch từ xa trên cách đọc kèo bóng đá máy chủ nước ngoài được thực hiện hoặc hủy bỏ song song trên cách đọc kèo bóng đá máy chủ nước ngoài khi giao dịch địa phương được thực hiện hoặc hủy bỏ.

Khi cách đọc kèo bóng đá tùy chọn này được bật, một máy chủ nước ngoài có nhiều giao dịch từ xa có thể thấy tác động hiệu suất tiêu cực khi giao dịch cục bộ được thực hiện hoặc hủy bỏ.

F.38.1.7.Tùy chọn cập nhật#

Theo mặc định, tất cả cách đọc kèo bóng đá bảng nước ngoài bằng cách sử dụngPostgres_FDWđược coi là có thể cập nhật. Điều này có thể được ghi đè bằng tùy chọn sau:

Updatable(Boolean)

Tùy chọn này kiểm soát xemPOSTGRES_FDWcho phép cách đọc kèo bóng đá bảng nước ngoài được sửa đổi bằng cách sử dụngChèn,Cập nhậtXóalệnh. Nó có thể được chỉ định cho một bàn nước ngoài hoặc một cách đọc kèo bóng đá chủ nước ngoài.TRUE.

Tất nhiên, nếu bảng điều khiển từ xa thực tế không 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 cách đọc kèo bóng đá chủ từ xa.thô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 cách đọc kèo bóng đá chủ từ xa.

F.38.1.8.Tùy chọn khả năng cắt#

Theo mặc định, tất cả cách đọc kèo bóng đá bảng nước ngoài bằng cách sử dụngPOSTGRES_FDWđược coi là có thể cắt. Điều này có thể được ghi đè bằng tùy chọn sau:

Truncatable(Boolean)

Tùy chọn này kiểm soát xemPOSTGRES_FDWCho phép cách đọc kèo bóng đá bảng nước ngoài bị cắt ngắn bằng cách sử dụngcắt ngắnlệnh. Nó có thể được chỉ định cho một bàn nước ngoài hoặc một cách đọc kèo bóng đá chủ nước ngoài.TRUE.

Tất nhiên, nếu bảng điều khiển từ xa thực tế không thể bị cắt, dù sao cũng sẽ xảy ra lỗi. Sử dụng tùy chọn này chủ yếu cho phép lỗi được sử dụng cục bộ mà không cần truy vấn cách đọc kèo bóng đá chủ từ xa.

F.38.1.9.Nhập tùy chọn#

POSTGRES_FDWCó thể nhập cách đọc kèo bóng đá định nghĩa về bàn nước ngoài bằng cách sử dụngPostgreSQL: Tài liệu: 16: Nhập kèo. Lệnh này tạo ra cách đọc kèo bóng đá định nghĩa về bảng nước ngoài trên máy chủ cục bộ phù hợp với cách đọc kèo bóng đá bảng hoặc chế độ xem có trên máy chủ từ xa.

Có thể tùy chỉnh hành vi nhập khẩu với cách đọc kèo bóng đá tùy chọn sau (được đưa ra trongNhập lược đồ nước cách đọc kèo bóng đálệnh):

Nhập khẩu_collate(Boolean)

Tùy chọn này có kiểm soát cách đọc kèo bóng đá cộtđối chiếuTùy chọn được bao gồm trong cách đọc kèo bóng đá định nghĩa về cách đọc kèo bóng đá bảng nước ngoài được nhập từ máy chủ nước ngoài. Mặc định làTRUE. Bạn có thể cần tắt điều này nếu cách đọc kèo bóng đá chủ từ xa có một bộ tên đối chiếu khác với cách đọc kèo bóng đá chủ cục bộ, có khả năng là trường hợp nếu nó chạy trên một hệ điều hành khác.

Ngay cả khi tham số này được đặt thànhTRUE, Nhập cách đọc kèo bóng đá cột có đối chiếu là mặc định của máy chủ từ xa có thể gặp rủi ro. Chúng sẽ được nhập khẩu vớiđối chiếu "mặc định", sẽ chọn đối chiếu mặc định của cách đọc kèo bóng đá chủ cục bộ, có thể khác.

Nhập khẩu_default(Boolean)

Tùy chọn này có kiểm soát cách đọc kèo bóng đá cộtMặc địnhBiểu thức được bao gồm trong cách đọc kèo bóng đá định nghĩa về cách đọc kèo bóng đá bảng nước ngoài được nhập từ máy chủ nước ngoài. Mặc định làSai. Nếu bạn kích hoạt tùy chọn này, hãy cảnh giác với cách đọc kèo bóng đá mặc định có thể được tính toán khác nhau trên máy chủ cục bộ so với máy chủ từ xa;nextVal ()là một nguồn vấn đề phổ biến. TheNhậpSẽ hoàn toàn thất bại nếu biểu thức mặc định được nhập sử dụng chức năng hoặc toán tử không tồn tại cục bộ.

Nhập khẩu_generated(Boolean)

Tùy chọn này có kiểm soát cách đọc kèo bóng đá cộtTạoBiểu thức được bao gồm trong cách đọc kèo bóng đá định nghĩa về cách đọc kèo bóng đá bảng nước ngoài được nhập từ máy chủ nước ngoài. Mặc định làTRUE. TheNhậpSẽ hoàn toàn thất bại nếu biểu thức được tạo được nhập sử dụng chức năng hoặc toán tử không tồn tại cục bộ.

Nhập khẩu_not_null(Boolean)

Tùy chọn này kiểm soát cộtkhông nullcách đọc kèo bóng đá ràng buộc được bao gồm trong cách đọc kèo bóng đá định nghĩa về cách đọc kèo bóng đá bảng nước ngoài được nhập từ máy chủ nước ngoài. Mặc định làTRUE.

Lưu ý rằng cách đọc kèo bóng đá ràng buộc khác vớikhông nullsẽ không bao giờ được nhập từ cách đọc kèo bóng đá bảng từ xa. Mặc dùPostgreSQLViệc kiểm tra hỗ trợ cách đọc kèo bóng đá ràng buộc trên cách đọc kèo bóng đá bảng nước ngoài, không có điều khoản nào tự động nhập chúng, vì rủi ro là biểu thức ràng buộc có thể đánh giá khác nhau trên cách đọc kèo bóng đá máy chủ cục bộ và từ xa. Bất kỳ sự không nhất quán nào trong hành vi của một ràng buộc kiểm tra đều có thể dẫn đến cách đọc kèo bóng đá lỗi khó phát hiện trong tối ưu hóa truy vấn.PostgreSQL: Tài kèo tỷ số bóng.

Bảng hoặc bảng nước cách đọc kèo bóng đá là phân vùng của một số bảng khác chỉ được nhập khi chúng được chỉ định rõ ràng tronggiới hạnmệnh đề. Nếu không, chúng được tự động loại trừ khỏiPostgreSQL: Tài liệu: 16: Nhập kèo. Vì tất cả dữ liệu có thể được truy cập thông qua bảng được phân vùng, là gốc của hệ thống phân vùng, nên chỉ nhập cách đọc kèo bóng đá bảng được phân vùng nên cho phép truy cập vào tất cả dữ liệu mà không tạo thêm đối tượng.

F.38.1.10.Tùy chọn quản lý kết nối#

Theo mặc định, tất cả cách đọc kèo bóng đá kết nốiPOSTGRES_FDWThiết lập cách đọc kèo bóng đá chủ nước ngoài được mở trong phiên cục bộ để sử dụng lại.

Keep_Connections(Boolean)

Tùy chọn này có kiểm soát xemPOSTGRES_FDWGiữ cách đọc kèo bóng đá kết nối với máy chủ nước ngoài mở để cách đọc kèo bóng đá truy vấn tiếp theo có thể sử dụng lại chúng. Nó chỉ có thể được chỉ định cho một máy chủ nước ngoài.trên. Nếu được đặt thànhTẮT, Tất cả cách đọc kèo bóng đá kết nối với máy chủ nước ngoài này sẽ bị loại bỏ vào cuối mỗi giao dịch.

F.38.2.Chức năng#

45981_46073

Hàm này trả về tên máy chủ nước ngoài của tất cả cách đọc kèo bóng đá kết nối mởPOSTGRES_FDWĐược thiết lập từ phiên địa phương đến cách đọc kèo bóng đá máy chủ nước ngoài. Nó cũng trả về cho dù mỗi kết nối có hợp lệ hay không.SaiĐược trả về nếu kết nối cách đọc kèo bóng đá chủ nước ngoài được sử dụng trong giao dịch cục bộ hiện tại nhưng ánh xạ người dùng hoặc cách đọc kèo bóng đá chủ nước ngoài của nó bị thay đổi hoặc bị loạinullNếu cách đọc kèo bóng đá chủ bị hủy) và sau đó kết nối không hợp lệ như vậy sẽ được đóng vào cuối giao dịch đó.TRUEđược trả về khác. Nếu không có kết nối mở, không có bản ghi nào được trả về.

postgres =# select * từ postgres_fdw_get_connections () đặt hàng theo 1;
postgres_fdw_disconnect (server_name văn bản) trả về boolean

Hàm này loại bỏ cách đọc kèo bóng đá kết nối mở được thiết lập bởiPOSTGRES_FDWTừ phiên cục bộ đến máy chủ nước ngoài với tên đã cho. Lưu ý rằng có thể có nhiều kết nối với máy chủ đã cho bằng cách sử dụng cách đọc kèo bóng đá ánh xạ người dùng khác nhau.TRUENếu nó ngắt kết nối ít nhất một kết nối, nếu khôngSai. Nếu không có cách đọc kèo bóng đá chủ nước ngoài nào có tên đã cho, một lỗi được báo cáo.

postgres =# chọn postgres_fdw_disconnect ('loopback1');
postgres_fdw_disconnect_all () trả về boolean

Hàm này loại bỏ tất cả cách đọc kèo bóng đá kết nối mở được thiết lập bởiPOSTGRES_FDWTừ phiên cục bộ đến máy chủ nước ngoài. Nếu cách đọc kèo bóng đá kết nối được sử dụng trong giao dịch địa phương hiện tại, chúng không bị ngắt kết nối và cách đọc kèo bóng đá thông báo cảnh báo được báo cáo.TRUENếu nó ngắt kết nối ít nhất một kết nối, nếu khôngSai. Ví dụ sử dụng hàm:

postgres =# chọn postgres_fdw_disconnect_all ();

F.38.3.Quản lý kết nối#

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 một bảng nước ngoài được liên kết với máy chủ nước ngoài. Theo mặc định, kết nối này được giữ và sử dụng lại cho cách đọc kèo bóng đá truy vấn tiếp theo trong cùng một phiên.Keep_ConnectionsTùy chọn cho cách đọc kèo bóng đá chủ nước ngoài. Nếu nhiều danh tính người dùng (ánh xạ người dùng) được sử dụng để truy cập cách đọc kèo bóng đá chủ nước ngoài, kết nối được thiết lập cho mỗi ánh xạ người dùng.

Khi thay đổi định nghĩa hoặc xóa máy chủ nước ngoài hoặc ánh xạ người dùng, cách đọc kèo bóng đá kết nối liên quan được đóng lại. Nhưng lưu ý rằng nếu có bất kỳ kết nối nào được sử dụng trong giao dịch địa phương hiện tại, chúng được giữ cho đến khi kết thúc giao dịch.

Một khi kết nối với cách đọc kèo bóng đá chủ nước ngoài đã được thiết lập, theo mặc định, nó được giữ cho đến khi phiên từ xa cục bộ hoặc từ xa tương ứng thoát ra. Để ngắt kết nối một cách rõ ràng,Keep_ConnectionsTùy chọn cho cách đọc kèo bóng đá chủ nước ngoài có thể bị vô hiệu hóa hoặcpostgres_fdw_disconnectpostgres_fdw_disconnect_allcách đọc kèo bóng đá chức năng có thể được sử dụng. Ví dụ: những điều này rất hữu ích để kết nối gần không còn cần thiết, do đó phát hành cách đọc kèo bóng đá kết nối trên máy chủ nước ngoài.

F.38.4.Quản lý giao dịch#

Trong một truy vấn tham khảo bất kỳ bảng từ xa nào trên cách đọc kèo bóng đá chủ nước ngoài,POSTGRES_FDWMở giao dịch trên cách đọc kèo bóng đá chủ từ xa 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 từ xa đượ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ỏ.

Giao dịch từ xa sử dụngserializableMứ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ạiMức cách ly. Lựa chọn này đảm bảo rằng nếu một truy vấn thực hiện nhiều lần quét bảng trên máy chủ từ xa, nó sẽ nhận được kết quả phù hợp với ảnh chụp nhanh cho tất cả cách đọc kèo bóng đá lần quét.serializablehoặcĐọc lặp lạiCấp độ cô lập, nhưng có thể đáng ngạc nhiên cho AĐọc cam kếtGiao dịch địa phương. Một tương laiPostgreSQLPhát hành có thể sửa đổi cách đọc kèo bóng đá 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 từ xa cho cam kết hai pha.

F.38.5.Tối ưu hóa cách đọc kèo bóng đá vấn từ xa#

POSTGRES_FDWcố gắng tối ưu hóa cách đọc kèo bóng đá truy vấn từ xa để giảm lượng dữ liệu được truyền từ cách đọc kèo bóng đá máy chủ nước ngoài. Điều này được thực hiện bằng cách gửi truy vấnWHEREĐiều khoản đến máy chủ từ xa để thực thi và không lấy cách đọc kèo bóng đá 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ách đọc kèo bóng đá điều khoản không được gửi đến máy chủ từ xa trừ khi chúng chỉ sử dụng cách đọc kèo bóng đá loại dữ liệu, toán tử và cách đọc kèo bóng đá chức năng được tích hợp hoặc thuộc về một tiện ích mở rộng được liệt kê trong máy chủ nước ngoàiTiện ích mở rộngTùy chọn. Toán tử và chức năng trong cách đọc kèo bóng đá điều khoản như vậy phải làImmutablelà tốt. Cho mộtCập nhậthoặcXóacách đọc kèo bóng đá vấn,POSTGRES_FDWcố gắng tối ưu hóa việc thực thi truy vấn bằng cách gửi toàn bộ truy vấn đến cách đọc kèo bóng đá chủ từ xa nếu không có truy vấnWHEREcách đọc kèo bóng đá điều khoản không thể được gửi đến máy chủ từ xa, không có sự tham gia cục bộ nào cho truy vấn, không có địa phương cấp hàngtrướchoặcsauTriggers hoặc được lưu trữ cách đọc kèo bóng đá cột được tạo trên bảng đích và khôngTùy chọn kiểm tracách đọc kèo bóng đá ràng buộc từ cách đọc kèo bóng đá quan điểm của cha mẹ. TRONGCập nhật, cách đọc kèo bóng đá biểu thức để gán cho cách đọc kèo bóng đá cột đích phải chỉ sử dụng cách đọc kèo bóng đá loại dữ liệu tích hợp,ImmutableToán tử hoặcImmutablecách đọc kèo bóng đá chức năng, để giảm nguy cơ mắc bệnh truy vấn.

KhiPOSTGRES_FDW54392_54720tham giaĐiều khoản, nó có cách đọc kèo bóng đá biện pháp phòng ngừa tương tự như đã đề cập ở trên choWHEREmệnh đề.

Truy vấn thực sự được gửi đến cách đọc kèo bóng đá chủ từ xa để thực thi có thể được kiểm tra bằngGiải thích Verbose.

F.38.6.Môi trường thực thi cách đọc kèo bóng đá vấn từ xa#

Trong cách đọc kèo bóng đá phiên từ xa được mở bởiPOSTGRES_FDW, Thesearch_paththam số được đặt thành chỉpg_catalog, do đó chỉ có thể nhìn thấy cách đọc kèo bóng đá đối tượng tích hợp mà không có trình độ lược đồ. Đây không phải là vấn đề cho cách đọc kèo bóng đá truy vấn được tạo bởiPOSTGRES_FDWchính 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ách đọc kèo bóng đá chức năng được thực thi trên máy chủ từ xa thông qua cách đọc kèo bóng đá kích hoạt hoặc quy tắc trên cách đọc kèo bóng đá bảng từ xa.Đặt search_pathTùy chọn (xemTạo chức năng) đến cách đọc kèo bóng đá 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 từ xa cho cách đọc kèo bóng đá tham số khác nhau:

  • timezoneđược đặt thànhUTC

  • Datestyleđược đặt thànhISO

  • IntervalStyleđược đặt thànhPostgres

  • Extra_float_digitsđược đặt thành3Đối với cách đọc kèo bóng đá chủ từ xa 9.0 trở lên và được đặt thành2cho cách đọc kèo bóng đá phiên bản cũ hơn

Chúng í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 cách đọc kèo bóng đá tham số này; có khả năng gây raPOSTGRES_FDWđến trục trặc.

F.38.7.Khả năng tương thích phiên bản chéo#

POSTGRES_FDWCó thể được sử dụng với cách đọc kèo bóng đá máy chủ từ xa có niên đạiPOSTGRESQL8.3. Khả năng chỉ đọc có sẵn trở lại 8.1.POSTGRES_FDWNói chung giả sử rằng cách đọc kèo bóng đá 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ủ từ xa để thực thi, nếu chúng xuất hiện trongWHEREmệnh đề cho một bảng nước ngoài. Do đó, một chức năng tích hợp đã được thêm vào vì bản phát hành của cách đọc kèo bóng đá chủ từ xa có thể được gửi đến nó để thực thi, dẫn đếnHàm không tồn tạiKhănhoặ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 nước cách đọc kèo bóng đá 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 cách đọc kèo bóng đá phụ-Chọn.

F.38.8.Tham số cấu hình#

POSTGRES_FDW.Application_Name(chuỗi) #

Chỉ định giá trị choapplication_nameTham số cấu hình được sử dụng khiPostgres_FDWThiết lập kết nối với cách đọc kèo bóng đá chủ nước ngoài. Điều này ghi đèapplication_nameTùy chọn đối tượng cách đọc kèo bóng đá chủ. Lưu ý rằng sự thay đổi của tham số này không ảnh hưởng đến bất kỳ kết nối hiện có nào cho đến khi chúng được thiết lập lại.

postgres_fdw.application_namecó thể là bất kỳ chuỗi nào có độ dài và chứa cách đọc kèo bóng đá ký tự không phải ASCII. Tuy nhiên, khi nó được truyền và sử dụng dưới dạngapplication_nameTrong một cách đọc kèo bóng đá chủ nước ngoài, lưu ý rằng nó sẽ bị cắt ngắn hơnĐược đặt tênký tự. Bất cứ thứ gì khác ngoài cách đọc kèo bóng đá ký tự ASCII có thể in được được thay thế bằngESCAPES HEXADECIMAL STYLE. Nhìn thấyapplication_nameđể biết chi tiết.

%Nhân vật bắt đầuTrình tự thoátđược thay thế bằng thông tin trạng thái như được nêu dưới đây. Escapes không được công nhận bị bỏ qua.%và trước tùy chọn, để căn chỉnh và đệm.

Escape Hiệu ứng
%A Tên ứng dụng trên cách đọc kèo bóng đá chủ cục bộ
%C ID phiên trên cách đọc kèo bóng đá chủ cục bộ (xemlog_line_prefixĐể biết chi tiết)
%C Tên cụm trên cách đọc kèo bóng đá chủ cục bộ (xemcluster_nameĐể biết chi tiết)
%U Tên người dùng trên cách đọc kèo bóng đá chủ cục bộ
%D Tên cơ sở dữ liệu trên cách đọc kèo bóng đá chủ cục bộ
%P ID xử lý phụ trợ trên cách đọc kèo bóng đá chủ cục bộ
%% theo nghĩa đen %

Ví dụ: giả sử người dùnglocal_userThiết lập kết nối từ cơ sở dữ cách đọc kèo bóng đálocal_dbđếnFRIANT_DBvới tư cách là người dùngForeign_user, cài đặt'db =%d, user =%u'được thay thế bằng'db = local_db, user = local_user'.

F.38.9.Ví dụ#

Đây là một ví dụ về việc tạo ra một bảng nước cách đọc kèo bóng đá 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 cách đọc kèo bóng đá chủ nước ngoài bằng cách sử dụngPostgreSQL: Tài tỷ lệ. cách đọc kèo bóng đá ví dụ này, chúng tôi muốn kết nối vớiPostgreSQLcách đọc kèo bóng đá chủ trên cách đọc kèo bóng đá chủ192.83.123.89nghe trên cổng5432. Cơ sở dữ cách đọc kèo bóng đá mà kết nối được thực hiện được đặt tênFRIANT_DBTrên cách đọc kèo bóng đá chủ từ xa:

Tạo cách đọc kèo bóng đá chủ nước ngoài_server

Ánh xạ người dùng, được xác định vớiPostgreSQL: Tài liệu: 16: Tạo, cũng cần xác định vai trò sẽ được sử dụng trên cách đọc kèo bóng đá chủ từ xa:

Tạo ánh xạ người dùng cho local_user

Bây giờ có thể tạo một bàn nước cách đọc kèo bóng đá vớiPostgreSQL: Tài kèo tỷ số bóng. cách đọc kèo bóng đá ví dụ này, chúng tôi muốn truy cập bảng có tên65581_65605Trên cách đọc kèo bóng đá chủ từ xa. Tên địa phương cho nó sẽ làForeign_Table:

Tạo ra nước cách đọc kèo bóng đá nước ngoài_table (

Điều cần thiết là cách đọc kèo bóng đá loại dữ liệu và cách đọc kèo bóng đá thuộc tính khác của cách đọc kèo bóng đá cột được khai báo trongTạo bảng nước cách đọc kèo bóng đákhớp với bảng từ xa 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ách đọc kèo bóng đá cột riêng lẻ để hiển thị cách chúng được đặt tên trong bảng từ xa. Trong nhiều trường hợp, sử dụngPostgreSQL: Tài liệu: 16: Nhập kèotốt hơn là xây dựng cách đọc kèo bóng đá định nghĩa bàn nước ngoài theo cách thủ công.

F.38.10.Tác giả#

Shigeru Hanada

Gửi hiệu chỉnh

Nếu bạn thấy bất cứ điều gì cách đọc kèo bóng đá tài liệu không chính xác, không phù hợpMẫu nàyĐể báo cáo vấn đề tài cách đọc kèo bóng đá.