[ 
https://issues.apache.org/jira/browse/BEAM-3073?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rick Lin updated BEAM-3073:
---------------------------
    Description: 
Hi all,
{color:#14892c}I tried to connect Apache Ignite(In-memory) via the beam's 
sdk:org.apache.beam.sdk.io.jdbc.JdbcIO
Here, i am not sure if the JdbcIO sdk only is provided for some specific 
Database: MySQL(disk), postgreSQL(disk)?{color}
my java test code is as follows:
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.io.jdbc.JdbcIO;
import org.apache.beam.sdk.options.PipelineOptionsFactory;
import org.apache.beam.sdk.transforms.Create;
import org.apache.beam.sdk.values.KV;
import org.apache.beam.sdk.values.PCollection;

public class BeamtoJDBC {
        public static void main(String[] args) {                
                Integer[] value=new Integer[] {1,2,3,4,5};
                List<KV<Integer, Integer>> dataList = new ArrayList<>();
                int n=value.length;
                int count=0;
                for (int i=0; i<n; i++)
                {
                        dataList.add(KV.of(count,value[i]));
                        count=count+1;                  
                }
                
                Pipeline p = 
Pipeline.create(PipelineOptionsFactory.fromArgs(args).withValidation().create());
                
                PCollection<KV<Integer, Integer>> data=p.apply("create data 
with time",Create.of(dataList));

                data.apply(JdbcIO.<KV<Integer, Integer>>write()
                                
.withDataSourceConfiguration(JdbcIO.DataSourceConfiguration
                                                
.create("org.apache.ignite.IgniteJdbcDriver", "jdbc:ignite://localhost:11211/")
                                                )               
                                .withPreparedStatementSetter(new 
JdbcIO.PreparedStatementSetter<KV<Integer, Integer>>() {
                                        public void setParameters(KV<Integer, 
Integer> element, PreparedStatement query)
                                                throws SQLException {
                                                query.setInt(1, 
element.getKey());
                                                query.setInt(2, 
element.getValue());
                                        }
                                })
                        );
                p.run();

        }
}

{color:#d04437}my error message is: 
" InvocationTargetException: org.apache.beam.sdk.util.UserCodeException: 
java.sql.SQLException: Cannot create PoolableConnectionFactory 
(Failed to establish connection.): Failed to get future result due to waiting 
timed out. "{color}

{color:#14892c}I would like to know whether the connection between beam and 
ignite is feasible or not?{color}

Thanks

Rick


  was:
Hi all,
{color:#14892c}I tried to connect Apache Ignite(In-memory) via the beam's 
sdk:org.apache.beam.sdk.io.jdbc.JdbcIO
Here, i am not sure if the JdbcIO sdk only is provided for some specific 
Database: MySQL(disk), postgreSQL(disk)?{color}
my java test code is as follows:
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.io.jdbc.JdbcIO;
import org.apache.beam.sdk.options.PipelineOptionsFactory;
import org.apache.beam.sdk.transforms.Create;
import org.apache.beam.sdk.values.KV;
import org.apache.beam.sdk.values.PCollection;

public class BeamtoJDBC {
        public static void main(String[] args) {                
                Integer[] value=new Integer[] {1,2,3,4,5};
                List<KV<Integer, Integer>> dataList = new ArrayList<>();
                int n=value.length;
                int count=0;
                for (int i=0; i<n; i++)
                {
                        dataList.add(KV.of(count,value[i]));
                        count=count+1;                  
                }
                
                Pipeline p = 
Pipeline.create(PipelineOptionsFactory.fromArgs(args).withValidation().create());
                
                PCollection<KV<Integer, Integer>> data=p.apply("create data 
with time",Create.of(dataList));

                data.apply(JdbcIO.<KV<Integer, Integer>>write()
                                
.withDataSourceConfiguration(JdbcIO.DataSourceConfiguration
                                                
.create("org.apache.ignite.IgniteJdbcDriver", "jdbc:ignite://localhost:11211/")
                                                )               
                                .withPreparedStatementSetter(new 
JdbcIO.PreparedStatementSetter<KV<Integer, Integer>>() {
                                        public void setParameters(KV<Integer, 
Integer> element, PreparedStatement query)
                                                throws SQLException {
                                                query.setInt(1, 
element.getKey());
                                                query.setInt(2, 
element.getValue());
                                        }
                                })
                        );
                p.run();

        }
}

{color:#d04437}my error message is: 
" InvocationTargetException: org.apache.beam.sdk.util.UserCodeException: 
java.sql.SQLException: Cannot create PoolableConnectionFactory 
(Failed to establish connection.): Failed to get future result due to waiting 
timed out. "{color}

{color:#14892c}I would like to know whether the connection between beam and 
ignite is feasi{color}ble or not?

Thanks

Rick



> Connect to Apache ignite via JdbcIO sdk
> ---------------------------------------
>
>                 Key: BEAM-3073
>                 URL: https://issues.apache.org/jira/browse/BEAM-3073
>             Project: Beam
>          Issue Type: New Feature
>          Components: sdk-java-extensions
>            Reporter: Rick Lin
>            Assignee: Reuven Lax
>            Priority: Minor
>
> Hi all,
> {color:#14892c}I tried to connect Apache Ignite(In-memory) via the beam's 
> sdk:org.apache.beam.sdk.io.jdbc.JdbcIO
> Here, i am not sure if the JdbcIO sdk only is provided for some specific 
> Database: MySQL(disk), postgreSQL(disk)?{color}
> my java test code is as follows:
> import java.sql.PreparedStatement;
> import java.sql.SQLException;
> import java.util.ArrayList;
> import java.util.List;
> import org.apache.beam.sdk.Pipeline;
> import org.apache.beam.sdk.io.jdbc.JdbcIO;
> import org.apache.beam.sdk.options.PipelineOptionsFactory;
> import org.apache.beam.sdk.transforms.Create;
> import org.apache.beam.sdk.values.KV;
> import org.apache.beam.sdk.values.PCollection;
> public class BeamtoJDBC {
>       public static void main(String[] args) {                
>               Integer[] value=new Integer[] {1,2,3,4,5};
>               List<KV<Integer, Integer>> dataList = new ArrayList<>();
>               int n=value.length;
>               int count=0;
>               for (int i=0; i<n; i++)
>               {
>                       dataList.add(KV.of(count,value[i]));
>                       count=count+1;                  
>               }
>               
>               Pipeline p = 
> Pipeline.create(PipelineOptionsFactory.fromArgs(args).withValidation().create());
>               
>               PCollection<KV<Integer, Integer>> data=p.apply("create data 
> with time",Create.of(dataList));
>               data.apply(JdbcIO.<KV<Integer, Integer>>write()
>                               
> .withDataSourceConfiguration(JdbcIO.DataSourceConfiguration
>                                               
> .create("org.apache.ignite.IgniteJdbcDriver", 
> "jdbc:ignite://localhost:11211/")
>                                               )               
>                               .withPreparedStatementSetter(new 
> JdbcIO.PreparedStatementSetter<KV<Integer, Integer>>() {
>                                       public void setParameters(KV<Integer, 
> Integer> element, PreparedStatement query)
>                                               throws SQLException {
>                                               query.setInt(1, 
> element.getKey());
>                                               query.setInt(2, 
> element.getValue());
>                                       }
>                               })
>                       );
>               p.run();
>       }
> }
> {color:#d04437}my error message is: 
> " InvocationTargetException: org.apache.beam.sdk.util.UserCodeException: 
> java.sql.SQLException: Cannot create PoolableConnectionFactory 
> (Failed to establish connection.): Failed to get future result due to waiting 
> timed out. "{color}
> {color:#14892c}I would like to know whether the connection between beam and 
> ignite is feasible or not?{color}
> Thanks
> Rick



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to