2015-12-10 45 views
1

即時處理的應用程序在AWS Redshift上運行一系列查詢。由於數據量的原因,某些查詢需要更長時間才能執行。Redshift/Java:SQL執行掛起並永不返回

當我檢查服務器上的執行細節時,查詢似乎在Redshift上完成。但是,java應用程序似乎無限期地掛起而不會拋出任何異常,甚至終止。

下面是執行查詢的代碼。

private void execSQLStrings(String[] queries, String dataset, String dbType) throws Exception { 
    Connection conn = null; 

    if (dbType.equals("redshift")) { 
     conn=getRedshiftConnection(); 
    } else if (dbType.equals("rds")){ 
     conn=getMySQLConnection(); 
    } 

    Statement stmt=conn.createStatement(); 

    String qry=null; 
    debug("Query Length: " + queries.length); 
    for (int ii=0;ii<queries.length;++ii) { 
     qry=queries[ii]; 

     if (dataset != null) { 
      qry=qry.replaceAll("DATASET",dataset); 
     } 

     debug(qry); 
     stmt.execute(qry); 
    } 
    stmt.close(); 
    conn.close(); 
} 

我不能發佈即時運行的查詢,但它有多個表連接和組的條件和它的800米行表。查詢需要大約7〜8分鐘才能在服務器上完成。

回答

相關問題