为什么sqlsugar不支持QuestDb 把数据转换为csv然后通过questdb内置接口进行数据提交 返回

SqlSugar 沟通中
24 450

为什么sqlsugar不支持QuestDb 把数据转换为csv然后通过questdb内置接口进行数据提交lQLPJxeaiARnhyHNBQ3NB26wcJvjfNOjqgYF510290wpAA_1902_1293.png

热忱回答24

  • fate sta fate sta VIP0
    2024/3/20

    性能差不多,另外自已写的东西稳定不能保证

    0 回复
  • fate sta fate sta VIP0
    2024/3/20

    image.png

    0 回复
  • @fate sta:我们现场通过这种直连的方式出现了很多问题,比如分区表死掉无法恢复等情况,系统占用高等情况。更换成这种流式接口提交数据的方式后目前还没发现之前的问题,建议官方QuestDb也加上这种流式接口提交数据的这种方式

    0 回复
  • fate sta fate sta VIP0
    2024/3/20

    @北凉不悲凉:你用了WAL表了吗

    0 回复
  • fate sta fate sta VIP0
    2024/3/20

    十二、并发插入[table busy]

    常见错误:00000: table busy [reason=insert]

    解决方案:https://github.com/questdb/questdb/issues/1461


    0 回复
  • fate sta fate sta VIP0
    2024/3/20

    要使用WAL表


    0 回复
  • @fate sta:用的就是wal表,你看我表全死掉了,用语句都修复不了。

    ALTER TABLE  HisData RESUME WAL; 

    ALTER TABLE  HisData RESUME WAL FROM TRANSACTION 5;

    image.png

    0 回复
  • fate sta fate sta VIP0
    2024/3/20

    @北凉不悲凉:你能扣一份出来我集成进去。

    0 回复
  • @fate 你去下一份源码,他们里面有做

    0 回复
  • fate sta fate sta VIP0
    2024/3/20

    @北凉不悲凉:我处理一下吧,questdb支持一下

    0 回复
  • fate sta fate sta VIP0
    2024/3/21

    @fate sta

    Nuget安装

     SqlSugar.QuestDb.RestAPI

    代码如下:

    var i= await db.RestApi().BulkCopyAsync(list);
    //不是Fastest是RestApi()
    //安装这个就行了 SqlSugar.QuestDb.RestAPI

    有时候我发现我真是个天才。。。只花了半小时搞定了

    0 回复
  • fate sta fate sta VIP0
    2024/3/21

    好像有点问题,我插入的时间为NULL 我在研究一下

    0 回复
  • fate sta fate sta VIP0
    2024/3/21

    隔壁框架一样的,插入不进去时间  

    image.png

    0 回复
  • @fate sta:时间要this.RealTime.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") 这样的格式才能插入wal表

    0 回复
  • image.png

    0 回复
  • fate sta fate sta VIP0
    2024/3/25

    @北凉不悲凉:那就没有问题了,你试试,已支持了

    0 回复
  • fate sta fate sta VIP0
    2024/3/25

    BulkCopy("yyyyyxxx") 设置一下格式

    0 回复
  • fate sta fate sta VIP0
    2024/3/25

    特性Format 也设置一下

    0 回复
  • fate sta fate sta VIP0
    2024/3/25

      [Format("yyyy-MM-ddTHH:mm:ss.fffffff")]

      public DateTime CreateTime { get; set; }


    0 回复
  • fate sta fate sta VIP0
    2024/3/25

    我测试通过了

    0 回复
  • @fate sta:好的

    0 回复
  • fate sta fate sta VIP0
    2024/3/25

    @北凉不悲凉:更新最新什么不用设置全处理好了

    0 回复
  • fate sta fate sta VIP0
    2024/3/25

    @北凉不悲凉:更新最新什么不用设置全处理好了

    0 回复
  • 星辰 星辰 VIP0
    1个月前

    @fate sta 你好,插入的时候调用的db.RestApi().BulkCopyAsync(list),并发查询时报这个错误,知道是什么原因吗?

    LogLevel:Error

    Message:"errorlog":One or more errors occurred. (00000: table busy [reason=unknown])

    System.AggregateException: One or more errors occurred. (00000: table busy [reason=unknown])

     ---> Npgsql.PostgresException (0x80004005): 00000: table busy [reason=unknown]

       at Npgsql.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|194_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)

       at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)

       at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)

       at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)

       at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)

       at SqlSugar.AdoProvider.GetDataReaderAsync(String sql, SugarParameter[] parameters)

       at SqlSugar.AdoProvider.SqlQueryAsync[T,T2,T3,T4,T5,T6,T7](String sql, Object parameters)

       at SqlSugar.AdoProvider.SqlQueryAsync[T](String sql, SugarParameter[] parameters)

      Exception data:

        Severity: ERROR

        SqlState: 00000

        MessageText: table busy [reason=unknown]

        Position: 1

       --- End of inner exception stack trace ---

       at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)

       at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)

       at System.Threading.Tasks.Task`1.get_Result()



    0 回复