forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Reviewed-by: Rechenburg, Matthias <matthias.rechenburg@t-systems.com> Co-authored-by: Lu, Huayi <luhuayi@huawei.com> Co-committed-by: Lu, Huayi <luhuayi@huawei.com>
94 lines
9.5 KiB
HTML
94 lines
9.5 KiB
HTML
<a name="EN-US_TOPIC_0000001381808765"></a><a name="EN-US_TOPIC_0000001381808765"></a>
|
|
|
|
<h1 class="topictitle1">If No Distribution Column Is Specified, How Will Data Be Stored?</h1>
|
|
<div id="body0000001381808765"><div class="note" id="EN-US_TOPIC_0000001381808765__note121513110130"><img src="public_sys-resources/note_3.0-en-us.png"><span class="notetitle"> </span><div class="notebody"><p id="EN-US_TOPIC_0000001381808765__p72973322138">For clusters of 8.1.2 or later, you can use the GUC parameter <strong id="EN-US_TOPIC_0000001381808765__b11677182124017">default_distribution_mode</strong> to query and set the default table distribution mode.</p>
|
|
</div></div>
|
|
<p id="EN-US_TOPIC_0000001381808765__p55319515814">If no distribution column is specified during table creation, data is stored as follows:</p>
|
|
<ul id="EN-US_TOPIC_0000001381808765__ul8613141273616"><li id="EN-US_TOPIC_0000001381808765__li194724167360">Scenario 1<p id="EN-US_TOPIC_0000001381808765__p128733612366"><a name="EN-US_TOPIC_0000001381808765__li194724167360"></a><a name="li194724167360"></a>If the primary key or unique constraint is included during table creation, hash distribution is selected. The distribution column is the column corresponding to the primary key or unique constraint.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808765__screen42927261332"><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>
|
|
<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">warehouse1</span>
|
|
<span class="p">(</span>
|
|
<span class="w"> </span><span class="n">W_WAREHOUSE_SK</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">W_WAREHOUSE_ID</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">16</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">W_WAREHOUSE_NAME</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="p">);</span>
|
|
<span class="n">NOTICE</span><span class="p">:</span><span class="w"> </span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="k">PRIMARY</span><span class="w"> </span><span class="k">KEY</span><span class="w"> </span><span class="n">will</span><span class="w"> </span><span class="k">create</span><span class="w"> </span><span class="k">implicit</span><span class="w"> </span><span class="k">index</span><span class="w"> </span><span class="ss">"warehouse1_pkey"</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="k">table</span><span class="w"> </span><span class="ss">"warehouse1"</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">getdistributekey</span><span class="p">(</span><span class="s1">'warehouse1'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">getdistributekey</span>
|
|
<span class="c1">------------------</span>
|
|
<span class="w"> </span><span class="n">w_warehouse_sk</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>
|
|
</li><li id="EN-US_TOPIC_0000001381808765__li3569124112363">Scenario 2<p id="EN-US_TOPIC_0000001381808765__p3146943143615"><a name="EN-US_TOPIC_0000001381808765__li3569124112363"></a><a name="li3569124112363"></a>If the primary key or unique constraint is not included during table creation but there are columns whose data types can be used as distribution columns, hash distribution is selected. The distribution column is the first column whose data type can be used as a distribution column.</p>
|
|
<div class="codecoloring" codetype="Sql" id="EN-US_TOPIC_0000001381808765__screen25771308518"><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>
|
|
<span class="normal">14</span>
|
|
<span class="normal">15</span></pre></div></td><td class="code"><div><pre><span></span><span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="n">warehouse2</span>
|
|
<span class="p">(</span>
|
|
<span class="w"> </span><span class="n">W_WAREHOUSE_SK</span><span class="w"> </span><span class="nb">INTEGER</span><span class="w"> </span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">W_WAREHOUSE_ID</span><span class="w"> </span><span class="nb">CHAR</span><span class="p">(</span><span class="mi">16</span><span class="p">)</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">NULL</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">W_WAREHOUSE_NAME</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="p">(</span><span class="mi">20</span><span class="p">)</span><span class="w"> </span>
|
|
<span class="p">);</span>
|
|
<span class="n">NOTICE</span><span class="p">:</span><span class="w"> </span><span class="n">The</span><span class="w"> </span><span class="s1">'DISTRIBUTE BY'</span><span class="w"> </span><span class="n">clause</span><span class="w"> </span><span class="k">is</span><span class="w"> </span><span class="k">not</span><span class="w"> </span><span class="n">specified</span><span class="p">.</span><span class="w"> </span><span class="k">Using</span><span class="w"> </span><span class="s1">'w_warehouse_sk'</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="n">the</span><span class="w"> </span><span class="n">distribution</span><span class="w"> </span><span class="k">column</span><span class="w"> </span><span class="k">by</span><span class="w"> </span><span class="k">default</span><span class="p">.</span>
|
|
<span class="n">HINT</span><span class="p">:</span><span class="w"> </span><span class="n">Please</span><span class="w"> </span><span class="n">use</span><span class="w"> </span><span class="s1">'DISTRIBUTE BY'</span><span class="w"> </span><span class="n">clause</span><span class="w"> </span><span class="k">to</span><span class="w"> </span><span class="n">specify</span><span class="w"> </span><span class="n">suitable</span><span class="w"> </span><span class="k">data</span><span class="w"> </span><span class="n">distribution</span><span class="w"> </span><span class="k">column</span><span class="p">.</span>
|
|
<span class="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span>
|
|
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">getdistributekey</span><span class="p">(</span><span class="s1">'warehouse2'</span><span class="p">);</span>
|
|
<span class="w"> </span><span class="n">getdistributekey</span>
|
|
<span class="c1">------------------</span>
|
|
<span class="w"> </span><span class="n">w_warehouse_sk</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>
|
|
</li><li id="EN-US_TOPIC_0000001381808765__li20431848163613">Scenario 3<p id="EN-US_TOPIC_0000001381808765__p7576350103616"><a name="EN-US_TOPIC_0000001381808765__li20431848163613"></a><a name="li20431848163613"></a>If the primary key or unique constraint is not included during table creation and no column whose data type can be used as a distribution column exists, round-robin distribution is selected.</p>
|
|
<pre class="screen" id="EN-US_TOPIC_0000001381808765__screen127206381789">CREATE TABLE warehouse3
|
|
(
|
|
W_WAREHOUSE_ID CHAR(16) NOT NULL,
|
|
W_WAREHOUSE_NAME VARCHAR(20)
|
|
);
|
|
NOTICE: The 'DISTRIBUTE BY' clause is not specified. Using 'w_warehouse_id' as the distribution column by default.
|
|
HINT: Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
|
|
CREATE TABLE
|
|
|
|
SELECT getdistributekey('warehouse3');
|
|
getdistributekey
|
|
------------------
|
|
w_warehouse_id
|
|
(1 row)</pre>
|
|
</li></ul>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dws_03_0065.html">Database Usage</a></div>
|
|
</div>
|
|
</div>
|
|
|