Changelog
Set BigQuery partition granularity in Terraform
The Artie Terraform provider adds partition_by to merge predicates, so an apply no longer resets a BigQuery table's time partitioning back to daily.
If you picked hourly or monthly partitioning for a BigQuery table in the Dashboard and also managed that pipeline with Terraform, the next terraform apply quietly put it back to daily. The provider only knew about the partition field and type, and the Dashboard replaces the whole merge predicate list on every update, so the granularity went with it.
Provider v2.3.51 adds partition_by to tables[*].merge_predicates, with hourly, daily, monthly, and yearly as values. Leave it unset and the provider keeps whatever the Dashboard has, with no reset and no post-apply drift; new time predicates default to daily. Because unset means keep, moving a table back to daily is an explicit partition_by = "daily". Set it and the value is validated at plan time: it only applies to time partitions, and the provider refuses it on an integer predicate instead of letting the API reject the apply.
merge_predicates = [{
partition_field = "created_at"
partition_type = "time"
partition_by = "monthly"
}]
The same release also stops the provider from sending false or an empty string for settings you omit on a newly created pipeline. Those settings now get the API defaults instead, which changes the effective backfill_batch_size and Redshift include_artie_updated_at_column for new resources that leave them unset. Existing resources are unaffected.
This is for teams managing BigQuery pipelines as code.
Why this matters
- Partition granularity is now part of your Terraform config, not a Dashboard-only setting
- Omitting it preserves what is already configured
- Invalid combinations fail at plan, before anything is applied