bucket_promedb.go 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265
  1. package bucket
  2. import (
  3. //"fmt"
  4. //"strconv"
  5. "fmt"
  6. "testing"
  7. "time"
  8. . "git.wecise.com/wecise/odbserver/odb"
  9. "git.wecise.com/wecise/odbserver/odb/test"
  10. "gitee.com/wecisecode/util/logger"
  11. "github.com/stretchr/testify/assert"
  12. "github.com/stretchr/testify/require"
  13. )
  14. type BucketPromedbTests struct {
  15. Test *testing.T
  16. g *Gutil
  17. }
  18. func BucketPromedbTest(t *testing.T) {
  19. g := test.TestG()
  20. t.Run("InitG", func(t *testing.T) {
  21. test := &BucketPromedbTests{Test: t, g: g}
  22. test.InitG()
  23. })
  24. t.Run("Class", func(t *testing.T) {
  25. test := &BucketPromedbTests{Test: t, g: g}
  26. test.Class()
  27. })
  28. time.Sleep(time.Duration(1) * time.Second)
  29. t.Run("Data", func(t *testing.T) {
  30. test := &BucketPromedbTests{Test: t, g: g}
  31. test.Data()
  32. })
  33. /*t.Run("Valid", func(t *testing.T) {
  34. test := &BucketPromedbTests{Test: t, g: g}
  35. test.Valid()
  36. })*/
  37. }
  38. func (t *BucketPromedbTests) InitG() {
  39. require.NotNil(t.Test, t.g)
  40. }
  41. func (t *BucketPromedbTests) Class() {
  42. _, _, err := t.g.Query(`
  43. create class if not exists /test/bucketpromedb (
  44. host varchar,
  45. prom bucket {
  46. "type" : "promdb",
  47. "ttl" : 365
  48. } 'full',
  49. keys(host),
  50. indexes(host)
  51. ) with key=manu, nickname='bucketpromedb'
  52. `)
  53. if err != nil {
  54. logger.Errorf("%v", err)
  55. }
  56. require.Nil(t.Test, err, fmt.Sprint(err))
  57. }
  58. func (t *BucketPromedbTests) Data() {
  59. var err error
  60. _, _, err = t.g.Query(` insert into /test/bucketpromedb (id, prom) values ('bucketpromedb:wecise', [ ["key1", 2.6, {"disk":"/opt/matrix", "memory":"CPU1"}]] ) at '2020-07-24 10:24:17' `)
  61. if err != nil {
  62. logger.Error(err)
  63. }
  64. require.Nil(t.Test, err, fmt.Sprint(err))
  65. _, _, err = t.g.Query(` insert into /test/bucketpromedb (id, prom) values ('bucketpromedb:wecise', [ ["key1", 2.7, "2020-07-25 11:24:17", {"disk":"/opt/matrix", "memory":"CPU1"}]] ) `)
  66. require.Nil(t.Test, err, fmt.Sprint(err))
  67. _, _, err = t.g.Query(` insert into /test/bucketpromedb (id, prom) values ('bucketpromedb:wecise', [ ["key1", 2.7, "2020-07-26 11:24:17", {"disk":"/opt/matrix", "CPU":"CPU1"}],
  68. ["key2", 2.8, "2020-07-26 11:25:18", {"disk":"/opt/matrix", "CPU":"CPU2"}],
  69. ["key3", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU3"}],
  70. ["key4", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU4"}],
  71. ["key5", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU5"}],
  72. ["key6", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU6"}],
  73. ["key7", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU7"}],
  74. ["key8", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU8"}],
  75. ["key9", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU9"}],
  76. ["key10", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU10"}],
  77. ["key11", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU11"}],
  78. ["key12", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU12"}],
  79. ["key13", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU13"}],
  80. ["key14", 2.9, "2020-07-26 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU14"}],
  81. ["key15", 2.9, "2020-07-27 12:25:18", {"disk":"/opt/matrix", "CPU":"CPU15"}],
  82. ["key16", 2.9, "2020-07-27 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU16"}],
  83. ["key17", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU17"}],
  84. ["key18", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU18"}],
  85. ["key19", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU19"}],
  86. ["key20", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU20"}],
  87. ["key21", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU21"}],
  88. ["key22", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU22"}],
  89. ["key23", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU23"}],
  90. ["key24", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU24"}],
  91. ["key25", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU25"}],
  92. ["key26", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU26"}],
  93. ["key27", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU27"}],
  94. ["key28", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU28"}],
  95. ["key29", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU29"}],
  96. ["key30", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU30"}],
  97. ["key31", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU31"}],
  98. ["key32", 2.9, "2020-07-23 10:24:19", {"disk":"/opt/matrix", "CPU":"CPU32"}],
  99. ["key33", 2.9, "2020-07-23 10:25:19", {"disk":"/opt/matrix", "CPU":"CPU33"}],
  100. ["key34", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU34"}],
  101. ["key35", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU35"}],
  102. ["key36", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU36"}],
  103. ["key37", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU37"}],
  104. ["key38", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU38"}],
  105. ["key39", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU39"}],
  106. ["key40", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU40"}],
  107. ["key41", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU41"}],
  108. ["key42", 2.9, "2020-07-23 09:25:18", {"disk":"/opt/matrix", "CPU":"CPU42"}],
  109. ["key43", 2.9, "2020-07-23 09:25:19", {"disk":"/opt/matrix", "CPU":"CPU43"}],
  110. ["key44", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU44"}],
  111. ["key45", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU45"}],
  112. ["key46", 2.9, "2020-07-23 08:25:18", {"disk":"/opt/matrix", "CPU":"CPU46"}],
  113. ["key47", 2.9, "2020-07-23 08:25:19", {"disk":"/opt/matrix", "CPU":"CPU47"}],
  114. ["key48", 2.9, "2020-07-23 11:25:19", {"disk":"/opt/matrix", "CPU":"CPU48"}]
  115. ] ) `)
  116. require.Nil(t.Test, err, fmt.Sprint(err))
  117. stat, errr := t.g.Prepare(`insert into /test/bucketpromedb (id, prom) values (?, ? ) at ? `)
  118. require.Nil(t.Test, errr)
  119. _, _, err = stat.Exec("bucketpromedb:wecise", [][]interface{}{{"key1", 2.6, map[string]string{"disk": "/opt/matrix", "memory": "CPU1"}}}, "2020-07-29 10:24:17")
  120. require.Nil(t.Test, err, fmt.Sprint(err))
  121. stat, err = t.g.Prepare(`insert into /test/bucketpromedb (id, prom) values (?, ? )`)
  122. require.Nil(t.Test, err, fmt.Sprint(err))
  123. _, _, err = stat.Exec("bucketpromedb:wecise", [][]interface{}{{"key1", 2.7, "2020-07-26 11:24:17", map[string]string{"disk": "/opt/matrix", "CPU": "CPU1"}},
  124. {"key2", 2.8, "2020-07-26 11:25:18", map[string]string{"disk": "/opt/matrix", "CPU": "CPU2"}},
  125. {"key3", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU3"}},
  126. {"key4", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU4"}},
  127. {"key5", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU5"}},
  128. {"key6", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU6"}},
  129. {"key7", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU7"}},
  130. {"key8", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU8"}},
  131. {"key9", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU9"}},
  132. {"key10", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU10"}},
  133. {"key11", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU11"}},
  134. {"key12", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU12"}},
  135. {"key13", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU13"}},
  136. {"key14", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU14"}},
  137. {"key15", 2.9, "2020-07-27 12:25:18", map[string]string{"disk": "/opt/matrix", "CPU": "CPU15"}},
  138. {"key16", 2.9, "2020-07-27 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU16"}},
  139. {"key17", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU17"}},
  140. {"key18", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU18"}},
  141. {"key19", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU19"}},
  142. {"key20", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU20"}},
  143. {"key21", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU21"}},
  144. {"key22", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU22"}},
  145. {"key23", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU23"}},
  146. {"key24", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU24"}},
  147. {"key25", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU25"}},
  148. {"key26", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU26"}},
  149. {"key27", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU27"}},
  150. {"key28", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU28"}},
  151. {"key29", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU29"}},
  152. {"key30", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU30"}},
  153. {"key31", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU31"}},
  154. {"key32", 2.9, "2020-07-26 10:24:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU32"}},
  155. {"key33", 2.9, "2020-07-26 10:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU33"}},
  156. {"key34", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU34"}},
  157. {"key35", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU35"}},
  158. {"key36", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU36"}},
  159. {"key37", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU37"}},
  160. {"key38", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU38"}},
  161. {"key39", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU39"}},
  162. {"key40", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU40"}},
  163. {"key41", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU41"}},
  164. {"key42", 2.9, "2020-07-26 09:25:18", map[string]string{"disk": "/opt/matrix", "CPU": "CPU42"}},
  165. {"key43", 2.9, "2020-07-26 09:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU43"}},
  166. {"key44", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU44"}},
  167. {"key45", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU45"}},
  168. {"key46", 2.9, "2020-07-26 08:25:18", map[string]string{"disk": "/opt/matrix", "CPU": "CPU46"}},
  169. {"key47", 2.9, "2020-07-26 08:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU47"}},
  170. {"key48", 2.9, "2020-07-26 11:25:19", map[string]string{"disk": "/opt/matrix", "CPU": "CPU48"}}})
  171. require.Nil(t.Test, err, fmt.Sprint(err))
  172. /*_, _, err = stat.Exec("buckettsdb:wecise", [][]interface{}{[]interface{}{1, nil, 3.3, 6.5, strconv.Itoa(66666), " abcdefghhhhh"}, []interface{}{1, nil, 3.3, 6.5, strconv.Itoa(77777), " abcdefghhhhh"}, []interface{}{1, nil, 3.3, 6.5, strconv.Itoa(88888), " abcdefghhhhh"}}, []string{"2020-08-01 10:24:17", "2020-08-02 10:24:17", "2020-08-03 10:24:17"})
  173. if err != nil {
  174. logger.Errorf("%v", err)
  175. }
  176. _, _, err = t.g.Query(`insert into /test/buckettsdb (id, bk2[ 'iparam1", 'iparam2", 'fparam1", 'fparam2", 'sparam1", 'vparam1']) values ('buckettsdb:wecise", [[1, nil, 3.3, 6.5, '2234567890", 'abcdefghhhhh'}, [1, nil, 3.3, 6.5, '3234567890", 'abcdefghhhhh'}, [1, nil, 3.3, 6.5, '4234567890", 'abcdefghhhhh'] ] ) at {"2020-07-25 10:24:17", "2020-07-26 10:24:17", "2020-07-27 10:24:17'] `)
  177. if err != nil {
  178. logger.Errorf("%v", err)
  179. }
  180. require.Nil(t.Test, err, fmt.Sprint(err))*/
  181. }
  182. func (t *BucketPromedbTests) Valid() {
  183. var err error
  184. _, _, err = t.g.Query(`SELECT prom FROM /test/bucketpromedb`)
  185. assert.Nil(t.Test, err)
  186. /*_, _, err = t.g.Query(`SELECT bk2[-1 - 1] FROM /test/buckettsdb`)
  187. assert.Nil(t.Test, err)
  188. _, _, err = t.g.Query(`SELECT bk2[1 - -1] FROM /test/buckettsdb`)
  189. assert.Nil(t.Test, err)
  190. _, _, err = t.g.Query(`SELECT bk2[ 4-3] FROM /test/buckettsdb`)
  191. assert.Nil(t.Test, err)
  192. _, _, err = t.g.Query(`SELECT bk2[ 'iparam1", 3-1, 4] FROM /test/buckettsdb`)
  193. assert.Nil(t.Test, err)
  194. _, _, err = t.g.Query(`SELECT bk2[ 'iparam1", 1-3, 4] FROM /test/buckettsdb`)
  195. assert.Nil(t.Test, err)
  196. _, _, err = t.g.Query(`SELECT bk2[ 'iparam1", 'iparam2", 2-3, 4 ].time("2020-04-22 08:10", '').(iparam1=1).count() as iparam1 FROM /test/buckettsdb `)
  197. assert.Nil(t.Test, err)
  198. _, _, err = t.g.Query(`SELECT bk2[ 3-4, 5 ].time("2020-05-23 22:24:15", '').([1]=1).title() FROM /test/buckettsdb `)
  199. assert.Nil(t.Test, err)
  200. _, _, err = t.g.Query(`SELECT bk2[ 'iparam1", 1-3, 4 ].time("2020-04-22", '').find(fparam1 >= 0.992315).find(iparam1 = 56).find(fparam2 != 0.418309) as iparam1 FROM /test/buckettsdb `)
  201. assert.Nil(t.Test, err)
  202. _, _, err = t.g.Query(`SELECT bk2.time("2020-04-22", '').find(fparam1 >= 0.992315).find(iparam1 = 56).find(fparam2 <> 0.418309) as iparam1 FROM /test/buckettsdb `)
  203. assert.Nil(t.Test, err)
  204. _, _, err = t.g.Query(`SELECT bk2.time("2020-04-22", '').(fparam1 >= 0.992315).(iparam1 in [56,99]) FROM /test/buckettsdb `)
  205. assert.Nil(t.Test, err)
  206. _, _, err = t.g.Query(` SELECT bk2[-1 - 1].time("2020-07-24", '').find(fparam1 >= 0.992315).count() as iparm1 FROM /test/buckettsdb `)
  207. assert.Nil(t.Test, err)
  208. _, _, err = t.g.Query(` SELECT id, bk2 FROM /test/buckettsdb `)
  209. assert.Nil(t.Test, err)
  210. _, _, err = t.g.Query(` SELECT bk2[-1 - 1].date("2020-07-24').find(fparam1=3.3) FROM /test/buckettsdb `)
  211. assert.Nil(t.Test, err)
  212. _, _, err = t.g.Query(` SELECT bk2.date("2020-07-24") FROM /test/buckettsdb `)
  213. assert.Nil(t.Test, err)
  214. _, _, err = t.g.Query(` SELECT id FROM /test/buckettsdb where bk2.date("2020-07-24").assert(iparam1=1)`)
  215. assert.Nil(t.Test, err)*/
  216. }