14

Datos prácticos para trabajar con Creative Cloud

5612Puntos

hace 6 años

¿Quieres aprender a combinar componentes de Big Data en Adobe Creative Cloud con un ejemplo sencillo? En este blogpost, el profesor Hugues Joubert te enseña cómo hacerlo. ¡No te lo pierdas!

Transcripción:

Ahora revisaremos un escenario de demostración, combinando algunos de los componentes de Big Data que hemos platicado en las clases anteriores. Ahora me encuentro en la consola principal de mi proyecto en Google Cloud, y como pueden ver, pues tengo algunos recursos de los que hemos creado en las clases anteriores. En este caso, lo que voy a hacer es irme al menú de opciones o de componentes. Y en la parte final vamos a ver que tenemos algunos de los componentes de Big Data que hemos mencionando, como BigQuery, Pub/Sub, DataProc, DataFlow, etc.

En este caso vamos a empezar con BigQuery, la base de datos columnar. Doy un clic y me cambia a la interface gráfica de utilización de BigQuery. Pueden ver que tengo un proyecto que se llama Platzi, en el cual voy a crear un nuevo dataset. En este nuevo dataset, le voy a poner un nombre Demo y lo primero que puedo especificar es en qué lugar o en qué zona del mundo puedo buscar ubicar mis datos. Temas de regulación, temas de distancia, de latencia de red, son las sesiones que me pueden hacer llevar, seleccionar Estados Unidos, Unión Europea o finalmente la nueva zona de BigQuery, que es en Asia, basada en Japón.

Para fines de esta demostración, vamos a seleccionar Estados Unidos. Y finalmente pudiera yo seleccionar también una manera automática de depurar la información, pudiera yo especificar a los cuántos días de tener un dato almacenado en BigQuery, automáticamente la gestión de Google borre esa información. Quizás solamente estoy buscando almacenar información del mes actual, entonces los datos que cumplan 31 días de antigüedad dentro de las tablas, automáticamente puedan ser eliminados. En este caso voy a poner que no quiero una expiración, que los datos se mantengan. Y como pueden ver ya tengo Dataset aquí generado que se llama demo.

Dentro de ese Dataset, lo siguiente que voy a hacer es crear una tabla con datos, por ejemplo, de ventas o de algún proyecto. Tengo diferentes maneras para hacerlo, puedo crear desde una tabla vacía o, todavía más práctico, seleccionar alguna fuente de datos y traer los datos directamente a BigQuery y que estos creen la tabla en cuestión.

Voy a seleccionar un File Upload, me voy a mi computadora y voy a seleccionar un archivo .CSV, separado por comas, que tengo aquí depositado. Automáticamente ya la interface BigQuery me sugiere: esto es un archivo CSV, lo voy a interpretar como tal, aunque pudiera yo también incorporar algunos otros formatos como JSON, Avro, Parquet, etc.

Si yo seleccionara, por ejemplo, irme a Google Drive, incluso pudiera yo cargar directamente de una hoja de cálculo de Google Sheets, información. Y dependiendo entonces de dónde quiera traer información, sería el formato que la interface BigQuery me pueda sugerir.

Regreso al Upload, selecciono de nuevo mi archivo CSV. Y simplemente lo que voy a hacer es ponerle un nombre de tabla, le vamos a poner Ventas. Y pudiera yo definir de manera manual todos los campos o las columnas que quiero tener dentro de mi tabla. En este caso vamos a hacer uso de la función de detección automática, significa que en base al CSV va a detectar cuántas columnas son. Si el encabezado del CSV tiene un nombre “columnas”, lo va a utilizar para llamar a cada una de estas columnas, y finalmente en el momento que haga la importación de este archivo, va a identificar los datos que se encuentran en cada columna para determinar si son caracteres, si son numéricos, si son fechas, y hacer la definición correcta.

Te puede interesar: Cvander News: Colombia, primer país con política de Big Data, Coinbase mejora su equipo ejecutivo y Rusia vs Telegram

Pudiera tener yo al final algunas opciones, como por ejemplo, el número de líneas que me quiero brincar del archivo, en este caso voy a poner uno, justamente para que salte ese primer encabezado que tiene el nombre de las columnas, no quiero que permita ningún error. Entonces, si en importación hubiera algún error quiero que se detenga. Y puedes seleccionar algunas opciones de escritura, por ejemplo, solamente crear la tabla si ésta no existe o está vacía, o si ya es una tabla existente lo que voy a buscar sería adicionar los datos, o si fuera una tabla existente que tiene datos, borraría los datos actuales, para escribir los datos nuevos. En este caso, voy a seleccionar la primera opción, la tabla no existe, entonces se va a escribir si no existe o ésta estuviera vacía.

Como muchas de las opciones de Google Cloud la encripción no es opcional, puedo seleccionar la encripción nativa de Google Cloud o específicamente encripción, pero en base a una llave de encripción provista por el usuario final. En este caso, voy a seleccionar la encripción tradicional. Simplemente oprimo el botón de creación de tabla. Y en unos segundos tendremos el proceso que, si fuera un proceso de cientos de terabytes, podríamos estar hablando que se llevará unos cuantos minutos, en este caso es un archivo más pequeño y podemos ver que pasó de naranja a verde, indicándonos que el proceso terminó de ser ejecutado. Si yo le doy un clic puedo abrir un poco y ver el detalle del proceso, se ejecutó a las 11:35, se llevó tan sólo un segundo de ejecución, no fue muy grande, es un archivo CSV y pudiera ver yo los detalles de específicamente escribir o generar la tabla sólo si ésta se encontrara vacía.

Una vez generada la tabla, puedo ver que abajo de mi Dataset de demo, ya tengo una tabla que se llama Ventas. Me pone aquí un mensaje BigQuery diciéndome, “Bueno, estos son los nombres de columnas que obtuve del archivo y estos son los tipos de datos que interpreté en base en los datos que encontré”. Si tuviéramos alguna discrepancia, un nombre que quiero cambiar o un tipo de dato que no fuera el correcto, pudiera simplemente dar clic en este link que me sugiere y hacer el ajuste manual, pero como pueden ver realmente la interpretación que hizo BigQuery de los nombres de las columnas y de los datos es bastante efectiva.

Entonces, tenemos una serie de columnas que ya están definidas, algunas de ellas caracteres, algunas de ellas datos enteros y algunas de ellas datos flotantes, así como por ahí un par de fechas. Yo pudiera irme a Detalles y ver una vista general de la tabla que se acaba de generar, podemos ver el nombre del proyecto, el nombre del Dataset y finalmente el nombre de la tabla Ventas, con un espacio ocupado de 2.42 megabytes, no es algo muy grande y finalmente casi 10.000 registros o filas que fueron cargadas de mi archivo CSV, de mi computadora local, subido a la nube de Google, importado por BigQuery y finalmente generando una tabla de datos.

Finalmente pudiera yo dar un preview a los datos, es decir, quiero ver las primeras líneas, en este caso me despliega, alcanzan a visualizarse las 18 primeras líneas de mis datos. Y puedo ver ya cómo se encuentran los datos que vienen en el archivo, acomodados en las diferentes columnas, puedo llegar así hasta descuento, profit, etc., que serían las últimas columnas.

Entonces, puedo verificar que los datos son correctos, que los nombres de columnas fueron colocados correctamente en base al encabezado del archivo CSV, y como pueden ver en la parte inferior me dice, estamos viendo la línea de la 1 a la 18 de un total de 9.994 registros. Si yo simplemente voy seleccionando next, pueden ver que, de manera muy, muy práctica, rápida, puede irme cambiando entre esas diferentes páginas hasta poder ver el total de los datos que tengo almacenados.

rawpixel-666947-unsplash.jpg

Vamos a hacer alguna cosa interesante con estos datos, voy a darle clic al botón de QueryTable, lo cual me va a abrir una ventana para componer un Query basado en SQL. Significa que yo podría poner un SELECT *, por ejemplo, FROM, el nombre de la tabla, por default BigQuery me pone siempre este comando al final de un límite de 1.000 registros.

Si recordamos, en la clase de BigQuery, mencionábamos que BigQuery se cobra por el consumo, es decir, por cuánta información estoy consumiendo, y a lo mejor en mi Dataset que tengo ya cargado, tengo ahí unos cuantos petabytes de información, simplemente ejecutar un Query podría hacer una consulta muy grande, que se dispararan unos cuantos centavos, y justamente es por eso que por default me pone esta limitante cuando estoy desarrollando un Query, cuando lo estoy probando, y una vez de que tengo ya el Query funcionando, pudiera yo quitar esa limitante para realmente irme a la ejecución completa de los datos. En este caso, bueno, puedo quitar el límite. Y puedo ver algunas características interesantes. Abajo de la ventana de la composición de Query, pueden ver que tenemos un cálculo de cuántos bytes, en este caso 2.42 megabytes van a ser accesados.

Como estoy seleccionando todas las columnas por medio del asterisco, entonces BigQuery me calcula que voy a accesar la tabla completa con todas sus columnas y todos sus registros. Y recuerdan, que cuando vimos en los detalles de la tabla, esta tenía 2.42 megabytes. Si yo hiciera un cálculo diferente y dijera, “No, no quiero todas las columnas”, y solamente quisiera por ejemplo, el Row ID, pues automáticamente vemos cómo Big Query nos hace un cálculo de diciendo “Listo, ya no vas a tener todas las columnas solamente la columna llamada Row ID”, y eso te da un cambio muy importante de cuánta información estás solicitando traer, en este caso solamente 78.1 kilobytes.

De nuevo, una parte interesante aquí es que me hace una estimación del costo de ejecución de este Query. Como mencionamos, si yo no hago ningún Query, no tengo costo de procesamiento, y dependiendo el Query y sobre todo cuánta información está consumiendo, sería el costo estimado.

En 78.1 kilobytes podemos ver que el costo es cero, es muy pequeño. Si yo me regresará a traerme todas las columnas en BigQuery pueden ver que llegamos a 0.0001 centavo de dólar por la ejecución de este Query, de todas maneras sigue siendo un costo muy pequeño, aunque ya esté consumiendo o buscando la información completa de una tabla.

Tengo aquí el botón rojo de ejecución de Query. Simplemente, si yo lo ejecutó, le doy un clic al botón, podemos ver que el Query se empieza a ejecutar, que tenemos visualmente una respuesta de las columnas y los renglones que regresan de mi Query, y podemos ver finalmente ya no una estimación, sino en tiempo real de ejecución y los megabytes procesados. En este caso tengo 2.2 segundos de ejecución de las 10.000 líneas que consulté a la base de datos y, finalmente la confirmación que siguen siendo 2.42 megabytes. De manera que es muy simple poder siempre tener una vista de cuánta información estoy trayendo, de cuál sería el costo estimado de ejecución de este Query.

Si oprimo esta opción de desplegar las opciones, puedo ver que tendría algunas opciones adicionales para seleccionar dentro de este Query que estoy ejecutando, como por ejemplo, generar una tabla de salida, es decir, en lugar de desplegar gráficamente en mi vista web el resultado de ese Query con las columnas y filas, pudiera yo generar una nueva tabla en la cual se almacenara la salida de este Query. Normalmente se usa mucho para procesamientos en WareHouse, donde tengo tablas temporales para las salidas de ciertos Querys, que sirven como entrada para Querys adicionales.

Algunas otras características interesantes es que puedo, por default, tengo seleccionado el uso de caché. Toda la información que es procesada por BigQuery pasa por un caché que tiene una duración de 24 horas. Y la parte más interesante es que si yo vuelvo a correr este Query, por segunda vez, oprimo el botón Run Query Again y simplemente podríamos ver que ahora me despliega 1.1 segundos de ejecución, en lugar del 2.2, porque ahora los datos son buscados del caché o memoria intermedia sin ir físicamente a los discos donde está almacenada la información. Esto normalmente nos va a dar una reducción de tiempo de ejecución muy importante.

Te puede interesar: Contenidos audiovisuales: plataformas viejas VS nuevas plataformas

Segundo, vemos aquí que nos especifica que el 100% en los datos que busqué, se encontraban en caché, significa que este Query no tendría un costo de ejecución adicional, solamente la primera vez que lo ejecuté, porque los datos ya los tengo en caché. Significa que puedo yo ejecutar múltiples veces en este transcurso de 24 horas de ventana de caché y no tendría costo adicional de la ejecución de este Query.

Si me regreso a cerrar las opciones, vamos a hacer finalmente un escenario donde voy a consumir estos datos que traje de un archivo CSV, que deposité en una tabla de BigQuery, que ya puedo utilizar SQL para consumirlos, pero desde una manera muy gráfica.

Lo que voy a hacer ahora es cambiarme y voy a crear una nueva ventana con la solución DataStudio de Google. En este caso voy a abrir un nuevo reporte, que es un reporte vacío, un reporte nuevo que estamos creando, y pueden ver que tengo las opciones de algunos Datasets que ya he consumido en el pasado, que he llamado desde DataStudio, o en este caso voy a crear un nuevo conector a una fuente de datos.

Como mencionamos, DataStudio cuenta con una gran cantidad de conectores nativos de Google o conectores de terceros para conectarme a fuentes de información, en este caso nos vamos a conectar a BigQuery, justamente a la tabla que acabamos de crear. Selecciono BigQuery y me va a aparecer una lista de todos los proyectos que tengo en mi plataforma de Google Cloud. Selecciono el proyecto Platzi, el dataset Demo que acabamos de crear, y finalmente me va a aparecer la tabla Ventas, es donde populamos los datos que cargamos.

Voy a dar Connect, y en unos segundos en este caso Data Studio va a BigQuery, se conecta, y me trae una lista de las columnas con el respectivo nombre, el tipo de dato, si quiero hacer alguna agregación o no. En este caso me está sugiriendo hacer algunas sumas, por ejemplo en las agregaciones de cantidades, de descuento. Vamos a dejar que las ventas sí las sumarice, los códigos postales no queremos que los sumarice y finalmente la utilidad o profit sí queremos que los sumarice.

Entonces, simplemente seleccionando algunas de estas opciones, puedo agregar estos datos al nuevo reporte que estoy generando y listo, tenemos un reporte, en este caso vacío, pero ya está conectado a nuestra fuente de datos. Voy a agregar un selector de tabla y automáticamente me va a comenzar a visualizar los datos que tenemos en nuestra fuente de datos. Tenemos dos columnas, simplemente un Order ID, de los pedidos que teníamos en nuestros archivos, un identificador de línea, vamos a agregar algo más interesante, como pudiera ser: el nombre del país, del pedido, el nombre del cliente. Pudiera yo agregar todas las métricas que se me puedan ocurrir de mi fuente de datos, por ejemplo las ventas, y también pudiera yo agregar en cualquier momento algunos datos adicionales, como por ejemplo, en este caso ya tenemos el orden, el pedido, el cliente, las ventas. Finalmente pudiera yo agregar, por ejemplo, una dimensión, que sería de qué manera quiero agrupar los registros que estoy desplegando, por ejemplo, por nombre de producto.

Ya tenemos una tabla muy, muy rápida, vamos simplemente a acomodar las columnas para que se alcancen a desplegar los datos correctamente. En este caso un reporte en vivo, que está yendo a ejecutar un Query que no tuve que escribir a mano, se hace gráficamente hacia BigQuery trayendo los datos.
Finalmente, vamos a un rango de fecha, es decir, un filtro que me permita seleccionar de qué rango de inicio a fin, de mes, de día, pueda yo estar buscando datos específicos, y finalmente algún filtro que me permita seleccionar, por ejemplo, alguna orden.

Gráficamente dibujé muy, muy, rápido mi reporte: En este caso estoy en modo de edición, simplemente oprimo el botón de view y tendría terminado mi reporte, en el cual ya pudiera yo seleccionar, por ejemplo, el número de orden que me interesa ver. Le pudiera yo dar simplemente el clic en ONLY y dinámicamente cuando hago la selección de este filtro, el reporte actualiza solamente los productos que corresponden a esa orden. De igual manera yo pudiera seleccionar un rango de fechas, como por ejemplo, este cuarto, vámonos a lo mejor al cuarto anterior y pudiéramos de igual manera filtrar solamente los productos o la orden que tenemos seleccionada en base al filtro de fechas que hemos seleccionado.

Te puede interesar: Cómo convertirte en un desarrollador de software exitoso en Silicon Valley

Esto nos permite cerrar un poco este ejemplo de manejo de grandes cantidades de información, a través de componentes como DataStorage, como DataPrep, como DataFlow, BigQuery. En este caso subimos un archivo de datos de ventas a BigQuery, lo consumimos. Y pasamos finalmente a esa última capa de despliegue de información o visualización por medio de Data Studio, que me permite conectarme de manera muy sencilla a mi fuente de datos y generar tan sólo en unos cuantos minutos un reporte que puedo compartir de manera inmediata con mis usuarios, simplemente enviándoles el reporte por correo electrónico.

Por último, te recomiendo tomar el Curso de Edición Avanzada con Adobe Creative Cloud
. También puedes estar al tanto de nuestro contenido a través de nuestro canal de YouTube. No olvides suscribirte y recuerda que lo más importante es que ¡nunca pares de aprender!

Hugues
Hugues
Hugues

5612Puntos

hace 6 años

Todas sus entradas
Escribe tu comentario
+ 2