RYAN MATSUMOTO: From health care to finance to social media,
data is helping businesses innovate to a degree that
was once deemed unimaginable.
But at the same time, data also presents new challenges
to the developers who are trying to make it useful.
[MUSIC PLAYING]
There are many different factors to think
about when choosing a database, especially when you're dealing
with large amounts of data.
Maybe you're building a music application
that aims to recommend songs to its users based on other music
that they like.
Initially, your app may simply recommend the top songs
to users based on the genre they listen to the most.
But what if you want to take it a step further
and provide more personalized song recommendations using
machine learning?
What if your app went viral?
These situations present new challenges to your developers.
The scale of your existing database
limits what you can do because of the massive amount of data
required to power your music personalization algorithm.
Where can you find a database that scales easily, allows
for large numbers of reads and writes
per second at low latency, and comes
in a fully-managed service?
This is where Cloud Bigtable table comes into play.
Bigtable is Google Cloud's fully-managed, horizontally
scalable, NoSQL database that is designed
to support large analytical and operational workloads.
It's optimized for applications that
require large numbers of reads and writes
per second, low latency, and performance at scale.
Let's take a look at several of the key advantages of Bigtable.
First, Bigtable is fast and performant.
It supports large numbers of reads
and writes, with the ability to support millions
of requests per second.
And it's able to do so with low latency,
on the order of single-digit milliseconds.
One potential application for Bigtable
could be collecting global air quality data
from thousands of sensors.
Bigtable can handle the massive write throughput generated
and also be able to read that data quickly and reliably.
Bigtable is also a highly scalable database.
Throughput can be adjusted dynamically
by adding or removing Bigtable nodes.
A node is just a set of compute resources
that provides up to 10,000 additional queries per second
and is attached to additional storage capacity.
There's no downtime when you change the number of nodes,
so you can seamlessly scale up to meet
the demands of a large batch workload
and scale back down once it's complete.
Thanks to the scalability, Bigtable
allows you to store up to petabytes of data.
This can be helpful if your application is growing rapidly
and you need to scale quickly to meet the demands of new users.
Bigtable is also a fully-managed and reliable database.
This allows you to concentrate on building your application,
rather than spending a lot of time fine-tuning the database.
Data replication across multiple Google data centers
ensures high availability and low latency for users
all around the world.
In fact, Bigtable recently joined Cloud Firestore
and Cloud Spanner with up to 99.999% availability SLA.
You can replicate your data by creating new clusters.
A cluster is a Bigtable service in a specific location.
Bigtable is eventually consistent.
So when you write a change to one cluster,
you will eventually be able to read
that change from other clusters, but only after the change
is replicated.
Bigtable also handles backups, so you can easily
recover from application-level data corruption, as well
as human errors.
Bigtable integrates easily with popular big data tools,
making it easy for development teams to get started.
It has support for the open-source HBase API standard,
making it easy to integrate with the Apache ecosystem,
including HBase, Beam, Hadoop, and Spark.
Bigtable also integrates well with other Google Cloud
big data products, like BigQuery, Dataflow,
and Dataproc.
While Cloud Bigtable makes sense for many use cases,
there are situations where a different Google Cloud
database may make more sense.
Spanner is preferable if you need strong consistency
globally, which makes it better for transactions.
It's also a SQL database, which is better
for more structured data.
BigQuery is an enterprise data warehouse
optimized for gaining organizational insights
from large amounts of relational structured data.
Bigtable, on the other hand, is better
for applications that need high numbers of reads
and writes for second.
Cloud Firestore is Google Cloud's serverless, NoSQL,
document-based database that makes
it particularly easy to integrate with mobile and web
apps.
It's a good choice if you need a flexible data
model with a guarantee of strong consistency.
Let's learn more about Bigtable's data model.
Bigtable stores data in massively scalable tables
that can scale up to billions of rows and thousands of columns.
As a NoSQL database, Bigtable stores data in key-value pairs
stored in rows and columns.
Each row represents a single entity,
while each column contains values for each row.
Columns that are related to each other
can be grouped into column families
for organizational purposes.
At the intersection of each row and column combination,
you can have multiple cells, with each cell representing
a different version of the data at a given timestamp.
This makes Bigtable great for time series analysis.
Bigtable tables are sparse, meaning
that if a column is not filled in for a given row,
it doesn't take up any space.
If you're looking for a highly scalable, reliable, and fast
database to handle big data workloads,
Bigtable may be just what your business needs.
Try it out for yourself by going to cloud.google.com/bigtable,
and stay tuned to hear more about Bigtable.