Преглед изворни кода

selectdb batch stream load

huangpingkang пре 1 година
родитељ
комит
2c43119237
15 измењених фајлова са 61 додато и 141 уклоњено
  1. 5 5
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/ByteDanceFlowDetailsReportServiceImpl.java
  2. 1 5
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceAccountReportServiceImpl.java
  3. 1 1
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceCdpProjectServiceImpl.java
  4. 6 5
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceProductReportServiceImpl.java
  5. 15 97
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedancePromoterReportServiceImpl.java
  6. 8 10
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceXingTuServiceImpl.java
  7. 6 2
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/DorisConfiguration.java
  8. 1 1
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/DorisBufferConfig.java
  9. 12 9
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/DorisMultiTableStreamLoadManager.java
  10. 1 1
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/DorisSinkClient.java
  11. 1 1
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/RecordWithMeta.java
  12. 1 1
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/SimpleHttpDorisSinkClient.java
  13. 1 1
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/StrictRedirectStrategy.java
  14. 1 1
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/TableBufferManager.java
  15. 1 1
      job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/TableKey.java

+ 5 - 5
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/ByteDanceFlowDetailsReportServiceImpl.java

@@ -9,6 +9,7 @@ import cn.com.ctop.job.bytedance.data.service.IByteDanceFlowDetailsReportService
 import cn.com.ctop.job.bytedance.data.utils.AlertUtils;
 import cn.com.ctop.job.bytedance.data.utils.AlertUtils;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -32,6 +33,8 @@ import java.util.Map;
 @Service
 @Service
 @Slf4j
 @Slf4j
 public class ByteDanceFlowDetailsReportServiceImpl implements IByteDanceFlowDetailsReportService {
 public class ByteDanceFlowDetailsReportServiceImpl implements IByteDanceFlowDetailsReportService {
+    @Autowired
+    private DorisMultiTableStreamLoadManager dorisLoadManager;
 
 
     @Resource
     @Resource
     private ByteDanceFlowDetailsReportMapper byteDanceFlowDetailsReportMapper;
     private ByteDanceFlowDetailsReportMapper byteDanceFlowDetailsReportMapper;
@@ -114,16 +117,13 @@ public class ByteDanceFlowDetailsReportServiceImpl implements IByteDanceFlowDeta
                                 .transferOut(transfer_out)
                                 .transferOut(transfer_out)
                                 .build();
                                 .build();
                         dailies.add(daily);
                         dailies.add(daily);
+                        dorisLoadManager.add("media_api","bytedance_flow_details_report_daily", daily);
                     }
                     }
 
 
                     if (!Check.isNull(dailies)) {
                     if (!Check.isNull(dailies)) {
                         log.info("账户id:{},流水日报请求结果返回成功", advertiserId);
                         log.info("账户id:{},流水日报请求结果返回成功", advertiserId);
                         byteDanceFlowDetailsReportMapper.replaceDanceFlowDetailsReportDailies(dailies);
                         byteDanceFlowDetailsReportMapper.replaceDanceFlowDetailsReportDailies(dailies);
-                        try {
-                            byteDanceFlowDetailsReportMapper.replaceDanceFlowDetailsReportDailiesSD(dailies);
-                        }catch (Exception e) {
-                            log.error("",e);
-                        }
+                        //byteDanceFlowDetailsReportMapper.replaceDanceFlowDetailsReportDailiesSD(dailies);
                     }
                     }
                 }
                 }
 
 

+ 1 - 5
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceAccountReportServiceImpl.java

@@ -7,18 +7,14 @@ import cn.com.ctop.job.bytedance.data.utils.AlertUtils;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.FieldsConfig;
 import cn.com.ctop.job.bytedance.data.utils.FieldsConfig;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
-import cn.com.ctop.job.bytedance.utils.doris_sink.DorisMultiTableStreamLoadManager;
-import cn.com.ctop.job.bytedance.utils.doris_sink.RecordWithMeta;
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
-import javax.annotation.PreDestroy;
-import java.text.DecimalFormat;
 import java.util.*;
 import java.util.*;
 
 
 @Service
 @Service

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceCdpProjectServiceImpl.java

@@ -5,7 +5,7 @@ import cn.com.ctop.job.bytedance.data.mapper.BytedanceCdpProjectMapper;
 import cn.com.ctop.job.bytedance.data.mapper.BytedanceRefreshTokenMapper;
 import cn.com.ctop.job.bytedance.data.mapper.BytedanceRefreshTokenMapper;
 import cn.com.ctop.job.bytedance.data.service.IBytedanceCdpProjectService;
 import cn.com.ctop.job.bytedance.data.service.IBytedanceCdpProjectService;
 import cn.com.ctop.job.bytedance.data.utils.*;
 import cn.com.ctop.job.bytedance.data.utils.*;
-import cn.com.ctop.job.bytedance.utils.doris_sink.DorisMultiTableStreamLoadManager;
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 6 - 5
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceProductReportServiceImpl.java

@@ -9,6 +9,7 @@ import cn.com.ctop.job.bytedance.data.utils.AlertUtils;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.FieldsConfig;
 import cn.com.ctop.job.bytedance.data.utils.FieldsConfig;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -24,6 +25,9 @@ import java.util.Map;
 @Slf4j
 @Slf4j
 public class BytedanceProductReportServiceImpl implements IBytedanceProductReportService {
 public class BytedanceProductReportServiceImpl implements IBytedanceProductReportService {
     @Autowired
     @Autowired
+    private DorisMultiTableStreamLoadManager dorisLoadManager;
+
+    @Autowired
     private BytedancePromoterReportMapper promoterReportMapper;
     private BytedancePromoterReportMapper promoterReportMapper;
 
 
     @Autowired
     @Autowired
@@ -83,6 +87,7 @@ public class BytedanceProductReportServiceImpl implements IBytedanceProductRepor
                             BytedanceProductReportDaily reportDaily = JSONObject.parseObject(metricsJson.toJSONString(), BytedanceProductReportDaily.class);
                             BytedanceProductReportDaily reportDaily = JSONObject.parseObject(metricsJson.toJSONString(), BytedanceProductReportDaily.class);
                             reportDaily.setAdvertiserId(advertiserId);
                             reportDaily.setAdvertiserId(advertiserId);
                             reportDailies.add(reportDaily);
                             reportDailies.add(reportDaily);
+                            dorisLoadManager.add("media_api","bytedance_product_report_daily", reportDaily);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -93,11 +98,7 @@ public class BytedanceProductReportServiceImpl implements IBytedanceProductRepor
             }
             }
             if (!Check.isNull(reportDailies)) {
             if (!Check.isNull(reportDailies)) {
                 productReportMapper.replaceProductReportDailies(reportDailies);
                 productReportMapper.replaceProductReportDailies(reportDailies);
-                try {
-                    productReportMapper.replaceProductReportDailiesSD(reportDailies);
-                }catch (Exception e){
-                    log.error("",e);
-                }
+                //productReportMapper.replaceProductReportDailiesSD(reportDailies);
                 log.info("账户ID:{},产品数据日报请求成功,开始日期:{},结束日期:{},page:{}", advertiserId, startDate, endDate, page);
                 log.info("账户ID:{},产品数据日报请求成功,开始日期:{},结束日期:{},page:{}", advertiserId, startDate, endDate, page);
             }
             }
             if (page < totalPage) {
             if (page < totalPage) {

+ 15 - 97
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedancePromoterReportServiceImpl.java

@@ -9,6 +9,7 @@ import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.FieldsConfig;
 import cn.com.ctop.job.bytedance.data.utils.FieldsConfig;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
 import cn.com.ctop.job.bytedance.data.utils.AlertUtils;
 import cn.com.ctop.job.bytedance.data.utils.AlertUtils;
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -26,14 +27,10 @@ import java.util.*;
 @EnableScheduling
 @EnableScheduling
 public class BytedancePromoterReportServiceImpl implements IBytedancePromoterReportService {
 public class BytedancePromoterReportServiceImpl implements IBytedancePromoterReportService {
     @Autowired
     @Autowired
-    private BytedancePromoterReportMapper promoterReportMapper;
-    /*private static final int MAX_BATCH_SIZE = 10000;
-    private static final long MAX_WAIT_TIME_MS = 2 * 60 * 1000;
-    private final List<BytedancePromoterReportHour> promoterReportHourBuffer = Collections.synchronizedList(new ArrayList<>());
-    private final List<BytedancePromoterReportDaily> promoterReportDailyBuffer = Collections.synchronizedList(new ArrayList<>());
-    private long promoterReportHourLastFlushTime = System.currentTimeMillis();
-    private long promoterReportDailyLastFlushTime = System.currentTimeMillis();*/
+    private DorisMultiTableStreamLoadManager dorisLoadManager;
 
 
+    @Autowired
+    private BytedancePromoterReportMapper promoterReportMapper;
 
 
     @Override
     @Override
     public List<JSONObject> getAccountList() {
     public List<JSONObject> getAccountList() {
@@ -90,6 +87,8 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
                             bytedancePromoterReportHour.setStatTimeDay(statTimeDay);
                             bytedancePromoterReportHour.setStatTimeDay(statTimeDay);
                             bytedancePromoterReportHour.setHour(hour);
                             bytedancePromoterReportHour.setHour(hour);
                             hours.add(bytedancePromoterReportHour);
                             hours.add(bytedancePromoterReportHour);
+
+                            dorisLoadManager.add("media_api","bytedance_promoter_report_hour", bytedancePromoterReportHour);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -100,8 +99,7 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
             }
             }
             if (!Check.isNull(hours)) {
             if (!Check.isNull(hours)) {
                 promoterReportMapper.replacePromoterReportHour(hours);
                 promoterReportMapper.replacePromoterReportHour(hours);
-                promoterReportMapper.replacePromoterReportHourSD(hours);
-                //promoterReportHourBuffer.addAll(hours);
+                //promoterReportMapper.replacePromoterReportHourSD(hours);
             }
             }
             if (hours.size() >= 100) {
             if (hours.size() >= 100) {
                 try {
                 try {
@@ -171,6 +169,7 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
                             promoterReportDaily.setCdpPromotionName(cdpPromotionName);
                             promoterReportDaily.setCdpPromotionName(cdpPromotionName);
                             promoterReportDaily.setStatTimeDay(statTimeDay);
                             promoterReportDaily.setStatTimeDay(statTimeDay);
                             promoterReportDailies.add(promoterReportDaily);
                             promoterReportDailies.add(promoterReportDaily);
+                            dorisLoadManager.add("media_api", "bytedance_promoter_report_daily", promoterReportDaily);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -181,8 +180,7 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
             }
             }
             if (!Check.isNull(promoterReportDailies)) {
             if (!Check.isNull(promoterReportDailies)) {
                 promoterReportMapper.replacePromoterReportDailies(promoterReportDailies);
                 promoterReportMapper.replacePromoterReportDailies(promoterReportDailies);
-                promoterReportMapper.replacePromoterReportDailiesSD(promoterReportDailies);
-                //promoterReportDailyBuffer.addAll(promoterReportDailies);
+                //promoterReportMapper.replacePromoterReportDailiesSD(promoterReportDailies);
                 log.info("账户ID:{},广告日报(最细粒度)数据请求成功", advertiserId);
                 log.info("账户ID:{},广告日报(最细粒度)数据请求成功", advertiserId);
             }
             }
             if (promoterReportDailies.size() >= 100) {
             if (promoterReportDailies.size() >= 100) {
@@ -265,6 +263,8 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
                             bytedancePromoterReportHour.setStatTimeDay(statTimeDay);
                             bytedancePromoterReportHour.setStatTimeDay(statTimeDay);
                             bytedancePromoterReportHour.setHour(hour);
                             bytedancePromoterReportHour.setHour(hour);
                             hours.add(bytedancePromoterReportHour);
                             hours.add(bytedancePromoterReportHour);
+
+                            dorisLoadManager.add("media_api","bytedance_promoter_report_hour", bytedancePromoterReportHour);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -284,8 +284,7 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
             }
             }
             if (!Check.isNull(hours)) {
             if (!Check.isNull(hours)) {
                 promoterReportMapper.replacePromoterReportHour(hours);
                 promoterReportMapper.replacePromoterReportHour(hours);
-                promoterReportMapper.replacePromoterReportHourSD(hours);
-                //promoterReportHourBuffer.addAll(hours);
+                //promoterReportMapper.replacePromoterReportHourSD(hours);
             }
             }
             if (hours.size() >= 100) {
             if (hours.size() >= 100) {
                 try {
                 try {
@@ -359,6 +358,8 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
                             promoterReportDaily.setCdpPromotionName(cdpPromotionName);
                             promoterReportDaily.setCdpPromotionName(cdpPromotionName);
                             promoterReportDaily.setStatTimeDay(statTimeDay);
                             promoterReportDaily.setStatTimeDay(statTimeDay);
                             promoterReportDailies.add(promoterReportDaily);
                             promoterReportDailies.add(promoterReportDaily);
+
+                            dorisLoadManager.add("media_api", "bytedance_promoter_report_daily", promoterReportDaily);
                         }
                         }
                     }
                     }
                 }
                 }
@@ -378,8 +379,7 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
             }
             }
             if (!Check.isNull(promoterReportDailies)) {
             if (!Check.isNull(promoterReportDailies)) {
                 promoterReportMapper.replacePromoterReportDailies(promoterReportDailies);
                 promoterReportMapper.replacePromoterReportDailies(promoterReportDailies);
-                promoterReportMapper.replacePromoterReportDailiesSD(promoterReportDailies);
-                //promoterReportDailyBuffer.addAll(promoterReportDailies);
+                //promoterReportMapper.replacePromoterReportDailiesSD(promoterReportDailies);
                 log.info("账户ID:{},广告日报(最细粒度)数据请求成功", advertiserId);
                 log.info("账户ID:{},广告日报(最细粒度)数据请求成功", advertiserId);
             }
             }
             if (promoterReportDailies.size() >= 100) {
             if (promoterReportDailies.size() >= 100) {
@@ -406,86 +406,4 @@ public class BytedancePromoterReportServiceImpl implements IBytedancePromoterRep
         return promoterReportMapper.getAllList();
         return promoterReportMapper.getAllList();
     }
     }
 
 
-    /*@Scheduled(fixedRate = 11000) // 每30秒检查一次
-    public void flushIfNeeded() {
-        log.info("开始执行广告报表定时批处理任务....");
-        synchronized (promoterReportHourBuffer) {
-            long now = System.currentTimeMillis();
-            // promoterReportHourBuffer.size() >= MAX_BATCH_SIZE || (now - promoterReportHourLastFlushTime) >= MAX_WAIT_TIME_MS &&
-            if ( !promoterReportHourBuffer.isEmpty()) {
-                try {
-                    long startTime = System.currentTimeMillis();
-                    promoterReportMapper.replacePromoterReportHourSD(new ArrayList<>(promoterReportHourBuffer));
-                    long endTime = System.currentTimeMillis();
-                    long diffInMilliseconds = endTime - startTime;
-                    double diffInSeconds = diffInMilliseconds / 1000.0;
-                    DecimalFormat df = new DecimalFormat("#.00");
-                    String seconds = df.format(diffInSeconds);
-                    log.info("Flushed PromoterReportHour batch size: {},执行时间:{}", promoterReportHourBuffer.size(),seconds);
-
-                    promoterReportHourBuffer.clear();
-                    promoterReportHourLastFlushTime = now;
-                } catch (Exception e) {
-                    log.error("Error flushing PromoterReportHour batch", e);
-                }
-            }
-        }
-
-
-        synchronized (promoterReportDailyBuffer) {
-            long now = System.currentTimeMillis();
-            // promoterReportDailyBuffer.size() >= MAX_BATCH_SIZE ||  (now - promoterReportDailyLastFlushTime) >= MAX_WAIT_TIME_MS &&
-            if ( !promoterReportDailyBuffer.isEmpty()) {
-                try {
-                    long startTime = System.currentTimeMillis();
-                    promoterReportMapper.replacePromoterReportDailiesSD(new ArrayList<>(promoterReportDailyBuffer));
-                    long endTime = System.currentTimeMillis();
-                    long diffInMilliseconds = endTime - startTime;
-                    double diffInSeconds = diffInMilliseconds / 1000.0;
-                    DecimalFormat df = new DecimalFormat("#.00");
-                    String seconds = df.format(diffInSeconds);
-                    log.info("Flushed PromoterReportDaily batch size: {},执行时间:{}", promoterReportDailyBuffer.size(),seconds);
-
-                    promoterReportDailyBuffer.clear();
-                    promoterReportDailyLastFlushTime = now;
-                } catch (Exception e) {
-                    log.error("Error flushing PromoterReportDaily batch", e);
-                }
-            }
-        }
-
-
-    }
-
-
-    @PreDestroy
-    public void flushPreDestroy() {
-        log.info("项目重启,开始执行广告报表批处理任务....");
-        synchronized (promoterReportHourBuffer) {
-            if (!promoterReportHourBuffer.isEmpty()) {
-                try {
-                    log.info("Flushed PromoterReportHour batch size: {}", promoterReportHourBuffer.size());
-                    promoterReportMapper.replacePromoterReportHourSD(new ArrayList<>(promoterReportHourBuffer));
-                    promoterReportHourBuffer.clear();
-                } catch (Exception e) {
-                    log.error("Error flushing PromoterReportHour batch", e);
-                }
-            }
-        }
-
-
-        synchronized (promoterReportDailyBuffer) {
-            if (!promoterReportDailyBuffer.isEmpty()) {
-                try {
-                    log.info("Flushed promoterReportDaily batch size: {}", promoterReportDailyBuffer.size());
-                    promoterReportMapper.replacePromoterReportDailiesSD(new ArrayList<>(promoterReportDailyBuffer));
-                    promoterReportDailyBuffer.clear();
-                } catch (Exception e) {
-                    log.error("Error flushing promoterReportDaily batch", e);
-                }
-            }
-        }
-    }*/
-
-
 }
 }

+ 8 - 10
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/data/service/impl/BytedanceXingTuServiceImpl.java

@@ -11,6 +11,7 @@ import cn.com.ctop.job.bytedance.data.utils.AlertUtils;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.Check;
 import cn.com.ctop.job.bytedance.data.utils.DateUtils;
 import cn.com.ctop.job.bytedance.data.utils.DateUtils;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
 import cn.com.ctop.job.bytedance.data.utils.HttpUtils;
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisMultiTableStreamLoadManager;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -29,6 +30,9 @@ import java.util.Map;
 @Slf4j
 @Slf4j
 public class BytedanceXingTuServiceImpl implements IBytedanceXingTuService {
 public class BytedanceXingTuServiceImpl implements IBytedanceXingTuService {
     @Autowired
     @Autowired
+    private DorisMultiTableStreamLoadManager dorisLoadManager;
+
+    @Autowired
     private BytedanceXingTuMapper bytedanceXingTuMapper;
     private BytedanceXingTuMapper bytedanceXingTuMapper;
 
 
     @Autowired
     @Autowired
@@ -387,19 +391,13 @@ public class BytedanceXingTuServiceImpl implements IBytedanceXingTuService {
 
 
             if (!Check.isNull(reports)) {
             if (!Check.isNull(reports)) {
                 bytedanceXingTuMapper.insertReport(reports);
                 bytedanceXingTuMapper.insertReport(reports);
-                try {
-                    bytedanceXingTuMapper.insertReportSD(reports);
-                }catch (Exception e) {
-                    log.error("",e);
-                }
+                //bytedanceXingTuMapper.insertReportSD(reports);
+                dorisLoadManager.add("media_api", "bytedance_xingtu_task_report" ,reports);
             }
             }
             if (!Check.isNull(dailyReports)) {
             if (!Check.isNull(dailyReports)) {
                 bytedanceXingTuMapper.insertReportDaily(dailyReports);
                 bytedanceXingTuMapper.insertReportDaily(dailyReports);
-                try {
-                    bytedanceXingTuMapper.insertReportDailySD(dailyReports);
-                }catch (Exception e) {
-                    log.error("",e);
-                }
+                //bytedanceXingTuMapper.insertReportDailySD(dailyReports);
+                dorisLoadManager.add("media_api", "bytedance_xingtu_task_report_daily" ,dailyReports);
             }
             }
 
 
             if (hasMore) {
             if (hasMore) {

+ 6 - 2
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/DorisConfiguration.java

@@ -1,11 +1,15 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils;
 
 
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisBufferConfig;
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisMultiTableStreamLoadManager;
+import cn.com.ctop.job.bytedance.utils.doris.sink.DorisSinkClient;
+import cn.com.ctop.job.bytedance.utils.doris.sink.SimpleHttpDorisSinkClient;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Configuration;
 
 
 @Configuration
 @Configuration
-public class DorisConfiguration {
+public class DorisConfig {
     @Value("${spring.doris.fe-host}")
     @Value("${spring.doris.fe-host}")
     private String feHost;
     private String feHost;
 
 

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/DorisBufferConfig.java

@@ -1,4 +1,4 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils.doris.sink;
 
 
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Builder;

+ 12 - 9
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/DorisMultiTableStreamLoadManager.java

@@ -1,10 +1,11 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils.doris.sink;
 
 
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.concurrent.CustomizableThreadFactory;
 import org.springframework.scheduling.concurrent.CustomizableThreadFactory;
 
 
 import javax.annotation.PreDestroy;
 import javax.annotation.PreDestroy;
 import java.util.Collection;
 import java.util.Collection;
+import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.ExecutorService;
@@ -29,17 +30,19 @@ public class DorisMultiTableStreamLoadManager {
 
 
     public void add(String database, String table, Object obj) {
     public void add(String database, String table, Object obj) {
         TableKey key = new TableKey(database, table);
         TableKey key = new TableKey(database, table);
-        bufferManagers.computeIfAbsent(key, k -> new TableBufferManager(k, defaultBufferConfig, sinkClient, uploaderExecutor))
-                .add(new RecordWithMeta(database, table, obj));
-    }
-
-    public void add(String database, String table, Collection<Object> objs) {
-        for (Object obj : objs) {
-            add(database, table, obj);
+        if (obj instanceof Collection) {
+            Collection<?> collection = (Collection<?>) obj;
+            for (Object o : collection) {
+                bufferManagers.computeIfAbsent(key, k -> new TableBufferManager(k, defaultBufferConfig, sinkClient, uploaderExecutor))
+                        .add(new RecordWithMeta(database, table, o));
+            }
+        } else {
+            bufferManagers.computeIfAbsent(key, k -> new TableBufferManager(k, defaultBufferConfig, sinkClient, uploaderExecutor))
+                    .add(new RecordWithMeta(database, table, obj));
         }
         }
-
     }
     }
 
 
+
     @PreDestroy
     @PreDestroy
     public void shutdown() {
     public void shutdown() {
         log.info("Shutting down DorisMultiTableStreamLoadManager");
         log.info("Shutting down DorisMultiTableStreamLoadManager");

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/DorisSinkClient.java

@@ -1,4 +1,4 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils.doris.sink;
 
 
 import java.util.List;
 import java.util.List;
 @FunctionalInterface
 @FunctionalInterface

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/RecordWithMeta.java

@@ -1,4 +1,4 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils.doris.sink;
 
 
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Builder;

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/SimpleHttpDorisSinkClient.java

@@ -1,4 +1,4 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils.doris.sink;
 
 
 import cn.com.ctop.job.bytedance.data.utils.JsonUtils;
 import cn.com.ctop.job.bytedance.data.utils.JsonUtils;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/StrictRedirectStrategy.java

@@ -1,4 +1,4 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils.doris.sink;
 
 
 import org.apache.http.HttpEntityEnclosingRequest;
 import org.apache.http.HttpEntityEnclosingRequest;
 import org.apache.http.HttpRequest;
 import org.apache.http.HttpRequest;

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/TableBufferManager.java

@@ -1,4 +1,4 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils.doris.sink;
 
 
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.StringUtils;

+ 1 - 1
job-bytedance/src/main/java/cn/com/ctop/job/bytedance/utils/doris_sink/TableKey.java

@@ -1,4 +1,4 @@
-package cn.com.ctop.job.bytedance.utils.doris_sink;
+package cn.com.ctop.job.bytedance.utils.doris.sink;
 
 
 import lombok.AllArgsConstructor;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.Data;