GenerateRandom

The GenerateRandom table engine produces random data for given table schema.

Usage examples:

  • Use in test to populate reproducible large table.
  • Generate random input for fuzzing tests.

Usage in ClickHouse Server

  1. ENGINE = GenerateRandom(random_seed, max_string_length, max_array_length)

The max_array_length and max_string_length parameters specify maximum length of all
array columns and strings correspondingly in generated data.

Generate table engine supports only SELECT queries.

It supports all DataTypes that can be stored in a table except LowCardinality and AggregateFunction.

Example:

1. Set up the generate_engine_table table:

  1. CREATE TABLE generate_engine_table (name String, value UInt32) ENGINE = GenerateRandom(1, 5, 3)

2. Query the data:

  1. SELECT * FROM generate_engine_table LIMIT 3
  1. ┌─name─┬──────value─┐
  2. c4xJ 1412771199
  3. r 1791099446
  4. 7#$ │ 124312908 │
  5. └──────┴────────────┘

Details of Implementation

  • Not supported:
    • ALTER
    • SELECT ... SAMPLE
    • INSERT
    • Indices
    • Replication

Original article