package model // SQLAttrs get attrs from db type SQLAttrs struct { AppID string DBName string ESName string DtbName string TablePrefix string TableFormat string IndexAliasPrefix string //写和读数据时,指向的索引。是别名索引 IndexVersion string //创建索引时,指向的索引。这里是实体索引版本号 IndexFormat string IndexType string IndexID string IndexMapping string DataIndexSuffix string DataExtraInfo string ReviewNum int64 ReviewTime int64 Sleep float64 Size int Business string DataFields string SQLByID string SQLByMTime string SQLByIDMTime string DatabusInfo string DatabusIndexID string } // Attrs parse AppAttrs type Attrs struct { Business string AppID string DBName string ESName string DtbName string Table *AttrTable Index *AttrIndex DataSQL *AttrDataSQL DataExtras []AttrDataExtra //appID需要关联其他库的数据 Databus *AttrDatabus Other *AttrOther } // AttrTable . type AttrTable struct { TablePrefix string TableFormat string TableSplit string TableFrom int TableTo int TableZero string TableFixed bool } // AttrIndex . type AttrIndex struct { IndexAliasPrefix string //写和读数据时,指向的索引。是别名索引 IndexEntityPrefix string //创建索引时,指向的索引。是实体索引名 IndexFormat string IndexSplit string IndexFrom int IndexTo int IndexType string IndexID string IndexMapping string IndexZero string IndexFixed bool } // AttrDataSQL . type AttrDataSQL struct { DataIndexSuffix string //索引数据归属 DataFields string DataFieldsV2 map[string]AttrDataFields //存放json转换得到的data_fields字段信息, 替换老的DataFields DataIndexFields []string //来自DataFields左数第一位 DataIndexRemoveFields []string //ES需要移除的字段 DataIndexFormatFields map[string]string //ES每个字段的格式化,如int64,time,int等 DataDtbFields map[string][]string //databus的字段对应的es字段, TODO 改成 map[string]map[string]bool 或 map[string][]string,应对一个数据库字段用在多个es字段 DataExtraInfo string SQLFields string //来自DataFields左数第二位,含表名和字段的alias以及mysql函数等其他表达式 SQLByID string //因为有left join的缘故,顾提供完整sql(抛除字段部分,下同) SQLByMTime string SQLByIDMTime string } // AttrDataFields . type AttrDataFields struct { ESField string `json:"es"` Field string `json:"field"` SQL string `json:"sql"` Expect string `json:"expect"` Stored string `json:"stored"` InDtb string `json:"in_dtb"` } // AttrDataExtra . type AttrDataExtra struct { Type string `json:"type"` Tag string `json:"tag"` Condition map[string]string `json:"condition"` SliceField string `json:"slice_field"` // 逗号分隔,支持多个字段 DBName string `json:"dbname"` Table string `json:"table"` TableFormat string `json:"table_format"` InField string `json:"in_field"` FieldsStr string `json:"fields_str"` Fields []string `json:"fields"` RemoveFields []string `json:"remove_fields"` SQL string `json:"sql"` } // AttrDatabus . type AttrDatabus struct { DatabusInfo string Ticker int // 定时时间(毫秒) AggCount int // 聚合数量 Databus string // databus Map key PrimaryID string // 主表索引id RelatedID string // 关联表索引id } // AttrOther . type AttrOther struct { ReviewNum int64 ReviewTime int64 Sleep float64 Size int }