QiangCai commented on a change in pull request #3535: [WIP] Refactory data 
loading for partition table
URL: https://github.com/apache/carbondata/pull/3535#discussion_r361888306
 
 

 ##########
 File path: core/src/main/java/org/apache/carbondata/core/util/CarbonUtil.java
 ##########
 @@ -2730,39 +2734,66 @@ public static String encodeToString(byte[] bytes) 
throws UnsupportedEncodingExce
     return 
Base64.decodeBase64(objectString.getBytes(CarbonCommonConstants.DEFAULT_CHARSET));
   }
 
+  public static void copyCarbonDataFileToCarbonStorePath(String localFilePath,
+      String carbonDataDirectoryPath, long fileSizeInBytes,
+      OutputFilesInfoHolder outputFilesInfoHolder) throws 
CarbonDataWriterException {
+    if (carbonDataDirectoryPath.endsWith(".tmp") && localFilePath
+        .endsWith(CarbonCommonConstants.FACT_FILE_EXT)) {
+      // for partition case, write carbondata file directly to final path, 
keep index in temp path.
+      // This can improve the commit job performance on s3a.
+      carbonDataDirectoryPath =
+          carbonDataDirectoryPath.substring(0, 
carbonDataDirectoryPath.lastIndexOf("/"));
+      if (outputFilesInfoHolder != null) {
+        outputFilesInfoHolder.addToPartitionPath(carbonDataDirectoryPath);
+      }
+    }
+    long targetSize = copyCarbonDataFileToCarbonStorePath(localFilePath, 
carbonDataDirectoryPath,
+        fileSizeInBytes);
+    if (outputFilesInfoHolder != null) {
+      // Storing the number of files written by each task.
+      outputFilesInfoHolder.incrementCount();
+      // Storing the files written by each task.
+      outputFilesInfoHolder.addToOutputFiles(carbonDataDirectoryPath + 
localFilePath
+          .substring(localFilePath.lastIndexOf(File.separator)) + ":" + 
targetSize);
+    }
+  }
+
   /**
    * This method will copy the given file to carbon store location
    *
    * @param localFilePath local file name with full path
    * @throws CarbonDataWriterException
 
 Review comment:
   done

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services

Reply via email to