Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Hello World en Go
En este ejemplo, se usa una aplicación muy simple llamada “hello world” escrita en Go y se demuestra cómo hacer las siguientes tareas:
Configura la autenticación
Conectarse a una instancia de Bigtable
Crear una tabla nueva
Escribir datos en la tabla
Volver a leer datos
Borrar la tabla
Configura la autenticación
Para usar las muestras de Go de esta página desde un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, luego, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.
client, err := bigtable.NewClient(ctx, *project, *instance)
if err != nil {
log.Fatalf("Could not create data operations client: %v", err)
}
Escribir filas en una tabla
Abre la tabla en la que desees escribir. Usa bigtable.NewMutation() a fin de crear una mutación en una sola fila y, luego, usa Mutation.Set() para establecer valores en la fila.
Genera una clave de fila única para cada fila. Repite estos pasos para crear varias mutaciones. Por último, usa Table.ApplyBulk() para aplicar todas las mutaciones a tu tabla.
tbl := client.Open(tableName)
muts := make([]*bigtable.Mutation, len(greetings))
rowKeys := make([]string, len(greetings))
log.Printf("Writing greeting rows to table")
for i, greeting := range greetings {
muts[i] = bigtable.NewMutation()
muts[i].Set(columnFamilyName, columnName, bigtable.Now(), []byte(greeting))
// Each row has a unique row key.
//
// Note: This example uses sequential numeric IDs for simplicity, but
// this can result in poor performance in a production application.
// Since rows are stored in sorted order by key, sequential keys can
// result in poor distribution of operations across nodes.
//
// For more information about how to design a Bigtable schema for the
// best performance, see the documentation:
//
// https://cloud.google.com/bigtable/docs/schema-design
rowKeys[i] = fmt.Sprintf("%s%d", columnName, i)
}
rowErrs, err := tbl.ApplyBulk(ctx, rowKeys, muts)
if err != nil {
log.Fatalf("Could not apply bulk row mutation: %v", err)
}
if rowErrs != nil {
for _, rowErr := range rowErrs {
log.Printf("Error writing row: %v", rowErr)
}
log.Fatalf("Could not write some rows")
}
Lee una fila por su clave
Obtén una fila directamente con su clave con Table.ReadRow().