Course Overview
In this course, you learn about Cloud Spanner. You will get an introduction to Cloud Spanner and understand how it differs from other database products. You also learn when and how to use Cloud Spanner to solve your relational database needs at scale.
Who should attend
Database administrators, engineers/developers, and cloud architects who want to learn how to create, optimize, and manage Spanner databases and migrate existing databases into Spanner.
Prerequisites
Some prior Google Cloud experience at the fundamental level and experience with relational databases, the SQL language, and some programming are assumed.
Course Objectives
- Build scalable, managed, relational databases using Cloud Spanner
- Create and manage Cloud Spanner databases using the CLI, Terraform, Python API, and the Cloud Console
- Program and run queries and transactions using the Cloud Spanner API
- Integrate Cloud Spanner with applications
Outline: Understanding Cloud Spanner (UCS)
Module 1 - The Need for Spanner
Topics
- What is Spanner?
- Spanner and the CAP Theorem
- History of Spanner
- Cloud Spanner Use Cases
Objectives:
- Explain the core concepts and features of Cloud Spanner.
- Understand how Cloud Spanner fits in the CAP theorem.
- Describe the history of Cloud Spanner.
- Explain Cloud Spanner use cases.
Module 2 - Getting Started with Spanner
Topics:
- Planning Spanner Instances
- Automating Instance Creating
- Creating Databases in Spanner
Objectives:
- Architect Cloud Spanner instances based on location, capacity, availability, and cost.
- Create Spanner instances by using the Google Cloud console, Google Cloud CLI, and Terraform.
- Create Spanner databases by using SQL
Activities:
- Lab: Creating Spanner Instances and Databases (Console)
- Lab: Creating Spanner Instances and Databases (CLI and Terraform)
Module 3 - Optimizing Spanner Schemas
Topics:
- Spanner Architecture
- Choosing Primary Keys
- Defining Database Schemas in Spanner
- Understanding Interleaving and Foreign Keys
- Understanding Secondary Indexes
Objectives:
- Optimize schemas for Spanner architecture.
- Choose appropriate primary keys.
- Manage relationships with primary and foreign keys and with interleaved tables
Activities:
- Lab: Choosing Primary Keys
- Lab: Managing relationships with Foreign Keys and Interleaved Tables
Module 4 - Programming Spanner Applications, Queries, and Transactions
Topics:
- Authentication and Authorization
- Using the Spanner Client Libraries
- Running Queries
- Managing Transactions
Objectives:
- Authenticate users and applications that access Spanner databases using Identity Access Management.
- Program Spanner applications using Google Cloud client libraries and Python.
- Optimize queries using strong reads, stale reads, and indexes.
- Manage transactions in Spanner.
Activities:
- Lab: Programming Spanner Applications with Python
- Lab: Running Queries and Transactions
Module 5 - Deploying Spanner Applications
Topics:
- Using Spanner from Applications
- Building Data Pipelines into and out of Spanner
Objectives:
- Deploy Spanner applications to Google Cloud serverless runtimes.
- Migrate data to and from Cloud Spanner by using Dataflow jobs and Apache Beam.
Activities:
- Lab: Deploying Spanner Applications with Cloud Functions and Cloud Run
- Lab: Migrating Data to and from Spanner with Dataflow
Module 6 - Spanner Administration
Topics:
- Managing your Data in Spanner
- Managing Change Operations
Objectives:
- Administer Cloud Spanner instances.
- Backup, restore, import, and export data.
- Modify database schemas with no downtime.
- Monitor your Cloud Spanner databases and applications
Activities:
- Lab: Reconciling Account Data with Cloud Spanner Change Streams
- Lab: Leverage the Autoscaler Tool for Cloud Spanner to Achieve Workload Elasticity
Module 7 - Spanner Best Practices
Topics:
- Spanner Best Practices
- Challenge Lab
Objectives:
- Review best practices for using Cloud Spanner
Activities:
- Challenge Lab: Administering a Spanner Database