Skip to content
axxbetadocs
GitHub

BigQuery

View .mdOpen in Claude

Seed BigQuery tables and check the rows your services write.

The steps use the scenario’s project (the {word} gcp project with the following properties:, from gcp-core). Tables are named dataset.table (in the project) or project.dataset.table.

A seed is a YAML or JSON file that maps tables to the rows to insert (a streaming insert, tabledata.insertAll):

billing.carrier_rates:
- carrier: KESTREL
service: express
price_per_kg: 1.35

Checks wait (10 seconds unless within {duration} says otherwise) until the table has a row, or a number of rows, meeting every condition: column | value rows, with a dotted path into RECORD columns (address.city), compared as text: numbers as written, NUMERIC as its decimal, TIMESTAMP in RFC 3339 (2026-09-24T09:30:00Z), DATE as 2026-09-24; null for NULL. A check reads the columns its conditions name, of up to 5,000 rows of the table: check the tables your scenarios write, not warehouse-size ones.

Given a {filepath} bigquery seed

Insert the rows of a seed file (resolved against resources): YAML or JSON mapping tables to lists of rows.

Parameters: {filepath} (A file of the project, without whitespace: a path relative to the resources directories or to the directory of axx.yaml, or an absolute path. Editors link it to the file)

Example:

Given a seeds/carrier-rates.yaml bigquery seed

Since 0.1.0.

Then [[within {duration} ]]the {word} bigquery table has a row where:
| ... | ... |

Wait (10s, or the given time) until the table has a row meeting every column | value row.

Variants (optional parts in [[...]] above):

  • the {word} bigquery table has a row where:
  • within {duration} the {word} bigquery table has a row where:

Parameters: {duration} (A duration in seconds or minutes, e.g. 5s or 2m), {word} (one word, no spaces)

Example:

Then within 30s the billing.invoice_lines bigquery table has a row where:

Since 0.1.0.

Then [[within {duration} ]]the {word} bigquery table has {int} row(s) where:
| ... | ... |

Wait (10s, or the given time) until exactly that many rows of the table meet every column | value row.

Variants (optional parts in [[...]] above):

  • the {word} bigquery table has {int} row(s) where:
  • within {duration} the {word} bigquery table has {int} row(s) where:

Parameters: {duration} (A duration in seconds or minutes, e.g. 5s or 2m), {word} (one word, no spaces), {int} (a 32-bit integer)

Example:

Then the billing.invoice_lines bigquery table has 3 rows where:

Since 0.1.0.