Best practice is to not use the ga4 raw data every time.
In general: set up a pipeline that flattens the ga4 raw table daily, and set up smart partitioning and clustering.
Depending on the setup and volume, queries can be reduced from dozens of GB to hundreds of MBs.
Currently I'm working on writing up a success case for 1 customer using GrowthBook in combination with our own product managing to do just that.
Our own product is
GA4Dataform.com - (open source, with commercial license available too)
The general method of flattening your GA4 tables can be done with other tools too, like dbt. The
Velir/dbt-ga4 package is the dbt choice.