BigQuery Basics

BigQuery Key Features
BigQuery Structure

BigQuery Jobs

Table Storage

BigQuery Capacitor
Capacitor storage system

IAM
https://cloud.google.com/bigquery/docs/access-control
https://cloud.google.com/bigquery/docs/share-access-views

Denormalisation

Data Ingest Solutions: CLI, web UI, or API

Load and Read Data
Load:
Read:

Three ways of loading data into BigQuery

External Sources
Use cases:
Limitations
https://cloud.google.com/bigquery/external-data-sources
https://cloud.google.com/bigquery/docs/cloud-sql-federated-queries

Data Transfer Service
https://cloud.google.com/bigquery-transfer/docs/introduction

Exporting Tables
Schema Modification
BigQuery natively supports the following schema modifications:
It is valid to create a table without defining an initial schema and to add a schema definition to the table at a later time.
All other schema modifications are unsupported and require manual workarounds, including:
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:

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.
Query results are not cached:
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
Clustered Tables
Limitations:
Querying Clustered Tables:

Slots
Logging and Monitoring
Stackdriver Monitoring and Logging differences
Monitoring BigQuery Performance/Resources
Stackdriver Logging