Yang, Tong 6182f91ba8 MRS component operation guide_normal 2.0.38.SP20 version
Reviewed-by: Hasko, Vladimir <vladimir.hasko@t-systems.com>
Co-authored-by: Yang, Tong <yangtong2@huawei.com>
Co-committed-by: Yang, Tong <yangtong2@huawei.com>
2022-12-09 14:55:21 +00:00

132 lines
12 KiB
HTML

<a name="mrs_01_24095"></a><a name="mrs_01_24095"></a>
<h1 class="topictitle1">Index Configuration</h1>
<div id="body0000001104383878">
<div class="tablenoborder"><table cellpadding="4" cellspacing="0" summary="" id="mrs_01_24095__table135891716241" frame="border" border="1" rules="all"><thead align="left"><tr id="mrs_01_24095__row176251110244"><th align="left" class="cellrowborder" valign="top" width="30%" id="mcps1.3.1.1.4.1.1"><p id="mrs_01_24095__p126256182415">Parameter</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="40%" id="mcps1.3.1.1.4.1.2"><p id="mrs_01_24095__p17625121122411">Description</p>
</th>
<th align="left" class="cellrowborder" valign="top" width="30%" id="mcps1.3.1.1.4.1.3"><p id="mrs_01_24095__p16924162062518">Default Value</p>
</th>
</tr>
</thead>
<tbody><tr id="mrs_01_24095__row06256122414"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p176252112240">hoodie.index.class</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p13625121182418">Specifies the full path of user-defined index class. It must be a subclass of HoodieIndex and takes precedence over the <strong id="mrs_01_24095__b1101717533105228">hoodie.index.type</strong> configuration if specified.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p1092442082513">""</p>
</td>
</tr>
<tr id="mrs_01_24095__row562511112244"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p136256114242">hoodie.index.type</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p7625612241">Specifies the type of index to be used. The Bloom filter is used by default. The possible option is <strong id="mrs_01_24095__b59051745103210">[BLOOM | HBASE | GLOBAL_BLOOM | SIMPLE | GLOBAL_SIMPLE]</strong>. The Bloom filter eliminates the dependency on an external system and is stored in the footer of a Parquet data file.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p910454283011">BLOOM</p>
</td>
</tr>
<tr id="mrs_01_24095__row6625141162419"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p86256152413">hoodie.index.bloom.num_entries</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p76251219245">Specifies the number of entries to be stored in the Bloom filter. If the <strong id="mrs_01_24095__b1185717046105228">maxParquetFileSize</strong> is 128 MB and <strong id="mrs_01_24095__b1863006780105228">averageRecordSize</strong> is 1,024 bytes, a total of 130 KB records exist in a file. The default value (60000) is about half of this approximate value.</p>
<div class="caution" id="mrs_01_24095__note842993204214"><span class="cautiontitle"> CAUTION: </span><div class="cautionbody"><p id="mrs_01_24095__p6429103124213">If the value is too low, a large number of false positives will occur, and index lookup will have to scan more files than it needs. If the value is too high, the size every data file will be increased linearly (about 4 KB for every 50000 entries).</p>
</div></div>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p17226115116314">60000</p>
</td>
</tr>
<tr id="mrs_01_24095__row262518152419"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p9625141142416">hoodie.index.bloom.fpp</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p6625181112411">Specifies the allowed error rate based on the number of entries. This is used to calculate how many bits should be assigned for the Bloom filter and the number of hash functions. Generally, it is set to a small value (0.000000001 by default). You need to balance the disk space to reduce the false positive rate.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p18650135873112">0.000000001</p>
</td>
</tr>
<tr id="mrs_01_24095__row462517122419"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p16625918248">hoodie.bloom.index.parallelism</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p1562516120249">Specifies the parallelism for index lookup, which involves Spark Shuffle. By default, this is automatically computed based on input workload characteristics.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p393735193220">0</p>
</td>
</tr>
<tr id="mrs_01_24095__row186259119242"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p362514114249">hoodie.bloom.index.prune.by.ranges</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p76254182415">If this parameter is set to <strong id="mrs_01_24095__b1554777694105228">true</strong>, information is ranged from files to speed up index lookups. It is particularly useful if the key has a monotonously increasing prefix, such as timestamp.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p675220913323">true</p>
</td>
</tr>
<tr id="mrs_01_24095__row46251715244"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p862514115247">hoodie.bloom.index.use.caching</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p9626181132417">If this parameter is set to <strong id="mrs_01_24095__b1804281251105228">true</strong>, the input RDD is cached to speed up index lookups by reducing I/O for computing parallelism or affected partitions.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p18966141413213">true</p>
</td>
</tr>
<tr id="mrs_01_24095__row1362613116249"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p062641102411">hoodie.bloom.index.use.treebased.filter</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p1562616162415">If this parameter is set to <strong id="mrs_01_24095__b718096015105228">true</strong>, the file pruning optimization based on interval tree is enabled. This mode speeds up file pruning based on key ranges compared with the brute-force mode.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p1425712120321">true</p>
</td>
</tr>
<tr id="mrs_01_24095__row56261418245"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p126267162411">hoodie.bloom.index.bucketized.checking</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p1862661202410">If this parameter is set to <strong id="mrs_01_24095__b1490464203105228">true</strong>, the bucketized Bloom filtering is enabled. This reduces skew in the sort-based Bloom index lookup.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p73135314320">true</p>
</td>
</tr>
<tr id="mrs_01_24095__row2626141102411"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p13626121192412">hoodie.bloom.index.keys.per.bucket</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p0626217241">This parameter is applicable only when <strong id="mrs_01_24095__b2028929690105228">bloomIndexBucketizedChecking</strong> is enabled and the index type is <strong id="mrs_01_24095__b1769934876105228">BLOOM</strong>.</p>
<p id="mrs_01_24095__p96263102411">This parameter controls the "bucket" size which tracks the number of record-key checks made against a single file and is the unit of work allocated to each partition performing the Bloom filter lookup. A higher value would amortize the fixed cost of reading the Bloom filter to memory.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p138311957153215">10000000</p>
</td>
</tr>
<tr id="mrs_01_24095__row13626217249"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p262613113240">hoodie.bloom.index.update.partition.path</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p10626161112419">This parameter is applicable only when the index type is <strong id="mrs_01_24095__b1462493706105228">GLOBAL_BLOOM</strong>.</p>
<p id="mrs_01_24095__p7626181192410">If this parameter is set to <strong id="mrs_01_24095__b375682261105228">true</strong>, an update including the partition path of a record that already exists will result in the insertion of the incoming record into the new partition and the deletion of the original record in the old partition. If this parameter is set to <strong id="mrs_01_24095__b2046268733105228">false</strong>, the original record will only be updated in the old partition.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p934217414331">false</p>
</td>
</tr>
<tr id="mrs_01_24095__row962616116243"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p1362618119244">hoodie.index.hbase.zkquorum</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p86261810247">This parameter is applicable only when the index type is <strong id="mrs_01_24095__b1618363364105228">HBASE</strong>. HBase ZooKeeper quorum URL to be connected.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p592512022512">Mandatory</p>
</td>
</tr>
<tr id="mrs_01_24095__row162612119246"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p362615119244">hoodie.index.hbase.zkport</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p1862617172412">This parameter is applicable only when the index type is <strong id="mrs_01_24095__b966636104105228">HBASE</strong>. HBase ZooKeeper quorum port to be connected.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p15925520162510">Mandatory</p>
</td>
</tr>
<tr id="mrs_01_24095__row96264192414"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p16626814249">hoodie.index.hbase.zknode.path</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p13626101172410">This parameter is applicable only when the index type is <strong id="mrs_01_24095__b183937473105228">HBASE</strong>. It is the root znode that will contain all the znodes created and used by HBase.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p6925920152510">Mandatory</p>
</td>
</tr>
<tr id="mrs_01_24095__row19392598341"><td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.1 "><p id="mrs_01_24095__p1440959103420">hoodie.index.hbase.table</p>
</td>
<td class="cellrowborder" valign="top" width="40%" headers="mcps1.3.1.1.4.1.2 "><p id="mrs_01_24095__p140155943417">This parameter is applicable only when the index type is <strong id="mrs_01_24095__b272975232105228">HBASE</strong>. HBase table name to be used as an index. Hudi stores the <strong id="mrs_01_24095__b808170823105228">row_key</strong> and <strong id="mrs_01_24095__b1635004695105228">[partition_path, fileID, commitTime]</strong> mapping in the table.</p>
</td>
<td class="cellrowborder" valign="top" width="30%" headers="mcps1.3.1.1.4.1.3 "><p id="mrs_01_24095__p1967615916357">Mandatory</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="mrs_01_24032.html">Configuration Reference</a></div>
</div>
</div>