code: private void insert(MappingConfig config, Dml dml) {
          List<Map<String, Object>> data = dml.getData();
          if (data == null || data.isEmpty()) {
              return;
          }
  
          MappingConfig.HbaseMapping hbaseMapping = config.getHbaseMapping();
  
          // if (!validHTable(config)) {
          // logger.error("HBase table '{}' not exists",
          // hbaseMapping.getHbaseTable());
          // return;
          // }
          int i = 1;
          boolean complete = false;
          List<HRow> rows = new ArrayList<>();
          for (Map<String, Object> r : data) {
              HRow hRow = new HRow();
  
              // 拼接复合rowKey
              if (hbaseMapping.getRowKey() != null) {
                  String[] rowKeyColumns = hbaseMapping.getRowKey().trim().split(",");
                  String rowKeyVale = getRowKeys(rowKeyColumns, r);
                  // params.put("rowKey", Bytes.toBytes(rowKeyVale));
                  hRow.setRowKey(Bytes.toBytes(rowKeyVale));
              }
  
              convertData2Row(hbaseMapping, hRow, r);
              if (hRow.getRowKey() == null) {
                  throw new RuntimeException("empty rowKey");
              }
              rows.add(hRow);
              complete = false;
              if (i % config.getHbaseMapping().getCommitBatch() == 0 && !rows.isEmpty()) {
                  hbaseTemplate.puts(hbaseMapping.getHbaseTable(), rows);
                  rows.clear();
                  complete = true;
              }
              i++;
          }
          if (!complete && !rows.isEmpty()) {
              hbaseTemplate.puts(hbaseMapping.getHbaseTable(), rows);
          }
  
      }
docs: 插入操作
  
  @param config 配置项
  @param dml DML数据