{"id":348,"date":"2022-11-28T22:04:58","date_gmt":"2022-11-28T13:04:58","guid":{"rendered":"http:\/\/milennium9.godohosting.com\/wordpress\/?p=348"},"modified":"2022-12-01T18:40:51","modified_gmt":"2022-12-01T09:40:51","slug":"postgresql-postgres_fdw","status":"publish","type":"post","link":"http:\/\/milennium9.godohosting.com\/wordpress\/?p=348","title":{"rendered":"[Postgresql] postgres_fdw"},"content":{"rendered":"\n<p>Postgresql\uc5d0\uc11c\ub294 \uc5ec\ub7ec DB instance \uc0ac\uc774\uc5d0 join\uc774 \uae30\ubcf8\uc801\uc73c\ub85c \ubd88\uac00\ub2a5 \ud569\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\uc774\ub97c \uc704\ud574\uc11c \uba87\uac00\uc9c0 extension\uc774 \uc874\uc7ac\ud558\ub294\ub370 dblink\uc640 postgres_fdw \uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p>dblink\ub294 \ucffc\ub9ac\uc5d0\uc11c DB instance\uc758 Host \uc8fc\uc18c\uc640 \uacc4\uc815 \uc815\ubcf4\ub97c \uc785\ub825\ud558\uc5ec \uc7a0\uae50\ub3d9\uc548\uc758 \uc784\uc2dc \uc5f0\uacb0\uc744 \uc0dd\uc131\ud558\ub294 \ubc29\uc2dd\uc774\uace0<br>postgres_fdw\uc758 \uacbd\uc6b0\uc5d0\ub294 \uc5f0\uacb0 \uc124\uc815\uc744 \uc800\uc7a5 \ud574 \ub450\uace0 schema\ub97c \ud1b5\uae30\ud654 \ud558\uc5ec \uc0ac\uc6a9\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c dblink\uc5d0 \ube44\ud574\uc11c \uc131\ub2a5\uc774 \uc880 \ub354 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\ub2f9\uc5f0\ud55c \uc774\uc57c\uae30\uc9c0\ub9cc \uc678\ubd80 db\ub97c join \ud558\ub294 \uac83\uc740 \uae30\ubcf8\uc801\uc73c\ub85c \ud558\ub098\uc758 DB\ub0b4 \ud14c\uc774\ube14\uc744 Join \ud558\ub294 \uac83\uacfc \ube44\uad50\ud574\uc11c \ud06c\uac8c \ub290\ub9ac\uae30 \ub54c\ubb38\uc5d0 \uc790\uc8fc Join\uc744 \ud574\uc57c\ud558\ub294 \ub370\uc774\ud130\ub77c\uba74 \uac19\uc740 DB Instance\uc5d0 \uc800\uc7a5\ud558\ub3c4\ub85d \uc124\uacc4\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE EXTENSION IF NOT EXISTS postgres_fdw\nSCHEMA public;<\/code><\/pre>\n\n\n\n<p>\uc6b0\uc120 \uc704 \ucffc\ub9ac\ub97c \ud1b5\ud574\uc11c postgres_fdw\ub97c \uc124\uce58 \ud574 \uc90d\ub2c8\ub2e4.<br>AWS\uc5d0\uc11c\ub3c4 \uc9c0\uc6d0\ud558\uae30 \ub54c\ubb38\uc5d0 \uadf8\ub0e5 \uc124\uce58\ud558\uba74 \ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE SERVER server_name\nFOREIGN DATA WRAPPER postgres_fdw\nOPTIONS(\n  host 'target server ip or url',\n  port '5432',\n  dbname 'target database name'\n);<\/code><\/pre>\n\n\n\n<p>\uadf8 \ub2e4\uc74c \uc5f0\uacb0\ud560 instance\ub97c server\ub85c \ucd94\uac00\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE USER MAPPING\nFOR public\nSERVER server_name\nOPTIONS(\n  user 'target db instance user',\n  password 'target db instance user password'\n);<\/code><\/pre>\n\n\n\n<p>\uc774 \uc6d0\uaca9 DB Instance\uc5d0 \uc811\uadfc\ud560 \ub54c \uc0ac\uc6a9\ub420 \uc0ac\uc6a9\uc790 \uacc4\uc815\uc744 Mapping \ud574 \uc90d\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>IMPORT FOREIGN SCHEMA public\nFROM SERVER foreign_server INTO schema_name;<\/code><\/pre>\n\n\n\n<p>\uadf8 \ub2e4\uc74c \uc6d0\uaca9 DB Instance\uc5d0\uc11c \uc5f0\uacb0\ud560 Table\ub4e4\uc744 \uc815\uc758\ud574 \uc918\uc57c \ud558\ub294\ub370, \ud558\ub098\ud558\ub098 \ub530\ub85c \uc815\uc758\ud560 \ud544\uc694\uac00 \uc5c6\ub2e4\uba74 \uc704 \ucffc\ub9ac\ub97c \ud1b5\ud574\uc11c \uc804\uccb4 \uc2a4\ud0a4\ub9c8\ub97c \ud37c\uc635\ub2c8\ub2e4.<br>schema_name\uc5d0 \ud574\ub2f9\ud558\ub294 \uc2a4\ud0a4\ub9c8\ub294 \ubbf8\ub9ac \uc0dd\uc131\ud574\uc57c \ud558\uba70 public\uc5d0 \ucd94\uac00\ud574\ub3c4 \ubb34\ubc29\ud558\uc9c0\ub9cc EF Core\ub97c \uc0ac\uc6a9\ud558\ub294 \uacbd\uc6b0 Migration \ud14c\uc774\ube14\uc774 \uc911\ucca9\ub418\uc5b4 \uc2e4\ud328\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 \ud574\ub2f9 DB Instance\uc758 \uc774\ub984\uc5d0 \ub9de\ub294 Schema\ub97c \ucd94\uac00\ud574\uc11c Import\ub97c \ud558\uba74 \uc774\ud6c4 \ud3b8\ud558\uac8c \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Postgresql\uc5d0\uc11c\ub294 \uc5ec\ub7ec DB instance \uc0ac\uc774\uc5d0 join\uc774 \uae30\ubcf8\uc801\uc73c\ub85c \ubd88\uac00\ub2a5 \ud569\ub2c8\ub2e4. \uc774\ub97c \uc704\ud574\uc11c \uba87\uac00\uc9c0 extension\uc774 \uc874\uc7ac\ud558\ub294\ub370 dblink\uc640 postgres_fdw \uc785\ub2c8\ub2e4. dblink\ub294 \ucffc\ub9ac\uc5d0\uc11c DB instance\uc758 Host \uc8fc\uc18c\uc640 \uacc4\uc815 \uc815\ubcf4\ub97c \uc785\ub825\ud558\uc5ec \uc7a0\uae50\ub3d9\uc548\uc758 \uc784\uc2dc \uc5f0\uacb0\uc744 \uc0dd\uc131\ud558\ub294 \ubc29\uc2dd\uc774\uace0postgres_fdw\uc758 \uacbd\uc6b0\uc5d0\ub294 \uc5f0\uacb0 \uc124\uc815\uc744 \uc800\uc7a5 \ud574 \ub450\uace0 schema\ub97c \ud1b5\uae30\ud654 \ud558\uc5ec \uc0ac\uc6a9\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c dblink\uc5d0 \ube44\ud574\uc11c \uc131\ub2a5\uc774 \uc880 \ub354 \uc88b\uc2b5\ub2c8\ub2e4. \ub2f9\uc5f0\ud55c \uc774\uc57c\uae30\uc9c0\ub9cc \uc678\ubd80 db\ub97c join \ud558\ub294 \uac83\uc740 &hellip; <a href=\"http:\/\/milennium9.godohosting.com\/wordpress\/?p=348\" class=\"more-link\"><span class=\"screen-reader-text\">[Postgresql] postgres_fdw<\/span> \ub354\ubcf4\uae30 <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0},"categories":[1],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5PypW-5C","_links":{"self":[{"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/348"}],"collection":[{"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=348"}],"version-history":[{"count":2,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/348\/revisions"}],"predecessor-version":[{"id":353,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/348\/revisions\/353"}],"wp:attachment":[{"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=348"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=348"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/milennium9.godohosting.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=348"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}