Table of Contents

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:

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