¡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.
Top comments (0)