Maison  >  Article  >  développement back-end  >  Utiliser Google Bigtable en Go : un guide complet

Utiliser Google Bigtable en Go : un guide complet

WBOY
WBOYoriginal
2023-06-18 17:15:111558parcourir

Avec le développement du cloud computing et de la technologie du big data, Google Bigtable est devenu la solution privilégiée par de nombreuses entreprises pour stocker des données. En tant que service de base de données NoSQL distribué, Google Bigtable offre évolutivité, haute disponibilité, hautes performances et autres fonctionnalités, et est privilégié par de plus en plus d'entreprises. Cet article explique comment utiliser Google Bigtable en langage Go.

1. Installez le SDK Golang et le SDK Google Cloud

Avant d'utiliser Google Bigtable, vous devez installer le SDK Golang et le SDK Google Cloud. Vous pouvez télécharger et installer la dernière version du SDK Golang à partir du site officiel de Golang. En même temps, vous devez également installer le SDK Google Cloud afin d'utiliser divers services fournis par Google Cloud.

2. Créez un compte Google Cloud et démarrez le service Bigtable

Avant d'utiliser Google Bigtable, vous devez créer un compte Google Cloud et démarrer le service Bigtable. Vous pouvez choisir différents forfaits de services en fonction de vos propres besoins. Des informations spécifiques sur les forfaits sont disponibles sur le site officiel de Google Cloud.

3. Créer une nouvelle table

Google Bigtable utilise des tables pour gérer les données, vous devez donc d'abord créer une nouvelle table. Vous pouvez utiliser l'API Bigtable Admin fournie par Google Cloud pour créer une nouvelle table, ou vous pouvez utiliser l'outil de ligne de commande gcloud pour créer une nouvelle table. Ici, nous utilisons gcloud pour créer de nouvelles tables. La commande spécifique est la suivante :

gcloud bigtable instances create [INSTANCE_ID] 
     --cluster=[CLUSTER_ID] 
     --cluster-zone=[CLUSTER_ZONE] 
     --description=[DESCRIPTION] 
     --instance-type=[TYPE]

Où [INSTANCE_ID] est l'identifiant unique de la nouvelle instance, [CLUSTER_ID] est un nœud unique dans l'instance, [CLUSTER_ZONE] est l'emplacement géographique du nœud, [DESCRIPTION] est un brève description de l'instance, [TYPE] est le type d'instance.

4. Créer une nouvelle famille de colonnes

Dans Bigtable, une famille de colonnes (Column Family) est un groupe logique de colonnes utilisé pour stocker des données avec des attributs similaires. De nouvelles familles de colonnes peuvent être créées à l'aide de l'outil de ligne de commande cbt. La commande spécifique est la suivante :

cbt createfamily [TABLE_ID] [FAMILY_ID]

où [TABLE_ID] est l'identifiant unique de la table, et [FAMILY_ID] est l'identifiant unique de la nouvelle famille de colonnes.

5. Insérer des données

Lorsque vous utilisez Bigtable pour stocker des données, vous devez utiliser la clé de ligne et le nom de colonne pour identifier les données. Les données peuvent être insérées à l'aide de l'outil de ligne de commande cbt.

cbt set [TABLE_ID] 
     [ROW_KEY] 
     [COLUMN_FAMILY]:[COLUMN_QUALIFIER]=[VALUE]

Où [TABLE_ID] est l'identifiant unique de la table, [ROW_KEY] est la clé de ligne, [COLUMN_FAMILY] est la famille de colonnes, [COLUMN_QUALIFIER] est le nom de la colonne et [VALUE] est la valeur.

6. Interroger des données

Vous pouvez utiliser l'outil de ligne de commande cbt pour interroger des données.

cbt read [TABLE_ID] 
     [ROW_KEY] 
     [COLUMN_FAMILY]:[COLUMN_QUALIFIER]

Où [TABLE_ID] est l'identifiant unique de la table, [ROW_KEY] est la clé de ligne, [COLUMN_FAMILY] est la famille de colonnes et [COLUMN_QUALIFIER] est le nom de la colonne.

7. Utiliser Google Bigtable en langage Go

Pour utiliser Google Bigtable en langage Go, vous devez utiliser l'API Bigtable fournie par Google Cloud. Vous pouvez utiliser la commande suivante pour installer l'API Bigtable :

go get -u cloud.google.com/go/bigtable

Une fois l'installation terminée, vous pouvez utiliser l'API Bigtable pour lire et écrire des données. Vous trouverez ci-dessous un exemple de programme pour insérer des données et interroger les données :

package main

import (
    "context"
    "log"

    "cloud.google.com/go/bigtable"
)

func main() {
    ctx := context.Background()

    adminClient, err := bigtable.NewAdminClient(ctx, "project-id", "instance-id")
    if err != nil {
        log.Fatalf("Failed to create admin client: %v", err)
    }
    defer adminClient.Close()

    err = adminClient.CreateTable(ctx, "table-id")
    if err != nil {
        log.Fatalf("Failed to create table: %v", err)
    }

    err = adminClient.CreateColumnFamily(ctx, "table-id", "column-family")
    if err != nil {
        log.Fatalf("Failed to create column family: %v", err)
    }

    client, err := bigtable.NewClient(ctx, "project-id", "instance-id")
    if err != nil {
        log.Fatalf("Failed to create client: %v", err)
    }
    defer client.Close()

    table := client.Open("table-id")

    mut := bigtable.NewMutation()
    mut.Set("column-family", "column1", bigtable.Now(), []byte("value1"))
    mut.Set("column-family", "column2", bigtable.Now(), []byte("value2"))

    err = table.Apply(ctx, "row-key", mut)
    if err != nil {
        log.Fatalf("Failed to apply mutation: %v", err)
    }

    row, err := table.ReadRow(ctx, "row-key")
    if err != nil {
        log.Fatalf("Failed to read row: %v", err)
    }

    log.Printf("Row: %v
", row)
}

Dans l'exemple de code ci-dessus, nous nous connectons d'abord à Google Cloud, créons une nouvelle table et une nouvelle famille de colonnes, puis insérons les données et interrogeons les données.

Veuillez noter que Google Bigtable ne convient pas à tous les scénarios et que vous devez choisir de l'utiliser ou non en fonction de la situation réelle. En outre, il convient de prêter attention à la sécurité des données et à la protection de la vie privée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn