Hi Florian, yes I agree. We should put database specific implementations in a separate class into the package of the sink.
Do you think we have to duplicate the whole class or can we leave some core functionalities in the JDBClient? Philipp > On 15. May 2020, at 16:33, Florian Micklich <[email protected]> wrote: > > Hi all, > > I just made a quick test and as aspected it is not compatible with the > IoT-DB anymore. So what are the best options? > > I would say, move each working JDBClient into the depending Sink folder > and rename it like IoTDbClient and PostgresClient. Similar solution is > used for example in the InfluxDbClient sink folder. > > What do you think? > > Kind regards > Florian > > > > Am Freitag, den 15.05.2020, 15:29 +0200 schrieb Florian Micklich: >> Hi all, >> >> I did some changes in the postgres sink and depending >> JdbcClient.class. >> >> >> Here is the small changelog: >> >> A. I improved the error messages if wrong host/port oder user >> authentication is used. >> B. Changing the enum SqlAttribute data types for Double and >> String. In >> Postgres double leads to an error described in STREAMPIPES-127. >> Instead DOUBLE PRECISION has to be used [1]. Also changes >> String >> from varchar255 to TEXT. This allows "unlimited" string lentgh. >> C. Added two new db settings: >> * Use schema name [2] instead of only public. >> * Drop Table if Exists Option. This deletes the table if table >> exists, so old will be removed and the same table name can be used. >> D. Because of C. some changes had to be made in the >> JdbcClient.class >> and also in the initializeJdbc method with two new parameters. >> E. Extended documentation and string.en with the new parameters >> >> This changes can be found in the feature/postgis-sink branch. The >> compatibility with the IoT-DB, which also uses the class >> JdbcClient.class, still needs to be tested! My first guess is, that >> this may not be compatible, but because of STREAMPIPES-127 it seems >> to >> be necessary to use another JdbcClien client anyway. At the moment I >> used some default values(public and false) to start the IotDB.class >> Sink like without compiling error. >> >> >> initializeJdbc( >> parameters.getGraph().getInputStreams().get(0).getEventSc >> he >> ma().getEventProperties(), >> parameters.getIotDbHost(), >> parameters.getIotDbPort(), >> "", // Database does not exist in IoTDB model >> "root." + parameters.getDbStorageGroup(), >> parameters.getUsername(), >> parameters.getPassword(), >> ".*", >> "org.apache.iotdb.jdbc.IoTDBDriver", >> "iotdb", >> LOG, >> "public", >> false); >> >> Greetings >> Florian >> >> [1] https://www.postgresql.org/docs/current/datatype-numeric.html >> [2] https://www.postgresqltutorial.com/postgresql-schema/ >> [3] https://www.postgresql.org/docs/current/sql-droptable.html >
