不同的建表语句,压缩率差值好多,为什么呢

【TDengine 使用环境】
生产环境 /测试/ Poc/预生产环境

【TDengine 版本】3.3.8

【操作系统以及版本】centos7.9

【部署方式】容器/非容器部署docker

【集群节点数】

【集群副本数】

【描述业务影响】

【问题复现路径/shan】做过哪些操作出现的问题

【遇到的问题:问题现象及影响】可否告诉我怎么控制这个压缩率,让他不至于差距的那么离谱

【资源配置】

【报错完整截图】(不要大段的粘贴报错代码,论坛直接看报错代码不直观)

插入脚本一

cat > /root/insert.json << 'EOF'
{
  "filetype": "insert",
  "cfgdir": "/etc/taos",
  "host": "127.0.0.1",
  "port": 6030,
  "user": "root",
  "password": "taosdata",
  "thread_count": 10,
  "create_table_thread_count": 100,
  "confirm_parameter_prompt": "no",
  "num_of_records_per_req": 10000,
  "prepared_rand": 10000,
  "chinese": "no",
  "escape_character": "yes",
  "continue_if_fail": "no",
  "databases": [
    {
      "dbinfo": {
        "name": "vehicle_db",
        "drop": "yes",
        "vgroups": 4,
        "precision": "ms"
      },
      "super_tables": [
        {
          "name": "vehicle_data",
          "child_table_exists": "no",
          "childtable_count": 10000,
          "childtable_prefix": "v",
          "auto_create_table": "yes",
          "batch_create_tbl_num": 100,
          "data_source": "rand",
          "insert_mode": "taosc",
          "non_stop_mode": "no",
          "line_protocol": "line",
          "insert_rows": 1000,
          "childtable_limit": 0,
          "childtable_offset": 0,
          "interlace_rows": 0,
          "insert_interval": 0,
          "partial_col_num": 0,
          "timestamp_step": 1000,
          "start_timestamp": "2025-01-01 00:00:00.000",
          "sample_format": "csv",
          "sample_file": "./sample.csv",
          "use_sample_ts": "no",
          "tags_file": "",
          "columns": [
            {
              "type": "TIMESTAMP",
              "count": 1
            },
            {
              "type": "FLOAT",
              "name": "speed",
              "count": 1,
              "min": 0,
              "max": 120
            },
            {
              "type": "INT",
              "name": "direction",
              "count": 1,
              "min": 0,
              "max": 359
            },
            {
              "type": "FLOAT",
              "name": "altitude",
              "count": 1,
              "min": 0,
              "max": 5000
            },
            {
              "type": "FLOAT",
              "name": "fuel",
              "count": 1,
              "min": 0,
              "max": 100
            },
            {
              "type": "TINYINT",
              "name": "status",
              "count": 1,
              "min": 0,
              "max": 2
            },
            {"type": "FLOAT", "name": "sensor_1", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_2", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_3", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_4", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_5", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_6", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_7", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_8", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_9", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_10", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_11", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_12", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_13", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_14", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_15", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_16", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_17", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_18", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_19", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_20", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_21", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_22", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_23", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_24", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_25", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_26", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_27", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_28", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_29", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_30", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_31", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_32", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_33", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_34", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_35", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_36", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_37", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_38", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_39", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_40", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_41", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_42", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_43", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_44", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_45", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_46", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_47", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_48", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_49", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_50", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_51", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_52", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_53", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_54", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_55", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_56", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_57", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_58", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_59", "count": 1, "min": 0, "max": 50000000},
            {"type": "FLOAT", "name": "sensor_60", "count": 1, "min": 0, "max": 50000000}
          ],
          "tags": [
            {
              "type": "BINARY",
              "name": "vehicle_id",
              "len": 20
            },
            {
              "type": "BINARY",
              "name": "vehicle_type",
              "len": 10,
              "values": [
                "car",
                "truck",
                "bus"
              ]
            },
            {
              "type": "BINARY",
              "name": "region",
              "len": 10,
              "values": [
                "north",
                "south",
                "east",
                "west"
              ]
            }
          ]
        }
      ]
    }
  ]
}
EOF

插入脚本2

cat > /root/insert.json << 'EOF'
{
  "filetype": "insert",
  "cfgdir": "/etc/taos",
  "host": "127.0.0.1",
  "port": 6030,
  "user": "root",
  "password": "taosdata",
  "thread_count": 10,
  "create_table_thread_count": 10,
  "confirm_parameter_prompt": "no",
  "num_of_records_per_req": 10000,
  "prepared_rand": 10000,
  "chinese": "no",
  "escape_character": "yes",
  "continue_if_fail": "no",
  "databases": [
    {
      "dbinfo": {
        "name": "vehicle_db",
        "drop": "yes",
        "vgroups": 4,
        "precision": "ms"
      },
      "super_tables": [
        {
          "name": "vehicle_data",
          "child_table_exists": "no",
          "childtable_count": 300000,
          "childtable_prefix": "v",
          "auto_create_table": "yes",
          "batch_create_tbl_num": 100,
          "data_source": "rand",
          "insert_mode": "taosc",
          "non_stop_mode": "no",
          "line_protocol": "line",
          "insert_rows": 1000,
          "childtable_limit": 0,
          "childtable_offset": 0,
          "interlace_rows": 0,
          "insert_interval": 0,
          "partial_col_num": 0,
          "timestamp_step": 1000,
          "start_timestamp": "2025-01-01 00:00:00.000",
          "sample_format": "csv",
          "sample_file": "./sample.csv",
          "use_sample_ts": "no",
          "tags_file": "",
          "columns": [
            {
              "type": "TIMESTAMP",
              "count": 1
            },
            {
              "type": "FLOAT",
              "name": "speed",
              "count": 1,
              "min": 0,
              "max": 120
            },
            {
              "type": "INT",
              "name": "direction",
              "count": 1,
              "min": 0,
              "max": 359
            },
            {
              "type": "FLOAT",
              "name": "altitude",
              "count": 1,
              "min": 0,
              "max": 5000
            },
            {
              "type": "DECIMAL",
              "name": "fuel",
              "count": 1,
              "min": 0,
              "max": 100
            },
            {
              "type": "TINYINT",
              "name": "status",
              "count": 1,
              "min": 0,
              "max": 2
            }
          ],
          "tags": [
            {
              "type": "int",
              "name": "vehicle_id",
              "len": 20,
              "count": 1,
              "min": 0,
              "max": 9999
            },
            {
              "type": "BINARY",
              "name": "vehicle_type",
              "len": 10,
              "values": [
                "car",
                "truck",
                "bus"
              ]
            },
            {
              "type": "BINARY",
              "name": "region",
              "len": 10,
              "values": [
                "north",
                "south",
                "east",
                "west"
              ]
            }
          ]
        }
      ]
    }
  ]
}
EOF

对于压缩来说,由于无损压缩总会存在有些数据无法压缩,压缩的数据模型都存在假设;所以随机生成的数据参考价值不高,请采样部分实际生产数据,然后再做评估。

2 个赞

压缩率高低主要是由数据的内容决定的。你建的前后两张表他的字段相差很大,内容相差也会很大,所以压缩率也差别大,正常现象。

1 个赞