zoukankan      html  css  js  c++  java
  • [SAP HAAN]SAP HAAN delta merge 详解

    本文详细描述了SAP HANA delta merge的技术

    • 什么是Delta merge,为什么要进行Delta merge,
    • Data merge的分类
    • Data merge的手动操作
    • Merge 的相关设置
    • Delta Merge监控
    • Merge 的过程

     1.什么是Delta merge,为什么要进行Delta merge,

    SAP HANA 的数据表(行存储/列存储)都会有两块区域用以存入数据,并定期进行合并.这两下区域是Main Store和Delta Store,设定这两块区域的目的是使高压缩比率和更快写效率.

    Main store 内的数据是有很高压缩比率(通过创建字典和其它压缩方法实现高压缩比)的,有着更快的查询和计算,但是写的成本很高.

    Delta 内存区域是对数据库的写优化设计的;存放在delta 区域中的数据会定期合并并加入到Main内存区域中,这个过程在SAP HANA 环境中称为delta merge,就是将内存中的数据提交到数据库表中.

    在内存合并(Delta Store)过程中,系统中CPU和内存会有大量的消耗,因此需要对合并的过程加以控制,不能让Merge进程使用当前系统全部的可用资源,因此每个Merge进程都需要得到下令牌(Merge token)(一个令牌都代表一个单个CPU),如果所有的merge token都占用了,那么下一个merge请求将需要等待之前的某个merge toker 被释放之后才能开始Merge进程.

    2.Data merge的分类:

    • Auto Merge 是HANA的标准触发Merge方式 ,HANA中的"Mergedog' 系统进程会定期检查数据库表的Delta内存区域是否有数据,然后完成Delta Merge.
    • Smart Merge 是一种智能的自动触发Merge方式, SAP HANA提供了这样的一个功能,用户能够在系统中灵活定义一些触发条件,一但条件满足就开始执行Merge过程   例如:系统中给Delta内存区域定义一个阈值,一旦Delta区域国的数据量超过多少MB,就自动触发Data Merge
    • Memory Merge SQL 语句触发,并且指定在内存中进行合并的方式,合并之后的数据不会写入持久层   merge DELAT OF <db_table> WITH PARAMETERS('MEMORY_MERGE'='ON')
    • Hard Merge 这是使用SQL语句触发并且不设定任何条件的Merge 方式 ,但是只有成功从系统中获得令牌之后,才能开始Merge
    • Force Merge 和Hard merge类似,但无须取得令牌就可以Merge
    • Critical Merge 这是为了保持系统稳定性能而设定的Merge 方式 : 设定场景:Auto Merge 关闭了,此时也没有手动的Merge 被触发,当Delta内存区域中数据增长到足以触发一次Smart Mege 时,Critical Merge 会触发一个Delta Mege 请求

    3.Data merge的手动操作

        HANA studio ,右击数据表,选择 "Merge..."  

    MERGE DELAT OF "HANA_TPC"."CUSTOMER" #直接合并
    MERGE DELAT OF "HANA_TPC"."CUSTOMER" WITH PARAMETERS('SMART_MERGE'='ON') #启动表的SMART MERGE
    MERGE DELAT OF "HANA_TPC"."CUSTOMER" PART <分区ID> #直接对表的某个分区进行合并,减少合并的范围,加快合并进程,从而降低对系统资源的消耗

     4.Merge 的相关设置

    4.1 配置参数:   index server -->mergedog

    • mergedog active = yes 不要修改
    • Auto Merge设置   
      check_interval = 60000 #每隔16.6小时执行一次
    • Smart Merge设置   
      smar_merge_enabled = yes 
                              #开户中smart Merge
      smart_merge_decision_func = MMS<1000 or DMS>1000 or DRC>0.1*MRC or DMR>0.1*MRC or DLS>5000 
                             #DMS>1000 数据表的delta内存区域超过1000MB,如果向数据表写入1GB大小的数据,而且这些数据是以insert only 方式写入Delta内存区域,那么数据检查超过1000MB,就会触发Merge进程
      #DMR>0.1*MRC 如果从Mainm内存区域删除超过1/10的数据,那么系统就会触发Merge 进程
      # DLS>5000 如果Delta内存区域的日志超过5000MB,那么系统就会触发Merge 进程
    • Merge Token 的设置:系统执行每个合并请求所需的令牌数据是由系统自动算的.如果当前系统无法计算出应该使用多少令牌数去执行某个合并请求,那么系统就返回一个默认值.

      token_per_table=2 #不要修改
      load_balance_func=1+LCC*(AHM/THM)*(100-CLA)/100 #系统可用Merge 令牌总数的配置参数
    • Merge 并发进程配置
      parallel_merge_threads=2 #设置进行Delta Merge 时能够调用的CPU的处理内核的数量;更多的处理器会加速Delta merge 但过多会导致前端用户的SQL无响应

     4.2 Delta Merge 相关缩写

    缩写 意义
     描述
    DMS Delta Memory Size[MB] delta内存区域的内存大小
    TMD table Merger Delay[sec] 数据表Merge 延迟多少秒后才开始
    MRC  Main row count[million] Main内存区域有多少记录行
    DMR Delete Main rows Main内存区域删除多少上行记录
    DLS   Data Log Size[MB] Delta 内存区域中日志大小
    DCC
    Delta Cell Count[million]
    Delta 内存区域Cell总数
    DRC
    Delta Row count[million]
    Delta 内存区域中有多少行记录
    QDW
    Queuing Delay Wait[sec]
     排队延迟多少秒
    NAME
    Table name [string]
    数据表的名称
    SCHEMA
    Schema NAME[string]
    Schema 名称
    CLA
    CPU load average[percentage]
    CPU的平均负载率,如CLA<50,意味丰CPU负载率真小于50%就启动Merge进程
    LCC
     Logical CPU Count
     逻辑CPU胡单元数量
    THM
    Total Heap Memory[MB]
    全部堆栈内存的大小
    AHM Available Heap Memory 可用堆栈内存大小,以及能够释放胡内存

     

     

     

     

     

     

     

     

     

     

     

     

     

    5.Delta Merge监控

    所有的类型的Merger记录都在M_DELTA_MERGE_STATISTICS中

     

    6. Merge 的过程

    每天进步一点点,多思考,多总结 版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
  • 相关阅读:
    北京清北 综合强化班 Day1
    Noip2015 提高组 Day1
    Noip2016 提高组 Day2 T1 组合数问题
    2017.9.23 NOIP2017 金秋杯系列模拟赛 day1 T1
    [51NOD1103] N的倍数(鸽笼原理)
    [51NOD1420] 数袋鼠好有趣(贪心)
    [CF808A] Lucky Year(规律)
    [CF808B] Average Sleep Time([强行]树状数组,数学)
    [CF808C] Tea Party(贪心)
    [CF808D] Array Division(暴力,枚举)
  • 原文地址:https://www.cnblogs.com/tingxin/p/12599870.html
Copyright © 2011-2022 走看看