You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@calcite.apache.org by Rajasekhar <ra...@helicaltech.com> on 2016/02/05 11:12:02 UTC
Connection Timeout with large data
Hi Team,
Please ignore previous mail which is incomplete.
I am using apache calcite to access data from different databases and execute my queries.
I have tried to query a database with large data with the following model.json
inline: {
version: '1.0',
defaultSchema: 'Mango',
schemas: [
{
name: 'Mango',
type: 'custom',
factory: 'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory',
operand: {
jdbcDriver: 'com.mysql.jdbc.Driver',
jdbcUrl: 'jdbc:mysql://192.168.2.9:3306/mango',
jdbcUser: 'devuser',
jdbcPassword: 'devuser'
}
}
]
}
When I try to access a table with nearly 100000 rows in it, I am getting Timeout Exception.
Here is the stack-trace.
Caused by: java.sql.SQLException: Error while executing SQL "select
Mango.pointvalues.dataType as pointvalues_dataType
from
Mango.pointvalues
limit 1000": while executing SQL [SELECT `dataType`
FROM `pointvalues`]
at org.apache.calcite.avatica.Helper.createException(Helper.java:52)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:143)
at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:186)
at com.helical.efwd.jdbc.JdbcDaoImpl.query(JdbcDaoImpl.java:36)
... 93 more
Caused by: java.lang.RuntimeException: while executing SQL [SELECT `dataType`
FROM `pointvalues`]
at org.apache.calcite.runtime.ResultSetEnumerable.enumerator(ResultSetEnumerable.java:149)
at org.apache.calcite.linq4j.EnumerableDefaults$24.enumerator(EnumerableDefaults.java:2382)
at org.apache.calcite.linq4j.AbstractEnumerable.iterator(AbstractEnumerable.java:33)
at org.apache.calcite.avatica.MetaImpl.createCursor(MetaImpl.java:77)
at org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:190)
at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:65)
at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:44)
at org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:566)
at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:578)
at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:571)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:136)
... 95 more
Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2730)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2526)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1446)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at org.apache.calcite.runtime.ResultSetEnumerable.enumerator(ResultSetEnumerable.java:144)
... 105 more
How do I solve this issue? Where to find related documentation so that I can solve the issue?
Thanks in advance.
Rajasekhar
Re: Connection Timeout with large data
Posted by Julian Hyde <jh...@apache.org>.
It seems likely that it is the MySQL JDBC driver that is timing out. Can you add parameters to the jdbc:mysql://192.168.2.9:3306/mango connect string to prevent that?
> On Feb 5, 2016, at 2:12 AM, Rajasekhar <ra...@helicaltech.com> wrote:
>
> Hi Team,
> Please ignore previous mail which is incomplete.
>
> I am using apache calcite to access data from different databases and execute my queries.
>
> I have tried to query a database with large data with the following model.json
>
> inline: {
> version: '1.0',
> defaultSchema: 'Mango',
> schemas: [
> {
> name: 'Mango',
> type: 'custom',
> factory: 'org.apache.calcite.adapter.jdbc.JdbcSchema$Factory',
> operand: {
> jdbcDriver: 'com.mysql.jdbc.Driver',
> jdbcUrl: 'jdbc:mysql://192.168.2.9:3306/mango',
> jdbcUser: 'devuser',
> jdbcPassword: 'devuser'
> }
> }
> ]
> }
>
>
> When I try to access a table with nearly 100000 rows in it, I am getting Timeout Exception.
>
> Here is the stack-trace.
>
>
>
> Caused by: java.sql.SQLException: Error while executing SQL "select
> Mango.pointvalues.dataType as pointvalues_dataType
> from
> Mango.pointvalues
> limit 1000": while executing SQL [SELECT `dataType`
> FROM `pointvalues`]
> at org.apache.calcite.avatica.Helper.createException(Helper.java:52)
> at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
> at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:143)
> at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:186)
> at com.helical.efwd.jdbc.JdbcDaoImpl.query(JdbcDaoImpl.java:36)
> ... 93 more
> Caused by: java.lang.RuntimeException: while executing SQL [SELECT `dataType`
> FROM `pointvalues`]
> at org.apache.calcite.runtime.ResultSetEnumerable.enumerator(ResultSetEnumerable.java:149)
> at org.apache.calcite.linq4j.EnumerableDefaults$24.enumerator(EnumerableDefaults.java:2382)
> at org.apache.calcite.linq4j.AbstractEnumerable.iterator(AbstractEnumerable.java:33)
> at org.apache.calcite.avatica.MetaImpl.createCursor(MetaImpl.java:77)
> at org.apache.calcite.avatica.AvaticaResultSet.execute(AvaticaResultSet.java:190)
> at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:65)
> at org.apache.calcite.jdbc.CalciteResultSet.execute(CalciteResultSet.java:44)
> at org.apache.calcite.avatica.AvaticaConnection$1.execute(AvaticaConnection.java:566)
> at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:578)
> at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:571)
> at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:136)
> ... 95 more
> Caused by: com.mysql.jdbc.exceptions.MySQLTimeoutException: Statement cancelled due to timeout or client request
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2730)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2526)
> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2484)
> at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1446)
> at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
> at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
> at org.apache.calcite.runtime.ResultSetEnumerable.enumerator(ResultSetEnumerable.java:144)
> ... 105 more
>
>
> How do I solve this issue? Where to find related documentation so that I can solve the issue?
>
> Thanks in advance.
>
> Rajasekhar