private void createLinksFromSnapshotToSourceDir(
      String targetSuffix, File[] files, FolderManager folderManager)
      throws DiskSpaceInsufficientException, IOException {
    Map<String, String> fileTarget = new HashMap<>();
    for (File file : files) {
      String fileKey = file.getName().split("\\.")[0];
      String dataDir;
      if (fileTarget.containsKey(fileKey)) {
        dataDir = fileTarget.get(fileKey);
      } else {
        dataDir = folderManager.getNextFolder();
        fileTarget.put(fileKey, dataDir);
      }
      File targetFile =
          new File(dataDir + File.separator + targetSuffix + File.separator + file.getName());
      if (!targetFile.getParentFile().exists() && !targetFile.getParentFile().mkdirs()) {
        throw new IOException(
            String.format(
                "Cannot create directory %s", targetFile.getParentFile().getAbsolutePath()));
      }
      try {
        Files.createLink(targetFile.toPath(), file.toPath());
        continue;
      } catch (IOException e) {
        LOGGER.info("Cannot create link from {} to {}, try to copy it", file, targetFile);
      }

      Files.copy(file.toPath(), targetFile.toPath());
    }
  }
1. Clear origin data 2. Move snapshot data to data dir 3. Load data region

@return
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/snapshot/SnapshotLoader.java