MAPREDUCE服务 MRS-调整Hudi数据源性能:调优案例

时间:2024-11-28 01:44:45

调优案例

某用户使用Hudi MOR表存储其设备的订单出借信息,可通过订单号查询订单详细信息,每天订单量相对稳定,部分节假日可能存在小高峰,该场景存在以下特点:

  • 订单号作为唯一值,并且80%以上的查询场景使用订单号进行等值查询,SQL形如select * from table where order_id = 'id1';
  • 每天订单量稳定,可采用天作为分区键。
  • 历史分区更新不频繁,主要数据更新在新分区。

调优建议:

  1. 使用Bucket索引建表(Spark-SQL),并且索引键为订单ID, 分区键为日期。
  2. 定期使用compaction合并日志,提高查询性能。

SQL示例:

set hoodie.compact.inline=true;
set hoodie.schedule.compact.only.inline=true;
set hoodie.run.compact.only.inline=false;
create table hudi_mor (order_id int, comb int, col1 string, col2 string, dt int)
using hudi
partitioned by(dt)
options(type='mor', primaryKey='order_id', preCombineField='comb',
hoodie.index.type = 'BUCKET',
hoodie.bucket.index.num.buckets=100,
hoodie.bucket.index.hash.field = 'order_id')
support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_2493027.html