Hello Rameshwar, It seems like you have issue with date conversion for one of columns:
Caused by: java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date. I believe you could try options suggested here: https://stackoverflow.com/questions/17195343/value-0000-00-00-can-not-be-represented-as-java-sql-date/17196386 Thanks, Igor On Thu, Nov 28, 2019 at 2:07 PM Rameshwar Mane <[email protected]> wrote: > Hi, > I was trying to query my mysql table registered in apache drill. I am > facing the following error while trying to execute query. > the error in the terminal was: > > Error: DATA_READ ERROR: Failure while attempting to read from database. > > sql SELECT * > FROM `openisjb_demo`.`ASSOC` > plugin mysql > Fragment 0:0 > > [Error Id: 12adbd85-48b4-4b1d-a29b-0e8ab0d34d54 on xxxxxxxxxxxx:31010] > (state=,code=0) > > the logs in sqlline.log file are : > > 2019-11-28 10:15:13,679 [Client-1] INFO > o.a.d.j.i.DrillCursor$ResultsListener - [#6] Query failed: > > org.apache.drill.common.exceptions.UserRemoteException: DATA_READ ERROR: > Failure while attempting to read from database. > > sql SELECT * > FROM `openisjb_demo`.`ASSOC` > plugin mysql > Fragment 0:0 > > [Error Id: 67b0e4e1-18d3-4155-8537-021806c88858 on > xxxxxxxxxxxxxxxxxxxx:31010] > at > org.apache.drill.exec.rpc.user.QueryResultHandler.resultArrived(QueryResultHandler.java:123) > [drill-java-exec-1.16.0.jar:1.16.0] > at org.apache.drill.exec.rpc.user.UserClient.handle(UserClient.java:422) > [drill-java-exec-1.16.0.jar:1.16.0] > at org.apache.drill.exec.rpc.user.UserClient.handle(UserClient.java:96) > [drill-java-exec-1.16.0.jar:1.16.0] > at org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:273) > [drill-rpc-1.16.0.jar:1.16.0] > at org.apache.drill.exec.rpc.RpcBus$InboundHandler.decode(RpcBus.java:243) > [drill-rpc-1.16.0.jar:1.16.0] > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) > [netty-codec-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287) > [netty-handler-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102) > [netty-codec-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:312) > [netty-codec-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:286) > [netty-codec-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:335) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:356) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:342) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459) > [netty-transport-4.0.48.Final.jar:4.0.48.Final] > at > io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131) > [netty-common-4.0.48.Final.jar:4.0.48.Final] > at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151] > java.sql.SQLException: Value '0000-00-00' can not be represented as > java.sql.Date > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.ResultSetRow.getDateFast(ResultSetRow.java:146) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.ByteArrayRow.getDateFast(ByteArrayRow.java:244) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2011) > ~[mysql-connector-java.jar:5.1.48] > at > org.apache.commons.dbcp2.DelegatingResultSet.getDate(DelegatingResultSet.java:488) > ~[commons-dbcp2-2.5.0.jar:2.5.0] > at > org.apache.commons.dbcp2.DelegatingResultSet.getDate(DelegatingResultSet.java:488) > ~[commons-dbcp2-2.5.0.jar:2.5.0] > at > org.apache.drill.exec.store.jdbc.JdbcRecordReader$DateCopier.copy(JdbcRecordReader.java:440) > ~[drill-jdbc-storage-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.store.jdbc.JdbcRecordReader.next(JdbcRecordReader.java:271) > ~[drill-jdbc-storage-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.ScanBatch.internalNext(ScanBatch.java:223) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at org.apache.drill.exec.physical.impl.ScanBatch.next(ScanBatch.java:271) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:126) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:116) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext(AbstractUnaryRecordBatch.java:63) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:141) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:186) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:104) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:83) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:94) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:296) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:283) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at .......(:0) ~[na:na] > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1746) > ~[hadoop-common-2.7.4.jar:na] > at > org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:283) > ~[drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38) > ~[drill-common-1.16.0.jar:1.16.0] > at .......(:0) ~[na:na] > > the logs in drillbit.log file are : > > 2019-11-28 10:01:03,217 [22206520-3db3-ddd0-72c1-5ab0990a73a4:foreman] > INFO o.a.drill.exec.work.foreman.Foreman - Query text for query with id > 22206520-3db3-ddd0-72c1-5ab0990a73a4 issued by drill: select * from ASSOC > 2019-11-28 10:01:04,111 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > INFO o.a.d.e.w.fragment.FragmentExecutor - > 22206520-3db3-ddd0-72c1-5ab0990a73a4:0:0: State change requested > AWAITING_ALLOCATION --> RUNNING > 2019-11-28 10:01:04,111 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > INFO o.a.d.e.w.f.FragmentStatusReporter - > 22206520-3db3-ddd0-72c1-5ab0990a73a4:0:0: State to report: RUNNING > 2019-11-28 10:01:04,132 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > INFO o.a.d.e.store.jdbc.JdbcRecordReader - User Error Occurred: Failure > while attempting to read from database. (Value '0000-00-00' can not be > represented as java.sql.Date) > org.apache.drill.common.exceptions.UserException: DATA_READ ERROR: Failure > while attempting to read from database. > > sql SELECT * > FROM `openisjb_demo`.`ASSOC` > plugin mysql > > [Error Id: 12adbd85-48b4-4b1d-a29b-0e8ab0d34d54 ] > at > org.apache.drill.common.exceptions.UserException$Builder.build(UserException.java:630) > ~[drill-common-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.store.jdbc.JdbcRecordReader.next(JdbcRecordReader.java:281) > [drill-jdbc-storage-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.ScanBatch.internalNext(ScanBatch.java:223) > [drill-java-exec-1.16.0.jar:1.16.0] > at org.apache.drill.exec.physical.impl.ScanBatch.next(ScanBatch.java:271) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:126) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:116) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.record.AbstractUnaryRecordBatch.innerNext(AbstractUnaryRecordBatch.java:63) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.project.ProjectRecordBatch.innerNext(ProjectRecordBatch.java:141) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.record.AbstractRecordBatch.next(AbstractRecordBatch.java:186) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:104) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.ScreenCreator$ScreenRoot.innerNext(ScreenCreator.java:83) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.physical.impl.BaseRootExec.next(BaseRootExec.java:94) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:296) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.work.fragment.FragmentExecutor$1.run(FragmentExecutor.java:283) > [drill-java-exec-1.16.0.jar:1.16.0] > at java.security.AccessController.doPrivileged(Native Method) > [na:1.8.0_151] > at javax.security.auth.Subject.doAs(Subject.java:422) [na:1.8.0_151] > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1746) > [hadoop-common-2.7.4.jar:na] > at > org.apache.drill.exec.work.fragment.FragmentExecutor.run(FragmentExecutor.java:283) > [drill-java-exec-1.16.0.jar:1.16.0] > at > org.apache.drill.common.SelfCleaningRunnable.run(SelfCleaningRunnable.java:38) > [drill-common-1.16.0.jar:1.16.0] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > [na:1.8.0_151] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > [na:1.8.0_151] > at java.lang.Thread.run(Thread.java:748) [na:1.8.0_151] > Caused by: java.sql.SQLException: Value '0000-00-00' can not be > represented as java.sql.Date > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:965) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:898) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:887) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:861) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.ResultSetRow.getDateFast(ResultSetRow.java:146) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.ByteArrayRow.getDateFast(ByteArrayRow.java:244) > ~[mysql-connector-java.jar:5.1.48] > at com.mysql.jdbc.ResultSetImpl.getDate(ResultSetImpl.java:2011) > ~[mysql-connector-java.jar:5.1.48] > at > org.apache.commons.dbcp2.DelegatingResultSet.getDate(DelegatingResultSet.java:488) > ~[commons-dbcp2-2.5.0.jar:2.5.0] > at > org.apache.commons.dbcp2.DelegatingResultSet.getDate(DelegatingResultSet.java:488) > ~[commons-dbcp2-2.5.0.jar:2.5.0] > at > org.apache.drill.exec.store.jdbc.JdbcRecordReader$DateCopier.copy(JdbcRecordReader.java:440) > ~[drill-jdbc-storage-1.16.0.jar:1.16.0] > at > org.apache.drill.exec.store.jdbc.JdbcRecordReader.next(JdbcRecordReader.java:271) > [drill-jdbc-storage-1.16.0.jar:1.16.0] > ... 20 common frames omitted > 2019-11-28 10:01:04,133 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > INFO o.a.d.e.w.fragment.FragmentExecutor - > 22206520-3db3-ddd0-72c1-5ab0990a73a4:0:0: State change requested RUNNING > --> FAILED > 2019-11-28 10:01:04,133 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > ERROR o.a.d.e.physical.impl.BaseRootExec - Batch dump started: dumping last > 2 failed batches > 2019-11-28 10:01:04,133 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > ERROR o.a.d.e.p.i.p.ProjectRecordBatch - ProjectRecordBatch[projector=null, > hasRemainder=false, remainderIndex=0, recordCount=0, > container=org.apache.drill.exec.record.VectorContainer@70742027[recordCount > = 0, schemaChanged = true, schema = null, wrappers = [], ...]] > 2019-11-28 10:01:04,133 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > ERROR o.a.d.exec.physical.impl.ScanBatch - > ScanBatch[container=org.apache.drill.exec.record.VectorContainer@76871541[recordCount > = 0, schemaChanged = true, schema = null, wrappers = > [org.apache.drill.exec.vector.NullableIntVector@ad6aa7f[field = > [`ASSOC_MST_ID` (INT(12, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableVarCharVector@1292045f[field = > [`ASSOC_MST_ROLE_CD` (VARCHAR(1, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableVarCharVector@43367b32[field = > [`ASSOC_MST_LNAME` (VARCHAR(25, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableVarCharVector@d554308[field = > [`ASSOC_MST_FNAME` (VARCHAR(25, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableVarCharVector@32ef958f[field = > [`ASSOC_MST_MID_INIT` (VARCHAR(1, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableVarCharVector@305ddf71[field = > [`ASSOC_MST_P_ADDR` (VARCHAR(90, 0):OPTIONAL)], ...], > org.apache.drill.exec.vect > or.NullableVarCharVector@4042dda3[field = [`ASSOC_MST_E_ADDR` > (VARCHAR(50, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableIntVector@67a88ba0[field = > [`ASSOC_MST_PHONE` (INT(10, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableDateVector@29a52937[field = > [`ASSOC_MST_ST_DT` (DATE(10, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableIntVector@77dddd25[field = > [`ASSOC_MST_PAY_RT` (INT(11, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableVarCharVector@21a4a9b8[field = > [`ASSOC_MST_SSN` (VARCHAR(9, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableIntVector@272d3a7[field = > [`ASSOC_MST_ORG_GRP_ID` (INT(10, 0):OPTIONAL)], ...], > org.apache.drill.exec.vector.NullableIntVector@29eae4f[field = [`id` > (INT(12, 0):OPTIONAL)], ...]], ...], > currentReader=JdbcRecordReader[sql=SELECT * > FROM `openisjb_demo`.`ASSOC`, Plugin=mysql], schema=null] > 2019-11-28 10:01:04,133 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > ERROR o.a.d.e.physical.impl.BaseRootExec - Batch dump completed. > 2019-11-28 10:01:04,134 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > INFO o.a.d.e.w.fragment.FragmentExecutor - > 22206520-3db3-ddd0-72c1-5ab0990a73a4:0:0: State change requested FAILED --> > FINISHED > 2019-11-28 10:01:04,139 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > WARN o.a.d.exec.rpc.control.WorkEventBus - Fragment > 22206520-3db3-ddd0-72c1-5ab0990a73a4:0:0 manager is not found in the work > bus. > 2019-11-28 10:01:04,148 [22206520-3db3-ddd0-72c1-5ab0990a73a4:frag:0:0] > WARN o.a.d.e.w.f.QueryStateProcessor - Dropping request to move to > COMPLETED state as query is already at FAILED state (which is terminal). > > is there any way to configure the data types to be used in apache drill or > any alternate solutions instead of changing schema of the table in > datasources. > Thanks and regards > Rameshwar Mane > Big Data Engineer >
