public String importHdfsFile()

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();
    }