Creación e Interacción con Bigtable en Google Cloud
Resumen
¿Cómo crear una base de datos Big Table en Google Cloud?
Big Table es una herramienta poderosa en Google Cloud que te permite almacenar y gestionar grandes volúmenes de datos de manera eficiente. Este tutorial te guiará paso a paso para crear tu propia base de datos Big Table y cómo interactuar con ella. Este proceso es crucial para empezar a utilizar la infraestructura de datos extendida por empresas de gran envergadura como Google.
¿Cómo configurar una instancia de Big Table?
Primero, necesitas acceder a la consola de Google Cloud. Una vez ahí:
Ve al menú principal. Selecciona la sección de databases o bases de datos y elige Big Table.
Haz clic en crear instancia y llena los datos solicitados. Por ejemplo, puedes nombrar tu instancia como "quick start instance".
Se te asignará un ID automáticamente; deja que el sistema lo haga por ti.
Continúa y selecciona el tipo de disco; recomendamos el estado sólido para un mejor rendimiento.
Elige una región y una zona. Un buen ejemplo es "US East 1" en "South Carolina" y la zona "C".
Finalmente, define el número de nodos. Para pruebas suele ser suficiente con uno solo. Luego, haz clic en crear.
Una vez creada la instancia, verás un icono verde que indica que es utilizable.
¿Cómo interactuar con Big Table usando Cloud Shell?
Ahora que tienes tu instancia lista, es momento de interactuar con ella a través de Cloud Shell usando el comando cvt, abreviatura de Cloud Big Table.
Configuración inicial de Cloud Shell
Abre Cloud Shell desde tu consola.
Para asociar la instancia a tu proyecto, utiliza un archivo .cbtrc y ponlo en el ID de tu proyecto con el comando correspondiente.
Indica que la instancia con la que vas a trabajar es "quick start instance" mediante el siguiente código de configuración.
Así, cuando uses cvt y un mandato, Cloud Shell sabrá a cuál instancia referirse.
Crear y gestionar tablas dentro de Big Table
Crear una tabla dentro de la instancia:
cvt create table myTable
Autoriza a Cloud Shell para que interactúe con la API de Big Table y asegúrate de que la tabla ha sido creada listándola:
cvt ls
Aquí verás "myTable" como parte de tu base de datos.
Agregar una column family:
Una column family te ayudará a agrupar columnas.
cvt create family myTable CF1
Confirma la creación listando las familias:
cvt ls myTable
Agregar datos a tu tabla:
Para insertar datos en las celdas, realiza el siguiente comando:
cvt set myTable r1 CF1:c1 test value
Esto crea un qualifier dentro de la familia de columnas y almacena un valor de prueba.
Leer los datos de la tabla:
Para visualizar la estructura que has creado, lee la tabla con:
cvt read myTable
Ahí verás los registros que has inserido y su respectivo timestamp, lo que los hace únicos dentro de la base de datos.
¿Por qué usar Big Table?
Big Table destaca por su robustez y capacidad para manejar grandes volúmenes de datos distribuidos. Es ideal para sectores que requieren alta escalabilidad y eficiencia, como motores de búsqueda, analítica de grandes datos y aplicaciones en tiempo real.
Te animo a seguir explorando más sobre Big Table, creando estructuras más complejas y descubriendo cómo esta plataforma puede optimizar tus aplicaciones. ¡Con cada paso que des en tu aprendizaje, te acercas más a construir sistemas eficientes y escalables!
En esta clase creamos una instancia de Bigtable con el nombre quick-start-instance, id quick-start-instance y cluster id quickstart-instance-c1. El tipo de disco fue SSD con un solo nodo. Finalmente la región fue us-east1 y la zona us-east1-c.
Desde la CLI podemos crear nuestra instancia ocupando la herramienta cbt, la el comando para crear la instancia de esta clase quedaría así:
Hablemos del elefante en la habitación, 468 dolares mensuales 🙃
Jajajajaj TOTAL ! Es carísimo.
Concuerdo, deberían mostrar el monto total por cada aplicativo. Para no llevarnos "sorpresas".
• Creación de BigTable en Google Cloud Plataform
o Seleccionamos Home
Buscar Datastore, seleccionamos Bigtable
Créate instance, llenamos todos los datos que nos pide
Seleccionamos continuar, seleccionamos disco SSD
Seleccionamos continuar, selecciomos la región, requerimos un nodo
Créate
o Activamos cloud Shell
Primero asociamos nuestra instancia a mi perfil de cloud Shell para mandar comando y a que base de datos
• Echo Project = ‘gcloud config get-value project’ > ~/.cbtrc
• Echo instance = nombreinstancia >> ~/.cbtrc
o Creamos una tabla
• Cbt createtable my-table
o Autorizamos la Shell para interactuar con la api
• Cbt ls
o Agremos un colum family o agregar columnas
• Cbt createfamily my-table cf1 //nombre de famili1
• Cbt ls my-table
o Ingresamos datos en la tabla
• cbt set my-table r1 cf1:c1=test-value
• cbt read my-table
En la sección de DataBases de GCP y seleccionamos BigTable.
Creamos la instancia. Llenamos los datos:
Nombre, ID.
Seleccionamos el tipo de disco (SSD o HDD)
Seleccionamos región y zona.
Interactuamos con nuestra base de datos con Cloud Shell
cbt: Comando para interactuar con bigtable. Debemos setearlo hacia el ID de nuestro proyecto, esto lo podemos hacer: echo project = gcloud config get-value project > ~/.cbtrc (El archivo .cbtrc es el archivo de configuración de variables de bigtable.
echo instance = NOMBRE_DE_LA_INSTANCIA_CREADA >> ~/.cbtrc Le dije a mi perfil que quiero usar el comando y ahora le digo sobre que instancia quiero actuar con el comando anterior.
cbt createtable my_table : Creamos una tabla llamada my_table
cbt ls: listamos todas las tablas que tiene nuestra base de datos
cbt createfamily my_table cf1: Creamos una columna familia, donde en ella ingresaremos columnas relacionadas entre sí.
cbt set my_table r1 cf1:c1-test-value: Ingresamos datos en la tabla
cbt read my_table: Leemos los datos de la tabla. Veremos una marca de tiempo o timestamp agregada por bigtable para identificar al valor como único.
bastante caro, 480 dolares mensual en promedio y la opción más cómoda
¿Se puede baratar estos costos?
Creo que es porque esta diseñado para necesidades NoSQL. Osea alta demanda
Hola, cuando intento crear una tabla me muestra el siguiente error:
Creating table: rpc error: code = InvalidArgument desc = When parsing 'projects/gcloud config get-value project/instances/my-first-db-instance' : Instance name expected in the form 'projects/<project_id>/instances/<instance_id>'.
Alguien sabe porque es que pasa?
Cuando se ejecutaron los comandos para almacenar el nombre del proyecto y de la instancia recibió algún error?
Es posible que las variables de nombre de proyecto e instancia no se hayan almacenado correctamente y por eso al consumir la API de GCP, no se encuentren los valores correctos.
Tengo el mismo problema :/
Me podrían decir cual es la diferencia entre BigQuery y BigTable?
Holiiii 👋🏻
Bigtable es una base de datos NoSQL optimizada para lecturas y escrituras intensas.
BigQuery es un almacén de datos empresarial para grandes cantidades de datos estructurados relacionales.
Puedes encontrar más sobres sus diferencias y características en este artículo :D
Parece que estás usando comillas, inténtalo con este otro símbolo (')
Hola,
¿Existe otra forma de interactuar con Bigtable sin Cloud shell?
También creo que esa pregunta anterior aplica para la mayoría de las opciones o servicio que puedes usar Cloud Shell para interactuar con el servicio que has creado en GCP.
Para realizar las prácticas pueden utilizar el servidor me-central2 (Dammam) que el nodo cuesta casi 20 veces mas barato que otros servidores 28dls/nodo/mes vs otros 500dls/node/mes al momento de crear su recurso de BigTable.
NoSQL de columna ancha completamente administrada.
Base de Datos NoSQL de Columna Ancha:
En lugar de utilizar un modelo relacional como las bases de datos SQL tradicionales, Bigtable utiliza un modelo NoSQL de columna ancha. Esto significa que los datos se organizan en filas y columnas, similar a una tabla, pero con la flexibilidad de agregar nuevas columnas sin afectar el rendimiento.
Replicación para Alta Disponibilidad y Baja Latencia:
Bigtable ofrece replicación automática de datos para garantizar alta disponibilidad y tolerancia a fallos. Los datos se replican en múltiples ubicaciones para evitar la pérdida de datos en caso de fallos.
Aprovisionamiento de Instancias:
Antes de comenzar a utilizar Bigtable, debes aprovisionar una instancia de Bigtable que defina la configuración de tu base de datos, como la capacidad de almacenamiento, la cantidad de nodos, las zonas de replicación, etc.
Puedes ajustar la capacidad de tu instancia según las necesidades de tu carga de trabajo, lo que te permite escalar horizontalmente de forma dinámica.
Bibliotecas Cliente de Bigtable:
Una vez que has aprovisionado tu instancia de Bigtable, puedes usar una de las bibliotecas cliente de Bigtable para interactuar con la base de datos y desarrollar aplicaciones.
Google proporciona bibliotecas cliente para varios lenguajes de programación, como Java, Python, Go y Node.js. Estas bibliotecas simplifican la escritura y lectura de datos en Bigtable, así como el manejo de operaciones como escaneos y filtrados.
Desarrollo de Aplicaciones con Bigtable:
Al desarrollar aplicaciones con Bigtable, puedes aprovechar su capacidad para manejar grandes volúmenes de datos en tiempo real con baja latencia.
Puedes almacenar y procesar datos de eventos, registros, métricas, perfiles de usuario, entre otros, y realizar análisis en tiempo real para obtener información valiosa.
Escalabilidad y Rendimiento:
Bigtable está diseñado para ser altamente escalable y ofrecer un rendimiento óptimo para aplicaciones que requieren acceso rápido a grandes cantidades de datos.
A medida que aumenta la carga de trabajo, Bigtable escala horizontalmente automáticamente agregando más nodos para mantener la respuesta rápida y la baja latencia.
Taller
Es Bigtable no bittable, solo eso, pero gracias por la información <3
No olviden eliminar sus recursos si ya no los van a necesitar xD