Tabulify - How to create an odometer with a sequence generator

Undraw Data Processing

Tabulify - How to create an odometer with a sequence generator

About

This how-to shows you how to generate a digital Odometer with the column sequence generator.

This page demonstrates the tickerFor property that is used to fill unique columns constraint mostly.

The tickerFor property will tick another column, meaning that the generator associated will generate a new value.

An odometer is the indicator in your car dashboard that count the number of kilometers.

Odometer

Steps

Creation of the generator file

To generate data, you need to create a generator file that will describe the data to be generated.

The below data resource generator:

  • has the name sequence_odometer–generator.yml
  • has the logical name sequence_odometer
  • has a column named id that has sequence data generator that:
    • starts with the default value 1
    • increments by default with the value 1
  • has a column named x with the integer data type that has a sequence data generator that:
    • starts from 0
    • and goes to 9 (maxTick)
    • with a step of 1 (Default value)
  • has a column named y with the integer data type that has a sequence data generator
    • starts from 0
    • generate data with a step of 1 (Default value)
    • goes to 9 (maxTick)
    • and tick the column x when maxTick is reached (ie the column x will generate a new value)
  • has a column named z with the integer data type that has a sequence data generator
    • starts from 0 (default start value)
    • generate data with a step of 1 (Default value)
    • goes to 9 (maxTick)
    • and tick the column y when maxTick is reached (ie the column y will generate a new value)
  • will generate 1000 values because each column can generate 10 element (ie 10x10x10)
kind: generator
spec:
  Columns:
    - name: id
      type: integer
      comment: A id column to see easily the number of values generated
      data-supplier:
        type: sequence
    - name: x
      type: integer
      comment: A column with a sequence date generator
      data-supplier:
        type: sequence
        arguments:
          start: 0
          # number from 0 to 9 will be generated (10 elements)
          maxTick: 10
    - name: y
      type: integer
      comment: A column with a sequence timestamp generator
      data-supplier:
        type: sequence
        arguments:
          start: 0
          # number from 0 to 9 will be generated (10 elements)
          maxTick: 10
          # the x column will go to the next value when this sequence has reach its last value
          tickerFor: x
    - name: z
      type: integer
      comment: A column with a sequence timestamp generator
      data-supplier:
        type: sequence
        arguments:
          start: 0
          # number from 0 to 9 will be generated (10 elements)
          maxTick: 10
          # the y column will go to the next value when this sequence has reach its last value
          tickerFor: y




Printing the data

With the data head command, we can print the values generated.

tabul data head --limit 101 sequence_odometer--generator.yml@howto

howto is the connection that contains the files used in the HowTo's.

The first 101 rows of the data resource (sequence_odometer@memgen):
 id   x   y   z
---   -   -   -
  1   0   0   0
  2   0   0   1
  3   0   0   2
  4   0   0   3
  5   0   0   4
  6   0   0   5
  7   0   0   6
  8   0   0   7
  9   0   0   8
 10   0   0   9
 11   0   1   0
 12   0   1   1
 13   0   1   2
 14   0   1   3
 15   0   1   4
 16   0   1   5
 17   0   1   6
 18   0   1   7
 19   0   1   8
 20   0   1   9
 21   0   2   0
 22   0   2   1
 23   0   2   2
 24   0   2   3
 25   0   2   4
 26   0   2   5
 27   0   2   6
 28   0   2   7
 29   0   2   8
 30   0   2   9
 31   0   3   0
 32   0   3   1
 33   0   3   2
 34   0   3   3
 35   0   3   4
 36   0   3   5
 37   0   3   6
 38   0   3   7
 39   0   3   8
 40   0   3   9
 41   0   4   0
 42   0   4   1
 43   0   4   2
 44   0   4   3
 45   0   4   4
 46   0   4   5
 47   0   4   6
 48   0   4   7
 49   0   4   8
 50   0   4   9
 51   0   5   0
 52   0   5   1
 53   0   5   2
 54   0   5   3
 55   0   5   4
 56   0   5   5
 57   0   5   6
 58   0   5   7
 59   0   5   8
 60   0   5   9
 61   0   6   0
 62   0   6   1
 63   0   6   2
 64   0   6   3
 65   0   6   4
 66   0   6   5
 67   0   6   6
 68   0   6   7
 69   0   6   8
 70   0   6   9
 71   0   7   0
 72   0   7   1
 73   0   7   2
 74   0   7   3
 75   0   7   4
 76   0   7   5
 77   0   7   6
 78   0   7   7
 79   0   7   8
 80   0   7   9
 81   0   8   0
 82   0   8   1
 83   0   8   2
 84   0   8   3
 85   0   8   4
 86   0   8   5
 87   0   8   6
 88   0   8   7
 89   0   8   8
 90   0   8   9
 91   0   9   0
 92   0   9   1
 93   0   9   2
 94   0   9   3
 95   0   9   4
 96   0   9   5
 97   0   9   6
 98   0   9   7
 99   0   9   8
100   0   9   9

Next

Because a generator is just a data resource, you can use it in every data operation.

How to use a generator in a data operation




Related Pages
Undraw Data Processing
Sequence Generator

A sequence generator is a column data supplier that generates a sequence 1,2,3, ... a, b, c, ... 2011-11-10, 2011-11-09, ... blue, red, ... When a tick happens the sequence is going...

Task Runner