testalter.go 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407
  1. package main
  2. import (
  3. //"fmt"
  4. "time"
  5. "gitee.com/wecisecode/util/logger"
  6. //"git.wecise.com/wecise/odbserver/odb"
  7. . "git.wecise.com/wecise/odbserver/odb"
  8. //"git.wecise.com/wecise/odbserver/odb/redisvr"
  9. "git.wecise.com/wecise/odbserver/odb/test"
  10. )
  11. // CGO_ENABLED=1 go run --ldflags '-linkmode external -extldflags "-static"' testalter.go
  12. // #cgo LDFLAGS: -L/opt/odbserver/sqlite -lsqlite -ldl
  13. // #include "/opt/odbserver/sqlite/sqlite.h"
  14. // #include <stdint.h>
  15. // #include <stdlib.h>
  16. // extern int64_t uhaha_seed;
  17. // extern int64_t uhaha_ts;
  18. // void uhaha_begin_reader();
  19. // void uhaha_end_reader();
  20. func main() {
  21. //options := map[string]interface{} {"cache":odb.CacheAll}
  22. //g,err:= odb.New( options )
  23. //option := &StoreOption{Cache:CacheAll}
  24. option := &Option{Cache: CacheAll, Keyspace: "ooootest", DisableInitialHostLookup: true, DisableNotify: true}
  25. g, err := test.NewG(option)
  26. if err != nil {
  27. logger.Error(err.Error())
  28. } else {
  29. defer g.Close()
  30. }
  31. //logger.SetRollingDaily("C:/test/zkcron/src/test", "test.log")
  32. logger.SetConsole(true)
  33. //logger.SetLevel(logger.DEBUG)
  34. // 测试 返回树形结构
  35. /*
  36. str,err := g.GetClassChildren(-1)
  37. if err != nil {
  38. fmt.Println("GetClassChildren error:"+err.Error())
  39. }else{
  40. fmt.Println("Children:=>" + str)
  41. }
  42. */
  43. // 测试 插入、更新类,删除field ,"cid":2,
  44. // 测试 删除类
  45. /*
  46. list := g.GetClassFields("/matrix/entity", true, true)
  47. for i := range list {
  48. if field, ok := g.Relations[list[i]]; ok {
  49. fmt.Println("rrrrrrr",field)
  50. }
  51. if field, ok := g.Fields[list[i]]; ok {
  52. // patch by lzg
  53. if field.Ftype == "smallint" || field.Ftype == "enum" {
  54. g.EnumClassField("/matrix/entity", field.Name)
  55. }else if field.Ftype == "bucket" {
  56. fmt.Println("====>",field)
  57. g.BucketParams("/matrix/entity", field.Name)
  58. }
  59. }
  60. }
  61. */
  62. // 测试 插入对象
  63. /*
  64. objsstr := `[ {"class":"test","id":11}, {"class":"test"}, {"class":"test2","vtime":"1970-01-01T00:00:00Z"}]`
  65. if err := g.CreateObjectsFromjson(objsstr,[]string{"class","aaa"}) ;err != nil {
  66. logger.Fatal(err.Error())
  67. }
  68. */
  69. /*
  70. objs := make([]map[string]interface{},3)
  71. objs[0] = map[string]interface{}{"class":"test","id" :"1234567890"}
  72. objs[1] = map[string]interface{}{"class":"test"}
  73. objs[2] = map[string]interface{}{"class":"test2","vtime":"1970-01-01T00:00:00Z"}
  74. if err := g.CreateObjectsFromMap(objs,[]string{"class","aaa"}) ;err != nil {
  75. logger.Fatal(err.Error())
  76. }
  77. */
  78. // 测试 返回对象名称
  79. /*
  80. if rtn,err := g.GetDisplayName([]string{"class","id"},"") ;err != nil {
  81. logger.Fatal(err.Error())
  82. }else{
  83. for k,v := range rtn {
  84. fmt.Printf(" %s :",k)
  85. for i:=0 ;i<len(v) ;i++ {
  86. fmt.Printf(" %s :",v)
  87. }
  88. fmt.Println()
  89. }
  90. }
  91. if rtn,err := g.GetDisplayName([]string{"class","id"},"1") ;err != nil {
  92. logger.Fatal(err.Error())
  93. }else{
  94. for k,v := range rtn {
  95. fmt.Printf(" %s :",k)
  96. for i:=0 ;i<len(v) ;i++ {
  97. fmt.Printf(" %s :",v)
  98. }
  99. fmt.Println()
  100. }
  101. }
  102. */
  103. /*
  104. rst,meta, err := g.Query(` alter class /matrix/testbucket5 modify bk2 add pattern {
  105. "files": [
  106. "*.aa"
  107. ],
  108. "pattern": [
  109. "YYYY-MM-DD HH:mm:ss,SSS"
  110. ]} `,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})
  111. */
  112. //rst,meta, err := g.Query(` alter class /matrix/testbucket4 drop column bk1 `,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})
  113. /*rst,meta,err := g.Query(`alter class /matrix/entity/linux add column llllogs bucket {
  114. "files": [
  115. "*.log"
  116. ],
  117. "pattern": [
  118. "YYYY-MM-DD HH:mm:ss"
  119. ],
  120. "ttl": 365,
  121. "type": "bitlog"
  122. } "系统日志";`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  123. //rst,meta, err := g.Query(` alter class /matrix/entity/linux add column cpu_perf bucket { "params": [ ["cpuutilization", "float", "%", "${desc[5]}"] ], "ttl": 365, "type": "tsdb" } 'cpu_perf' `,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})
  124. /*rst,meta, err := g.Query(` alter class /matrix/entity modify type merge enum { "1000": [ "computer", "服务器" ],
  125. "1100": [ ] }`,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})*/
  126. //rst,meta, err := g.Query(` alter class /matrix/entity/wheel add index column screw screw[4..4] '螺丝'; `,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})
  127. /*rst,meta, err := g.Query(` alter /matrix/entity/it/it_aix add column errcol bucket {
  128. "desc": [
  129. "空闲磁盘",
  130. "空闲磁盘百分比",
  131. "磁盘总空间",
  132. "已使用磁盘空间百分比",
  133. "文件系统"
  134. ],
  135. "params": [
  136. ["free", "string", "MB", "${desc[0]}"],
  137. ["pfree", "string", "%", "${desc[1]}"],
  138. ["used", "string", "MB", "${desc[2]}"],
  139. ["total", "string", "MB", "${desc[3]}"],
  140. ["pused", "string", "%", "${desc[4]}"]
  141. ],
  142. "ttl": 365,
  143. "type": "tsdb"
  144. } "磁盘测试"; `,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})*/
  145. /*rst,meta, err := g.Query(`
  146. alter class /m3event/entity/node/ add column promedb bucket {
  147. "ttl": 365,
  148. "type": "promdb"
  149. } "promedb"
  150. `,&QueryMeta{Return: ReturnAll})*/
  151. /*rst, meta, err := g.Query(`
  152. alter class /test/alter with syncdc={"keyspace":"matrix","dc":"dc2"}
  153. `)*/
  154. rst, meta, err := g.Query(`
  155. alter class /test/bucketpromdb with syncdc={}
  156. `)
  157. //rst, meta, err := g.Query(` alter class /test/concat drop column perff `)
  158. /*rst,meta, err := g.Query(`
  159. alter class /test/enum modify v_enum merge enum {
  160. "1":["computer", "新的新的服务器"],
  161. "2":["network", "网络设备"],
  162. "3":["software", "软件"]}
  163. `,&QueryMeta{Return: ReturnAll})*/
  164. //rst,meta, err := g.Query(` alter class MachineToolSpecification add index column location6 varchar `,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})
  165. //rst,meta, err := g.Query(` alter class MachineToolSpecification drop column location6 `,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})
  166. //rst,meta, err := g.Query(`select * from MachineToolSpecification`,&QueryMeta{Return: ReturnAll, MinAsteriskField: true, KeepClassID: false})
  167. //rst,meta,err := g.Query(`alter class /matrix/jobs/jobdef add index column arg list<varchar>`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )
  168. /*
  169. rst,meta,err := g.Query(` alter class /matrix/entity/node add column cpu_metric bucket {
  170. "crc": [
  171. "nodeid",
  172. "CPU_ID"
  173. ],
  174. "desc": [
  175. "NODE ID",
  176. "CPU ID",
  177. "SYSCP_WHSC",
  178. "User to System CPU(Percent)",
  179. "STEAL_WHSC",
  180. "Busy CPU(Percent)",
  181. "Time Stamp",
  182. "I/O Wait(Percent)",
  183. "WAITC_WHSC",
  184. "System CPU(Percent)",
  185. "TMZDIFF",
  186. "BUSYC_WHSC",
  187. "User CPU(Percent)",
  188. "WRITETIME",
  189. "Steal CPU(Percent)",
  190. "Idle CPU(Percent)",
  191. "IDLEC_WHSC",
  192. "User Nice CPU(Percent)"
  193. ],
  194. "params": [
  195. [
  196. "nodeid",
  197. "string",
  198. "",
  199. "${desc[0]}"
  200. ],
  201. [
  202. "CPU_ID",
  203. "string",
  204. "",
  205. "${desc[1]}"
  206. ],
  207. [
  208. "SYSCP_WHSC",
  209. "int",
  210. "",
  211. "${desc[2]}"
  212. ],
  213. [
  214. "User_Sys_Pct",
  215. "float",
  216. "%",
  217. "${desc[3]}"
  218. ],
  219. [
  220. "STEAL_WHSC",
  221. "int",
  222. "",
  223. "${desc[4]}"
  224. ],
  225. [
  226. "Busy_CPU",
  227. "float",
  228. "%",
  229. "${desc[5]}"
  230. ],
  231. [
  232. "Timestamp",
  233. "string",
  234. "",
  235. "${desc[6]}"
  236. ],
  237. [
  238. "Wait_IO_CPU",
  239. "float",
  240. "%",
  241. "${desc[7]}"
  242. ],
  243. [
  244. "WAITC_WHSC",
  245. "int",
  246. "",
  247. "${desc[8]}"
  248. ],
  249. [
  250. "System_CPU",
  251. "float",
  252. "%",
  253. "${desc[9]}"
  254. ],
  255. [
  256. "TMZDIFF",
  257. "int",
  258. "",
  259. "${desc[10]}"
  260. ],
  261. [
  262. "BUSYC_WHSC",
  263. "int",
  264. "",
  265. "${desc[11]}"
  266. ],
  267. [
  268. "User_CPU",
  269. "float",
  270. "%",
  271. "${desc[12]}"
  272. ],
  273. [
  274. "WRITETIME",
  275. "string",
  276. "",
  277. "${desc[13]}"
  278. ],
  279. [
  280. "Steal_CPU_Percent",
  281. "float",
  282. "%",
  283. "${desc[14]}"
  284. ],
  285. [
  286. "Idle_CPU",
  287. "float",
  288. "%",
  289. "${desc[15]}"
  290. ],
  291. [
  292. "IDLEC_WHSC",
  293. "int",
  294. "",
  295. "${desc[16]}"
  296. ],
  297. [
  298. "User_Nice_CPU",
  299. "float",
  300. "%",
  301. "${desc[17]}"
  302. ]
  303. ],
  304. "ttl": 365,
  305. "type": "tsdb"
  306. } "KLZ_CPU";`, &QueryMeta{Return: ReturnAll, MinAsteriskField: false, KeepClassID: false} )*/
  307. // 测试 Alter Table
  308. /*
  309. for i:=0 ; i<1000 ;i++ {
  310. sql := fmt.Sprintf(`ALTER TABLE object ADD H%d %s`,i,"text")
  311. logger.Debugf(sql)
  312. if err := g.GetSession().Query(sql).Consistency(gocql.Quorum).Exec(); err != nil {
  313. logger.Fatalf("ADD ERROR %v",err)
  314. }
  315. */
  316. /*
  317. for i:=0 ; i<1000 ;i++ {
  318. sql := fmt.Sprintf(`ALTER TABLE object DROP H%d `,i)
  319. logger.Debugf(sql)
  320. if err := g.GetSession().Query(sql).Consistency(gocql.Quorum).Exec(); err != nil {
  321. logger.Fatalf("DROP ERROR %v",err)
  322. }
  323. }
  324. */
  325. /*rst,meta,err := g.Query(`alter class /matrix/test add column bbaa14 bucket {
  326. "files": [
  327. "*.log"
  328. ],
  329. "sample": [
  330. "2020-05-15 00:49:59,666"
  331. ],
  332. "ttl": 365,
  333. "type": "bitlog"
  334. }`)*/
  335. //g.SchemaChangeNotify(CacheField | CacheClass | CacheRels | CacheBulk | CacheTSDB | CacheBitLog)
  336. /*if def, err := g.ClassDefine(3) ; err == nil {
  337. logger.Warn( def )
  338. }*/
  339. /*rst,meta,err := g.Query(`create class /matrix/testaa (
  340. bbssss varchar "22222",
  341. keys(bbssss),
  342. index(bbssss)
  343. )`)
  344. */
  345. if err != nil {
  346. logger.Info("Query error:" + err.Error())
  347. logger.Warn(meta["type"])
  348. } else {
  349. logger.Info("rst ===>", rst)
  350. //logger.Error("meta ===>", meta)
  351. if meta["trace"] != nil && len(meta["trace"].([]string)) > 0 {
  352. for _, msg := range meta["trace"].([]string) {
  353. logger.Error(msg)
  354. }
  355. }
  356. logger.Warn(meta["columns"])
  357. }
  358. time.Sleep(10 * time.Second)
  359. }