BigQuery Key Features
Streaming data into BigQuery
Instead of using a job to load data into BigQuery, you can choose to stream your data into BigQuery one record at a time. This approach enables querying data without the delay of running a load job. But enabling streaming on BigQuery is not free.
If you have an app that collects a large amount of data in real-time, streaming inserts can be a good choice. Generally, these types of apps have the following criteria:
Views
Views limitations:

External Tables
An external table is a table that acts like a standard BigQuery table. The table metadata, including the table schema, is stored in BigQuery storage, but the data itself resides in the external source.
You can use external tables with the following data sources:
External tables can be temporary or permanent.
A permanent table is a table that is created in a dataset and is linked to your external data source.
When you use a temporary table, you do not create a table in one of your BigQuery datasets. Because the table is not permanently stored in a dataset, it cannot be shared with others. Querying an external data source using a temporary table is useful for one-time, ad-hoc queries over external data, or for extract, transform, and load (ETL) processes.
BigQuery Data Transfer Service
https://cloud.google.com/bigquery-transfer/docs/introduction

Denormalisation

Inserts & Updates
Wildcards
project.dataset.table_prefix*project.dataset.table_prefix* WHERE _TABLE_SUFFIX BETWEEN ‘29’ and ‘35’https://cloud.google.com/bigquery/docs/querying-wildcard-tables
Partitioned & Sharded Tables
Partition Types
REF: https://cloud.google.com/bigquery/docs/partitioned-tables
Clustered Tables
Limitations:
Querying Clustered Tables:

Cached Queries
BigQuery writes all query results to a table. The table is either explicitly identified by the user (a destination table), or it is a temporary, cached results table. Temporary, cached results tables are maintained per-user, per-project. There are no storage costs for temporary tables, but if you write query results to a permanent table, you are charged for storing the data.
The Use cached results option reuses results from a previous run of the same query unless the tables being queried have changed. Using cached results is only beneficial for repeated queries. For new queries, the Use cached results option has no effect, though it is enabled by default.
If you want to disable retrieving cached results and force live evaluation of a query job, you can set the configuration.query.useQueryCache property of your query job to false.
Query results are not cached:
Slots
Data Loss Prevention
Cloud DLP supports three pseudonymization techniques, all of which use cryptographic keys. Following are the available methods: