after-restart.td 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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. $ set schema=[
  10. {
  11. "type": "array",
  12. "items": {
  13. "type": "record",
  14. "name": "update",
  15. "namespace": "com.materialize.cdc",
  16. "fields": [
  17. {
  18. "name": "data",
  19. "type": {
  20. "type": "record",
  21. "name": "data",
  22. "fields": [
  23. {"name": "a", "type": "long"},
  24. {"name": "b", "type": "long"}
  25. ]
  26. }
  27. },
  28. {
  29. "name": "time",
  30. "type": "long"
  31. },
  32. {
  33. "name": "diff",
  34. "type": "long"
  35. }
  36. ]
  37. }
  38. },
  39. {
  40. "type": "record",
  41. "name": "progress",
  42. "namespace": "com.materialize.cdc",
  43. "fields": [
  44. {
  45. "name": "lower",
  46. "type": {
  47. "type": "array",
  48. "items": "long"
  49. }
  50. },
  51. {
  52. "name": "upper",
  53. "type": {
  54. "type": "array",
  55. "items": "long"
  56. }
  57. },
  58. {
  59. "name": "counts",
  60. "type": {
  61. "type": "array",
  62. "items": {
  63. "type": "record",
  64. "name": "counts",
  65. "fields": [
  66. {
  67. "name": "time",
  68. "type": "long"
  69. },
  70. {
  71. "name": "count",
  72. "type": "long"
  73. }
  74. ]
  75. }
  76. }
  77. }
  78. ]
  79. }
  80. ]
  81. $ kafka-ingest format=avro topic=input schema=${schema}
  82. {"array":[{"data":{"a":4,"b":1},"time":4,"diff":1}]}
  83. {"array":[{"data":{"a":5,"b":2},"time":4,"diff":1}]}
  84. {"com.materialize.cdc.progress":{"lower":[4],"upper":[5],"counts":[{"time":4,"count":2}]}}
  85. $ kafka-verify-data headers=materialize-timestamp format=avro sink=materialize.public.output sort-messages=true
  86. 1 {"before": null, "after": {"row": {"a": 1, "b": 1}}}
  87. 1 {"before": null, "after": {"row": {"a": 1, "b": 2}}}
  88. 1 {"before": null, "after": {"row": {"a": 2, "b": 1}}}
  89. 1 {"before": null, "after": {"row": {"a": 3, "b": 1}}}
  90. $ kafka-verify-data headers=materialize-timestamp format=avro sink=materialize.public.output sort-messages=true
  91. 2 {"before": null, "after": {"row": {"a": 11, "b": 11}}}
  92. 2 {"before": null, "after": {"row": {"a": 22, "b": 11}}}
  93. $ kafka-verify-data headers=materialize-timestamp format=avro sink=materialize.public.output sort-messages=true
  94. 3 {"before": null, "after": {"row": {"a": 3, "b": 4}}}
  95. 3 {"before": null, "after": {"row": {"a": 5, "b": 6}}}
  96. $ kafka-verify-data headers=materialize-timestamp format=avro sink=materialize.public.output sort-messages=true
  97. 4 {"before": null, "after": {"row": {"a": 4, "b": 1}}}
  98. 4 {"before": null, "after": {"row": {"a": 5, "b": 2}}}