Skip to main content
Version: Next

Bigtable

  • High performance and massively scalable NoSQL database
  • What is used for ?
    • High throughput analytic
    • Huge datasets
  • Access control
    • Project level or instance level
    • Read/Write/Manage access

Features

  • No-ops (Servers)
  • An instance: is group of nodes (cluster)
  • Auto-scaling
  • 02 instances types:
    • Dev: low cost, single node and no replication
    • Prod: replication is available and throughput guarantee

Replicates and changes

  • Synchronize date between clusters
  • Resizing: add or remove a node without downtime
  • Changing disk type (ex: from HDD to SSD) requires new instance

Interacting with Bigtable

  • Using cbt tool (recommended)
  • With HBase shell

Example

  • echo -e "project = [PROJECT_ID]\ninstance = [INSTANCE_ID]" > ~/.cbtrc
  • Create table cbt createtable my-table
  • Add column family cbt createfamily my-table cf1
  • Add to row 1 the value to column c1 cbt set my-table r1 cf1:c1=test-value
  • Read table cbt read my-table
  • Delete table cbt deletetable my-table

Schema Design ??

Tall and Narrow Tables ??

Key ??

IAM

  • Project, instance and table level