Tématica
BigQuery
Tiempo de lectura
5 minutos
BigQuery es un almacén de datos como servicio que nos permite cargar nuestros datos y en pocos minutos hacer consultas SQL con ellos y sacar conclusiones de una manera económica, fiable y rápida.
Esta pensado tanto para una pequeña empresa como para grandes corporaciones ya que es escalable desde unos pocos gigabytes a cientos de petabytes. Tiene la ventaja de resolver las consultas utilizando el lenguaje SQL que es ampliamente conocido y por su puesto los datos cuentan con la seguridad que Google puede ofrecer.
Están cifrados en disco y en tránsito y son durables y altamente disponibles.
Y finalmente es un servicio gestionado, es decir, no nos tenemos que preocupar ni de la infraestructura ni de las comunicaciones ni de la seguridad, Google lo hace por nosotros.
Juan Valladares
CEO in Best In BI y profesor en Datahack School
Autor del artículo
Insertar
Almacenar
Analizar
Visualizar
Las organizaciones confían en los almacenes de datos para agregar datos de fuentes dispares, procesarlos y ponerlos a disposición para el análisis de datos que respalde su toma de decisiones estratégicas.
Puede insertar datos en BigQuery mediante la carga por lotes o la transmisión de datos directamente para brindar información en tiempo real.
Como almacén de datos totalmente administrado, Google se encarga de la infraestructura para que pueda concentrarse en analizar sus datos hasta una escala de petabytes.
Almacén de datos completamente administrado
ESCALA PETABYTE
Como almacén de datos totalmente administrado, Google se encarga de la infraestructura para que pueda concentrarse en analizar sus datos hasta una escala de petabytes.
Structured Query Language (SQL)
Si desea crear modelos de aprendizaje automático con los datos de su empresa, puede hacerlo con BigQuery ML. Con solo unas pocas líneas de SQL, puede entrenar y ejecutar modelos en sus datos de BigQuery sin necesidad de moverlos.
Cuando llega el momento de visualizar sus datos, BigQuery se integra con Looker, así como con varias otras herramientas de inteligencia comercial en su ecosistema de socios.
Ahora, ¿cómo usar BigQuery? Afortunadamente, es sencillo comenzar a utilizar BigQuery.
Después de crear un proyecto de GCP, puede comenzar de inmediato a consultar conjuntos de datos públicos, que Google Cloud aloja y pone a disposición de todos los usuarios de BigQuery, o puede cargar sus propios datos en BigQuery para analizarlos.
La interacción con BigQuery para cargar datos, ejecutar consultas o incluso crear modelos ML se puede hacer de tres maneras diferentes:
1. Mediante el uso de la interfaz de usuario y la Consola en la nube.
2. Mediante el uso de la herramienta de línea de comandos de BigQuery.
3. Haciendo llamadas a la API de BigQuery usando bibliotecas de clientes disponibles en varios idiomas.
BigQuery está integrado con el servicio de administración de acceso e identidad de Google Cloud para que pueda compartir de forma segura sus datos y conocimientos analíticos en toda la organización.
Con BigQuery, paga por almacenar y consultar datos y transmitir inserciones. La carga y exportación de datos son gratuitas.
El coste de almacenamiento se basa en la cantidad de datos almacenados y tiene dos tarifas según la frecuencia con la que cambian los datos.
El coste de la consulta puede ser bajo demanda, lo que significa que se le cobra por consulta, por la cantidad de datos procesados, o puede ser fijo para los clientes que desean comprar recursos dedicados.
7 minutos
Estamos ya en el año 2023, y como podemos constatar en cualquier medio de comunicación, la inteligencia artificial vuelve a estar de moda. ¿Vuelve? Sí, porque en realidad este término se acuñó en el año 1956, y en los casi 70 años de historia que tiene ya esta rama de la tecnología, la misma ha evolucionado a una escala que difícilmente podría haberse pronosticado.
Desde sus inicios, la inteligencia artificial ha perseguido el objetivo de crear máquinas con una inteligencia similar o superior a la nuestra, con el fin de poder delegar trabajo cognitivo en ellas, o como apoyo para poder aumentar nuestra propia capacidad de pensamiento. Pero este objetivo es más un sueño que una meta bien definida porque, ¿qué es en realidad la inteligencia? ¿Cómo la definimos? Y, sobre todo, ¿cómo funcionan nuestros propios cerebros, esos que queremos imitar mediante tecnología? No lo sabemos con precisión.
Álvaro Barbero Jiménez
Chief Data Scientist del Instituto de Ingeniería del Conocimiento (IIC)
Autor del artículo
Es por esta indefinición que el foco de la IA y los métodos para abordarla han ido cambiando a lo largo de estas 7 décadas. En sus inicios, muchos investigadores en IA centraban sus esfuerzos en crear sistemas que pudieran replicar la capacidad de los humanos en tareas intelectualmente complejas: jugar al ajedrez, demostrar teoremas, realizar un diagnóstico médico en base las evidencias… se trataba de una forma concreta de implementar la IA, que hoy conocemos como sistemas expertos, y que tratan de realizar razonamientos empleando una base de datos de conocimientos y reglas, así como un sistema de inferencia basado en la lógica formal. Un ejemplo habitual de este tipo de sistemas sería el que dispone de la siguiente información:
hombre(x) ->mortal(x) (si es un hombre, entonces también es mortal)
hombre(Sócrates)= True (Sócrates es un hombre)
De lo que el sistema puede deducir mediante implicación lógica que mortal(Sócrates)=True (Sócrates es mortal). Esta clase de sistemas llegaron a utilizarse con éxito en campos como el diagnóstico de enfermedades infecciosas en la sangre. No obstante, en general este tipo de sistemas de IA resultaban ser difíciles de construir, dado que es necesario contar con expertos en la materia con los que colaborar para formalizar su conocimiento y métodos de trabajo en reglas formales. Así mismo, su mantenimiento y actualización a nuevas situaciones implicaba revisar su juego de reglas, una tarea que podía llegar a ser muy costosa en sistemas de gran tamaño.
Por otra parte, en torno a la misma época en la que se descubrían las limitaciones de los sistemas expertos, se llegó a una conclusión inesperada en cuanto al funcionamiento de la inteligencia: que las tareas que a los humanos nos resultan cognitivamente complejas, como los razonamientos matemáticos o la lógica formal, ¡son en realidad muy sencillas de implementar en un computador! Especialmente cuando se comparan contra el desafío de desarrollar una máquina con las capacidades sensoriales y motoras que puede tener cualquier niño con un desarrollo normal. Este hecho se recoge en la famosa paradoja de Moravec, y ha demostrado ser uno de los mayores obstáculos en del desarrollo de la IA: que las habilidades que a nosotros nos resultan intuitivas y naturales son las más difíciles de replicar de manera artificial.
Una alternativa a los sistemas expertos de mayor aplicabilidad práctica y que se ha desarrollado con mucha solidez desde la década de los 80 es el aprendizaje automático o machine learning. En este tipo de IAs la clave radica en recopilar el conocimiento del experto no como una serie de reglas formales, sino como ejemplos que demuestren su forma de actuar. De este modo, podemos compilar una base de datos formada por casos médicos, en la que para cada caso recogemos la información utilizada el experto médico para su examen (constantes, analíticas, etc…), así como su diagnóstico, y el sistema de IA podrá aprender a imitar su forma de proceder. Dentro de este tipo de IA caben toda una variedad de algoritmos que afrontan este problema de aprendizaje empleando diferentes aproximaciones estadísticas: vecinos próximos, árboles de decisión, métodos de ensemble, máquinas de vectores de soporte, y muchos otros más.
Uno de los métodos que ha destacado especialmente durante la última década han sido los basados en redes neuronales artificiales, hoy día también conocidos como Deep Learning. Aunque en realidad este tipo de IAs llevan en desarrollo desde incluso antes de que se acuñara el término “inteligencia artificial”, no fue hasta 2010 y años posteriores cuando se descubrieron las estrategias clave para poder construir sistemas de esta clase a gran escala: de ahí el calificativo “Deep”.
En esencia, las redes neuronales son un subtipo del aprendizaje automático, en el que una serie de neuronas artificiales imitan superficialmente el comportamiento de una neurona real, y se encargan de realizar la tarea del aprendizaje en base a los datos. Su principal ventaja frente a otros modelos de aprendizaje automático es su flexibilidad, ya que pueden construirse redes desde unas decenas de neuronas hasta miles de millones, escalando así su capacidad para aprender de bases de datos de tamaño masivo.
Además, esta flexibilidad del Deep Learning ha permitido a los investigadores en IA desarrollar “neuronas” especializadas en el tratamiento de datos no estructurados: imágenes, vídeos, textos, audio, etc… si bien esta clase de redes neuronales artificiales cada vez están más alejadas de la biología real, han demostrado ser tremendamente prácticas para abordar problemas muy complejos como son la detección de objetos de interés en imágenes (ej: personas, coches, …), la traducción automática entre idiomas, o la síntesis de voz. Con este hito se ha logrado abordar de manera muy efectiva la clase de desafíos sobre los que la paradoja de Moravec nos alertaba: aquellos que nos resultan intuitivos a nosotros, pero de difícil implementación en una máquina.
¿Y qué podemos decir de estos últimos años? Sin duda, el avance más significativo en IA ha venido de la mano de los modelos base o foundation models. Se trata de un paso más en las redes neuronales artificiales, en el que redes de inmenso tamaño aprenden a modelar la dinámica de un proceso complejo mediante el análisis de bases de datos masivas.
Por ejemplo, un modelo base del lenguaje español es aquel que aprende cómo se estructura el idioma español y cómo suele usarse, mediante el procesado de gigabytes de textos escritos en este idioma. Este modelo no persigue un objetivo concreto, más allá de asimilar la estructura del lenguaje. Pero precisamente por eso puede alimentarse de cualquier texto escrito en el idioma, sin necesidad de que este haya sido preparado y validado por un experto, abriendo así la puerta a que la red neuronal pueda aprender de… básicamente todo el material que podamos suministrarle de Internet.
La pregunta que surge entonces es, ¿y para qué sirve un modelo así, si no tiene un objetivo práctico concreto? Pues porque como indica su nombre, sirven como base para crear modelos que apliquen a tareas concretas.
Por ejemplo, un modelo base del lenguaje español puede reajustarse a la tarea de analizar las emociones expresadas en un tweet, usando un conjunto de datos de tamaño medio con ejemplos de cómo hacer esta tarea. La ventaja de esta aproximación respecto de crear una red neuronal nueva que aprenda directamente de los datos es que el modelo base adaptado tendrá una efectividad mucho mayor, y requerirá de un juego de datos más pequeño para aprender a realizar su tarea. El motivo es que el modelo base ya conoce cómo se estructura el lenguaje español, y ahora solo le queda aprender cómo extraer la emoción de un texto en español.
Puede que los modelos base nos suenen a algo extraño, pero lo cierto es que están detrás de las IAs más famosas en la actualidad: GPT-3, ChatGPT, GPT-4, DALL-E 2, Stable Diffusion, … todas ellas utilizan de alguna manera u otra este concepto, y nos demuestran cómo aprender de fuentes de datos a tamaño Internet nos lleva a un tipo de Inteligencia Artificial muy superior a los vistos hasta ahora.
Con todas estas IAs a la carrera, demostrando resultados cada vez más impresionantes, la pregunta que cabe hacerse es: ¿qué podemos esperar a partir de ahora? Internet es una fuente masiva de información, pero al mismo tiempo es limitada cuando se compara con la percepción que los humanos tenemos del mundo. Los estudios sobre modelos base han demostrado que a mayor número de datos podemos observar, mayor es la capacidad del sistema de IA resultante. Por tanto, el siguiente paso natural sería permitir que estos sistemas puedan aprender también de observaciones que hagan del mundo real, y más aún, que consigan a través de su propia experiencia. Este es el objetivo del aprendizaje por refuerzo profundo o deep reinforcement learning, el cual persigue que una red neuronal artificial pueda experimentar con su entorno y mejorar en una tarea a base de observar los resultados de sus experimentos.
Un ejemplo de este tipo de Inteligencia Artificial es AlphaZero, la cual consiguió alcanzar un rendimiento sobrehumano en el juego de tablero Go en tan solo 24 horas de aprendizaje, u OpenAI Five, que logró derrotar al equipo campeón del mundo en el e-sport DOTA2. Y fuera del mundo de los juegos, se han aplicado incluso para mejorar el control de un reactor experimental de fusión nuclear. ¿Será este el siguiente paso en la evolución de la IA? Aunque hoy día son sistemas muy costosos y complejos de aplicar en proyectos prácticos, alguna de las ideas que subyacen a su funcionamiento ya han sido incorporadas en ChatGPT y GPT-4, por lo que la tendencia parece clara.
Qué mejor forma para celebrar el #díadelamujer, que juntar a tres profesionales del sector para que nos hablen de la importancia de las mujeres en el ámbito tecnológico.
No pierdas la oportunidad de escuchar testimonios de profesionales ¡Seguro que te inspiran! La mujer un dato por descubrir Acompáñanos en este #webinargratuito y aprendamos de experiencias y casos reales de mujeres en este sector. Este webinar se realizará en formato mesa redonda, donde las ponentes hablaran en base a una serie de temas y responderán preguntas.
En este evento se resumirá en:
No dejes escapar esta oportunidad e infórmate junto a verdaderos profesionales del Big Data.
Lourdes Hernández Vozmediano
CEO datahack
Cristabel Talavera
Customer Engineer en Google
Rus María Mesas Jávega
Data scientist en Telefónica
¡Anímate y escucha testimonios de grandes profesionales!
¿Qué tienes que hacer para asistir a este #webinargratuito? Muy sencillo. Únicamente tendrás que registrarte desde este evento y esperar al día 7 de marzo (se realizará desde LinkedIn Live por lo que se deberá acceder a la plataforma de LinkedIn a la hora del evento).
🔵 Esta sesión será online en directo y desde la plataforma de LinkedIn Live.
🔵 Este formulario es para apuntarte a la sesión online.
🔵 Durante la sesión podrás preguntar todas las dudas que tengas al ponente y las irá respondiendo. No te quedes con ninguna duda.
🔵 Al registrarte recibirás un enlace en tu email con el que podrás conectarte a la sesión online.
La teoría de grafos busca representar de forma visual conjuntos de datos abstractos en formas de nodos o vértices y la unión o relaciones que estas pueden tener con otros nodos a través de aristas.
Comprende desde cero la Teoría de grafos aplicada a un caso real "El caso de Twitter"
Gracias a esta teoría se puede aprovechar al máximo el potencial de las redes sociales. Así comprender las relaciones, preferencias y similitudes entre los usuarios, todo esto lo podrá aprender de la mano de Rafa Ibáñez Usach (Senior Product Expert - Indra)
En el ejercicio práctico podremos analizar una red de una red social, en este caso, Twitter. Obtendremos datos de #Twitter y los analizaremos con una herramienta de análisis de grafos midiendo la relación entre los distintos usuarios de Twitter.
En este evento se resumirá en:
No dejes escapar esta oportunidad e infórmate junto a verdaderos profesionales del Big Data.
Rafa Ibáñez Usach
Senior Product Expert - Indra
¡Anímate y realiza este caso práctico para desarrollar tus capacidades en Excel!
¿Qué tienes que hacer para asistir a este #webinargratuito? Muy sencillo. Únicamente tendrás que registrarte desde este evento y esperar al día 22de febrero (se realizará desde LinkedIn Live por lo que se deberá acceder a la plataforma de LinkedIn a la hora del evento).
🔵 Esta sesión será online en directo y desde la plataforma de LinkedIn Live.
🔵 Este formulario es para apuntarte a la sesión online.
🔵 Durante la sesión podrás preguntar todas las dudas que tengas al ponente y las irá respondiendo. No te quedes con ninguna duda.
🔵 Al registrarte recibirás un enlace en tu email con el que podrás conectarte a la sesión online.
¡Ser un dummy en 2023 no es tendencia! Deja de serlo con nuestro webinar gratuito: Google Colab para dummies
Da tus primeros pasos en Google Colab Google Colab para dummies
Google Colab es una plataforma de código abierto para escribir y ejecutar Python desde nuestro navegador en lugar de necesitar software específico. Tanto si lo anterior te resulta familiar como si no, este evento es para ti.
Angel Conde Manjon Senior Partner Solutions Architect – Data & Analytics en Amazon Web Services (AWS) se encargará de explicar desde cero la plataforma, así podrás comprender cómo funciona y como aplicarla a casos reales.
En este evento se resumirá en:
No dejes escapar esta oportunidad e infórmate junto a verdaderos profesionales del Big Data.
Angel Conde Manjon
Senior Partner Solutions Architect – Data & Analytics en Amazon Web Services (AWS)
¡Anímate y realiza este caso práctico para desarrollar tus capacidades en Excel!
¿Qué tienes que hacer para asistir a este #webinargratuito? Muy sencillo. Únicamente tendrás que registrarte desde este evento y esperar al día 31 de enero (se realizará desde LinkedIn Live por lo que se deberá acceder a la plataforma de LinkedIn a la hora del evento).
🔵 Esta sesión será online en directo y desde la plataforma de LinkedIn Live.
🔵 Este formulario es para apuntarte a la sesión online.
🔵 Durante la sesión podrás preguntar todas las dudas que tengas al ponente y las irá respondiendo. No te quedes con ninguna duda.
🔵 Al registrarte recibirás un enlace en tu email con el que podrás conectarte a la sesión online.
En este artículo creado por José Manuel Sanz Candales , vamos a conocer qué es el DLR.
Los gestores de las redes eléctricas de transporte y distribución deben tener en cuenta los valores de capacidad de sus líneas eléctricas para cumplir con las normas establecidas al respecto. Tradicionalmente se han utilizado valores constantes estacionales, pero el avance de la tecnología está haciendo evolucionar estos valores hacia el cálculo dinámico de la capacidad de las líneas (DLR).
El DLR (Dynamic Line Rating) se basa en la estimación en tiempo real de la capacidad de las líneas de transporte de energía eléctrica (CdT), en función de distintas variables medibles (condiciones climáticas, medidas de temperatura del conductor en tiempo real, flecha del vano, etc.) así como su previsión para períodos futuros. En contraposición se encuentra el uso de una CdT estacional, con variables climatológicas fijas en cada estación, que, por lo general, resulta más conservadora, y que es la que se ha venido utilizando de manera generalizada en la actualidad.
Simplificadamente, hacer DLR consiste en predecir o calcular la intensidad máxima que puede transportar una línea en un periodo de tiempo determinado, atendiendo al valor de ciertas variables ambientales instantáneas, respetando en todo momento los límites térmicos de la instalación, y, en consecuencia, garantizando las distancias de seguridad establecidas en los reglamentos, sin provocar en la instalación ni una degradación ni un envejecimiento prematuro, al ser siempre las condiciones de funcionamiento coherentes con límites técnicos, como puede ser el fenómeno de recocido en los materiales.
La CdT de una línea aérea vendrá marcada por el vano (tramo entre dos apoyos consecutivos) que primero incumpla los límites mencionados anteriormente. En consecuencia, operar líneas con DLR significa estimar y monitorizar las condiciones de la línea a lo largo de todo su trazado, realizar un tratamiento de la información para determinar la intensidad máxima admisible en cada instante, así como establecer modelos de previsión que permitan predecir los valores estimados de capacidad de transporte para las próximas horas u otros horizontes de más largo plazo.
Para disponer de una predicción de capacidad de transporte, es necesario disponer de predicciones de variables medioambientales. De estas variables, la que más impacto tiene por su variabilidad e influencia es el viento. Obtener previsiones de viento con precisión suficiente es complejo y la Inteligencia Artificial puede ser de gran ayuda en este ámbito. Adicionalmente, dado que el viento es uno de los mayores problemas de la red de transporte en cuanto a averías graves por caída de torres y conductores, una estimación precisa y con antelación suficiente, ayudará también tanto en la optimización del diseño de apoyos como para predecir posibles afecciones por cambio en condiciones ambientales o de comportamiento de las supuestas en históricos.
Para entrenar estos modelos de IA, se requiere disponer de datos históricos de estaciones meteorológicas que recojan los valores reales en determinados puntos de las líneas eléctricas. Adicionalmente, la recepción de los datos de dichas estaciones meteorológicas en tiempo real (mediante uso de IoT) en los sistemas de predicción, permite utilizarlas para realizar predicciones más precisas en los primeros horizontes (< 6 horas) utilizando, por ejemplo, Redes Neuronales Recurrentes.
Jose Manuel Sanz Candales
Científico de Datos - Departamento de Modelos para la Operación del Sistema en Red Eléctrica
linkedin.com/in/jose-manuel-sanz-candales-96b801144
@Candales_Jose
¡Si te ha gustado el contenido de este artículo no te olvides de suscribirte a la newsletter!
¿Sabéis lo que darían los Reyes Magos o Papa Noel por ordenar todas las listas de regalos en una hoja Excel? ¡Tú puedes!, no pierdas la oportunidad y ordena todas tus compras de la mano del mejor aliado, el análisis de datos.
¡En este nuevo webinar te ayudamos con tus compras de navidad! ¿Cuánto de vas a gastar esta navidad?
Excel nos ayuda a extraer información a partir de grandes cantidades de datos, por ello a través de esta herramienta racionalizaremos nuestro presupuesto disponible para optimizar nuestras compras.
¿Empleas demasiado tiempo en Amazon buscando la opción más económica para una lista de productos? Hugo Hernández (Consultor de Data Mining en datahack) nos mostrará a partir de un Dataset las distintas combinaciones de artículos de Amazon de acuerdo a nuestro presupuesto.
En este evento se resumirá en:
Ponencia de Hugo Hernández
Ponencia de Hugo Hernández
No dejes escapar esta oportunidad e infórmate junto a verdaderos profesionales del Big Data.
Hugo Hernández
Consultor de Data Mining en datahack
¡Anímate y realiza este caso práctico para desarrollar tus capacidades en Excel!
¿Qué tienes que hacer para asistir a este #webinargratuito? Muy sencillo. Únicamente tendrás que registrarte desde este evento y esperar al día 15 de diciembre (se realizará desde LinkedIn Live por lo que se deberá acceder a la plataforma de LinkedIn a la hora del evento).
🔵 Esta sesión será online en directo y desde la plataforma de LinkedIn Live.
🔵 Este formulario es para apuntarte a la sesión online.
🔵 Durante la sesión podrás preguntar todas las dudas que tengas al ponente y las irá respondiendo. No te quedes con ninguna duda.
🔵 Al registrarte recibirás un enlace en tu email con el que podrás conectarte a la sesión online.
Los datos nunca se quedan quietos, al igual que la red de aviones que sobrepasan nuestras cabezas todos los días en infinidad de momentos. Las personas siempre intentamos encontrar las mejores soluciones a nuestros problemas o necesidades, pero ¿Sabíais que el análisis de datos es nuestro mejor aliado en estas ocasiones?
¡En este nuevo webinar te lo demostramos! ¿Quieres saber cómo viaja un Data Scientist?
El análisis de datos tiene infinitas aplicaciones, en este webinar podremos aprender una de ellas, cómo optimizar las búsquedas de vuelos directos mediante Python.
¿Te has pasado horas buscando las mejores combinaciones de vuelos para llegar a tu destino? Jorge López Lázaro (Senior-Expert Data Scientist en BBVA) se encargará de explicar mediante este caso de uso, cómo solucionar estos problemas con Python.
En este evento se resumirá en:
Ponencia de Jorge López Lázaro
Ponencia de Jorge López Lázaro
No dejes escapar esta oportunidad e infórmate junto a verdaderos profesionales del Big Data.
Jorge López Lázaro
Senior-Expert Data Scientist en BBVA
¡Anímate y realiza este caso práctico para desarrollar tus capacidades en Python!
¿Qué tienes que hacer para asistir a este #webinargratuito? Muy sencillo. Únicamente tendrás que registrarte desde este evento y esperar al día 29 (se realizará desde LinkedIn Live por lo que se deberá acceder a la plataforma de LinkedIn a la hora del evento).
🔵 Esta sesión será online en directo y desde la plataforma de LinkedIn Live.
🔵 Este formulario es para apuntarte a la sesión online.
🔵 Durante la sesión podrás preguntar todas las dudas que tengas al ponente y las irá respondiendo. No te quedes con ninguna duda.
🔵 Al registrarte recibirás un enlace en tu email con el que podrás conectarte a la sesión online.
En este artículo creado por Rafael Garrote Hernández, vamos a conocer más a fondo el Snowflake.
El ecosistema de almacenes de datos está en continuo crecimiento y cada poco oímos de un nuevo miembro de la familia. En este caso quiero hablaros de Snowflake, que recoge la tradición de las bases de datos específicas para crear un data Warehouse y la actualiza para adecuarse a los tiempos que imperan, haciéndola nativa al cloud, con capacidades para gestionar grandes volúmenes de datos y con capacidades de procesamiento en streaming.
Snowflake, como su propio nombre indica, es una base de datos pensada para albergar los modelos de datos dimensionales tradicionales de un data warehouse, copo de nieve, data mart, pero además permite adecuarse a las necesidades para crear modelos más actuales como data vaults o data hubs. Sus principales características son que está diseñada para trabajar de forma nativa en los principales proveedores de infraestructura y que separa la capa de almacenamiento de datos de la capa de procesamiento de datos. Son precisamente estas dos características las que hacen que Snowflake pueda gestionar volúmenes de datos mucho más grandes que sus predecesoras. Vamos a ver sus características más en detalle.
Arquitectura
Snowflake está diseñada en una arquitectura con tres capas; la capa de almacenamiento que se encarga de persistir el dato y gestionar las micro particiones, una capa de procesamiento de datos independiente al resto organizada en clusters aislados de máquinas que trabajan sobre el conjunto de datos y por último la capa de servicios cloud entre los que encontramos la autorización, la gestión de la infraestructura, gestión de metadatos, control de accesos, seguridad y parseo y optimización de consultas.
Almacenamiento de datos
Como capa de almacenamiento Snowflake utiliza el sistema de almacenamiento del proveedor de infraestructura, AWS S3, Azure Blob Storage y Google Cloud Storage respectivamente. De esta manera, podemos utilizar estos almacenamientos como capa de staging desde la que cargar los datos de forma sencilla en Snowflake.
Permite almacenar tanto datos estructurados como semiestructurados y con soporte nativo para formatos abiertos de datos: JSON, XML, CSV, Avro, Parquet, ORC, etc.
El almacenamiento está orientado a columnas lo que la hace idónea para ejecutar trabajos de tipo analítico tradicionales de un data warehouse y además permite particionado de las tablas.
Y por último es transaccional y ACID, dos características muy valiosas y que no encontramos en todos los competidores.
Micro Particionado
Snowflake basa su almacenamiento en lo que él denomina micro particiones que gestiona de forma automática y transparente para el usuario. Las tablas se particionan de forma transparente utilizando el orden de carga o inserción de los datos creando particiones de 50 a 500 MB.
Para esas consultas que necesitan más rendimiento o para gestionar volúmenes de datos más grandes, Snowflake nos permite modificar el comportamiento por defecto del micro particionado y gestionar estas particiones para optimizar las consultas sobre conjuntos de datos más grandes especificando la clave de particionado con la cláusula CLUSTER BY tanto al crear la tabla como al modificarla. De esta manera podremos indicar qué campo o campos queremos utilizar como clave de particionado para crear unas particiones acordes al patrón de acceso al dato optimizando por tanto el rendimiento de las consultas.
Time travel
El almacenamiento de datos de Snowflake permite indicar un tiempo de retención a los datos entre 1 y 90 días, de tal forma que se puede consultar el estado de los datos en un punto anterior en el tiempo, por ejemplo, antes de que hayan sido modificados o borrados. También permite clonar o recuperar tablas en un punto en concreto en el pasado, incluso si se han borrado.
Adicionalmente al tiempo de retención del time travel, se le puede indicar a Snowflake un tiempo adicional de como máximo 7 días, en los que guardará los datos de las tablas para poder recuperarse de fallos eventuales. Estos datos sólo son recuperables por Snowflake y no se pueden consultar hasta su recuperación. Este tiempo de fail-safe empieza a contar justo después de que termine el tiempo de retención del time travel.
Capa de computación
Como se ha indicado antes, la capa de procesamiento está separada de la capa de almacenamiento y consta de uno o varios clusters de máquinas encargados de realizar las tareas de cómputo sobre los datos. Estos clusters se denominan Virtual Warehouses y podemos crear tantos como necesitemos. Idealmente crearemos uno por tipología de procesos que realicemos sobre los datos. Por ejemplo podemos tener un Virtual Warehouse para realizar las tareas de ETL y otro para los procesos de ciencia de datos. De esta manera garantizamos los recursos necesarios para cada uno de estos procesos ya que los Virtual Warehouses no comparten recursos entre sí.
Estos clusters se pueden configurar para que crezcan o decrezcan de forma elástica según la demanda de carga en cada momento y además se pueden auto suspender y reiniciar según las necesidades para hacer una correcta gestión de los recursos y del coste de la infraestructura.
Snowflake no sólo está pensada para ejecutar sentencias de consulta, sino que al igual que sus predecesoras, permite realizar procesos de Extracción Carga y Transformación (ELT) para realizar las transformaciones de los datos e integrarlos en el modelo dimensional creado. Para ello permite encadenar las sentencias para ejecutarlas en un orden específico y bajo ciertas condiciones.
Cada sentencia SQL es una tarea o task y estas task se pueden encadenar formando un árbol de ejecución. Este árbol representa el pipeline de ejecución de una ELT. Una Task se puede programar para ser ejecutada de forma periódica o como consecuencia de una Task anterior. Esto que permite encadenar Task en función del resultado anterior en lo que se denomina Tasks condicionales.
Adquisición o ingesta de datos
Para ingestar datos en Snowflake, esta hace uso del almacenamiento de datos nativo del cloud, así por ejemplo en AWS S3, dejaríamos los ficheros con el dato en bruto a ingestar en un bucket de S3. Indicaremos a snowflake que use ese bucket como staging, creamos la tabla que alojará estos datos y le decimos a Snowflake que copie los datos del staging a la tabla. Una vez que los datos ya están en Snowflake podemos crear los pipelines necesarios para transformar e integrar el dato según nuestras necesidades.
Además de este procesamiento de datos por lotes o en batch, Snowflake provee de un mecanismo para la ingesta de datos en streaming y/o tiempo real que denomina Snowpipe.
Snowpipe permite quedarse escuchando un fichero de la capa de almacenamiento de la infraestructura, por ejemplo AWS S3 y cada nueva inserción en este fichero, automáticamente se insertarla en la tabla de destino. Otra opción es utilizar el conector de Kafka que permite conectar Snowflake a Kafka para consumir los mensajes que se vayan almacenando en los topics de Kafka.
Junto con estos mecanismos de ingesta en streaming, Snowflake dispone de un conjunto de operaciones de ventana para poder realizar operaciones de transformación y cálculo en streaming.
A parte de todas estas funcionalidades Snowflake provee las siguientes capacidades:
Por todo lo que hemos visto en este artículo Snowflake moderniza los sistemas de bases de datos tradicionales para data Warehouses, actualizándose a las necesidades actuales del mercado convirtiéndose en una tendencia al alza sobre todo si se busca una alternativa que te independice del proveedor de infraestructura considerándola una alternativa a tener en cuenta a la hora de diseñar nuestro sistema informacional.
¡Si te ha gustado el contenido de este artículo no te olvides de suscribirte a la newsletter!
Temática
Python y Machine Learning
Tiempo de lectura
5 minutos
Es innegable que hoy en día tener conocimientos de programación es imprescindible. Hace años conocer y manejar adecuadamente el paquete Office “básico” (Word, Power Point, Excel) te permitía acceder a puestos laborales mejores que la media. Hoy en día y más después de la pandemia, la utilización de las herramientas Office es un fondo de armario que casi cualquier persona tiene conocimiento.
Pero, ¿qué pasa si quieres seguir formándote y desarrollando tus capacidades para, no solo acceder más fácilmente a otros puestos de trabajo, si no también para ser un profesional mucho más productivo y que puede aportar mejores soluciones tanto en el ámbito laboral como personal?
Desde mi punto de vista, lo mejor es formarte en algún lenguaje de programación que te permita automatizar y sistematizar tareas que, de otra manera, tendrías que ejecutar de manera manual y tediosa una a una.
Para todas aquellas personas que nunca han programado, uno de los mejores lenguajes para empezar es Python: un lenguaje de programación sencillo, fácil de comprender y con una curva de aprendizaje asequible que te permitirá poner a funcionar pequeños y no tan pequeños programas.
Antonio Fernández Troyanno
Responsable de proyectos Oficina de Transformación Bergé Logistics
Autor del artículo
Con el fin de ilustrar el potencial de Python, a continuación, te presentaré una serie de proyectos programados en Python para que veas el potencial de este magnífico lenguaje de programación.
ATENCIÓN: En este artículo vais a poder ver ciertos fragmentos de código que, si no tenéis conocimiento ninguno de programación, quizás pueda asustarte. Aleja esos terrores de tu mente, con un poco de trabajo y formación, verás que no es nada del otro mundo.
¡Vamos con ello!
En muchas ocasiones nos surge la necesidad de concatenar o unir varios ficheros Excel de cientos o miles de líneas.
Imaginemos que cada mes se genera un reporte con información de financiera de la empresa, información de tus cuentas bancarias o cualquier otro ejemplo que se te pueda ocurrir.
Imagina que tenemos 12 ficheros Excel con sus mismas columnas y necesitamos unificar toda esa información en 1 solo fichero.
¿Qué soluciones tenemos?
Opción a) Abrir uno a uno cada fichero, copiar y pegar esa información y repetir esa tarea 10 veces más.
Opción b) Utilizar algún lenguaje de programación que nos permita simplificar esta tarea.
Sin duda, la opción a utilizar es la Opción b). Quizás inicialmente te lleve más tiempo programar en Python tu programa “UNIR EXCELS”, pero, ¿imagina que en lugar de 12 ficheros son 50? O, peor aún, que cada semana tienes que unificar 20 Excels….
¿No tiene sentido programar y automatizar esa tarea? Pues con Python podrías, y es mucho más sencillo de lo que parece…
<script src="https://gist.github.com/afernandez119/c4777133ef457f9569684811d611eb18.js"></script>
Con nuestro Máster Experto en Data Science y Big Data puedes profundizar en las aplicaciones de Python y así volverte un experto en la materia.
¿Quién podría imaginar que utilizando Python podríamos automatizar el envío de correos electrónicos?
Imagina que todos los días tienes que enviar una serie de correos electrónicos a proveedores, empleados o alumnos, ¿por qué no automatizarlo?
En Python existen diferentes librerías que te facilitan esta tarea, veamos un ejemplo.
<script src="https://gist.github.com/afernandez119/6a93f9ad5673efcc29e0061cb1c0141e.js"></script>
¿Nunca te ha pasado que necesitas cambiar la extensión de una imagen y no sabes cómo hacerlo?
Buscas en Google como un loco y te sale un montón de servicios online, software de gratis pero con limitaciones, … ¿por qué no utilizar Python para esto?
Gracias a la librería de Python Pillow podremos, entre otras muchas cosas, modificar la extensión de nuestra imagen de forma rápida y sencilla (3 líneas de código…)
<script src="https://gist.github.com/afernandez119/f712eeb44ed35471b32cce379554c5d7.js"></script>
Y…. ¿si queremos algo más elaborado? ¡Pues aquí tienes! A continuación te presento un proyecto mucho más completo en Python en el que intentamos predecir el éxito que va a tener una noticia antes de publicarla analizando el éxito que tuvieron noticias pasadas.
El proyecto incluye:
En este caso te un vídeo del proyecto completo sobre “Cómo predecir el éxito de una noticia mediante Machine Learning”
Y… ¡hasta aquí el artículo de hoy! Como ves estos son 4 ejemplos muy diversos sobre el potencial que tiene la utilización de Python a nivel profesional y personal, sin duda una herramienta muy potente e imprescindible conocer en el entorno de digitalización actual.