.NET中操作 ClickHouse .NET ORM

应用场景

大数据库 BI分析 和时序库 应用场景比较接近


连接字符串

Database=SqlSugarTest2;Username=default;Password=;Host=localhost;
Port=8123;Compression=False;UseSession=False;Timeout=120;


Nuget 安装

SqlSugar.ClickHouseCore

SqlSugarCore



Docker安装

要用最新版要

docker pull yandex/clickhouse-server


缺点

1、大小写要和数据库一样模一样,用的时候需要注意一下

2、不支持事务

3、只支持Linux


枚举

DbType = DbType.ClickHouse,


DEMO

可以去GITHUB下载完整DEMO

image.png


大数据写入BulkCopy(并发)

请升级到 

SqlSugarCore 5.1.3.31-preview11 及以上版本

SqlSugar.ClickHouseCore 5.1.3.31

//同步
db.Fastest<DC_Scene>().BulkCopy(lstData);

//高并发异步
await db.CopyNew().Fastest<DC_Scene>().BulkCopyAsync(lstData);



数组类型

需要升级到:SqlSugar.ClickHouseCore 5.1.4.66

如果不想用Json想用原生数组类型 可以下面方式定义  

 [SugarColumn(ColumnDataType = "Array(UInt64)",IsArray  =true)]//custom
 public UInt64[] Text { get; set; }


建表自定义引擎

需要升级 SqlSugar.ClickHouseCore

    [SqlSugar.ClickHouse.CKTable(@"engine = MergeTree PARTITION BY toYYYYMM(dt)
        ORDER BY(toYYYYMM(dt))
        SETTINGS index_granularity = 8192;")]
    public class CKTest 
    {
        public string Id { get; set; }
        public DateTime dt { get; set; }
    }


关闭
文档:SqlSugar5.0