我正在寻找一个例子,如何使用嵌入在Java进程中的QuestDB。我有一张桌子
CREATE TABLE market_tick ( tickTimeStamp TIMESTAMP, token SYMBOL)
timestamp(tickTimeStamp)
PARTITION BY MONTH并且我附加了像这样的行
TableWriter tableWriter = questDB.getTableWrite( "market_tick" ) ;
TableWriter.Row row = tableWriter.newRow() ;
row.putTimestamp( 0, timeStamp );
String token = String.valueOf(event.getToken()) ;
row.putSym(1, token );
tableWriter.commit();我也有例外
io.questdb.cairo.CairoException: [5] Cannot remove directory: C:\trade\questdb\market_tick\1970-01\token.k
at io.questdb.std.ThreadLocal.initialValue(ThreadLocal.java:36)
at java.base/java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:195)
at java.base/java.lang.ThreadLocal.get(ThreadLocal.java:172)
at io.questdb.cairo.CairoException.instance(CairoException.java:42)如何使用Java embedded API插入行?
发布于 2021-06-28 05:53:36
因为表market_tick有指定的时间戳,所以您不能使用tableWriter.newRow()创建新行,而必须使用tableWriter.newRow(timeStamp)。代码的其余部分是正确的
TableWriter tableWriter = questDB.getTableWrite( "market_tick" ) ;
TableWriter.Row row = tableWriter.newRow(timeStampMicroSeconds) ;
String token = String.valueOf(event.getToken()) ;
row.putSym(1, token );
tableWriter.commit();https://stackoverflow.com/questions/68155577
复制相似问题