Documentation
¶
Index ¶
- Constants
- Variables
- type DataHandFn
- type ExecuteResult
- type ITDengineRepository
- type ITDengineTable
- type InsertData
- type TDengineClient
- type TDengineContent
- type TDengineRepository
- func (t *TDengineRepository) Add(tableName, value, tags string) (int64, error)
- func (t *TDengineRepository) AddMany(dataDict map[string]*InsertData) (int64, error)
- func (t *TDengineRepository) Execute(sqlCmd string) (*ExecuteResult, error)
- func (t *TDengineRepository) GetDatabase() string
- func (t *TDengineRepository) GetSuperTableName() string
- func (t *TDengineRepository) QueryCount(queryWhere string) (int64, error)
- func (t *TDengineRepository) QuerySuper(columns, queryWhere string, pageIndex, pageSize, sort int, isTotalCount bool) (result *ExecuteResult, totalCount int64, err error)
- func (t *TDengineRepository) QuerySuperPage(columns, queryWhere string, pageIndex, pageSize, sort int) (result *ExecuteResult, totalCount int64, err error)
- func (t *TDengineRepository) QuerySuperTop(columns, queryWhere string, topCount, sort int) (result *ExecuteResult, err error)
Constants ¶
const ( TSDB_DATA_TYPE_NULL = 0 // 1 bytes TSDB_DATA_TYPE_BOOL = 1 // 1 bytes TSDB_DATA_TYPE_TINYINT = 2 // 1 byte TSDB_DATA_TYPE_SMALLINT = 3 // 2 bytes TSDB_DATA_TYPE_INT = 4 // 4 bytes TSDB_DATA_TYPE_BIGINT = 5 // 8 bytes TSDB_DATA_TYPE_FLOAT = 6 // 4 bytes TSDB_DATA_TYPE_DOUBLE = 7 // 8 bytes TSDB_DATA_TYPE_BINARY = 8 // string TSDB_DATA_TYPE_TIMESTAMP = 9 // 8 bytes TSDB_DATA_TYPE_NCHAR = 10 // unicode string TSDB_DATA_TYPE_UTINYINT = 11 // 1 byte TSDB_DATA_TYPE_USMALLINT = 12 // 2 bytes TSDB_DATA_TYPE_UINT = 13 // 4 bytes TSDB_DATA_TYPE_UBIGINT = 14 // 8 bytes TSDB_DATA_TYPE_JSON = 15 TSDB_DATA_TYPE_VARBINARY = 16 TSDB_DATA_TYPE_DECIMAL = 17 TSDB_DATA_TYPE_BLOB = 18 TSDB_DATA_TYPE_MEDIUMBLOB = 19 TSDB_DATA_TYPE_MAX = 20 )
const ( TSDB_DATA_TYPE_NULL_Str = "NULL" TSDB_DATA_TYPE_BOOL_Str = "BOOL" TSDB_DATA_TYPE_TINYINT_Str = "TINYINT" TSDB_DATA_TYPE_SMALLINT_Str = "SMALLINT" TSDB_DATA_TYPE_INT_Str = "INT" TSDB_DATA_TYPE_BIGINT_Str = "BIGINT" TSDB_DATA_TYPE_FLOAT_Str = "FLOAT" TSDB_DATA_TYPE_DOUBLE_Str = "DOUBLE" TSDB_DATA_TYPE_BINARY_Str = "VARCHAR" TSDB_DATA_TYPE_TIMESTAMP_Str = "TIMESTAMP" TSDB_DATA_TYPE_NCHAR_Str = "NCHAR" TSDB_DATA_TYPE_UTINYINT_Str = "TINYINT UNSIGNED" TSDB_DATA_TYPE_USMALLINT_Str = "SMALLINT UNSIGNED" TSDB_DATA_TYPE_UINT_Str = "INT UNSIGNED" TSDB_DATA_TYPE_UBIGINT_Str = "BIGINT UNSIGNED" TSDB_DATA_TYPE_JSON_Str = "JSON" )
Variables ¶
var NameTypeMap = map[string]int{ TSDB_DATA_TYPE_NULL_Str: TSDB_DATA_TYPE_NULL, TSDB_DATA_TYPE_BOOL_Str: TSDB_DATA_TYPE_BOOL, TSDB_DATA_TYPE_TINYINT_Str: TSDB_DATA_TYPE_TINYINT, TSDB_DATA_TYPE_SMALLINT_Str: TSDB_DATA_TYPE_SMALLINT, TSDB_DATA_TYPE_INT_Str: TSDB_DATA_TYPE_INT, TSDB_DATA_TYPE_BIGINT_Str: TSDB_DATA_TYPE_BIGINT, TSDB_DATA_TYPE_FLOAT_Str: TSDB_DATA_TYPE_FLOAT, TSDB_DATA_TYPE_DOUBLE_Str: TSDB_DATA_TYPE_DOUBLE, TSDB_DATA_TYPE_BINARY_Str: TSDB_DATA_TYPE_BINARY, TSDB_DATA_TYPE_TIMESTAMP_Str: TSDB_DATA_TYPE_TIMESTAMP, TSDB_DATA_TYPE_NCHAR_Str: TSDB_DATA_TYPE_NCHAR, TSDB_DATA_TYPE_UTINYINT_Str: TSDB_DATA_TYPE_UTINYINT, TSDB_DATA_TYPE_USMALLINT_Str: TSDB_DATA_TYPE_USMALLINT, TSDB_DATA_TYPE_UINT_Str: TSDB_DATA_TYPE_UINT, TSDB_DATA_TYPE_UBIGINT_Str: TSDB_DATA_TYPE_UBIGINT, TSDB_DATA_TYPE_JSON_Str: TSDB_DATA_TYPE_JSON, }
var TypeNameMap = map[int]string{ TSDB_DATA_TYPE_NULL: TSDB_DATA_TYPE_NULL_Str, TSDB_DATA_TYPE_BOOL: TSDB_DATA_TYPE_BOOL_Str, TSDB_DATA_TYPE_TINYINT: TSDB_DATA_TYPE_TINYINT_Str, TSDB_DATA_TYPE_SMALLINT: TSDB_DATA_TYPE_SMALLINT_Str, TSDB_DATA_TYPE_INT: TSDB_DATA_TYPE_INT_Str, TSDB_DATA_TYPE_BIGINT: TSDB_DATA_TYPE_BIGINT_Str, TSDB_DATA_TYPE_FLOAT: TSDB_DATA_TYPE_FLOAT_Str, TSDB_DATA_TYPE_DOUBLE: TSDB_DATA_TYPE_DOUBLE_Str, TSDB_DATA_TYPE_BINARY: TSDB_DATA_TYPE_BINARY_Str, TSDB_DATA_TYPE_TIMESTAMP: TSDB_DATA_TYPE_TIMESTAMP_Str, TSDB_DATA_TYPE_NCHAR: TSDB_DATA_TYPE_NCHAR_Str, TSDB_DATA_TYPE_UTINYINT: TSDB_DATA_TYPE_UTINYINT_Str, TSDB_DATA_TYPE_USMALLINT: TSDB_DATA_TYPE_USMALLINT_Str, TSDB_DATA_TYPE_UINT: TSDB_DATA_TYPE_UINT_Str, TSDB_DATA_TYPE_UBIGINT: TSDB_DATA_TYPE_UBIGINT_Str, TSDB_DATA_TYPE_JSON: TSDB_DATA_TYPE_JSON_Str, }
Functions ¶
This section is empty.
Types ¶
type DataHandFn ¶ added in v1.4.0
type DataHandFn func(key string, sVal interface{}) (tVal interface{})
DataHandFn 数据处理方法
type ExecuteResult ¶
type ExecuteResult struct { ColNames []string //列名 ColTypes []int //列类型 ColLength []int64 //列长度 Data [][]interface{} //数据二维数组切片 Rows int //影响行数 Code int //错误码 Desc string //错误描述 }
ExecuteResult 执行失败结果
{ "status":"error", "code":897, "desc":"Database already exists" }
执行成功结果
{ "status":"succ", "head":["ts","current","voltage","phase","location","groupdid"], "data":[["2020-09-09 17:16:47.332",10.20000,219,0.32000,"Beijing.Chaoyang",2]], "rows":1 }
说明:
status: 告知操作结果是成功还是失败。 head: 表的定义,如果不返回结果集,则仅有一列“affected_rows”。(从 2.0.17 版本开始,建议不要依赖 head 返回值来判断数据列类型,而推荐使用 column_meta。在未来版本中,有可能会从返回值中去掉 head 这一项。) column_meta: 从 2.0.17 版本开始,返回值中增加这一项来说明 data 里每一列的数据类型。具体每个列会用三个值来说明,分别为:列名、列类型、类型长度。例如["current",6,4]表示列名为“current”;列类型为 6,也即 float 类型;类型长度为 4,也即对应 4 个字节表示的 float。如果列类型为 binary 或 nchar,则类型长度表示该列最多可以保存的内容长度,而不是本次返回值中的具体数据长度。当列类型是 nchar 的时候,其类型长度表示可以保存的 unicode 字符数量,而不是 bytes。 data: 具体返回的数据,一行一行的呈现,如果不返回结果集,那么就仅有[[affected_rows]]。data 中每一行的数据列顺序,与 column_meta 中描述数据列的顺序完全一致。 rows: 表明总共多少行数据。 column_meta 中的列类型说明: 1:BOOL 2:TINYINT 3:SMALLINT 4:INT 5:BIGINT 6:FLOAT 7:DOUBLE 8:BINARY 9:TIMESTAMP 10:NCHAR
func (*ExecuteResult) GetAffectedRows ¶ added in v1.6.16
func (e *ExecuteResult) GetAffectedRows() (int64, error)
GetAffectedRows 获取受影响行数
func (*ExecuteResult) ToSlice ¶ added in v1.6.13
func (e *ExecuteResult) ToSlice(results interface{}) error
ToSlice 转换为切片对象
func (*ExecuteResult) ToSliceMap ¶ added in v1.6.13
func (e *ExecuteResult) ToSliceMap() ([]map[string]interface{}, error)
ToSliceMap 获取执行结果转切片map
type ITDengineRepository ¶
type ITDengineRepository interface { // GetDatabase 获取数据库名 GetDatabase() string //GetSuperTableName 获取表名称 GetSuperTableName() string //Add 添加数据(单个)对单个表操作(不能存储带有特殊字符内容如:\n \r \...) //tableName:表名称 value:1,“A”,123 tags:"北京",24 Add(tableName, value, tags string) (int64, error) //AddMany 添加数据(单个或批量)对单个表操作(不能存储带有特殊字符内容如:\n \r \...) //map[ key:表名称,value:{"Tags":"tag0,tag1...",data:["\"1538548695000, 12.6, 218, 0.33\",""\"1538548695000, 12.6, 218, 0.33\"...]}} ] values 最大长度不能超过 数据库配置值(数据库默认大小62k) AddMany(dataDict map[string]*InsertData) (int64, error) //Execute 直接执行sqlCmd,可查询,可插入,得到影响结果(不能存储带有特殊字符内容如:\n \r \...) Execute(sqlCmd string) (*ExecuteResult, error) // QueryCount 查询总个数 // queryWhere:条件(a='123') QueryCount(queryWhere string) (int64, error) // QuerySuperTop 根据条件查询超级中的数据 // columns:列名,...(*或""表示全部) // queryWhere:条件(a='123'); // topCount: 排序后前多少条; // sort排序(只支持时间): 0 => 默认,1 => order by ts desc, 2 => order by ts; QuerySuperTop(columns, queryWhere string, topCount, sort int) (result *ExecuteResult, err error) // QuerySuperPage 根据条件查询超级中的数据 // columns:列名,...(*或""表示全部); // queryWhere:条件(a='123'); // pageIndex:页数从1开始; // pageSize:页条数 // sort排序(只支持时间): 0 => 默认,1 => order by ts desc, 2 => order by ts; QuerySuperPage(columns, queryWhere string, pageIndex, pageSize, sort int) (result *ExecuteResult, totalCount int64, err error) // QuerySuper 根据条件查询超级中的数据 // columns:列名,...(*或""表示全部); // queryWhere:条件(a='123'); // pageIndex:页数从1开始; // pageSize:页条数 // sort排序(只支持时间): 0 => 默认,1 => order by ts desc, 2 => order by ts; // isTotalCount:是否需要总数 QuerySuper(columns, queryWhere string, pageIndex, pageSize, sort int, isTotalCount bool) (result *ExecuteResult, totalCount int64, err error) }
ITDengineRepository 仓储
func NewTDengineRepository ¶ added in v1.6.16
func NewTDengineRepository(database string, superTableName string, client *TDengineClient) ITDengineRepository
NewTDengineRepository 数据库存储
type ITDengineTable ¶ added in v1.6.4
type ITDengineTable interface { GetSuperTableName() string //超级表名称 GetTagColumn() string //tag 列名和类型的定义如:accountName binary(64),... GetFieldColumn() string //内容字段的列名和类型定义如:name binary(64),... }
ITDengineTable 表接口
type InsertData ¶
type InsertData struct { Tags string //标签(设备属性除时间外的索引,注同一个表一个标签值是一样的)"Tags":"tag0,tag1...", Data []string //数据内容(数据库多行数据) "data":["\"1538548695000, 12.6, 218, 0.33\",""\"1538548695000, 12.6, 218, 0.33\"...] }
InsertData 插入时表数据
type TDengineClient ¶
type TDengineClient struct {
// contains filtered or unexported fields
}
TDengineClient 数据库客户端 http://192.168.1.215:6041/rest/sql
func GetTDengineClient ¶
func GetTDengineClient(config map[string]string) *TDengineClient
GetTDengineClient 获取客户端
func NewTDengineClient ¶
func NewTDengineClient(ipport string, user string, password string, timeout time.Duration, retryCount int) *TDengineClient
NewTDengineClient 初始化客户端
func (*TDengineClient) Execute ¶
func (c *TDengineClient) Execute(sqlCmd string) (*ExecuteResult, error)
Execute 执行SQL sqlCmd sql语句
type TDengineContent ¶
type TDengineContent struct {
// contains filtered or unexported fields
}
TDengineContent 数据库上下文
func DataBaseMapping ¶
func DataBaseMapping(mappingName string, configFn func(mappingName string) map[string]string, iTDengineTablesFn func() []ITDengineTable) *TDengineContent
DataBaseMapping 添加映射 @client 连接对象 @dataName 数据库名
func (*TDengineContent) Execute ¶ added in v1.6.4
func (t *TDengineContent) Execute(sqlConn string) (*ExecuteResult, error)
Execute 执行sql
func (*TDengineContent) GetConfig ¶ added in v1.6.4
func (t *TDengineContent) GetConfig() map[string]string
GetConfig 获取配置
func (*TDengineContent) GetDatabase ¶ added in v1.6.4
func (t *TDengineContent) GetDatabase() string
GetDatabase 获取数据库名称
func (*TDengineContent) GetTDengineRepository ¶ added in v1.1.1
func (t *TDengineContent) GetTDengineRepository(entity ITDengineTable) (ITDengineRepository, error)
GetTDengineRepository 获取集合仓储 entity 结构体,columnModel列模型("Beijng.Chaoyang", 2) INSERT INTO d1001 USING METERS TAGS ("Beijng.Chaoyang", 2) VALUES (now, 10.2, 219, 0.32);
type TDengineRepository ¶
type TDengineRepository struct {
// contains filtered or unexported fields
}
TDengineRepository 数据库存储
func (*TDengineRepository) Add ¶ added in v1.6.0
func (t *TDengineRepository) Add(tableName, value, tags string) (int64, error)
Add 插入数据(单个)对单个表操作(不能存储带有特殊字符内容如:\n \r \...) tableName:表名称 value:1,“A”,123
func (*TDengineRepository) AddMany ¶ added in v1.6.0
func (t *TDengineRepository) AddMany(dataDict map[string]*InsertData) (int64, error)
AddMany 插入数据(单个或批量)对单个表操作(不能存储带有特殊字符内容如:\n \r \...) show tables like 't_%' map[ key:表名称,value:{"Tags":"tag0,tag1...",data:["\"1538548695000, 12.6, 218, 0.33\",""\"1538548695000, 12.6, 218, 0.33\"...]}} ] values 最大长度不能超过 数据库配置值(数据库默认大小62k) INSERT INTO d1001 USING METERS TAGS ("Beijng.Chaoyang", 2) VALUES (now, 10.2, 219, 0.32); INSERT INTO d1001 VALUES (1538548685000, 10.3, 219, 0.31) (1538548695000, 12.6, 218, 0.33) d1002 VALUES (1538548696800, 12.3, 221, 0.31); CREATE TABLE meters (ts timestamp, current float, voltage int, phase float) TAGS (location binary(64), groupdId int);
func (*TDengineRepository) Execute ¶
func (t *TDengineRepository) Execute(sqlCmd string) (*ExecuteResult, error)
Execute 执行[直接执行sql得影响行数](不能存储带有特殊字符内容如:\n \r \...)
func (*TDengineRepository) GetDatabase ¶
func (t *TDengineRepository) GetDatabase() string
GetDatabase 获取数据库名
func (*TDengineRepository) GetSuperTableName ¶
func (t *TDengineRepository) GetSuperTableName() string
GetSuperTableName 获取表名称
func (*TDengineRepository) QueryCount ¶ added in v1.4.0
func (t *TDengineRepository) QueryCount(queryWhere string) (int64, error)
QueryCount 查询总个数 queryWhere:条件(a='123')
func (*TDengineRepository) QuerySuper ¶ added in v1.4.0
func (t *TDengineRepository) QuerySuper(columns, queryWhere string, pageIndex, pageSize, sort int, isTotalCount bool) (result *ExecuteResult, totalCount int64, err error)
QuerySuper 根据条件查询超级中的数据 columns:列名,...(*或""表示全部); queryWhere:条件(a='123'); pageIndex:页数从1开始; pageSize:页条数 sort排序(只支持时间): 0 => 默认,1 => order by ts desc, 2 => order by ts; isTotalCount:是否需要总数
func (*TDengineRepository) QuerySuperPage ¶ added in v1.4.0
func (t *TDengineRepository) QuerySuperPage(columns, queryWhere string, pageIndex, pageSize, sort int) (result *ExecuteResult, totalCount int64, err error)
QuerySuperPage 根据条件查询超级中的数据 columns:列名,...(*或""表示全部); queryWhere:条件(a='123'); pageIndex:页数从1开始; pageSize:页条数 sort排序(只支持时间): 0 => 默认,1 => order by ts desc, 2 => order by ts;
func (*TDengineRepository) QuerySuperTop ¶ added in v1.4.0
func (t *TDengineRepository) QuerySuperTop(columns, queryWhere string, topCount, sort int) (result *ExecuteResult, err error)
QuerySuperTop 根据条件查询超级中的数据 columns:列名,...(*或""表示全部) queryWhere:条件(a='123'); topCount: 排序后前多少条; sort排序(只支持时间): 0 => 默认,1 => order by ts desc, 2 => order by ts;