in manager/manager/src/main/java/org/apache/doris/stack/driver/DorisDataBuildDriver.java [217:309]
public String importHdfsFile(String db, String table, HdfsImportReq importReq) throws Exception {
StringBuffer buffer = new StringBuffer();
buffer.append("LOAD LABEL ");
buffer.append(db);
buffer.append(".");
if (StringUtils.isEmpty(importReq.getName()) || importReq.getFileInfo() == null
|| importReq.getColumnNames() == null || importReq.getColumnNames().isEmpty()
|| importReq.getConnectInfo() == null) {
log.error("Hdfs import task name,fileinfo,column names or connect info is null.");
throw new RequestFieldNullException();
}
buffer.append(importReq.getName());
buffer.append(ENTER);
buffer.append(LEFT_BRACKET);
buffer.append(ENTER);
buffer.append("DATA INFILE");
buffer.append(LEFT_BRACKET);
buffer.append("\"");
buffer.append(importReq.getFileInfo().getFileUrl());
buffer.append("\"");
buffer.append(RIGHT_BRACKET);
buffer.append(ENTER);
buffer.append("INTO TABLE ");
buffer.append(table);
buffer.append(ENTER);
// Add separator
String separator = importReq.getFileInfo().getColumnSeparator();
if (separator != null && !separator.isEmpty()) {
buffer.append("COLUMNS TERMINATED BY ");
buffer.append("\"");
buffer.append(separator);
buffer.append("\"");
buffer.append(ENTER);
}
// File format assignment
if (importReq.getFileInfo().getFormat() != null && !importReq.getFileInfo().getFormat().isEmpty()) {
String format = null;
if (!importReq.getFileInfo().getFormat().equals(HdfsConnectReq.Format.CSV)) {
format = importReq.getFileInfo().getFormat().toLowerCase();
}
if (format != null) {
buffer.append("FORMAT AS ");
buffer.append("\"");
buffer.append(format);
buffer.append("\"");
buffer.append(ENTER);
}
}
buffer.append(LEFT_BRACKET);
StringBuffer columnNameBuffer = new StringBuffer();
for (String columnName : importReq.getColumnNames()) {
columnNameBuffer.append(columnName);
columnNameBuffer.append(",");
}
columnNameBuffer.deleteCharAt(columnNameBuffer.length() - 1);
buffer.append(columnNameBuffer.toString());
buffer.append(RIGHT_BRACKET);
buffer.append(ENTER);
buffer.append(RIGHT_BRACKET);
if (importReq.getConnectInfo().getBrokerName() != null) {
buffer.append("WITH BROKER ");
buffer.append("'");
buffer.append(importReq.getConnectInfo().getBrokerName());
buffer.append("'");
buffer.append(ENTER);
buffer.append(LEFT_BRACKET);
for (String key : importReq.getConnectInfo().getBrokerProps().keySet()) {
buffer.append(ENTER);
buffer.append("\"");
buffer.append(key);
buffer.append("\"");
buffer.append("=");
buffer.append("\"");
buffer.append(importReq.getConnectInfo().getBrokerProps().get(key));
buffer.append("\"");
buffer.append(COMMA);
}
buffer.deleteCharAt(buffer.length() - 1);
buffer.append(ENTER);
buffer.append(RIGHT_BRACKET);
buffer.append(ENTER);
}
// TODO:PROPERTIES
return buffer.toString();
}