5 Ocak 2023 Perşembe

Google Cloud Bigtable - Wide Column NoSQL Veri Tabanı

Giriş
Açıklaması şöyle
Bigtable is a distributed key/value storage system built at Google in 2005. It is designed to scale to store billions of rows and handle millions of reads/writes per second.
Bir başka açıklama şöyle. Yani sadece satır için transaction desteği verir
BigTable is recommended for data sizes greater than 10 terabytes. It is usually used for large analytical and operational workloads.

BigTable is NOT recommended for transactional workloads. It does NOT support multi-row transactions - it supports ONLY single-row transactions.
Bir başka önemli nokta şöyle
It is NOT serverless (You need to create instances).
Nerede Kullanılır
Açıklaması şöyle
A classic use case for Bigtable is storing sensor data and then running MapReduce jobs over it. This type of use case is a perfect fit for Bigtable because it typically requires high throughput and low latency. Additionally the nature of this data is likely parse with high cardinality.
Consistency Primitives
Açıklaması şöyle
Guarantees: Bigtable supports strong consistency within a single region and supports eventual consistency in cross regional deployments. Strong consistency means that all readers and writers get the same consistent view of the data.

Transactions: Bigtable does not support general purpose transactions. However, it does support single row transactions. A single row transaction enables reading and updating a single row as an atomic operation.

Intra-Row Guarantees: All updates to a single row are atomic. This is impressive and useful given the high cardinality of columns within a row.
Kullanımıyla ilgili bir açıklama şöyle
- A table is lexicographically sorted by row key. This enables schema designers to control the relative locality of their data by carefully selecting row key.

- A single table is designed to have on the order of 100 column families. Within each column family an arbitrary number of qualifiers can be used.

- Bigtable is great at modeling sparse data because if a column qualifier is not specified it does not take up any space in the row. Therefore a typical use case of Bigtable will involve having million of unique qualifiers within a table but each individual row will be smallish because it will be sparse relative to the set of all column qualifiers in the table.

All data is immutable in Bigtable. When a new record is written either a new qualifier is added to a family or a new timestamp is added to a cell — data is never modified.

- The timestamps in the cells can either be assigned by the user or assigned by Bigtable. If the user assigns timestamps it is the responsibility of the user to ensure the timestamps are unique.

- All data in Bigtable (with one small exception we will ignore) are simply strings.
BigTable içinde bir sürü tablo olabilir. Ancak row mantığı biraz farklı. Şeklen şöyle
Açıklaması şöyle
Row Key
As part of a table’s schema a row key must be defined. A row key uniquely identifies a single row within a table. In our example employeeID was selected as the row key and we are looking at the row where employeeID=25.

Column Family - Aslında Map'in İsmi
As part of a table’s schema column families must be defined. Column families are used to store buckets of related entities. Our example shows two column families Contact Information and Manager Rating.

Column Qualifier - Map İçindeki Key Değerleri, Value Cell'dir
Within a family there can be arbitrary qualifiers. The qualifiers within a family should be related to each other. Qualifiers should be thought of as data rather than as part of the schema.

Cell and Timestamped Value - Cell İçinde Map Vardır. Map'in Key Değeri Timestamp
A row key, column family and column qualifier uniquely identify a single cell. A cell holds a collection of values. These values are organized into a map where the key is a timestamp and the value is a piece of user data.

Hiç yorum yok:

Yorum Gönder