statistics-deletion.td 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. # Copyright Materialize, Inc. and contributors. All rights reserved.
  2. #
  3. # Use of this software is governed by the Business Source License
  4. # included in the LICENSE file at the root of this repository.
  5. #
  6. # As of the Change Date specified in that file, in accordance with
  7. # the Business Source License, use of this software will be governed
  8. # by the Apache License, Version 2.0.
  9. $ postgres-execute connection=postgres://mz_system:materialize@${testdrive.materialize-internal-sql-addr}
  10. ALTER SYSTEM SET unsafe_enable_unorchestrated_cluster_replicas = true
  11. > CREATE CLUSTER cluster1 REPLICAS (r1 (SIZE '2'))
  12. > CREATE CONNECTION kafka_conn
  13. TO KAFKA (BROKER '${testdrive.kafka-addr}', SECURITY PROTOCOL PLAINTEXT);
  14. > CREATE TABLE t (a text, b text)
  15. > CREATE MATERIALIZED VIEW simple_view AS SELECT * from t;
  16. > INSERT INTO t VALUES ('key1', 'value')
  17. # Setup various sinks and sources
  18. > CREATE CLUSTER sink_size_cluster SIZE '2';
  19. > CREATE SINK sink_size
  20. IN CLUSTER sink_size_cluster
  21. FROM simple_view
  22. INTO KAFKA CONNECTION kafka_conn (TOPIC 'topic-${testdrive.seed}')
  23. KEY (a)
  24. FORMAT JSON
  25. ENVELOPE DEBEZIUM
  26. > CREATE SINK sink_cluster
  27. IN CLUSTER cluster1
  28. FROM simple_view
  29. INTO KAFKA CONNECTION kafka_conn (TOPIC 'topic-${testdrive.seed}')
  30. KEY (a)
  31. FORMAT JSON
  32. ENVELOPE DEBEZIUM
  33. $ kafka-create-topic topic=upsert partitions=1
  34. $ kafka-ingest format=bytes topic=upsert key-format=bytes key-terminator=:
  35. one:two
  36. > CREATE CLUSTER upsert_size_cluster SIZE '2';
  37. > CREATE SOURCE upsert_size
  38. IN CLUSTER upsert_size_cluster
  39. FROM KAFKA CONNECTION kafka_conn (TOPIC
  40. 'testdrive-upsert-${testdrive.seed}'
  41. )
  42. KEY FORMAT BYTES
  43. VALUE FORMAT BYTES
  44. ENVELOPE UPSERT
  45. > CREATE SOURCE upsert_cluster
  46. IN CLUSTER cluster1
  47. FROM KAFKA CONNECTION kafka_conn (TOPIC
  48. 'testdrive-upsert-${testdrive.seed}'
  49. )
  50. KEY FORMAT BYTES
  51. VALUE FORMAT BYTES
  52. ENVELOPE UPSERT
  53. > CREATE SCHEMA subsources_size;
  54. > CREATE SCHEMA subsources_cluster;
  55. > CREATE CLUSTER subsource_size_s_cluster SIZE '2';
  56. > CREATE SOURCE subsources_size.s IN CLUSTER subsource_size_s_cluster FROM LOAD GENERATOR AUCTION (UP TO 100);
  57. > CREATE SOURCE subsources_cluster.s IN CLUSTER cluster1 FROM LOAD GENERATOR AUCTION (UP TO 100);
  58. > CREATE TABLE subsources_size.accounts FROM SOURCE subsources_size.s (REFERENCE accounts);
  59. > CREATE TABLE subsources_size.auctions FROM SOURCE subsources_size.s (REFERENCE auctions);
  60. > CREATE TABLE subsources_size.bids FROM SOURCE subsources_size.s (REFERENCE bids);
  61. > CREATE TABLE subsources_size.organizations FROM SOURCE subsources_size.s (REFERENCE organizations);
  62. > CREATE TABLE subsources_size.users FROM SOURCE subsources_size.s (REFERENCE users);
  63. > CREATE TABLE subsources_cluster.accounts FROM SOURCE subsources_cluster.s (REFERENCE accounts);
  64. > CREATE TABLE subsources_cluster.auctions FROM SOURCE subsources_cluster.s (REFERENCE auctions);
  65. > CREATE TABLE subsources_cluster.bids FROM SOURCE subsources_cluster.s (REFERENCE bids);
  66. > CREATE TABLE subsources_cluster.organizations FROM SOURCE subsources_cluster.s (REFERENCE organizations);
  67. > CREATE TABLE subsources_cluster.users FROM SOURCE subsources_cluster.s (REFERENCE users);
  68. # NOTE: These queries are slow to succeed because the default metrics scraping
  69. # interval is 30 seconds. Here we are just ensuring metrics were populated.
  70. > SELECT s.name, SUM(u.messages_staged), SUM(u.messages_committed), SUM(u.bytes_staged) > 0, SUM(bytes_staged) = SUM(bytes_committed)
  71. FROM mz_sinks s
  72. JOIN mz_internal.mz_sink_statistics_raw u ON s.id = u.id
  73. WHERE s.name IN ('sink_size', 'sink_cluster')
  74. GROUP BY s.name
  75. sink_size 1 1 true true
  76. sink_cluster 1 1 true true
  77. > SELECT s.name,
  78. SUM(u.updates_committed) > 0
  79. FROM mz_sources s
  80. JOIN mz_internal.mz_source_statistics_raw u ON s.id = u.id
  81. WHERE s.name IN ('upsert_size', 'upsert_cluster', 's', 'bids')
  82. GROUP BY s.id, s.name
  83. upsert_size true
  84. upsert_cluster true
  85. s false
  86. s false
  87. # We have to obtain these before we delete the sink.
  88. $ set-from-sql var=sink-size-id
  89. SELECT s.id
  90. FROM mz_sinks s
  91. WHERE s.name IN ('sink_size')
  92. $ set-from-sql var=sink-cluster-id
  93. SELECT s.id
  94. FROM mz_sinks s
  95. WHERE s.name IN ('sink_cluster')
  96. $ set-from-sql var=upsert-size-id
  97. SELECT s.id
  98. FROM mz_sources s
  99. WHERE s.name IN ('upsert_size')
  100. $ set-from-sql var=upsert-cluster-id
  101. SELECT s.id
  102. FROM mz_sources s
  103. WHERE s.name IN ('upsert_cluster')
  104. # We also need to check that subsources and top-level
  105. # sources are cleared out.
  106. $ set-from-sql var=subsources-size-top-level-id
  107. SELECT s.id
  108. FROM mz_sources s
  109. JOIN mz_schemas sch
  110. ON sch.id = s.schema_id
  111. WHERE s.name IN ('s') AND sch.name = 'subsources_size'
  112. $ set-from-sql var=subsources-size-bids-id
  113. SELECT t.id
  114. FROM mz_tables t
  115. JOIN mz_schemas sch
  116. ON sch.id = t.schema_id
  117. WHERE t.name IN ('bids') AND sch.name = 'subsources_size'
  118. $ set-from-sql var=subsources-cluster-top-level-id
  119. SELECT s.id
  120. FROM mz_sources s
  121. JOIN mz_schemas sch
  122. ON sch.id = s.schema_id
  123. WHERE s.name IN ('s') AND sch.name = 'subsources_cluster'
  124. $ set-from-sql var=subsources-cluster-bids-id
  125. SELECT t.id
  126. FROM mz_tables t
  127. JOIN mz_schemas sch
  128. ON sch.id = t.schema_id
  129. WHERE t.name IN ('bids') AND sch.name = 'subsources_cluster'
  130. > DROP SINK sink_size
  131. > DROP SINK sink_cluster
  132. > DROP SOURCE upsert_size CASCADE
  133. > DROP SOURCE upsert_cluster CASCADE
  134. > DROP SOURCE subsources_size.s CASCADE;
  135. > DROP SOURCE subsources_cluster.s CASCADE;
  136. > SELECT COUNT(*)
  137. FROM mz_internal.mz_sink_statistics_raw u
  138. WHERE u.id = '${sink-size-id}'
  139. 0
  140. > SELECT COUNT(*)
  141. FROM mz_internal.mz_sink_statistics_raw u
  142. WHERE u.id = '${sink-cluster-id}'
  143. 0
  144. > SELECT COUNT(*)
  145. FROM mz_internal.mz_sink_statistics_raw u
  146. WHERE u.id = '${upsert-size-id}'
  147. 0
  148. > SELECT COUNT(*)
  149. FROM mz_internal.mz_sink_statistics_raw u
  150. WHERE u.id = '${upsert-cluster-id}'
  151. 0
  152. > SELECT COUNT(*)
  153. FROM mz_internal.mz_sink_statistics_raw u
  154. WHERE u.id = '${subsources-size-top-level-id}'
  155. 0
  156. > SELECT COUNT(*)
  157. FROM mz_internal.mz_sink_statistics_raw u
  158. WHERE u.id = '${subsources-size-bids-id}'
  159. 0
  160. > SELECT COUNT(*)
  161. FROM mz_internal.mz_sink_statistics_raw u
  162. WHERE u.id = '${subsources-cluster-top-level-id}'
  163. 0
  164. > SELECT COUNT(*)
  165. FROM mz_internal.mz_sink_statistics_raw u
  166. WHERE u.id = '${subsources-cluster-bids-id}'
  167. 0