public void run() {
        m_appThread = Thread.currentThread();
        validateRootFolder();
        openDatabase();
        deleteApplication();
        createApplication();
        startWorkers();
        
        long startTime = System.currentTimeMillis();
        loadFolder(new File(m_config.root));
        stopWorkers();
            
        // If loading an OLAP shard, merge the results.
        if (m_bOLAPApp) {
            m_logger.info("Merging shard: {}", m_config.shard);
            ((OLAPSession)m_session).mergeShard(m_config.shard, null);
        }
        
        // Display final statistics.
        long stopTime = System.currentTimeMillis();
        m_logger.info("Total files loaded:    {}", m_totalFiles);
        m_logger.info("Total lines scanned:   {}", m_totalLines);
        m_logger.info("Total bytes read:      {}", m_totalBytes);
        long totalMillis = stopTime - startTime;
        m_logger.info("Total time for load:   {}", Utils.formatElapsedTime(totalMillis));
        m_logger.info("Average lines/sec:     {}", ((m_totalLines * 1000) / totalMillis));
        m_logger.info("Average bytes/sec:     {}", ((m_totalBytes * 1000) / totalMillis));
        
        // Done with the client connection.
        m_client.close();
    }
public void run ( ) { m_appThread = Thread . currentThread ( ) ; validateRootFolder ( ) ; openDatabase ( ) ; deleteApplication ( ) ; createApplication ( ) ; startWorkers ( ) ; long startTime = System . currentTimeMillis ( ) ; loadFolder ( new File ( m_config . root ) ) ; stopWorkers ( ) ; if ( m_bOLAPApp ) { m_logger . info ( "Merging shard: {}" , m_config . shard ) ; ( ( OLAPSession ) m_session ) . mergeShard ( m_config . shard , null ) ; } long stopTime = System . currentTimeMillis ( ) ; m_logger . info ( "Total files loaded:    {}" , m_totalFiles ) ; m_logger . info ( "Total lines scanned:   {}" , m_totalLines ) ; m_logger . info ( "Total bytes read:      {}" , m_totalBytes ) ; long totalMillis = stopTime - startTime ; m_logger . info ( "Total time for load:   {}" , Utils . formatElapsedTime ( totalMillis ) ) ; m_logger . info ( "Average lines/sec:     {}" , ( ( m_totalLines * 1000 ) / totalMillis ) ) ; m_logger . info ( "Average bytes/sec:     {}" , ( ( m_totalBytes * 1000 ) / totalMillis ) ) ; m_client . close ( ) ; }
Performs the CSV load as defined by the {@link CSVConfig} singleton object.
This method can be called instead of {@link #main(String[])} for programmatic
access. Parameters should be set first by direct access to the CSVConfig
object or by calling {@link CSVConfig#set(String, String)}.