Forráskód Böngészése

支持单个项目的去重

jxing2 6 éve
szülő
commit
450ba19760

+ 7 - 3
repairInfoTable/src/main/java/com/sagacloud/RepairTable.java

@@ -23,16 +23,19 @@ import java.util.*;
 public class RepairTable {
 
     public static void main(String[] args) {
-        //args = new String[]{"-b", "physical_world_v3_226"};
+        args = new String[]{"-b", "physical_world_v3_226", "-p", "1101080001"};
         HBaseTable tableInfo = new HBaseTable();
         boolean complete = HBaseTable.getInfo(args, tableInfo);
         if(!complete){
-            System.out.println("参数错误, -b 数据库名");
+            System.out.println("参数错误, -b 数据库名, -p 项目号(不带Pj)");
             return;
         }
         ZillionAgent agent = ZillionAgentProvider.GetAgent();
         ResultScanner scanner = null;
         JSONObject criteria = new JSONObject();
+        if(tableInfo.getProjectId() != null && tableInfo.getProjectId().length() > 0){
+            criteria.put("project_id", tableInfo.getProjectId());
+        }
         ZillionTableSchema schema = agent.container.repositoryMap.get(tableInfo.getDatabase()).GetTable(tableInfo.getDatatable());
         ZillionTableIndex index = HbaseScanIndex.zillionTableIndex(schema, criteria, null);
         try {
@@ -78,6 +81,7 @@ public class RepairTable {
                 putToDeleteArr(fixMap, deleteArr);
                 if(deleteArr.size() > 2000){
                     ZillionOpUtil.delete(deleteArr, tableInfo);
+                    System.out.println("正在修复 " + curProjectId);
                 }
             }
             ZillionOpUtil.delete(deleteArr, tableInfo);
@@ -87,7 +91,7 @@ public class RepairTable {
         }finally {
             scanner.close();
         }
-        System.out.println(deleteArr);
+        System.out.println("已完成");
     }
 
     private static void putToDeleteArr(Map<String, ArrayList<InfosObj>> fixMap, ArrayList<InfosObj> deleteArr) {

+ 11 - 0
repairInfoTable/src/main/java/com/sagacloud/pojo/HBaseTable.java

@@ -7,6 +7,15 @@ package com.sagacloud.pojo;
 public class HBaseTable {
     private String database;
     private String datatable;
+    private String projectId;
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
 
     public String getDatabase() {
         return database;
@@ -34,6 +43,8 @@ public class HBaseTable {
                 }else if(args[i].equals("-b") || args[i].equals("-database")){
                     tableInfo.database = args[++i];
                     hasDatabaseName = true;
+                }else if(args[i].equals("-p") || args[i].equals("-project")){
+                    tableInfo.projectId = args[++i];
                 }
             }
         }catch (Exception ex){