This how-to will show you how to fill a table with auto-generated data and the Tabul fill action.
The next steps will be using the postgres howto connection.
tabul service start postgres
1 service was started
Name Type
-------- ------
postgres docker
tabul connection ping postgres
The connection (postgres) has been pinged successfully
For the purpose of this how-to, we will work with the date_dim TPC-DS table.
tabul data create date_dim@tpcds @postgres
Results of the create operation
input target
-------------- -----------------
date_dim@tpcds date_dim@postgres
With the tabul data fill operation, insert 10 rows automatically generated into the table date_dim
tabul data fill --max-record-count 10 date_dim@postgres
Transfer results
input target latency record_count error_code error_message
--------------- ----------------- ------- ------------ ---------- -------------
date_dim@memgen date_dim@postgres 0.63s 10
With the data print command, we can see the content of the date_dim table in the postgres connection
tabul data print date_dim@postgres
date_dim@postgres
d_date_sk d_date_id d_date d_month_seq d_week_seq d_quarter_seq d_year d_dow d_moy d_dom d_qoy d_fy_year d_fy_quarter_seq d_fy_week_seq d_day_name d_quarter_name d_holiday d_weekend d_following_holiday d_first_dom d_last_dom d_same_day_ly d_same_day_lq d_current_day d_current_week d_current_month d_current_quarter d_current_year
--------- ---------------- ---------- ----------- ---------- ------------- ------ ----- ----- ----- ----- --------- ---------------- ------------- ---------- -------------- --------- --------- ------------------- ----------- ---------- ------------- ------------- ------------- -------------- --------------- ----------------- --------------
1 a 2025-10-10 2 1 6 10 0 2 1 0 8 3 5 r p g x i 3 6 10 10 s q i w w
2 b 2025-10-15 9 5 4 9 8 5 5 0 8 10 1 u y n q o 5 6 4 5 x t p d j
3 c 2025-10-19 4 2 1 1 5 10 1 7 9 0 5 v b g t l 6 7 0 10 v p y v o
4 d 2025-10-14 1 0 2 10 0 7 8 8 0 6 0 j b x h l 9 7 8 0 k t j z o
5 e 2025-10-13 6 7 8 10 5 6 5 8 9 7 9 y u v l z 8 1 3 8 h t z m m
6 f 2025-10-12 7 9 9 9 1 7 7 7 1 7 2 o n h q m 9 6 7 3 j a b g s
7 g 2025-10-12 8 2 6 0 0 2 4 6 4 7 9 b z s z o 3 5 7 1 e u r a b
8 h 2025-10-16 0 5 7 8 7 9 4 5 5 0 9 v b h e c 9 4 3 1 b k h l n
9 i 2025-10-11 7 1 0 2 2 4 10 10 6 0 9 r n e c l 4 6 10 0 d l u q r
10 j 2025-10-14 6 7 0 5 0 5 3 5 4 0 1 h w q b j 1 3 3 8 q r w c o
tabul data fill --max-record-count 10000 date_dim@postgres
Transfer results
input target latency record_count error_code error_message
--------------- ----------------- ------- ------------ ---------- -------------
date_dim@memgen date_dim@postgres 0.846s 10000
And we got 10.000 rows
tabul data list -a count date_dim@postgres
path media_type count
-------- ---------- -----
date_dim table 10000
The generated data follows a default definition but you can define the generated data that you want with the help of a data definition file.