【问题标题】:How to append rows in QuestDB using embedded API?如何使用嵌入式 API 在 QuestDB 中追加行?
【发布时间】:2021-06-27 21:53:35
【问题描述】:

我正在寻找一个如何使用嵌入在 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 嵌入式 API 插入行?

【问题讨论】:

    标签: questdb


    【解决方案1】:

    由于表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();
    

    【讨论】:

      猜你喜欢
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多