doc-exports/docs/dws/dev/dws_04_0213.html
Lu, Huayi e6fa411af0 DWS DEV 830.201 version
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com>
Co-authored-by: Lu, Huayi <luhuayi@huawei.com>
Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
2024-05-16 07:24:04 +00:00

215 lines
59 KiB
HTML

<a name="EN-US_TOPIC_0000001188642138"></a><a name="EN-US_TOPIC_0000001188642138"></a>
<h1 class="topictitle1">Manually Creating a Foreign Server</h1>
<div id="body8662426"><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p143401232191816">In the syntax <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b142231738194616">CREATE FOREIGN TABLE (SQL on Hadoop or OBS)</strong> for creating a foreign table, you need to specify a foreign server associated with the MRS data source connection.</p>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p22484229371">When you create an MRS data source connection on the GaussDB(DWS) management console, the database administrator dbadmin automatically creates a foreign server in the default database <strong id="EN-US_TOPIC_0000001188642138__b1493553313412">postgres</strong>. If you want to create a foreign table in the default database <strong id="EN-US_TOPIC_0000001188642138__b1686731018341">postgres</strong> to read MRS data, skip this section.</p>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p129865112523">To allow a common user to create a foreign table in a user-defined database to read MRS data, you must manually create a foreign server in the user-defined database. This section describes how does a common user create a foreign server in a user-defined database. The procedure is as follows:</p>
<ol id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_ol1368815211919"><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li186881231920">Ensure that an MRS data source connection has been created for the <span id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_ph417419975517">GaussDB(DWS)</span> cluster.<p id="EN-US_TOPIC_0000001188642138__p1243611902413"><span id="EN-US_TOPIC_0000001188642138__ph1044013198243">For details, see section "MRS Data Sources &gt; Creating an MRS Data Source Connection" in the <em id="EN-US_TOPIC_0000001188642138__i62914511263">Data Warehouse Service User Guide</em>.</span></p>
</li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li268817251913"><a href="#EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section765119474519">Creating a User and a Database and Granting the User Foreign Table Permissions</a></li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li36884218197"><a href="#EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section070174417129">Manually Creating a Foreign Server</a></li></ol>
<div class="note" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_note1596044164318"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p10960174134318">If you no longer need to read data from the MRS data source and have deleted the MRS data source on the <span id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_ph1933119180555">GaussDB(DWS)</span> management console, only the foreign server automatically created in the default database <strong id="EN-US_TOPIC_0000001188642138__b1982711581364">postgres</strong> will be deleted, and the manually created foreign server needs to be deleted manually. For details about the deletion, see <a href="dws_04_0216.html#EN-US_TOPIC_0000001233681609__en-us_topic_0000001082926731_en-us_topic_0109259519_en-us_topic_0102427953_section79551640133718">Deleting the Manually Created Foreign Server</a>.</p>
</div></div>
<div class="section" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section765119474519"><a name="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section765119474519"></a><a name="en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section765119474519"></a><h4 class="sectiontitle">Creating a User and a Database and Granting the User Foreign Table Permissions</h4><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p12921550135117">In the following example, a common user <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b8449128193415">dbuser</strong> and a database <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b17449122810344">mydatabase</strong> are created. Then, an administrator is used to grant foreign table permissions to user <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b13449828133415">dbuser</strong>.</p>
<ol id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_ol829775011517"><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_li142731428201114"><span>Connect to the default database <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b825619498913">postgres</strong> as a database administrator through the database client tool provided by <span id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_ph6572122717556">GaussDB(DWS)</span>.</span><p><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_a6cd9e107bfd243c8b4dd75dc2755fc2d">For example, use the <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b41104516920">gsql</strong> client to connect to the database by running the following command:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen8320450165111"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">gsql</span><span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">gaussdb</span><span class="w"> </span><span class="o">-</span><span class="n">h</span><span class="w"> </span><span class="mi">192</span><span class="p">.</span><span class="mi">168</span><span class="p">.</span><span class="mi">2</span><span class="p">.</span><span class="mi">30</span><span class="w"> </span><span class="o">-</span><span class="n">U</span><span class="w"> </span><span class="n">dbadmin</span><span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="mi">8000</span><span class="w"> </span><span class="o">-</span><span class="n">W</span><span class="w"> </span><span class="n">password</span><span class="w"> </span><span class="o">-</span><span class="n">r</span>
</pre></div></td></tr></table></div>
</div>
</p></li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li1754135025112"><span>Create a common user and use it to create a database.</span><p><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p85530506517">Create a user named <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b12668144373620">dbuser</strong> that has the permission to create databases.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen145571950115118"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">dbuser</span><span class="w"> </span><span class="k">WITH</span><span class="w"> </span><span class="k">CREATEDB</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'password'</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<div class="p" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p1059605020512">Switch to the created user.<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen760095055111"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SET</span><span class="w"> </span><span class="k">ROLE</span><span class="w"> </span><span class="n">dbuser</span><span class="w"> </span><span class="n">PASSWORD</span><span class="w"> </span><span class="s1">'password'</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<div class="p" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p1963475020515">Run the following command to create a database:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen4638450115118"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">DATABASE</span><span class="w"> </span><span class="n">mydatabase</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p3658185085119">Query the database.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_s7b213b09aec54d51a415f31de9f34c2a"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_database</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p106747500513">The database is successfully created if the returned result contains information about <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b3108143115442">mydatabase</strong>.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen968475085113"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">datname</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datdba</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">encoding</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datcollate</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datctype</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datistemplate</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datallowconn</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datconnlimit</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datlastsysoid</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datfrozenxid</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">dattablespace</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datcompatibility</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">datacl</span>
<span class="c1">------------+--------+----------+------------+----------+---------------+--------------+--------------+---------------+--------------+---------------+------------------+--------------------------------------</span>
<span class="c1">--------------</span>
<span class="w"> </span><span class="n">template1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">C</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">C</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">14146</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1351</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1663</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ORA</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="o">=</span><span class="k">c</span><span class="o">/</span><span class="n">Ruby</span><span class="p">,</span><span class="n">Ruby</span><span class="o">=</span><span class="n">CTc</span><span class="o">/</span><span class="n">Ruby</span><span class="err">}</span>
<span class="w"> </span><span class="n">template0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">C</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">C</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">14146</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1350</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1663</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ORA</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="o">=</span><span class="k">c</span><span class="o">/</span><span class="n">Ruby</span><span class="p">,</span><span class="n">Ruby</span><span class="o">=</span><span class="n">CTc</span><span class="o">/</span><span class="n">Ruby</span><span class="err">}</span>
<span class="w"> </span><span class="n">gaussdb</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">C</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">C</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">14146</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1352</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1663</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ORA</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="o">=</span><span class="n">Tc</span><span class="o">/</span><span class="n">Ruby</span><span class="p">,</span><span class="n">Ruby</span><span class="o">=</span><span class="n">CTc</span><span class="o">/</span><span class="n">Ruby</span><span class="p">,</span><span class="n">chaojun</span><span class="o">=</span><span class="k">C</span><span class="o">/</span><span class="n">Ruby</span><span class="p">,</span><span class="n">hu</span>
<span class="n">obinru</span><span class="o">=</span><span class="k">C</span><span class="o">/</span><span class="n">Ruby</span><span class="err">}</span>
<span class="w"> </span><span class="n">mydatabase</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">17000</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">C</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="k">C</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">14146</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1351</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">1663</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">ORA</span><span class="w"> </span><span class="o">|</span>
<span class="p">(</span><span class="mi">4</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</p></li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_lbb4792f399454947b6f66f19fbda4546"><span>Grant the permissions for creating foreign servers and using foreign tables to a common user as the administrator.</span><p><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_p20362151612179">Use the connection to create a database as a database administrator.</p>
<div class="p" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_a4bfb3f8aae0a416980e919e61dc06aac">You can use the <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b08648541099">gsql</strong> client to run the following command, switching to an administrator user, and connect to the new database:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen17601950165117"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="err">\</span><span class="k">c</span><span class="w"> </span><span class="n">mydatabase</span><span class="w"> </span><span class="n">dbadmin</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p147831050185118">Enter the password as prompted.</p>
<div class="note" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_note17786550145118"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p1879955025116">Note that you must use the administrator account to connect to the database where a foreign server is to be created and foreign tables are used; and then grant permissions to the common user.</p>
</div></div>
<div class="p" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p879945010516">By default, only system administrators can create foreign servers. Common users can create foreign servers only after being authorized. Run the following command to grant the permission:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen7802125013517"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">GRANT</span><span class="w"> </span><span class="k">ALL</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="k">FOREIGN</span><span class="w"> </span><span class="k">DATA</span><span class="w"> </span><span class="n">WRAPPER</span><span class="w"> </span><span class="n">hdfs_fdw</span><span class="w"> </span><span class="k">TO</span><span class="w"> </span><span class="n">dbuser</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p2082119504512">The name of <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b97502397413">FOREIGN DATA WRAPPER</strong> must be <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b157501539114116">hdfs_fdw</strong>. <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b1075013904112">dbuser</strong> is the username for creating <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b13750133916419">SERVER</strong>.</p>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p1382575017513">Run the following command to grant the user the permission to use foreign tables:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen282835065114"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">ALTER</span><span class="w"> </span><span class="k">USER</span><span class="w"> </span><span class="n">dbuser</span><span class="w"> </span><span class="n">USEFT</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p17847195011516">Query for the user.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen1585195065113"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal"> 1</span>
<span class="normal"> 2</span>
<span class="normal"> 3</span>
<span class="normal"> 4</span>
<span class="normal"> 5</span>
<span class="normal"> 6</span>
<span class="normal"> 7</span>
<span class="normal"> 8</span>
<span class="normal"> 9</span>
<span class="normal">10</span>
<span class="normal">11</span>
<span class="normal">12</span>
<span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolname</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolsuper</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolinherit</span><span class="p">,</span>
<span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolcreaterole</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolcreatedb</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolcanlogin</span><span class="p">,</span>
<span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolconnlimit</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolvalidbegin</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolvaliduntil</span><span class="p">,</span>
<span class="w"> </span><span class="nb">ARRAY</span><span class="p">(</span><span class="k">SELECT</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">rolname</span>
<span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_catalog</span><span class="p">.</span><span class="n">pg_auth_members</span><span class="w"> </span><span class="n">m</span>
<span class="w"> </span><span class="k">JOIN</span><span class="w"> </span><span class="n">pg_catalog</span><span class="p">.</span><span class="n">pg_roles</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="k">ON</span><span class="w"> </span><span class="p">(</span><span class="n">m</span><span class="p">.</span><span class="n">roleid</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">oid</span><span class="p">)</span>
<span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">m</span><span class="p">.</span><span class="n">member</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">oid</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">memberof</span>
<span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolreplication</span>
<span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolauditadmin</span>
<span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">rolsystemadmin</span>
<span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">.</span><span class="n">roluseft</span>
<span class="k">FROM</span><span class="w"> </span><span class="n">pg_catalog</span><span class="p">.</span><span class="n">pg_roles</span><span class="w"> </span><span class="n">r</span>
<span class="k">ORDER</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p38611150155111">The authorization is successful if the <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706113153">dbuser</strong> information in the returned result contains the <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b133971541171319">UseFT</strong> permission.</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen1486415504517"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><span class="w"> </span><span class="n">rolname</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolsuper</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolinherit</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolcreaterole</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolcreatedb</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolcanlogin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolconnlimit</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolvalidbegin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolvaliduntil</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">memberof</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolreplication</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolauditadmin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">rolsystemadmin</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">roluseft</span>
<span class="c1">-----------+----------+------------+---------------+-------------+-------------+--------------+---------------+---------------+----------+----------------+---------------+----------------+----------</span>
<span class="w"> </span><span class="n">dbuser</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span>
<span class="w"> </span><span class="n">lily</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">f</span>
<span class="w"> </span><span class="n">Ruby</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{}</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">t</span>
</pre></div></td></tr></table></div>
</div>
</p></li></ol>
</div>
<div class="section" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section070174417129"><a name="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section070174417129"></a><a name="en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section070174417129"></a><h4 class="sectiontitle">Manually Creating a Foreign Server</h4><ol id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_ol62901748313"><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li192864493116"><span>Connect to the default database <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b1943648151915">postgres</strong> as a database administrator through the database client tool provided by <span id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_ph25485443528">GaussDB(DWS)</span>.</span><p><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_a5fc88bf06fb14b88a4d77cd3859351da">You can use the <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b1687418231013">gsql</strong> client to log in to the database in either of the following ways:</p>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p10529175864113">You can use either of the following methods to create the connection:</p>
<ul id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_ul1987102122918"><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li286821192916">If you have logged in to the gsql client, run the following command to switch the database and user:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen78672118298"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="err">\</span><span class="k">c</span><span class="w"> </span><span class="n">postgres</span><span class="w"> </span><span class="n">dbadmin</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p393324232911">Enter the password as prompted.</p>
</li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li28642119290">If you have not logged in to the gsql client or have exited the gsql client by running the <b><span class="cmdname" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_cmdname20356639125315">\q</span></b> command, run the following command to reconnect to it:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen398519063110"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="n">gsql</span><span class="w"> </span><span class="o">-</span><span class="n">d</span><span class="w"> </span><span class="n">postgres</span><span class="w"> </span><span class="o">-</span><span class="n">h</span><span class="w"> </span><span class="mi">192</span><span class="p">.</span><span class="mi">168</span><span class="p">.</span><span class="mi">2</span><span class="p">.</span><span class="mi">30</span><span class="w"> </span><span class="o">-</span><span class="n">U</span><span class="w"> </span><span class="n">dbadmin</span><span class="w"> </span><span class="o">-</span><span class="n">p</span><span class="w"> </span><span class="mi">8000</span><span class="w"> </span><span class="o">-</span><span class="n">W</span><span class="w"> </span><span class="n">password</span><span class="w"> </span><span class="o">-</span><span class="n">r</span>
</pre></div></td></tr></table></div>
</div>
</li></ul>
</p></li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li142862473118"><a name="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li142862473118"></a><a name="en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li142862473118"></a><span>Run the following command to query the information about the foreign server that is automatically created:</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen3286541318"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_foreign_server</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p32869417313">The returned result is as follows:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen162869416315"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span></pre></div></td><td class="code"><div><pre><span></span><span class="w"> </span><span class="n">srvname</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvowner</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvfdw</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvtype</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvversion</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvacl</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvoptions</span>
<span class="c1">--------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------</span>
<span class="w"> </span><span class="n">gsmpp_server</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">13673</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">gsmpp_errorinfo_server</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">13678</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span>
<span class="w"> </span><span class="n">hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16476</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">13685</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="ss">&quot;address=192.168.1.245:25000,192.168.1.218:25000&quot;</span><span class="p">,</span><span class="n">hdfscfgpath</span><span class="o">=/</span><span class="n">MRS</span><span class="o">/</span><span class="mi">8</span><span class="n">f79ada0</span><span class="o">-</span><span class="n">d998</span><span class="o">-</span><span class="mi">4026</span><span class="o">-</span><span class="mi">9020</span><span class="o">-</span><span class="mi">80</span><span class="n">d6de2692ca</span><span class="p">,</span><span class="k">type</span><span class="o">=</span><span class="n">hdfs</span><span class="err">}</span>
<span class="p">(</span><span class="mi">3</span><span class="w"> </span><span class="k">rows</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p125530415398">In the query result, each row contains the information about a foreign server. The foreign server associated with the MRS data source connection contains the following information:</p>
<ul id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_ul35541483911"><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li1255512414397">The value of <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706114911">srvname</strong> contains <span class="parmvalue" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_parmvalue440033319114926"><b>hdfs_server</b></span> and the ID of the MRS cluster, which is the same as the MRS ID in the cluster list on the MRS management console.</li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li19558134113914">The <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b84235270611527">address</strong> parameter in the <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706115211">srvoptions</strong> field contains the IP addresses and ports of the active and standby nodes in the MRS cluster.</li></ul>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p165618463911">You can find the foreign server you want based on the above information and record the values of its <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706115338">srvname</strong> and <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706115342">srvoptions</strong>.</p>
</p></li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li16757220114119"><span>Switch to the user who is about to create a foreign server to connect to the corresponding database.</span><p><div class="p" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p17718143239">In this example, run the following command to use common user <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706115548">dbuser</strong> created in <a href="#EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_section765119474519">Creating a User and a Database and Granting the User Foreign Table Permissions</a> to connect to <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706115637">mydatabase</strong> created by the user:<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen1163511110314"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="err">\</span><span class="k">c</span><span class="w"> </span><span class="n">mydatabase</span><span class="w"> </span><span class="n">dbuser</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
</div>
</p></li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li5290144113112"><span>Create a foreign server.</span><p><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p8991101111566">For details about the syntax for creating foreign servers, see CREATE SERVER. For example:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen11290114183116"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span>
<span class="normal">5</span>
<span class="normal">6</span>
<span class="normal">7</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="n">SERVER</span><span class="w"> </span><span class="n">hdfs_server_8f79ada0_d998_4026_9020_80d6de2692cahdfs_server</span><span class="w"> </span><span class="k">FOREIGN</span><span class="w"> </span><span class="k">DATA</span><span class="w"> </span><span class="n">WRAPPER</span><span class="w"> </span><span class="n">HDFS_FDW</span><span class="w"> </span>
<span class="k">OPTIONS</span><span class="w"> </span>
<span class="p">(</span>
<span class="n">address</span><span class="w"> </span><span class="s1">'192.168.1.245:25000,192.168.1.218:25000'</span><span class="p">,</span><span class="w"> </span>
<span class="n">hdfscfgpath</span><span class="w"> </span><span class="s1">'/MRS/8f79ada0-d998-4026-9020-80d6de2692ca'</span><span class="p">,</span>
<span class="k">type</span><span class="w"> </span><span class="s1">'hdfs'</span>
<span class="p">);</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p529094113116">Mandatory parameters are described as follows:</p>
<ul id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_ul72904473112"><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li20112247502"><em id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_i842352697115845">Name of the foreign server</em><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p597517818226">You can customize a name.</p>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p14825494018">In this example, specify the name to the value of the <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b84235270614142">srvname</strong> field recorded in <a href="#EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li142862473118">2</a>, such as <em id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_i425787841419">hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca</em>.</p>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p172607412714">Resources in different databases are isolated. Therefore, the names of foreign servers in different databases can be the same.</p>
</li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li19490175515519"><strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b28224115532">FOREIGN DATA WRAPPER</strong><p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p183267571517">This parameter can only be set to <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b84235270614299">HDFS_FDW</strong>, which already exists in the database.</p>
</li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li18678132185718"><strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b0652215175318">OPTIONS</strong> parameters<div class="p" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p4600144865711">Set the following parameters to the values under <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706143059">srvoptions</strong> recorded in <a href="#EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li142862473118">2</a>.<ul id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_ul18824445155713"><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li14824174512577">address<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p882410453571"><a name="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li14824174512577"></a><a name="en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li14824174512577"></a>Specifies the IP address and port number of the primary and standby nodes of the HDFS cluster.</p>
</li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li108241245175711">hdfscfgpath<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p18824134515575"><a name="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li108241245175711"></a><a name="en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li108241245175711"></a>Specifies the configuration file path of the HDFS cluster. This parameter is available only when <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b84235270610957">type</strong> is <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b84235270610100">HDFS</strong>. You can set only one path.</p>
</li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li164581429113218">type<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p34741157387"><a name="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li164581429113218"></a><a name="en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li164581429113218"></a>Its value is <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706143610">hdfs</strong>, which indicates that <strong id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_b842352706143623">HDFS_FDW</strong> connects to HDFS.</p>
</li></ul>
</div>
</li></ul>
</p></li><li id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_li1532292418484"><span>View the foreign server.</span><p><div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen1329004143114"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">SELECT</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="k">FROM</span><span class="w"> </span><span class="n">pg_foreign_server</span><span class="w"> </span><span class="k">WHERE</span><span class="w"> </span><span class="n">srvname</span><span class="o">=</span><span class="s1">'hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca'</span><span class="p">;</span>
</pre></div></td></tr></table></div>
</div>
<p id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_p182901244318">The server is successfully created if the returned result is as follows:</p>
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001188642138__en-us_topic_0000001082926737_en-us_topic_0109259516_en-us_topic_0101997156_screen1290843319"><div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span class="normal">1</span>
<span class="normal">2</span>
<span class="normal">3</span>
<span class="normal">4</span></pre></div></td><td class="code"><div><pre><span></span><span class="w"> </span><span class="n">srvname</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvowner</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvfdw</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvtype</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvversion</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvacl</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="n">srvoptions</span>
<span class="c1">--------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------</span>
<span class="w"> </span><span class="n">hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">16476</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="mi">13685</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="err">{</span><span class="ss">&quot;address=192.168.1.245:25000,192.168.1.218:25000&quot;</span><span class="p">,</span><span class="n">hdfscfgpath</span><span class="o">=/</span><span class="n">MRS</span><span class="o">/</span><span class="mi">8</span><span class="n">f79ada0</span><span class="o">-</span><span class="n">d998</span><span class="o">-</span><span class="mi">4026</span><span class="o">-</span><span class="mi">9020</span><span class="o">-</span><span class="mi">80</span><span class="n">d6de2692ca</span><span class="p">,</span><span class="k">type</span><span class="o">=</span><span class="n">hdfs</span><span class="err">}</span>
<span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">row</span><span class="p">)</span>
</pre></div></td></tr></table></div>
</div>
</p></li></ol>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_04_0210.html">Importing Data from MRS to a Cluster</a></div>
</div>
</div>