You can use a custom query or load the entire table to access BigQuery straight from DataStudio. Between BigQuery and DataStudio, nothing is technically required.
In terms of best practices, if your dashboard reads a lot of data and is utilized frequently, it can cost a lot of money. In this scenario, a "layer" is appropriate. If this is the case, you could pre-aggregate your data in BigQuery to prevent having DataStudio read a large quantity of data many times.
My recommendation is as follows:
Create a process (it might be a scheduled query) that aggregates your data on a regular basis and saves it in a different database.
Read your data from the aggregated table in DataStudio.
These measures can help you save money while also making your dashboards load faster. The disadvantage is that unless you run the aggregation process very frequently when working with streaming data, you will not be able to view the most recent registries.