DEV Community

Ronny Medina
Ronny Medina

Posted on

Recomendaciones si vas a trabajar con BigQuery

¡Hola a todos! Espero que se encuentren bien. En este post, quiero compartir mi experiencia trabajando con BigQuery y los aprendizajes que obtuve en el proceso.

Hace un tiempo, me enfrenté a la tarea de sincronizar los datos de una base de datos a BigQuery. El reto no solo era trasladar la información desde una base de datos relacional, sino hacerlo de manera que los datos estuvieran más procesados y optimizados para su uso en BigQuery

Cómo aprovechar BigQuery sin encasillarlo en el modelo relacional o no relacional

En este punto, lo que quiero decir es que no trates de llevar al 100% la misma estructura que tienes en tu base de datos relacional o no relacional. No quiero decir que esté mal; va a depender de cada caso. Desde mi perspectiva, intentar trasladar esta misma relación no genera ningún beneficio en BigQuery que sea significativo, o al menos no desde mi conocimiento, ya que algunas relaciones que hacemos son para poder optimizar consultas y evitar duplicar datos en tablas.

Como en la imagen anterior, tal vez no sea necesario intentar trasladar la tabla transaction_types, ya que esta solo sirve para evitar duplicar datos en una misma tabla.

BigQuery te permite trabajar con datos estructurados y no estructurados, y se define como un servicio de almacenamiento.

Puntos relevantes:

  • No soporta transacciones
  • No existen índices para hacer relaciones o tener campos únicos
  • Permite el uso de SQL para manejar operaciones
  • También puedes modelar los datos como si trabajaras en Mongo

Si puedes saber de antemano cómo se va a operar con los datos, esto te será de gran ayuda al momento de trasladar la información. En ocasiones, no es posible conocer cómo se manejarán los datos al 100%, ya que pueden ser equipos externos quienes los manipulen con otras operaciones.

Comprender los costos operativos de BigQuery

Es importante entender los costos operativos, ya que BigQuery aplica diferentes tipos de cobros según las operaciones que se realicen. Dependiendo de lo que se quiera llevar a cabo, es fundamental tener estos costos en cuenta, ya que pueden ayudar a optimizar las operaciones y evitar gastos innecesarios. Suponiendo que solo queremos almacenar, consultar y transferir los datos, podemos destacar lo siguiente:

Costo por almacenamiento

Costo por consultas, que incluye la definición de esquemas y la manipulación de datos

Costo por transferencia de datos

Te recomiendo consultar la página de precios de BigQuery para obtener información detallada y realizar un mejor análisis e investigación de los costos.

Puntos relevantes:

  • Tener presente los costos y saber como vas operar

Riesgos de la simplificación excesiva en la estructura de tablas

Como mencioné anteriormente sobre no trasladar directamente la estructura de tu modelo de base de datos a BigQuery, en el proceso de intentar simplificar o desnormalizar los datos, podríamos caer en el error de complicar el manejo de la información. Por ejemplo, en mi caso, tenía una situación similar, donde había una relación de uno a muchos.

more....

Top comments (0)