Thepostgres_fdw
Mô-đun cung cấp trình bao bọc dữ liệu kèo bóng đá c1POSTGRES_FDW
, có thể được sử dụng để truy cập dữ liệu được lưu trữ trong bên ngoàiPostgreSQLkèo bóng đá c1 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_FDW
Cung cấp cú pháp tuân thủ tiêu chuẩn và trong suốt hơn để truy cập kèo bóng đá c1 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 truy cập từ xa bằng cách sử dụngPostgres_FDW
:
Cài đặtPostgres_FDW
Phần mở rộng sử dụngTạo tiện ích mở rộng.
Tạo đối tượng kèo bóng đá c1 chủ nước ngoài, sử dụngPostgreSQL: Tài10807_10908user
vàMật khẩu
, là tùy chọn của đối tượng kèo bóng đá c1 chủ.
Tạo ánh xạ người dùng, sử dụngPostgreSQL: Tài, Đố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 kèo bóng đá c1 chủ nước ngoài. Chỉ định tên người dùng và mật khẩu từ xa để sử dụng làuser
vàMật khẩu
Tùy chọn ánh xạ người dùng.
Tạo một bảng kèo bóng đá c1, sử dụngPostgreSQL: Tài liệu:hoặcPostgreSQL: Tài liệu:, cho mỗi bảng từ xa bạn muốn truy cập. kèo bóng đá c1 cột của Bàn nước ngoài phải khớp với bảng từ xa đượ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 từ xa, nếu bạn chỉ định tên từ xa chính xác là kèo bóng đá c1 tùy chọn của đối tượng bảng nước ngoài.
Bây giờ bạn chỉ cầnChọn
Từ một bảng kèo bóng đá c1 để truy cập dữ liệu được lưu trữ trong bảng từ xa bên dưới 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
, Copy
hoặccắt ngắn
12519_12632
Lưu ý rằngchỉ
Tùy chọn được chỉ định trongChọn
, Cập nhật
, Xóa
hoặccắt ngắn
Không có hiệu lực khi truy cập hoặc sửa đổi bảng từ xa.
Lưu ý rằngPOSTGRES_FDW
Hiện đang thiếu hỗ trợ choChèn
Câu nói vớitrên xung đột do cập nhật
mệnh đề. Tuy nhiên,trên xung đột không làm gì
mệnh đề được hỗ trợ, cung cấp một đặc điểm kỹ thuật suy luận chỉ số duy nhất bị bỏ qua. Cũng lưu ý rằngPOSTGRES_FDW
Hỗ trợ chuyển động hàng được gọi bởiCập nhật
kèo bóng đá c1 câu lệnh được thực thi trên kèo bóng đá c1 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ật
Phân vùng mục tiêu sẽ được cập nhật ở nơi khác trong cùng một lệnh.
Nói chung, kèo bóng đá c1 cột của bảng nước ngoài được khai báo với chính xác kèo bóng đá c1 loại dữ liệu và đối chiếu nếu có thể, như kèo bóng đá c1 cột được tham chiếu của bảng từ xa. Mặc dùPOSTGRES_FDW
13903_14152
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 từ xa cơ bản của nó có. Kết hợp kèo bóng đá c1 cột với bảng từ xa là theo tên, không phải vị trí.
Một kèo bóng đá c1 chủ nước ngoài sử dụngPOSTGRES_FDW
trình bao bọc dữ liệu nước ngoài có thể có kèo bóng đá c1 tùy chọn tương tựlibpqChấp nhận trong kèo bóng đá c1 chuỗi kết nối, như được mô tả trongPhần 34.1.2, ngoại trừ việc kèo bóng đá c1 tùy chọn này không được phép hoặc có xử lý đặc biệt:
user
, Mật khẩu
vàSSLPassword
(Chỉ định những điều này trong á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 kèo bóng đá c1 chủ cục bộ)
fallback_application_name
(luôn luôn được đặt thànhPostgres_FDW
)
SSLKey
vàSSLCERT
- Chúng có thể xuất hiện trong16093_16109Mộ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ỉ kèo bóng đá c1 siêu người dùng mới có thể tạo hoặc sửa đổi ánh xạ người dùng bằngSSLCERT
hoặcsslkey
Cài đặt.
Chỉ kèo bóng đá c1 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ẩu
Tù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.
16655_16756password_required 'false'
, ví dụ:
Thay đổi ánh xạ người dùng cho một số_non_superuser kèo bóng đá c1 chủ loopback_nopw Tùy chọn (thêm password_Required 'false');
16975_17190
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ữ liệu được ánh xạ trên mỗi CVE-2007-3278 và CVE-2007-6601. Không đặtpassword_required = false
trêncông khai
Vai 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ỉ kèo bóng đá c1 khách nào,.pgass
, .pg_service.conf
vv trong thư mục nhà Unix của người dùng hệ thống, máy chủ Postgres chạy như. Họ cũng có thể sử dụng bất kỳ mối quan hệ tin cậy nào được cấp bởi kèo bóng đá c1 chế độ xác thực nhưPeer
hoặcNhận dạng
Xác thực.
kèo bóng đá c1 tùy chọn này có thể được sử dụng để kiểm soát kèo bóng đá c1 tên được sử dụng trong kèo bóng đá c1 câu lệnh SQL được gửi đến điều khiển từ xaPostgreSQLMáy chủ. kèo bóng đá c1 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
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 kèo bóng đá c1 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
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 kèo bóng đá c1 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
19248_19438
POSTGRES_FDW
19772_20221Postgres_FDW
Cung cấp kèo bóng đá c1 tùy chọn sau để kiểm soát cách ước tính chi phí được thực hiện:
use_remote_estimate
Tùy chọn này, có thể được chỉ định cho một bàn nước ngoài hoặc kèo bóng đá c1 chủ nước ngoài, điều khiển cho dùPostgres_FDW
vấn đề từ xaGiải thích
kèo bóng đá c1 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àSai
.
fdw_startup_cost
21036_21355100
.
fdw_tuple_cost
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 kèo bóng đá c1 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ủ từ xa. Giá trị mặc định là0.01
.
Khiuse_remote_estimate
là đúng,POSTGRES_FDW
có được ước tính số lượng hàng và chi phí từ kèo bóng đá c1 chủ từ xa và sau đó thêmfdw_startup_cost
vàfdw_tuple_cost
với ước tính chi phí. Khiuse_remote_estimate
là sai,Postgres_FDW
Thực hiện số lượng hàng địa phương và ước tính chi phí và sau đó thêmfdw_startup_cost
vàfdw_tuple_cost
vớ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 kèo bóng đá c1 bản sao cục bộ của số liệu thống kê của bảng từ xa 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 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ộ. 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 từ xa-nhưng nếu bảng điều khiển từ xa được cập nhật thường xuyên, kèo bóng đá c1 số liệu thống kê địa phương sẽ sớm bị lỗi thời.
Theo mặc định, chỉWHERE
Điều khoản sử dụng kèo bóng đá c1 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. kèo bóng đá c1 điều khoản liên quan đến kèo bóng đá c1 chức năng không được xây dựng được kiểm tra cục bộ sau khi kèo bóng đá c1 hàng được tìm nạp. Nếu kèo bóng đá c1 chức năng đó có sẵn trên máy chủ từ xa và có thể được dựa vào để tạo ra kết quả tương tự như chúng ở cục bộ, hiệu suất có thể được cải thiện bằng cách gửi như vậyWHERE
Đ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:
Tiện ích mở rộng
Tùy chọn này là danh sách kèo bóng đá c1 tên được phân tách bằng dấu phẩyPostgreSQLTiện ích mở rộng được cài đặt, trong kèo bóng đá c1 phiên bản tương thích, trên cả máy chủ cục bộ và máy chủ từ xa. kèo bóng đá c1 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. Tùy chọn này chỉ có thể được chỉ định cho kèo bóng đá c1 máy chủ nước ngoài, không phải mỗi bàn.
Khi sử dụngTiện ích mở rộng
Tùy chọn,Đó là trách nhiệm của người dùngRằng kèo bóng đá c1 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, kèo bóng đá c1 truy vấn từ xa có thể thất bại hoặc cư xử bất ngờ.
fetch_size
Tùy chọn này chỉ định số lượng hàngPostgres_FDW
nê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 kèo bóng đá c1 chủ nước ngoài. Tùy chọn được chỉ định trên bảng ghi đè một tùy chọn được chỉ định cho kèo bóng đá c1 chủ. Mặc định là100
.
Batch_Size
Tùy chọn này chỉ định số lượng hàngPOSTGRES_FDW
Nê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 kèo bóng đá c1 chủ nước ngoài. Tùy chọn được chỉ định trên bảng ghi đè một tùy chọn được chỉ định cho kèo bóng đá c1 chủ. Mặc định là1
.
Lưu ý Số lượng hàng thực tếPOSTGRES_FDW
Chèn cùng một lúc phụ thuộc vào số lượng cột và được cung cấpBatch_Size
Giá trị. Lô được thực thi dưới dạng một truy vấn duy nhất và giao thức libpq (màPOSTGRES_FDW
Sử dụng để kết nối với kèo bóng đá c1 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_Size
vượt quá giới hạn,Batch_Size
sẽ được điều chỉnh để tránh lỗi.
Postgres_FDW
Hỗ trợ thực thi không đồng bộ, chạy nhiều phần củaPhụ lục
Node đồ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
Tùy chọn này kiểm soát xemPOSTGRES_FDW
Cho phép kèo bóng đá c1 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. 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àSai
.
Để đảm bảo rằng dữ liệu được trả về từ kèo bóng đá c1 chủ nước ngoài là nhất quán,POSTGRES_FDW
Sẽ 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ả kèo bóng đá c1 truy vấn đối với máy chủ đó một cách tuần tự ngay cả khi có nhiều bảng nước ngoài liên quan, trừ khi kèo bóng đá c1 bảng đó 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 kèo bóng đá c1 truy vấn không đồng bộ.
Thực thi không đồng bộ được áp dụng ngay cả khi mộtPhụ lục
Node chứa Subplan (s) được thực thi đồng bộ cũng như Sub (s) được thực thi không đồng bộ. Trong trường hợp như vậy, nếu kèo bóng đá c1 mẫu con không đồng bộ được xử lý bằng cách sử dụngPOSTGRES_FDW
, Tuples từ kèo bóng đá c1 lớp con không đồng bộ không được trả lại cho đến khi ít nhất một kế hoạch con đồng bộ trả về tất cả kèo bóng đá c1 bộ dữ liệu, vì kế hoạch con đó được thực thi trong khi kèo bóng đá c1 kế hoạch con không đồng bộ đang chờ kết quả của kèo bóng đá c1 truy vấn không đồng bộ được trình bày cho kèo bóng đá c1 máy chủ nước ngoài. Hành vi này có thể thay đổi trong bản phát hành trong tương lai.
Theo mặc định, tất cả kèo bóng đá c1 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
Tùy chọn này kiểm soát xemPOSTGRES_FDW
Cho phép kèo bóng đá c1 bảng nước ngoài được sửa đổi bằng cách sử dụngChèn
, Cập nhật
vàXóa
lệnh. Nó có thể được chỉ định cho một bàn nước ngoài hoặc một kèo bóng đá c1 chủ nước ngoài. Một tùy chọn cấp bảng ghi đè một tùy chọn cấp kèo bóng đá c1 chủ. Mặc định là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 kèo bóng đá c1 chủ từ xa. Tuy nhiên, lưu ý rằngthông tin_schema
Chế độ xem sẽ báo cáo APOSTGRES_FDW
Bả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 kèo bóng đá c1 chủ từ xa.
Theo mặc định, tất cả kèo bóng đá c1 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
Tùy chọn này kiểm soát xemPOSTGRES_FDW
30718_30769cắt ngắn
lệnh. Nó có thể được chỉ định cho một bàn nước ngoài hoặc một kèo bóng đá c1 chủ nước ngoài. Một tùy chọn cấp bảng ghi đè một tùy chọn cấp kèo bóng đá c1 chủ. Mặc định làTRUE
.
30998_31190
POSTGRES_FDW
Có thể nhập kèo bóng đá c1 định nghĩa về bàn nước ngoài bằng cách sử dụngPostgreSQL: Tài liệu:31711_31978
Hành vi nhập khẩu có thể được tùy chỉnh với kèo bóng đá c1 tùy chọn sau (được đưa ra trongNhập lược đồ kèo bóng đá c1
lệnh):
Nhập khẩu_collate
Tùy chọn này có kiểm soát liệu cộtđối chiếu
Tùy chọn được bao gồm trong kèo bóng đá c1 định nghĩa về kèo bóng đá c1 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 máy chủ từ xa có một bộ tên đối chiếu khác với máy 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. Tuy nhiên, nếu bạn làm như vậy, có một rủi ro rất nghiêm trọng là kèo bóng đá c1 cột của bảng được nhập khẩu sẽ không khớp với dữ liệu cơ bản, dẫn đến hành vi truy vấn dị thường.
Ngay cả khi tham số này được đặt thànhTRUE
, Nhập kèo bóng đá c1 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 kèo bóng đá c1 chủ cục bộ, có thể khác.
33302_33318
Tùy chọn này có kiểm soát liệu cộtMặc định
Biểu thức được bao gồm trong kèo bóng đá c1 định nghĩa về kèo bóng đá c1 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 kèo bóng đá c1 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ập
Sẽ 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
Tùy chọn này có kiểm soát xem cộtTạo
Biểu thức được bao gồm trong kèo bóng đá c1 định nghĩa về kèo bóng đá c1 bảng nước ngoài được nhập từ máy chủ nước ngoài. Mặc định làTRUE
. TheNhập
Sẽ 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
Tùy chọn này kiểm soát cộtkhông null
kèo bóng đá c1 ràng buộc được bao gồm trong kèo bóng đá c1 định nghĩa về kèo bóng đá c1 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 kèo bóng đá c1 ràng buộc khác vớikhông null
34950_35009PostgreSQLViệc kiểm tra hỗ trợ kèo bóng đá c1 ràng buộc trên kèo bóng đá c1 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 kèo bóng đá c1 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 kèo bóng đá c1 lỗi khó phát hiện trong tối ưu hóa truy vấn. Vì vậy, nếu bạn muốn nhập kèo bóng đá c1 ràng buộc kiểm tra, bạn phải thực hiện thủ công và bạn nên xác minh ngữ nghĩa của từng loại một cách cẩn thận. Để biết thêm chi tiết về việc xử lý kèo bóng đá c1 ràng buộc kiểm tra trên kèo bóng đá c1 bảng nước ngoài, xemPostgreSQL: Tài liệu:.
Bảng hoặc bảng kèo bóng đá c1 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ạn
mệnh đề. Nếu không, chúng được tự động loại trừ khỏiPostgreSQL: Tài liệu:. 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 kèo bóng đá c1 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.
Theo mặc định, tất cả kèo bóng đá c1 kết nốiPOSTGRES_FDW
Thiết lập kèo bóng đá c1 chủ nước ngoài được mở trong phiên cục bộ để sử dụng lại.
Keep_Connections
Tùy chọn này có kiểm soát xemPOSTGRES_FDW
Giữ kèo bóng đá c1 kết nối với máy chủ nước ngoài mở để kèo bóng đá c1 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. Mặc định làtrên
. Nếu được đặt thànhTẮT
, Tất cả kèo bóng đá c1 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.
37691_37783
Hàm này trả về tên máy chủ nước ngoài của tất cả kèo bóng đá c1 kết nối mởPOSTGRES_FDW
Được thiết lập từ phiên địa phương đến kèo bóng đá c1 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
38100_38306null
Nếu kèo bóng đá c1 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ề. Ví dụ sử dụng hàm:
postgres =# select * từ postgres_fdw_get_connections () đặt hàng theo 1; server_name | có hiệu lực -------------+------- loopback1 | t loopback2 | f
38846_38905
Hàm này loại bỏ kèo bóng đá c1 kết nối mở được thiết lập bởiPOSTGRES_FDW
Từ 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 kèo bóng đá c1 ánh xạ người dùng khác nhau. Nếu kèo bóng đá c1 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à kèo bóng đá c1 thông báo cảnh báo được báo cáo. Hàm này trả vềTRUE
Nế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ó kèo bóng đá c1 chủ nước ngoài nào có tên đã cho, một lỗi được báo cáo. Ví dụ sử dụng hàm:
postgres =# chọn postgres_fdw_disconnect ('loopback1'); Postgres_fdw_disconnect ----------------------------- t
postgres_fdw_disconnect_all () trả về boolean
Hàm này loại bỏ tất cả kèo bóng đá c1 kết nối mở được thiết lập bởiPOSTGRES_FDW
Từ phiên cục bộ đến máy chủ nước ngoài. Nếu kèo bóng đá c1 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à kèo bóng đá c1 thông báo cảnh báo được báo cáo. Hàm này trả vềtrue
Nếu nó ngắt kết nối ít nhất một kết nối, nếu khôngfalse
40329_40363
postgres =# chọn postgres_fdw_disconnect_all (); postgres_fdw_disconnect_all --------------------------------- t
POSTGRES_FDW
Thiế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 kèo bóng đá c1 truy vấn tiếp theo trong cùng một phiên. Hành vi này có thể được kiểm soát bằng cách sử dụngKeep_Connections
Tùy chọn cho kèo bóng đá c1 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 kèo bóng đá c1 chủ nước ngoài, kết nối được thiết lập cho mỗi ánh xạ người dùng.
41295_41648
Một khi kết nối với kèo bóng đá c1 chủ nước ngoài đã được thiết lập, theo mặc định, nó được giữ cho đến khi phiên từ xa hoặc phiên từ xa tương ứng thoát ra. Để ngắt kết nối một cách rõ ràng,Keep_connections
Tùy chọn cho kèo bóng đá c1 chủ nước ngoài có thể bị vô hiệu hóa hoặcPOSTGRES_FDW_DISCONNECT
vàPOSTGRES_FDW_DISCONNECT_ALL
kèo bóng đá c1 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 kèo bóng đá c1 kết nối trên máy chủ nước ngoài.
42425_42497Postgres_FDW
42537_42826
Giao dịch từ xa sử dụngserializable
Mức cách ly khi giao dịch cục bộ cóserializable
Mức cách ly; nếu không thì nó sử dụngĐọc lặp lại
Mứ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ả kèo bóng đá c1 lần quét. Hậu quả là kèo bóng đá c1 truy vấn liên tiếp trong một giao dịch sẽ thấy cùng một dữ liệu từ máy chủ từ xa, ngay cả khi kèo bóng đá c1 bản cập nhật đồng thời xảy ra trên máy chủ từ xa do kèo bóng đá c1 hoạt động khác. Hành vi đó dù sao cũng sẽ được mong đợi nếu giao dịch cục bộ sử dụngserializable
hoặcĐọc lặp lại
Cấp độ cô lập, nhưng có thể đáng ngạc nhiên cho AĐọc cam kết
Giao dịch địa phương. Một tương laiPOSTGRESQLPhát hành có thể sửa đổi kèo bóng đá c1 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.
POSTGRES_FDW
cố gắng tối ưu hóa kèo bóng đá c1 truy vấn từ xa để giảm lượng dữ liệu được truyền từ kèo bóng đá c1 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 hiện và không truy xuất kèo bóng đá c1 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,WHERE
44593_44778Tiện ích mở rộng
Tùy chọn. Toán tử và chức năng trong kèo bóng đá c1 điều khoản như vậy phải làImmutable
là tốt. Cho mộtCập nhật
hoặcXóa
Truy vấn,postgres_fdw
cố 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 kèo bóng đá c1 chủ từ xa nếu không có truy vấnWHERE
kèo bóng đá c1 điều khoản không thể được gửi đến máy chủ từ xa, không tham gia cục bộ cho truy vấn, không có địa phương cấp hàngtrước
hoặcsau
Triggers hoặc được lưu trữ kèo bóng đá c1 cột được tạo trên bảng đích và khôngTùy chọn kiểm tra
kèo bóng đá c1 ràng buộc từ kèo bóng đá c1 quan điểm cha mẹ. TRONGCập nhật
, kèo bóng đá c1 biểu thức để gán cho kèo bóng đá c1 cột đích phải chỉ sử dụng kèo bóng đá c1 loại dữ liệu tích hợp,Immutable
toán tử hoặcbất biến
kèo bóng đá c1 chức năng, để giảm nguy cơ mắc bệnh truy vấn.
KhiPOSTGRES_FDW
gặp sự tham gia giữa kèo bóng đá c1 bảng nước ngoài trên cùng một máy chủ nước ngoài, nó gửi toàn bộ tham gia với máy chủ nước ngoài, trừ khi một số lý do, nó tin rằng nó sẽ hiệu quả hơn khi tìm nạp kèo bóng đá c1 hàng từ mỗi bảng hoặc trừ khi bảng tham chiếu liên quan đến kèo bóng đá c1 bản đồ người dùng khác nhau. Trong khi gửitham gia
Điều khoản, nó có kèo bóng đá c1 biện pháp phòng ngừa tương tự như đã đề cập ở trên choWHERE
mệnh đề.
Truy vấn thực sự được gửi đến kèo bóng đá c1 chủ từ xa để thực thi có thể được kiểm tra bằngGiải thích Verbose
.
Trong kèo bóng đá c1 phiên từ xa được mở bởiPOSTGRES_FDW
,search_pathTham số được đặt thành chỉpg_catalog
, do đó chỉ hiển thị kèo bóng đá c1 đối tượng tích hợp mà không có trình độ lược đồ. Đây không phải là vấn đề cho kèo bóng đá c1 truy vấn được tạo bởiPOSTGRES_FDW
Bả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 kèo bóng đá c1 chức năng được thực thi trên máy chủ từ xa thông qua kèo bóng đá c1 kích hoạt hoặc quy tắc trên kèo bóng đá c1 bảng từ xa. Ví dụ: nếu một bảng từ xa 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ả kèo bóng đá c1 tên trong kèo bóng đá c1 chức năng đó, hoặc khác đính kèmĐặt search_path
Tùy chọn (xemTạo chức năng) đến kèo bóng đá c1 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_FDW
Tương tự như vậy thiết lập cài đặt phiên từ xa cho kèo bóng đá c1 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 kèo bóng đá c1 chủ từ xa 9.0 trở lên và được đặt thành2
cho kèo bóng đá c1 phiên bản cũ hơn
Chúng ít có khả năng có vấn đề hơnsearch_path
48922_48959set
Tùy chọn nếu có nhu cầu.
đó làkhông49077_49208Postgres_FDW
đến trục trặc.
POSTGRES_FDW
Có thể được sử dụng với kèo bóng đá c1 máy chủ từ xa có niên đại trở lạ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_FDW
Nói chung giả định rằng kèo bóng đá c1 hàm 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 trong AWHERE
49926_50080Hà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 kèo bóng đá c1 vào một phụ-Chọn
vớiOffset 0
Là 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
.
50724_50778POSTGRES_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 kèo bóng đá c1 chủ nước ngoài bằng cách sử dụngPostgreSQL: Tài. Trong ví dụ này, chúng tôi muốn kết nối vớiPostgreSQLkèo bóng đá c1 chủ trên kèo bóng đá c1 chủ192.83.123.89
nghe trên cổng5432
. Cơ sở dữ liệu mà kết nối được thực hiện được đặt tênFRIANT_DB
Trên kèo bóng đá c1 chủ từ xa:
Tạo kèo bóng đá c1 chủ nước ngoài_server Vòng bao bọc dữ liệu nước ngoài Postgres_fdw Tùy chọn (kèo bóng đá c1 chủ '192.83.123.89', cổng '5432', dbname 'foreign_db');
Ánh xạ người dùng, được xác định vớiPostgreSQL: Tài51758_51840
Tạo ánh xạ người dùng cho local_user kèo bóng đá c1 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 đá c1 vớiPostgreSQL: Tài liệu:. Trong ví dụ này, chúng tôi muốn truy cập bảng có tênS xuất tức
Trên kèo bóng đá c1 chủ từ xa. Tên địa phương cho nó sẽ làForeign_Table
:
Tạo Taber Foreign_Table ( Id Integer không null, Văn bản dữ liệu ) kèo bóng đá c1 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 đá c1 loại dữ liệu và kèo bóng đá c1 thuộc tính khác của kèo bóng đá c1 cột được khai báo trongTạo bảng kèo bóng đá c1
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_name
Tùy chọn cho kèo bóng đá c1 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:
tốt hơn là xây dựng định nghĩa bảng kèo bóng đá c1 theo cách thủ công.
Shigeru Hanada<Shigeru.hanada@gmail
Nếu bạn thấy bất cứ điều gì trong tài liệu không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề tài liệu.