When loading the csv file using sqlline
it works. When trying to use the copy from command using a java thin client connection, Facing the below issue.
Here is the code:
try (IgniteClient client = Ignition.startClient(cfg)) {
String insert_customer_sql="COPY FROM '/opt/ignite/customer.csv' INTO customer(c_custkey, c_mktsegment, c_nationkey, c_name, c_address, c_phone, c_acctbal, c_comment) FORMAT CSV";
System.out.println("Inserting Data into Customer Table");
cient.query(new SqlFieldsQuery(String.format(insert_customer_sql))).getAll();
Here is the exception log:
Exception in thread "main" org.apache.ignite.client.ClientException: Ignite failed to process request [4]: 50000: Failed to serialize object [typeName=org.apache.ignite.internal.processors.bulkload.BulkLoadProcessor] (server status code [1])
at org.apache.ignite.internal.client.thin.TcpClientChannel.convertException(TcpClientChannel.java:359)
at org.apache.ignite.internal.client.thin.TcpClientChannel.receive(TcpClientChannel.java:319)
at org.apache.ignite.internal.client.thin.TcpClientChannel.service(TcpClientChannel.java:237)
at org.apache.ignite.internal.client.thin.ReliableChannel.lambda$service$1(ReliableChannel.java:168)
at org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:800)
at org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:766)
at org.apache.ignite.internal.client.thin.ReliableChannel.service(ReliableChannel.java:168)
at org.apache.ignite.internal.client.thin.GenericQueryPager.next(GenericQueryPager.java:93)
at org.apache.ignite.internal.client.thin.ClientQueryCursor$1.nextPage(ClientQueryCursor.java:93)
at org.apache.ignite.internal.client.thin.ClientQueryCursor$1.hasNext(ClientQueryCursor.java:76)
at org.apache.ignite.internal.client.thin.ClientQueryCursor.getAll(ClientQueryCursor.java:47)
at org.spaceandtime.io.CDCLoadTest.main(CDCLoadTest.java:52)
Caused by: org.apache.ignite.internal.client.thin.ClientServerError: Ignite failed to process request [4]: 50000: Failed to serialize object [typeName=org.apache.ignite.internal.processors.bulkload.BulkLoadProcessor] (server status code [1])
at org.apache.ignite.internal.client.thin.TcpClientChannel.processNextMessage(TcpClientChannel.java:449)
at org.apache.ignite.internal.client.thin.TcpClientChannel.onMessage(TcpClientChannel.java:194)
at org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnection.onMessage(GridNioClientConnection.java:86)
at org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientListener.onMessage(GridNioClientListener.java:56)
at org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientListener.onMessage(GridNioClientListener.java:30)
at org.apache.ignite.internal.util.nio.GridNioFilterChain$TailFilter.onMessageReceived(GridNioFilterChain.java:279)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:116)
at org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3734)
at org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175)
at org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1211)
at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2508)
at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2273)
at org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1910)
at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:125)
at java.base/java.lang.Thread.run(Thread.java:834)
Process finished with exit code 1
Able to load successfully using sqlline
.
According to the documentation, COPY command is only supported by the JDBC driver. Due to that, you can't execute it using the Java thin client.