forked from docs/doc-exports
Reviewed-by: Pruthi, Vineet <vineet.pruthi@t-systems.com> Co-authored-by: Su, Xiaomeng <suxiaomeng1@huawei.com> Co-committed-by: Su, Xiaomeng <suxiaomeng1@huawei.com>
271 lines
36 KiB
HTML
271 lines
36 KiB
HTML
<a name="dli_08_0098"></a><a name="dli_08_0098"></a>
|
|
|
|
<h1 class="topictitle1">Creating a DLI Table Using the DataSource Syntax</h1>
|
|
<div id="body8662426"><div class="section" id="dli_08_0098__en-us_topic_0114776192_en-us_topic_0093946816_s03a9a8df01184a68831600f336283a25"><h4 class="sectiontitle">Function</h4><p id="dli_08_0098__en-us_topic_0114776192_en-us_topic_0093946816_ae11f3982a5344cc59623245f67a56358">This DataSource syntax can be used to create a DLI table. The main differences between the DataSource and the Hive syntax lie in the supported data formats and the number of supported partitions. For details, see syntax and precautions.</p>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__dli_08_0076_section471444971619"><h4 class="sectiontitle">Precautions</h4><ul id="dli_08_0098__dli_08_0076_ul9531201710213"><li id="dli_08_0098__li27231725165616">Table properties cannot be specified using CTAS table creation statements.</li><li id="dli_08_0098__dli_08_0076_li25313179210">If no separator is specified, a comma (,) is used by default.</li><li id="dli_08_0098__li179241944153512"><strong id="dli_08_0098__b136040280993755">Instructions on using partitioned tables:</strong><ul id="dli_08_0098__ul1987589193615"><li id="dli_08_0098__en-us_topic_0114776170_en-us_topic_0093946797_li23993349101821">When a partitioned table is created, the column specified in PARTITIONED BY must be a column in the table, and the partition type must be specified. Partition columns can only be in the <strong id="dli_08_0098__b99371064520">string</strong>, <strong id="dli_08_0098__b129386010453">boolean</strong>, <strong id="dli_08_0098__b1893915015454">tinyint</strong>, <strong id="dli_08_0098__b1493940184518">smallint</strong>, <strong id="dli_08_0098__b10939902451">short</strong>, <strong id="dli_08_0098__b1293911016457">int</strong>, <strong id="dli_08_0098__b4940180114519">bigint</strong>, <strong id="dli_08_0098__b39409013455">long</strong>, <strong id="dli_08_0098__b89401403459">decimal</strong>, <strong id="dli_08_0098__b119411705454">float</strong>, <strong id="dli_08_0098__b149414013450">double</strong>, <strong id="dli_08_0098__b094180104513">date</strong>, or <strong id="dli_08_0098__b194190154516">timestamp</strong> format.</li><li id="dli_08_0098__li14473217171911">When a partitioned table is created, the partition field must be the last one or several fields of the table field, and the sequence of the partition fields must be the same. Otherwise, an error occurs.</li><li id="dli_08_0098__en-us_topic_0114776170_en-us_topic_0114776207_li1849112813523">A maximum of 200,000 partitions can be created in a single table.</li><li id="dli_08_0098__li18680105312310">CTAS table creation statements cannot be used to create partitioned tables.</li></ul>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__en-us_topic_0114776192_en-us_topic_0093946816_s9c100e961a0c4e9085c14200525b2305"><h4 class="sectiontitle">Syntax</h4><div class="codecoloring" codetype="Sql" id="dli_08_0098__en-us_topic_0114776192_screen657411815245"><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="k">TABLE</span><span class="w"> </span><span class="p">[</span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="p">]</span><span class="w"> </span><span class="p">[</span><span class="n">db_name</span><span class="p">.]</span><span class="k">table_name</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="p">[(</span><span class="n">col_name1</span><span class="w"> </span><span class="n">col_type1</span><span class="w"> </span><span class="p">[</span><span class="k">COMMENT</span><span class="w"> </span><span class="n">col_comment1</span><span class="p">],</span><span class="w"> </span><span class="p">...)]</span>
|
|
<span class="w"> </span><span class="k">USING</span><span class="w"> </span><span class="n">file_format</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="p">[</span><span class="k">OPTIONS</span><span class="w"> </span><span class="p">(</span><span class="n">key1</span><span class="o">=</span><span class="n">val1</span><span class="p">,</span><span class="w"> </span><span class="n">key2</span><span class="o">=</span><span class="n">val2</span><span class="p">,</span><span class="w"> </span><span class="p">...)]</span><span class="w"> </span>
|
|
<span class="w"> </span><span class="p">[</span><span class="n">PARTITIONED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="p">(</span><span class="n">col_name1</span><span class="p">,</span><span class="w"> </span><span class="n">col_name2</span><span class="p">,</span><span class="w"> </span><span class="p">...)]</span>
|
|
<span class="w"> </span><span class="p">[</span><span class="k">COMMENT</span><span class="w"> </span><span class="n">table_comment</span><span class="p">]</span>
|
|
<span class="w"> </span><span class="p">[</span><span class="k">AS</span><span class="w"> </span><span class="n">select_statement</span><span class="p">];</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__en-us_topic_0114776192_en-us_topic_0093946816_s9ceb61496680404b879ef5439843c6c7"><h4 class="sectiontitle">Keywords</h4><ul id="dli_08_0098__dli_08_0076_en-us_topic_0114776170_ul104627471527"><li id="dli_08_0098__dli_08_0076_en-us_topic_0114776170_li6900512175712"><strong id="dli_08_0098__dli_08_0076_b11367143815255">IF NOT EXISTS</strong>: Prevents system errors when the created table exists.</li><li id="dli_08_0098__dli_08_0076_en-us_topic_0114776170_li990011212577"><strong id="dli_08_0098__dli_08_0076_b193481245194313">USING</strong>: Storage format.</li><li id="dli_08_0098__dli_08_0076_en-us_topic_0114776170_li24623471029"><strong id="dli_08_0098__dli_08_0076_b454615499417">OPTIONS</strong>: Property name and property value when a table is created.</li><li id="dli_08_0098__dli_08_0076_en-us_topic_0114776170_li37086178437"><strong id="dli_08_0098__dli_08_0076_b1765513272079">COMMENT</strong>: Field or table description.</li><li id="dli_08_0098__dli_08_0076_en-us_topic_0114776170_li28511440105714"><strong id="dli_08_0098__dli_08_0076_b204856459710">PARTITIONED BY</strong>: Partition field.</li><li id="dli_08_0098__dli_08_0076_en-us_topic_0114776170_li15728447102017"><strong id="dli_08_0098__dli_08_0076_b13113811818">AS</strong>: Run the <strong id="dli_08_0098__dli_08_0076_b102941416788">CREATE TABLE AS</strong> statement to create a table.</li></ul>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_section1254323371313"><h4 class="sectiontitle">Parameters</h4>
|
|
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_table159211531959" frame="border" border="1" rules="all"><caption><b>Table 1 </b>Parameters</caption><thead align="left"><tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row991835319515"><th align="left" class="cellrowborder" valign="top" width="18.88%" id="mcps1.3.5.2.2.4.1.1"><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p5918185319510"><strong id="dli_08_0098__b118214104793929">Parameter</strong></p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="12.629999999999999%" id="mcps1.3.5.2.2.4.1.2"><p id="dli_08_0098__p1838381253217"><strong id="dli_08_0098__b10435235471080">Mandatory</strong></p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="68.49%" id="mcps1.3.5.2.2.4.1.3"><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p1691816531254"><strong id="dli_08_0098__b163913937893936">Description</strong></p>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row18919165314510"><td class="cellrowborder" valign="top" width="18.88%" headers="mcps1.3.5.2.2.4.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p1691818532053">db_name</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.629999999999999%" headers="mcps1.3.5.2.2.4.1.2 "><p id="dli_08_0098__p9383612103219">No</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="68.49%" headers="mcps1.3.5.2.2.4.1.3 "><p id="dli_08_0098__p204246382486">Database name</p>
|
|
<p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p29187535520">The value can contain letters, numbers, and underscores (_), but it cannot contain only numbers or start with a number or underscore (_).</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row792017532518"><td class="cellrowborder" valign="top" width="18.88%" headers="mcps1.3.5.2.2.4.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p792011536519">table_name</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.629999999999999%" headers="mcps1.3.5.2.2.4.1.2 "><p id="dli_08_0098__p161249310523">Yes</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="68.49%" headers="mcps1.3.5.2.2.4.1.3 "><p id="dli_08_0098__p5140114634810">Table name in the database</p>
|
|
<p id="dli_08_0098__p173115522481">The value can contain letters, numbers, and underscores (_), but it cannot contain only numbers or start with a number or underscore (_). The matching rule is <strong id="dli_08_0098__b196309924794318">^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$</strong>.</p>
|
|
<p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p1292085310518">Special characters must be enclosed in single quotation marks ('').</p>
|
|
<p id="dli_08_0098__p5531316492">The table name is case insensitive.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row89201537510"><td class="cellrowborder" valign="top" width="18.88%" headers="mcps1.3.5.2.2.4.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p69201153552">col_name</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.629999999999999%" headers="mcps1.3.5.2.2.4.1.2 "><p id="dli_08_0098__p131241231205220">Yes</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="68.49%" headers="mcps1.3.5.2.2.4.1.3 "><p id="dli_08_0098__p1216615614491">Column names with data types separated by commas (,)</p>
|
|
<p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p8920155312511">The column name can contain letters, numbers, and underscores (_), but it cannot contain only numbers and must contain at least one letter.</p>
|
|
<p id="dli_08_0098__p86321013104910">The column name is case insensitive.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row8920953453"><td class="cellrowborder" valign="top" width="18.88%" headers="mcps1.3.5.2.2.4.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p1992019538511">col_type</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.629999999999999%" headers="mcps1.3.5.2.2.4.1.2 "><p id="dli_08_0098__p2012433111521">Yes</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="68.49%" headers="mcps1.3.5.2.2.4.1.3 "><p id="dli_08_0098__p885716724517">Data type of a column field, which is primitive.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row14921353755"><td class="cellrowborder" valign="top" width="18.88%" headers="mcps1.3.5.2.2.4.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p892015320519">col_comment</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.629999999999999%" headers="mcps1.3.5.2.2.4.1.2 "><p id="dli_08_0098__p512463195214">No</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="68.49%" headers="mcps1.3.5.2.2.4.1.3 "><p id="dli_08_0098__dli_08_0076_en-us_topic_0114776170_p675715235211">Column field description, which can only be string constants.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row19211953658"><td class="cellrowborder" valign="top" width="18.88%" headers="mcps1.3.5.2.2.4.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p10921125314510">file_format</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.629999999999999%" headers="mcps1.3.5.2.2.4.1.2 "><p id="dli_08_0098__p6124143155210">Yes</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="68.49%" headers="mcps1.3.5.2.2.4.1.3 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p1592117532059">Data storage format of DLI tables. The value can be <strong id="dli_08_0098__b7261031104717">parquet</strong> or <strong id="dli_08_0098__b1337212340478">orc</strong>.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row4661422104814"><td class="cellrowborder" valign="top" width="18.88%" headers="mcps1.3.5.2.2.4.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p441312774716">table_comment</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.629999999999999%" headers="mcps1.3.5.2.2.4.1.2 "><p id="dli_08_0098__p91241631175220">No</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="68.49%" headers="mcps1.3.5.2.2.4.1.3 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p1741310794711">Table description, which can only be string constants.</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_row16660102274814"><td class="cellrowborder" valign="top" width="18.88%" headers="mcps1.3.5.2.2.4.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p55824491274">select_statement</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.629999999999999%" headers="mcps1.3.5.2.2.4.1.2 "><p id="dli_08_0098__p81241031165213">No</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="68.49%" headers="mcps1.3.5.2.2.4.1.3 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_p105821649182719">The <strong id="dli_08_0098__b35686524475">CREATE TABLE AS</strong> statement is used to insert the <strong id="dli_08_0098__b2056955244717">SELECT</strong> query result of the source table or a data record to a newly created DLI table.</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="tablenoborder"><a name="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_table16713182975016"></a><a name="en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_table16713182975016"></a><table cellpadding="4" cellspacing="0" summary="" id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_table16713182975016" frame="border" border="1" rules="all"><caption><b>Table 2 </b>OPTIONS parameters</caption><thead align="left"><tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_en-us_topic_0114776170_row127585236212"><th align="left" class="cellrowborder" valign="top" width="19.06%" id="mcps1.3.5.3.2.5.1.1"><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_en-us_topic_0114776170_p1875822313218"><strong id="dli_08_0098__b66799830793929">Parameter</strong></p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="12.97%" id="mcps1.3.5.3.2.5.1.2"><p id="dli_08_0098__p11248127105413"><strong id="dli_08_0098__b12718838271080">Mandatory</strong></p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="49.57%" id="mcps1.3.5.3.2.5.1.3"><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_en-us_topic_0114776170_p1175892318219"><strong id="dli_08_0098__b124404902093936">Description</strong></p>
|
|
</th>
|
|
<th align="left" class="cellrowborder" valign="top" width="18.4%" id="mcps1.3.5.3.2.5.1.4"><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_en-us_topic_0114776170_p1975813231825"><strong id="dli_08_0098__b39971327361">Default Value</strong></p>
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_en-us_topic_0114776170_row14760323425"><td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.3.5.3.2.5.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_en-us_topic_0114776170_p675919231321">multiLevelDirEnable</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.97%" headers="mcps1.3.5.3.2.5.1.2 "><p id="dli_08_0098__p11248147185419">No</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="49.57%" headers="mcps1.3.5.3.2.5.1.3 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_en-us_topic_0114776170_p075914233215">Whether to iteratively query data in subdirectories. When this parameter is set to <strong id="dli_08_0098__b25891535666">true</strong>, all files in the table path, including files in subdirectories, are iteratively read when a table is queried.</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="18.4%" headers="mcps1.3.5.3.2.5.1.4 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_en-us_topic_0114776170_p1759202312210">false</p>
|
|
</td>
|
|
</tr>
|
|
<tr id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_row9238173413205"><td class="cellrowborder" valign="top" width="19.06%" headers="mcps1.3.5.3.2.5.1.1 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_p99307557413">compression</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="12.97%" headers="mcps1.3.5.3.2.5.1.2 "><p id="dli_08_0098__p18294052125314">No</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="49.57%" headers="mcps1.3.5.3.2.5.1.3 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_p8184133018421">Compression format. Generally, you need to set this parameter to <strong id="dli_08_0098__b1990555221914">zstd</strong> for parquet files.</p>
|
|
</td>
|
|
<td class="cellrowborder" valign="top" width="18.4%" headers="mcps1.3.5.3.2.5.1.4 "><p id="dli_08_0098__en-us_topic_0241764534_dli_08_0098_p109301855144112">-</p>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__section175482343414"><a name="dli_08_0098__section175482343414"></a><a name="section175482343414"></a><h4 class="sectiontitle">Example 1: Creating a DLI Non-Partitioned Table</h4><p id="dli_08_0098__p6827182974318">Example description: Create a DLI non-partitioned table named <strong id="dli_08_0098__b5306163613485">table1</strong> and use the <strong id="dli_08_0098__b1430723610489">USING</strong> keyword to set the storage format of the table to <strong id="dli_08_0098__b23071936184814">orc</strong>.</p>
|
|
<p id="dli_08_0098__p3386182910426">You can save DLI tables in the <strong id="dli_08_0098__b2917495486">parquet</strong> format.</p>
|
|
<div class="codecoloring" codetype="Sql" id="dli_08_0098__screen177838123432"><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="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">table1</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">col_1</span><span class="w"> </span><span class="n">STRING</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_2</span><span class="w"> </span><span class="nb">INT</span><span class="p">)</span>
|
|
<span class="k">USING</span><span class="w"> </span><span class="n">orc</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__section288243544316"><h4 class="sectiontitle">Example 2: Creating a DLI Partitioned Table</h4><p id="dli_08_0098__p287518264445">Example description: Create a partitioned table named <strong id="dli_08_0098__b1270386334112835">student</strong>, which is partitioned using <strong id="dli_08_0098__b301025698112835">facultyNo</strong> and <strong id="dli_08_0098__b1956325823112835">classNo</strong>.</p>
|
|
<p id="dli_08_0098__p387420166445">In practice, you can select a proper partitioning field and add it to the end of the <strong id="dli_08_0098__b1365011964112859">PARTITIONED BY</strong> keyword.</p>
|
|
<div class="codecoloring" codetype="Sql" id="dli_08_0098__screen166364584414"><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="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">student</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">Name</span><span class="w"> </span><span class="n">STRING</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">facultyNo</span><span class="w"> </span><span class="nb">INT</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">classNo</span><span class="w"> </span><span class="nb">INT</span>
|
|
<span class="p">)</span>
|
|
<span class="k">USING</span><span class="w"> </span><span class="n">orc</span>
|
|
<span class="n">PARTITIONED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="p">(</span><span class="n">facultyNo</span><span class="p">,</span><span class="w"> </span><span class="n">classNo</span><span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__section17654112105220"><h4 class="sectiontitle">Example 3: Using CTAS to Create a DLI Table Using All or Part of the Data in the Source Table</h4><p id="dli_08_0098__p19201175614">Example description: Based on the DLI table <strong id="dli_08_0098__b9760195354913">table1</strong> created in <a href="#dli_08_0098__section175482343414">Example 1: Creating a DLI Non-Partitioned Table</a>, use the CTAS syntax to copy data from <strong id="dli_08_0098__b117619536497">table1</strong> to <strong id="dli_08_0098__b5761185317497">table1_ctas</strong>.</p>
|
|
<p id="dli_08_0098__p175611912145619">When using CTAS to create a table, you can ignore the syntax used to create the table being copied. This means that regardless of the syntax used to create <strong id="dli_08_0098__b32422840093654">table1</strong>, you can use the DataSource syntax to create <strong id="dli_08_0098__b197616192493654">table1_ctas</strong>.</p>
|
|
<p id="dli_08_0098__p12435202895717">In addition, in this example, the storage format of <strong id="dli_08_0098__b1881116735018">table1</strong> is <strong id="dli_08_0098__b1981118719505">orc</strong>, and the storage format of <strong id="dli_08_0098__b3811117185019">table1_ctas</strong> may be <strong id="dli_08_0098__b128121871509">orc</strong> or <strong id="dli_08_0098__b11812127185011">parquet</strong>. This means that the storage format of the table created by CTAS may be different from that of the original table.</p>
|
|
<p id="dli_08_0098__p645114745712">Use the <strong id="dli_08_0098__b83963704194730">SELECT</strong> statement following the <strong id="dli_08_0098__b34929748294730">AS</strong> keyword to select required data and insert the data to <strong id="dli_08_0098__b183120719294730">table1_ctas</strong>.</p>
|
|
<p id="dli_08_0098__p184204104544">The <strong id="dli_08_0098__b112200251994830">SELECT</strong> syntax is as follows: <strong id="dli_08_0098__b149579633094830">SELECT <</strong><em id="dli_08_0098__i90365571094830">Column name</em><strong id="dli_08_0098__b83456084394830"> > FROM <</strong><em id="dli_08_0098__i189041304594830">Table name</em><strong id="dli_08_0098__b177519585694830"> > WHERE <</strong><em id="dli_08_0098__i96962936694830">Related filter criteria</em><strong id="dli_08_0098__b207499033594830">></strong>.</p>
|
|
<ul id="dli_08_0098__ul143001810811"><li id="dli_08_0098__li19422416145813">In this example, <strong id="dli_08_0098__b1948314477504">SELECT * FROM table1</strong> is used. <strong id="dli_08_0098__b24830471509">*</strong> indicates that all columns are selected from <strong id="dli_08_0098__b1248417471502">table1</strong> and all data in <strong id="dli_08_0098__b17484104716501">table1</strong> is inserted into <strong id="dli_08_0098__b11484747115012">table1_ctas</strong>.<div class="codecoloring" codetype="Sql" id="dli_08_0098__screen389615271111"><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="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">table1_ctas</span>
|
|
<span class="k">USING</span><span class="w"> </span><span class="n">parquet</span>
|
|
<span class="k">AS</span>
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="o">*</span>
|
|
<span class="k">FROM</span><span class="w"> </span><span class="n">table1</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li><li id="dli_08_0098__li5328204795819">To filter and insert data into <strong id="dli_08_0098__b2423454165018">table1_ctas</strong> in a customized way, you can use the following <strong id="dli_08_0098__b54232549508">SELECT</strong> statement: <strong id="dli_08_0098__b154232547500">SELECT col_1 FROM table1 WHERE col_1 = 'Ann'</strong>. This will allow you to select only <strong id="dli_08_0098__b2423105415017">col_1</strong> from <strong id="dli_08_0098__b3424185465010">table1</strong> and insert data into <strong id="dli_08_0098__b144243546504">table1_ctas</strong> where the value equals <strong id="dli_08_0098__b11424454105012">'Ann'</strong>.<div class="codecoloring" codetype="Sql" id="dli_08_0098__screen1825923319119"><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="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">table1_ctas</span>
|
|
<span class="k">USING</span><span class="w"> </span><span class="n">parquet</span>
|
|
<span class="k">AS</span>
|
|
<span class="k">SELECT</span><span class="w"> </span><span class="n">col_1</span>
|
|
<span class="k">FROM</span><span class="w"> </span><span class="n">table1</span>
|
|
<span class="k">WHERE</span><span class="w"> </span><span class="n">col_1</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'Ann'</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__section675283719111"><h4 class="sectiontitle">Example 4: Creating a DLI Non-Partitioned Table and Customizing the Data Type of a Column Field</h4><p id="dli_08_0098__p168826548311">Example description: Create a DLI non-partitioned table named <strong id="dli_08_0098__b4626376510">table2</strong>. You can customize the native data types of column fields based on service requirements.</p>
|
|
<ul id="dli_08_0098__ul10265111414415"><li id="dli_08_0098__li926512141646"><strong id="dli_08_0098__b7659826859575">STRING</strong>, <strong id="dli_08_0098__b11939825169575">CHAR</strong>, or <strong id="dli_08_0098__b15375325819575">VARCHAR</strong> can be used for text characters.</li><li id="dli_08_0098__li1126531412420"><strong id="dli_08_0098__b83455402995853">TIMESTAMP</strong> or <strong id="dli_08_0098__b158687824295853">DATE</strong> can be used for time characters.</li><li id="dli_08_0098__li19265514646"><strong id="dli_08_0098__b9380298995924">INT</strong>, <strong id="dli_08_0098__b113831175495924">SMALLINT/SHORT</strong>, <strong id="dli_08_0098__b127823736895924">BIGINT/LONG</strong>, or <strong id="dli_08_0098__b64695370795924">TINYINT</strong> can be used for integer characters.</li><li id="dli_08_0098__li17265171414419"><strong id="dli_08_0098__b113943155795940">FLOAT</strong>, <strong id="dli_08_0098__b325793195940">DOUBLE</strong>, or <strong id="dli_08_0098__b71238356395940">DECIMAL</strong> can be used for decimal calculation.</li><li id="dli_08_0098__li126519141646"><strong id="dli_08_0098__b11957344031013">BOOLEAN</strong> can be used if only logical switches are involved.</li></ul>
|
|
<p id="dli_08_0098__p117310234312">For details, see "Data Types" > "Primitive Data Types".</p>
|
|
<div class="codecoloring" codetype="Sql" id="dli_08_0098__screen177818151356"><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>
|
|
<span class="normal">16</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="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTS</span><span class="w"> </span><span class="n">table2</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">col_01</span><span class="w"> </span><span class="n">STRING</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_02</span><span class="w"> </span><span class="nb">CHAR</span><span class="w"> </span><span class="p">(</span><span class="mi">2</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">col_03</span><span class="w"> </span><span class="nb">VARCHAR</span><span class="w"> </span><span class="p">(</span><span class="mi">32</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">col_04</span><span class="w"> </span><span class="k">TIMESTAMP</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_05</span><span class="w"> </span><span class="nb">DATE</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_06</span><span class="w"> </span><span class="nb">INT</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_07</span><span class="w"> </span><span class="nb">SMALLINT</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_08</span><span class="w"> </span><span class="nb">BIGINT</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_09</span><span class="w"> </span><span class="n">TINYINT</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_10</span><span class="w"> </span><span class="nb">FLOAT</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_11</span><span class="w"> </span><span class="n">DOUBLE</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_12</span><span class="w"> </span><span class="nb">DECIMAL</span><span class="w"> </span><span class="p">(</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">),</span>
|
|
<span class="w"> </span><span class="n">col_13</span><span class="w"> </span><span class="nb">BOOLEAN</span>
|
|
<span class="p">)</span>
|
|
<span class="k">USING</span><span class="w"> </span><span class="n">parquet</span><span class="p">;</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="section" id="dli_08_0098__section9184929957"><h4 class="sectiontitle">Example 5: Creating a DLI Partitioned Table and Customizing OPTIONS Parameters</h4><p id="dli_08_0098__p1322114151015">Example description: When creating a DLI table, you can customize property names and values. For details about OPTIONS parameters, see <a href="#dli_08_0098__en-us_topic_0241764534_dli_08_0098_en-us_topic_0114776192_table16713182975016">Table 2</a>.</p>
|
|
<p id="dli_08_0098__p18351634151120">In this example, a DLI partitioned table named <strong id="dli_08_0098__b6240171011527">table3</strong> is created and partitioned based on <strong id="dli_08_0098__b12241710175216">col_2</strong>. Set <strong id="dli_08_0098__b61321137175219">pmultiLevelDirEnable</strong> and <strong id="dli_08_0098__b19738409528">compression</strong> in <strong id="dli_08_0098__b21754215521">OPTIONS</strong>.</p>
|
|
<ul id="dli_08_0098__ul172625151156"><li id="dli_08_0098__li026291521511"><strong id="dli_08_0098__b42992605101946">multiLevelDirEnable</strong>: In this example, this parameter is set to <strong id="dli_08_0098__b2090187674101946">true</strong>, indicating that all files and subdirectories in the table path are read iteratively when the table is queried. If this parameter is not required, set it to <strong id="dli_08_0098__b256982274101946">false</strong> or leave it blank (the default value is <strong id="dli_08_0098__b728243494101946">false</strong>).</li><li id="dli_08_0098__li5262715201513"><strong id="dli_08_0098__b517294468102055">compression</strong>: If the created OBS table needs to be compressed, you can use the keyword <strong id="dli_08_0098__b945254010102055">compression</strong> to configure the compression format. In this example, the <strong id="dli_08_0098__b1485652350102055">zstd</strong> compression format is used.<div class="codecoloring" codetype="Sql" id="dli_08_0098__screen19114381456"><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="k">CREATE</span><span class="w"> </span><span class="k">TABLE</span><span class="w"> </span><span class="k">IF</span><span class="w"> </span><span class="k">NOT</span><span class="w"> </span><span class="k">EXISTs</span><span class="w"> </span><span class="n">table3</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">col_1</span><span class="w"> </span><span class="n">STRING</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">col_2</span><span class="w"> </span><span class="nb">int</span>
|
|
<span class="p">)</span>
|
|
<span class="k">USING</span><span class="w"> </span><span class="n">parquet</span>
|
|
<span class="n">PARTITIONED</span><span class="w"> </span><span class="k">BY</span><span class="w"> </span><span class="p">(</span><span class="n">col_2</span><span class="p">)</span>
|
|
<span class="k">OPTIONS</span><span class="w"> </span><span class="p">(</span>
|
|
<span class="w"> </span><span class="n">multiLeveldirenable</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">true</span><span class="p">,</span>
|
|
<span class="w"> </span><span class="n">compression</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'zstd'</span>
|
|
<span class="p">);</span>
|
|
</pre></div></td></tr></table></div>
|
|
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="familylinks">
|
|
<div class="parentlink"><strong>Parent topic:</strong> <a href="dli_08_0224.html">Creating a DLI Table</a></div>
|
|
</div>
|
|
</div>
|
|
|