iot_cj_tdengine_prod.sql 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. -- ============================================================
  2. -- TDengine 生产环境初始化脚本
  3. -- 数据库:ruoyi_vue_pro
  4. -- 导出时间:2026-05-18
  5. -- TDengine 版本:3.3.6.13
  6. -- ============================================================
  7. -- 1. 创建数据库
  8. CREATE DATABASE IF NOT EXISTS `ruoyi_vue_pro`
  9. BUFFER 256
  10. CACHESIZE 1
  11. CACHEMODEL 'none'
  12. COMP 2
  13. DURATION 10d
  14. WAL_FSYNC_PERIOD 3000
  15. MAXROWS 4096
  16. MINROWS 100
  17. STT_TRIGGER 2
  18. KEEP 365d,365d,365d
  19. PAGES 256
  20. PAGESIZE 4
  21. PRECISION 'ms'
  22. REPLICA 1
  23. WAL_LEVEL 1
  24. VGROUPS 2
  25. SINGLE_STABLE 0
  26. TABLE_PREFIX 0
  27. TABLE_SUFFIX 0
  28. TSDB_PAGESIZE 4
  29. WAL_RETENTION_PERIOD 3600
  30. WAL_RETENTION_SIZE 0;
  31. USE `ruoyi_vue_pro`;
  32. -- ============================================================
  33. -- 2. 超级表:iot_cj_meter_data(集抄水表数据 - 主用)
  34. -- ============================================================
  35. CREATE STABLE IF NOT EXISTS `ruoyi_vue_pro`.`iot_cj_meter_data` (
  36. `ts` TIMESTAMP ENCODE 'delta-i' COMPRESS 'lz4' LEVEL 'medium',
  37. `cumulative_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  38. `forward_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  39. `reverse_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  40. `instant_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  41. `max_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  42. `min_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  43. `pressure` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  44. `data_type` TINYINT ENCODE 'simple8b' COMPRESS 'zlib' LEVEL 'medium',
  45. `signal_quality` TINYINT ENCODE 'simple8b' COMPRESS 'zlib' LEVEL 'medium',
  46. `voltage` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  47. `valve_opening` TINYINT ENCODE 'simple8b' COMPRESS 'zlib' LEVEL 'medium',
  48. `status_byte1` TINYINT ENCODE 'simple8b' COMPRESS 'zlib' LEVEL 'medium',
  49. `status_byte2` TINYINT ENCODE 'simple8b' COMPRESS 'zlib' LEVEL 'medium',
  50. `temperature` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  51. `imei` VARCHAR(20) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium'
  52. ) TAGS (
  53. `meter_address` VARCHAR(14),
  54. `meter_id` BIGINT
  55. ) SMA(`ts`,`cumulative_flow`,`forward_flow`,`reverse_flow`,`instant_flow`,`max_flow`,`min_flow`,`pressure`,`data_type`);
  56. -- ============================================================
  57. -- 3. 超级表:cj_meter_data(集抄水表数据 - 旧版兼容)
  58. -- ============================================================
  59. CREATE STABLE IF NOT EXISTS `ruoyi_vue_pro`.`cj_meter_data` (
  60. `ts` TIMESTAMP ENCODE 'delta-i' COMPRESS 'lz4' LEVEL 'medium',
  61. `cumulative_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  62. `forward_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  63. `reverse_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  64. `instant_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  65. `max_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  66. `min_flow` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  67. `pressure` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  68. `battery_voltage` DOUBLE ENCODE 'delta-d' COMPRESS 'lz4' LEVEL 'medium',
  69. `signal_strength` INT ENCODE 'simple8b' COMPRESS 'lz4' LEVEL 'medium',
  70. `valve_status` INT ENCODE 'simple8b' COMPRESS 'lz4' LEVEL 'medium',
  71. `raw_hex` NCHAR(512) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium'
  72. ) TAGS (
  73. `meter_id` BIGINT
  74. );
  75. -- ============================================================
  76. -- 4. 超级表:cj_concentrator_status(集中器状态)
  77. -- ============================================================
  78. CREATE STABLE IF NOT EXISTS `ruoyi_vue_pro`.`cj_concentrator_status` (
  79. `ts` TIMESTAMP ENCODE 'delta-i' COMPRESS 'lz4' LEVEL 'medium',
  80. `online` BOOL ENCODE 'bit-packing' COMPRESS 'zstd' LEVEL 'medium',
  81. `meter_count` INT ENCODE 'simple8b' COMPRESS 'lz4' LEVEL 'medium',
  82. `success_count` INT ENCODE 'simple8b' COMPRESS 'lz4' LEVEL 'medium',
  83. `fail_count` INT ENCODE 'simple8b' COMPRESS 'lz4' LEVEL 'medium',
  84. `signal_strength` INT ENCODE 'simple8b' COMPRESS 'lz4' LEVEL 'medium'
  85. ) TAGS (
  86. `concentrator_id` BIGINT,
  87. `address` NCHAR(32)
  88. );
  89. -- ============================================================
  90. -- 5. 超级表:device_message(IoT 设备消息)
  91. -- ============================================================
  92. CREATE STABLE IF NOT EXISTS `ruoyi_vue_pro`.`device_message` (
  93. `ts` TIMESTAMP ENCODE 'delta-i' COMPRESS 'lz4' LEVEL 'medium',
  94. `id` NCHAR(50) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium',
  95. `report_time` TIMESTAMP ENCODE 'delta-i' COMPRESS 'lz4' LEVEL 'medium',
  96. `tenant_id` BIGINT ENCODE 'simple8b' COMPRESS 'lz4' LEVEL 'medium',
  97. `server_id` NCHAR(50) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium',
  98. `upstream` BOOL ENCODE 'bit-packing' COMPRESS 'zstd' LEVEL 'medium',
  99. `reply` BOOL ENCODE 'bit-packing' COMPRESS 'zstd' LEVEL 'medium',
  100. `identifier` NCHAR(100) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium',
  101. `request_id` NCHAR(50) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium',
  102. `method` NCHAR(100) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium',
  103. `params` NCHAR(2048) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium',
  104. `data` NCHAR(2048) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium',
  105. `code` INT ENCODE 'simple8b' COMPRESS 'lz4' LEVEL 'medium',
  106. `msg` NCHAR(256) ENCODE 'disabled' COMPRESS 'zstd' LEVEL 'medium'
  107. ) TAGS (
  108. `device_id` BIGINT
  109. );