Curso GCP: Fundamentos de Big Data
Curso GCP: Fundamentos de Big Data
que utilizan nuestros grandes datos y productos de aprendizaje automático. Entre las cosas que hacemos
está crear cursos y laboratorios de capacitación de big data y aprendizaje automático; Como este curso,
Big Data y los fundamentos del aprendizaje automático con Google Cloud Platform. Este curso fue
diseñado para mostrar los datos de la vida real y los desafíos de LD y brindarle experiencia práctica
práctica para resolver esos desafíos utilizando Google Cloud. Es un curso crítico para dominar, ya que
cubre los casos de uso más comunes que usted y su equipo encontrarán en su viaje de big data. Este curso
está dividido en seis módulos de contenido. En el primer módulo, que trata sobre la toma de decisiones
basada en datos, aprenderá todo sobre los datos y las herramientas de LD disponibles en GCP desde una
perspectiva organizativa de alto nivel. Luego, en los siguientes cuatro módulos, se le presentarán los
productos de Google Cloud en contexto, ya que se emplean para resolver problemas del mundo real. En
los cuatro módulos, además de ampliar su conocimiento sobre nuestros productos y nuestra plataforma,
también podrá practicar con Quick Labs prácticos. Finalmente, en el módulo de resumen, haremos un
resumen de todo lo que aprendió en este curso y le proporcionaremos recursos adicionales sobre los
temas que ha realizado. En cada módulo, este es el orden típico que seguiremos. Primero, tendremos
conferencias de expertos en la materia, donde presentaremos el escenario de big data y los desafíos
asociados, y cómo abordarlos con las tecnologías de la nube. A continuación, verá una demostración de la
solución y la acción que destacará las características clave que aprenderá y practicará en sus laboratorios.
Una vez que haya comprendido los escenarios y haya visto las demostraciones, es hora de que practique
con clubes rápidos en una cuenta real de Google Cloud Platform. Finalmente, explorará casos reales de
uso de clientes y arquitecturas, para familiarizarse con las mejores prácticas e inspirarse en sus propias
soluciones. En otras palabras, describimos una clase común de big data y problemas de LD y nos
enfocamos en un problema específico y luego le mostramos una demostración de una solución a ese
problema. Luego hablamos sobre por qué creamos una solución de esa manera, aprovechando esa
oportunidad para cubrir cómo y cuándo usar los diversos productos utilizados en la solución. Finalmente,
ampliamos la lente y le mostramos aplicaciones del mundo real que son variantes de los principios que se
tratan en el capítulo. Ya estás tomando este curso, lo que significa que reconoces la importancia del
procesamiento de big data. Pero, ¿por qué es esto un conjunto de habilidades en una demanda tan alta?
Según la investigación de McKinsey, para 2020, tendremos 50 mil millones de dispositivos conectados en
el Internet de las cosas. Estos dispositivos costarán el suministro de datos al doble cada dos años. Sin
embargo, desafortunadamente, solo alrededor del uno por ciento de los datos generados hoy en día se
analizan de acuerdo con McKinsey. Este estado de cosas brinda una gran oportunidad abierta porque los
datos tienen mucho valor. Creo que la capacidad de crear aplicaciones que manejan grandes cantidades de
datos y derivan perspectivas de esos datos de manera automatizada. Esta habilidad es una habilidad que
será bien recompensada en el mercado. Las personas que tienen esta habilidad tendrán muchas
oportunidades abiertas y las compañías que desarrollen esta habilidad tendrán más éxito. Entonces, la
oportunidad para los analistas de datos, los científicos de datos y los ingenieros de datos hablará sobre
cuáles son estas funciones y cuáles son las diferencias. La oportunidad para estos tres roles es muy clara.
En su núcleo, este curso está dirigido principalmente a ingenieros de datos. Dicho esto, si usted es un
analista, un ingeniero de ML o un líder de tecnología para su equipo, es una habilidad valiosa saber cómo
interactúan todos los grandes datos y los productos de ML para resolver algunos de los desafíos más
comunes que enfrentan los ingenieros de datos. ¿Cuáles son esos desafíos? Esos desafíos son migrar sus
cargas de trabajo de big data existentes a un entorno en el que puede analizar eficazmente todos sus datos,
analizar de forma interactiva grandes y por grandes me refiero a terabytes a petabytes; Analizando
grandes conjuntos de datos de datos históricos. En tercer lugar, cree tuberías escalables que puedan
manejar la transmisión de datos, para que su empresa pueda tomar decisiones basadas en datos más
rápidamente. Finalmente, construya modelos de aprendizaje automático para que no solo reaccione a los
datos, sino que también pueda realizar acciones predictivas a futuro con sus datos.
Hola soy lak Bienvenido al primer módulo de un curso de Big Data Fundamentals. Proporciona una
introducción a Google Cloud Platform. En este módulo, examinaremos la infraestructura detrás de Google
Cloud Platform o GCP, que se creó originalmente para impulsar las aplicaciones propias de Google y
ahora está disponible para usted. Luego, cubriremos los productos de big data y ML que se construyen
sobre esa infraestructura y cuándo debe elegir qué productos para la arquitectura de su solución. Después
de eso, mi parte favorita de este curso es aprender de otros clientes que usan Google Cloud explorando sus
casos de uso e inspirándome para resolver desafíos similares para sus propios equipos y proyectos.
Aprenderá dónde puede consultar estudios de casos de referencia de clientes de GCP por industria o por
producto, y luego examinará su arquitectura de solución en una actividad clara. Construir la estructura de
equipo correcta es fundamental para resolver estos grandes desafíos de datos. Exploraremos los diferentes
tipos de roles y personas para crear un equipo exitoso de big data dentro de su organización. Considere
por un segundo, el impacto que la búsqueda de Google tiene en nuestras vidas diarias con respuestas
oportunas y relevantes. Ahora piensa en otros productos de Google; Gmail, Google Maps, Chrome,
YouTube, Android, Play, Drive, cada uno de estos productos tiene más de mil millones de usuarios
mensuales. Google ha tenido que desarrollar la infraestructura para ingerir, administrar y servir toda la
información de estas aplicaciones, y para hacerlo, con una creciente base de usuarios y requisitos de datos
en constante evolución, siete productos con mil millones de usuarios. En realidad, hay un octavo producto
de Google que tiene mil millones de usuarios finales, Google Cloud, excepto que son sus usuarios. Los
usuarios finales atendidos por clientes de Google Cloud como Home Depot, Spotify, Twitter, New York
Times, Colgate-Palmolive y Go Check. Veamos los bloques de construcción detrás de la infraestructura de
big data de Google y cómo puede aprovecharla con Google Cloud. Hay cuatro aspectos fundamentales de
la infraestructura central de Google y una capa superior de productos y servicios con los que interactuará
con mayor frecuencia. La capa base que cubre todas las aplicaciones de Google y, por lo tanto, también la
de Google Cloud, es la seguridad. Además de eso, están el cálculo, el almacenamiento y las redes. Estos le
permiten procesar, almacenar y entregar información sobre cambios en el negocio, líneas de datos y
modelos de aprendizaje automático. Finalmente, mientras ejecuta sus aplicaciones de big data en las
máquinas virtuales más simples posible, Google ha desarrollado una capa superior de big data y
productos ML para abstraer mucho del arduo trabajo de administración y ampliación de la infraestructura
para usted.
Una organización de datos en crecimiento como la suya necesitará mucho poder de cómputo para ejecutar
trabajos de big data, especialmente cuando diseñe para el futuro, de modo que pueda superar el
crecimiento de nuevos usuarios y datos para la próxima década. Comencemos con un ejemplo que ilustra
cómo Google utiliza su propio poder de cómputo. Google Photos ha presentado recientemente funciones
inteligentes como esta, para la estabilización automática de video, para cuando la cámara está inestable,
como se ve aquí a la izquierda. ¿Qué fuentes de datos crees que son necesarias como entradas al modelo?
Bueno, necesita los datos de video en sí, que son esencialmente muchas imágenes individuales llamadas
cuadros ordenados por marcas de tiempo. Pero también necesitamos más datos contextuales que solo el
video en sí, ¿verdad? Absolutamente. Necesitamos datos de series de tiempo sobre la posición y
orientación de la cámara desde el giroscopio integrado y el movimiento en la lente de la cámara. Entonces,
¿de qué datos de video estamos hablando para el modelo de Google Photos ML para calcular y estabilizar
estos videos? Si considera el número total de valores de punto flotante que representan un solo cuadro de
video de alta resolución, es un producto del número de capas de canales multiplicado por el área de cada
capa, que con las cámaras modernas puede fácilmente ser de millones. Una cámara de ocho megapíxeles
crea imágenes de ocho millones de píxeles cada una, aproximadamente. Multiplique eso por capas de tres
canales y obtendrá más de 23 millones de puntos de datos por cuadro de imagen. Hay 30 cuadros por
segundo de video. Puede ver rápidamente cómo un video corto se convierte en más de mil millones de
puntos de datos para alimentar el modelo. Según las estimaciones de 2018, aproximadamente 1.200
millones de fotos y videos se cargan en el servicio de Google Fotos todos los días. Eso es 13 más petabytes
de datos de fotos en total. Para YouTube, que también tiene modelos de aprendizaje automático para la
estabilización de video y otros modelos para transcribir audio automáticamente. Estás viendo más de 400
horas de video subido cada minuto. Eso es 60 petabytes cada hora. Pero no se trata solo del tamaño de
cada video en píxeles. El equipo de Google Photos necesitaba desarrollar, entrenar y ofrecer un modelo de
aprendizaje automático de alto rendimiento en millones de videos para garantizar que el modelo sea
preciso. Ese es el conjunto de datos de entrenamiento para esta característica. Al igual que el hardware de
su computadora portátil puede no ser lo suficientemente poderoso como para procesar un trabajo de big
data para su organización, el hardware de un teléfono no es lo suficientemente poderoso como para
entrenar modelos sofisticados de aprendizaje automático. Google entrena sus modelos de aprendizaje de
máquina en su vasta red de centros de datos y luego implementa versiones más pequeñas de estos
modelos en el hardware de su teléfono para realizar predicciones en su video. Un tema común a lo largo
de este curso es que cuando Google hace avances en la investigación de la IA, continúa invirtiendo en
nuevas formas de exponerlos como modelos completamente capacitados para todos. Por lo tanto, puede
aprovechar la investigación de AI de Google con bloques de construcción de AI pre-entrenados. Por
ejemplo, si eres una empresa que produce trailers de películas y quieres detectar rápidamente etiquetas y
objetos en miles de estos trailers de películas para crear un sistema de recomendación de películas,
puedes usar una API de Cloud Video Intelligence. Podría usar esa API en lugar de crear y entrenar su
propio modelo personalizado. Hay otros modelos completamente entrenados para el lenguaje y para la
conversación también. Aprenderás y practicarás usando estos bloques de construcción de IA más adelante
en este curso. Pero volviendo a la historia del aprendizaje automático de Google Fotos. La ejecución de
muchos modelos sofisticados de ML en grandes conjuntos de datos estructurados y no estructurados para
los propios productos de Google, requirió una inversión masiva en poder de cómputo. Por eso Wired dice:
"Esto es lo que hace a Google Google. Su red física, sus miles de millas de fibra y esos miles de servidores
que, en conjunto, se suman a la madre de todas las nubes". En esencia, Google ha estado haciendo
computación distribuida por más de 10 años para sus propias aplicaciones, y ahora, ha puesto esa
potencia de cómputo a su disposición a través de Google Cloud. Pero el simple hecho de escalar la
cantidad de servidores en los centros de datos de Google no es suficiente. Aquí hay un cálculo aproximado
interesante de Jeff Dean, quien lidera la división de inteligencia artificial de Google. Hace años, se dio
cuenta de que si todos querían usar la búsqueda por voz en sus teléfonos y solo la utilizaban durante tres
minutos, tendríamos que duplicar nuestra potencia informática. Históricamente, los problemas de
cómputo de este tipo podrían abordarse a través de la Ley de Moore. La Ley de Moore fue una tendencia
en el hardware de computación que describe la velocidad a la que se duplicó la potencia de computación.
Durante años, la potencia de computación creció tan rápidamente que simplemente podría esperar a que
alcance el tamaño de su problema. Aunque el poder de la computación estaba creciendo rápidamente,
incluso tan recientemente como hace ocho años, en los últimos años, el crecimiento se ha reducido
drásticamente a medida que los fabricantes se enfrentan a los límites de la física fundamental. El
rendimiento informático ha alcanzado una meseta. Una solución es limitar el consumo de energía de un
chip, y puede hacerlo mediante la creación de chips específicos para aplicaciones o ASIC. Un tipo de
aplicación es el aprendizaje automático. Googles desig ned nuevos tipos de hardware específicamente para
el aprendizaje automático. La Unidad de Procesamiento de Tensor o TPU es un ASIC específicamente
optimizado para ML. Tiene más memoria y un procesador más rápido para cargas de trabajo ML que las
CPU o GPU tradicionales. Google ha estado trabajando en el TPU durante varios años y lo ha puesto a
disposición de otras empresas como la suya a través de Google Cloud para problemas de aprendizaje
automático realmente grandes y desafiantes. Uno de esos negocios que utiliza TPU es eBay. Usan pods de
TPU en la nube para ofrecer inferencias más rápidas, la inferencia es predicciones, inferencias más
rápidas para sus usuarios por un factor de 10. Eso es una aceleración de 10X. La disminución en el tiempo
de entrenamiento del modelo también ha conducido a una experimentación más rápida del modelo. La
capacitación en modelos ML y la ingeniería futura es una de las partes que más tiempo consumen en
cualquier proyecto de aprendizaje automático. El vicepresidente de desarrollo de nuevos productos de
eBay comentó que la memoria adicional de los pods de TPU les permitió mejorar su tiempo de respuesta e
iterar más rápido. Un último ejemplo de poder de cómputo en Google y una visión interna de nuestra
cultura de pensamiento 10X es cómo nuestros equipos utilizaron el aprendizaje automático para
aumentar la eficiencia del centro de datos de Google. El impacto potencial para el aprendizaje automático
estaba allí, teniendo en cuenta la cantidad de centros de datos que Google debe mantener refrigerado y en
funcionamiento, y ya estábamos recolectando datos de sensores de transmisión para nuestras plataformas
de monitoreo existentes. La mente profunda de los ingenieros y alfabetos vio esto como una oportunidad
para ingerir los datos del sensor y entrenar un modelo de aprendizaje automático para optimizar el
enfriamiento mejor que los sistemas existentes. El modelo que implementaron redujo la energía de
enfriamiento en un 40 por ciento e incrementó la efectividad de la potencia en un 15 por ciento.
Encuentro este ejemplo particularmente inspirador, porque es un modelo de aprendizaje automático
entrenado en hardware especializado en aprendizaje automático en un centro de datos, que le dice al
centro de datos lo difícil que puede funcionar el aprendizaje automático especializado en el que el modelo
está entrenando. Potente nivel de inicio cosas. Más adelante en el curso, verá una demostración de cómo
puede configurar un flujo de datos de transmisión de datos para sus propios dispositivos de IoT en menos
de una hora.
Así que en esta demostración, les mostraré cómo activar una instancia del motor de cómputo, ejecutar
algún software en ella, copiar los archivos de esa instancia del motor de cómputo al almacenamiento en la
nube y publicar esos archivos para hacerlos públicos. El caso de uso que vamos a hacer, es trazar la
actividad del terremoto que ocurrió la semana anterior, y esta información proviene de USGS. Así que
déjame seguir adelante e ir a [Link]. Así que estoy empezando en [Link], y voy a la
parte del motor de cómputo, a las instancias de VM y a crear una VM. Así que haré clic en Crear aquí. En
este punto, estoy creando una nueva máquina virtual, llamémosla máquina virtual para terremotos.
Puedes llamarlo como queramos. Podemos elegir en qué parte del mundo lo queremos. Resulta que ahora
estoy más cerca de Oregón, así que seguiré adelante en EE. UU. Y elegiré una zona, puedo elegir EE. UU.-
Oeste-B. Permítame seguir adelante y decir que quiero usar para CPU virtuales. Puedo, como puede ver,
en este momento podemos llegar a aproximadamente 64 CPU con aproximadamente 250 gigas de RAM.
Otra cosa que puedo hacer es hacer clic en Personalizar y decir que quiero 18 CPU y 50 gigas de RAM. Ve
a buscarme una máquina que cumpla estos requisitos. Pero en nuestro caso, lo que haremos es regresar y
elegir una máquina muy pequeña como una vCPU es suficiente, y luego 10 gigas de espacio es suficiente,
pero por supuesto podemos cambiar eso y Podemos usar un sistema operativo diferente con el tamaño de
disco diferente si quisiéramos. Queremos poder utilizar gsutil G Cloud etcétera. Por lo tanto, permitiré el
acceso total a todas las API de mi nube, de modo que pueda escribir en el almacenamiento en la nube
desde la máquina virtual. No quiero acceder directamente a la VM a través de HTTP o HTTPS. Así que
ahora solo tendremos acceso a través de SSH. Así que seguiré adelante y crearé la máquina virtual, y en
este punto la máquina virtual se está creando. Esperemos unos segundos y una vez que la máquina virtual
se haya activado, deberíamos poder SSH en ella. Así que ahí está. Aquí está mi máquina virtual, y en este
punto, esta es una máquina virtual básica en la que estoy sentado. Esta máquina virtual, por lo que no
tiene nada en ella. De hecho, ni siquiera tiene un software muy básico como Git. Así que si tuviera que
escribir Git aquí, dice "Git no se encuentra". Así que necesito instalar Git. Lo bueno es que podemos hacer
eso. Tengo acceso de root. Entonces, lo que puedo hacer es hacer sudo, que me da acceso de root a apt-get
install git.
3:03
Dice. "¿Quieres continuar?" Sí. Esto ahora instala Git, que es una forma de acceder a mi repositorio de
código fuente que contiene todo lo que necesito. Así que voy a seguir adelante y hacer git clone
[Link]
3:33
Entonces, ahora esto obtiene los datos de GitHub, obtiene todos los datos que necesitan, incluidos los
archivos. Ahora si hago LS, tengo mi repositorio. En este caso, esto es parte de los archivos de este curso,
por lo que podemos entrar en los fundamentos de bdml, y hay una máquina virtual para terremotos.
Entraré en la máquina virtual del terremoto y veré qué archivos están presentes. Resulta que ya tengo un
archivo HTML. Tengo un script de shell para ingerir datos. Puedo hacer menos [Link] y esto
básicamente sigue adelante y elimina un terremoto [Link], y hace un wget que es una forma de
descargar datos a través de HTTP de [Link], y guarda eso como el [Link]. Así que eso
es lo que ingiere eso como tal. Luego, también tengo [Link] y [Link] básicamente, es un
código de Python que usa Matplotlib para seguir adelante y analizar los datos del terremoto de USGS y
colocarlos en un mapa de la Tierra, crea un PNG a partir de él. Por lo tanto, este archivo en particular se
puede ejecutar para continuar y procesar datos semanales del USGS. Continúa y obtiene una semana de
datos de USGS y crea [Link]. Para hacer eso, sin embargo, necesito tener algún software
instalado y el software que necesitan, todo está en la lista que falta en la instalació[Link]. Así que
básicamente necesito obtener un montón de diferentes bibliotecas de Python. Así que déjame ir adelante y
primero ejecuta install [Link]. Esto sigue adelante y descarga e instala todos los paquetes de Python
que necesito. Como puede ver, trabajar con una máquina virtual en la nube funciona con cualquier otra
máquina Unix en este caso, porque creé una máquina DBN, tengo una máquina Unix y esa es una
máquina Unix con la que estoy trabajando. En este punto, tiene todos los paquetes de Python que quiero.
Podemos seguir adelante y decir [Link], y seguiremos adelante y descargaremos [Link]. Puedes
ver que hay un [Link] ahora, que ha sido creado. Si tuviéramos que hacer head, head muestra las
primeras líneas del archivo. Resulta que actualmente ha habido un terremoto en California, y ha habido
otro terremoto en Alaska y así sucesivamente. Así que sigamos adelante, y hay 93 kilómetros al este al
noreste de Cape Yakataga, Alaska, en el momento en que estoy grabando esta demo. Así que hay un
montón de terremotos. Hemos obtenido los datos, pero mirar un archivo CSV no es muy interesante.
Sigamos adelante y creamos una imagen a partir de ella. Para hacer eso, ejecutaré [Link]. Entonces
[Link], es esencialmente obtener los datos del terremoto, convirtiendo una imagen, y note que este
punto no hay imagen pero ahora si hago ls punto PNG, ahora tengo un [Link]. Así que vamos
adelante y ahora ponlo en la nube. Queremos deshacernos de esta máquina virtual. La idea general es el
cálculo y el almacenamiento es separado. Así que hemos hecho el cálculo, tenemos algunos archivos,
vamos a copiarlos de la máquina en el almacenamiento en la nube para que podamos eliminar la
máquina. Así que vamos y creamos un cubo de almacenamiento en la nube. La forma de hacerlo es volver
a bajar aquí. La última vez que hicimos el motor de cómputo, esta vez vamos a hacer almacenamiento. Así
que vamos al navegador de almacenamiento y decimos que queremos crear un cubo. Así que, adelante, ya
he creado este cubo, déjame eliminar eso, no necesito ese cubo. Digamos que quiero crear un cubo, y
tengo que darle un nombre único a mi cubo. Así que digamos que quiero darle al cubo el nombre de
"Terremoto". Pero el nombre del cubo ya está en uso. Un nombre de cubo tiene que ser globalmente
único. Así que puedo decir "terremoto2019" y lo tengo. Así que no hay nadie más que haya creado un cubo
con este nombre. Si no puede encontrar un nombre único, intente usar un nombre de proyecto. El nombre
de este proyecto también es único a nivel mundial y, en muchos casos, podría funcionar también. Una
forma fácil de hacerlo es si podemos bajar al menú de inicio y hay un nombre de proyecto, puedo copiar el
nombre del proyecto, volver al almacenamiento y decir: "¿Puedo crear un cubo con ese nombre?" Sí
puedo. Así que eso también funciona. Así que puedo crear algo con este nombre en particular como mi
cubo. Hagámoslo multirregional, para poder acceder a él desde cualquier parte del mundo, y nos costará
alrededor de $ 0.03 por gigabyte por mes. Ahora podemos elegir cómo configurar los permisos.
Normalmente, desea establecer permisos pero un objeto por objeto. Pero avancemos y especifiquemos
objeto por objeto, para que podamos seguir adelante y crear el cubo. Así que ahora hemos creado un cubo
con este nombre, y lo copiaré en mi cosa, y ese cubo ya está creado, ahora podemos volver a esta máquina
virtual y podemos decir gsutil ls y el nombre del cubo , y no tiene nada en este momento. Así que debe
estar vacío. Así que no tiene nada de eso. Lo que podemos hacer ahora es que tengamos gsutil copy
[Link] al cubo.
9:46
Entonces, en este punto, se copian tres archivos, se copia el archivo CSV, el archivo HTM y el archivo
PNG. De hecho, cuando bajamos aquí y decimos "Actualizar", deberíamos tener los tres archivos. Así que
hurra. Así que tenemos los tres archivos, los tres archivos actualmente no son públicos, por lo que nadie
puede acceder a ellos excepto nosotros porque somos los dueños de estos archivos. Pero a partir de este
momento no necesito la máquina virtual, así que permítanme ir al motor de cómputo y decir: "Oigan, esas
instancias de VM virtuales" seleccionan mi máquina virtual y puedo hacer una de dos cosas. Puedo
detener la máquina virtual, en cuyo caso es como pausar la máquina virtual. Pagaré por el disco pero no
pagaré el almacenamiento en absoluto. La otra cosa que puedo hacer en lugar de detener la VM, es que
puedo eliminar la VM. Así que puedo seguir adelante y eliminar la máquina virtual, no la necesito nunca
más. Así que detenerse es realmente una forma muy conveniente, hemos instalado un montón de
software, no queremos deshacernos de la máquina virtual, pero no queremos pagar por el cálculo de la
máquina virtual. Entonces, lo que podríamos hacer es detenerlo. Por lo tanto, la máquina virtual ya no se
está ejecutando y solo podemos decir "Detener", y ahora la máquina virtual está en pausa. En este punto,
una vez que la VM está en pausa, solo nos cobrarán los 10 gigas de disco que habíamos conectado a la VM.
Es una forma relativamente económica de tener una máquina virtual que conoce todo el software que
tenemos instalado. Si alguna vez necesitamos ejecutar las cosas nuevamente, podemos regresar, reiniciar
la VM y ejecutar las cosas. Pero volvamos, y volvamos a nuestro almacenamiento. Verá que los datos aquí
son privados, y lo que queremos hacer, es que queremos hacerlo público, queremos que sea accesible
desde cualquier persona. Lo que podríamos hacer, es poder bajar al almacén.
11:57
Ahora, estamos en el cubo, y podemos decir que queremos tomar estos tres archivos, ir a los permisos, y
podemos decir que queremos ir a los permisos y queremos agregar miembros. Podemos agregar un
miembro llamado allUsers, y darles a esos usuarios, a todos, un visor de objetos de almacenamiento. Así
podrán ver ese objeto en particular. Así que ahora tenemos todos nuestros usuarios, y todos los usuarios
tienen visor de objetos de almacenamiento en estos objetos. Así que ahora, si vas ahora, vemos que estas
tres cosas son públicas y Cloud nos advierte amablemente que estas tres cosas son públicas, todas tienen
enlaces públicos asociados con ellas. Así que realmente podemos bajar aquí y decir: "¿Qué es un enlace
público?" Haga clic en el enlace, y esa es la API de almacenamiento que es [Link]. Así que
cualquiera que venga a este enlace en particular, básicamente podrá ver los terremotos esta semana. Así
que en este punto, estoy grabando el 4 de abril, así que la semana comenzó el 28 de marzo. Así que tengo
siete días de datos y estos son los terremotos que vimos en Alask A, y esos son los terremotos que vimos
en California, y puedes ver el Anillo de Fuego donde están todos estos terremotos que ocurren alrededor
de la costa del Pacífico. Pero en el fondo, ¿qué hicimos? Hilamos una máquina virtual, realizamos el
procesamiento en ella, y luego tomamos esos archivos, los copiamos en el almacenamiento en la nube.
Pudimos detener la máquina virtual, la máquina virtual ya no se está ejecutando, pero los archivos aún
están disponibles, y podemos entregarlos.
La última pieza de la infraestructura central que sustenta sus tuberías de datos y modelos de aprendizaje
automático es la gran seguridad de Google. Cuando crea una aplicación en su infraestructura local, usted
es responsable de la seguridad completa de las pilas, desde la seguridad física del hardware y las
instalaciones en las que se alojan a través del cifrado de los datos en el disco, la integridad de su red, y
todo el camino hasta asegurar el contenido almacenado en esas aplicaciones. Pero cuando mueve una
aplicación a GCP, Google maneja muchas de las capas más bajas de seguridad, como la seguridad física
del hardware y sus instalaciones, el cifrado de datos en el disco y la integridad de la red física. Debido a su
escala, Google puede ofrecer un mayor nivel de seguridad en estas capas, y la mayoría de los clientes
podrían permitirse el lujo de hacerlo por su cuenta. Las capas superiores de la pila de seguridad, incluida
la protección de datos, siguen siendo su responsabilidad. Pero incluso aquí, Google proporciona
herramientas como Cloud IAM para ayudarlo a implementar las políticas que usted define en estas capas.
Las comunicaciones a través de Internet a nuestros servicios de nube pública están encriptadas en
tránsito. La red y la infraestructura de Google tienen múltiples capas de protección para defender a
nuestros clientes contra ataques de denegación de servicio. Los datos almacenados se encriptan
automáticamente en reposo y se distribuyen por disponibilidad y confiabilidad. Esto ayuda a protegerse
contra el acceso no autorizado y las interrupciones del servicio. Un producto específico que resaltaré aquí,
que verá mucho en este curso es BigQuery. El almacén de datos analíticos de la escala de petabytes de
Google Cloud. Los datos de una tabla de BigQuery se cifran mediante una clave de cifrado de datos.
Luego, esas claves de cifrado de datos se cifran a sí mismas con claves de cifrado de clave. Esto se conoce
como cifrado de sobres y proporciona seguridad adicional. Bigquery también le permite proporcionar sus
propias claves de cifrado. Estas se denominan claves de cifrado gestionadas por el cliente. Dentro de
BigQuery, puede supervisar el uso de BigQuery y las consultas en ejecución de su equipo, y limitar de
forma proactiva el acceso a los datos en una fila y en un nivel de columna. Cubrimos BigQuery como un
servicio con mayor detalle más adelante. Pero en esta sección, solo queremos señalar los controles de
seguridad de BigQueries como un ejemplo de los controles de seguridad que encontrará en cada servicio
en GCP.
Hasta ahora, hemos hablado de infraestructura de bajo nivel, cómputo, almacenamiento, redes y
seguridad. Sin embargo, como ingeniero de datos o como científico o analista de datos, normalmente
trabajará con productos de mayor nivel. Entonces, hablemos de los grandes datos y los productos de
aprendizaje automático que forman Google Cloud Platform. Hablaremos de la cronología de la innovación
no por el bien de la historia, sino para que comprenda la evolución de los marcos de procesamiento de
datos. Saber cómo estos marcos han evolucionado puede ayudarlo a comprender los problemas típicos
que surgen y cómo se abordan. Una de las cosas interesantes de Google es que, históricamente, hemos
enfrentado problemas relacionados con grandes conjuntos de datos, datos que cambian rápidamente y
datos variados, lo que comúnmente se denomina big data antes que el resto de la industria. Tener que
indexar una World Wide Web hará eso, y así a medida que Internet creció, Google inventó nuevos
métodos de procesamiento de datos. En 2002, Google creó GFS o el sistema de archivos de Google para
manejar la fragmentación y el almacenamiento de petabytes de datos a escala. GFS es la base para el
almacenamiento en la nube y también para lo que se convertiría en el almacenamiento administrado por
BigQuery. Uno de los próximos desafíos de Google fue descubrir cómo indexar el volumen explosivo de
contenido en la web. Para resolver esto en 2004, Google inventó un nuevo estilo de procesamiento de
datos conocido como MapReduce para administrar el procesamiento de datos a gran escala en grandes
grupos de servidores de productos básicos. Los programas MapReduce se paralizan automáticamente y se
ejecutan en un gran grupo de estas máquinas básicas. Un año después de que Google publicara un
documento que describía el marco de MapReduce, Doug Cutting y Mike Cafarella crearon Apache
Hadoop. Hadoop ha ido mucho más allá de sus inicios en la indexación web, y ahora se utiliza en muchas
industrias para una gran variedad de tareas que comparten el tema común de volumen, velocidad y
variedad de datos estructurados y no estructurados. A medida que crecían las necesidades de Google,
enfrentamos el problema de grabar y recuperar millones de acciones de usuarios de transmisión con alto
rendimiento, que se convirtió en Cloud Bigtable, que fue una inspiración detrás de Hbase o MongoDB. Un
problema con MapReduce es que los desarrolladores tienen que escribir código para administrar toda la
infraestructura de los servidores de productos básicos. Los desarrolladores no podían simplemente
concentrarse en la lógica de su aplicación. Así que entre 2008 y 2010, Google comenzó a alejarse de
MapReduce para procesar y consultar grandes conjuntos de datos, y en su lugar, comenzó a moverse hacia
nuevas herramientas. Herramientas como Dremel. Dremel adoptó un nuevo enfoque para el
procesamiento de big data en el que Dremel divide los datos en pequeños fragmentos llamados
fragmentos, y los comprime en un formato de columnas en el almacenamiento distribuido. Luego utiliza
un optimizador de consultas para agrupar las tareas entre los muchos fragmentos de datos y los centros
de datos de Google llenos de hardware básico para procesar una consulta en paralelo y entregar los
resultados. El gran avance aquí fue que el servicio, los administradores de autos, los desequilibrios de
datos y las comunicaciones entre los trabajadores, y la escala automática para satisfacer diferentes
demandas de consultas, y como verá pronto, Dremel se convirtió en el motor de consultas detrás de
BigQuery. Google continúa innovando para resolver sus grandes problemas de datos y ML, y creó
Colossus como un almacén de datos distribuidos de próxima generación, la llave como una base de datos
relacional a escala planetaria. Flume y Millwheel para canalizaciones de datos, PubSub para mensajería,
TensorFlow para aprendizaje automático, además de que hay hardware de GPU especializado que vimos
anteriormente y Auto ML que llegará más adelante. La buena noticia para usted es que Google ha abierto
estas innovaciones como productos y servicios para que aproveche como parte de la plataforma Google
Cloud. Practicará el trabajo con estos productos en sus laboratorios como parte de este curso de
fundamentos.
Hola y bienvenido. Soy Philipp Maier, un desarrollador de cursos con Google Cloud Platform. Este es un
breve tutorial sobre el uso de Qwiklabs en este curso. Estoy a punto de mostrarte la plataforma interactiva
de laboratorio llamada Qwiklabs, que forma parte de Google Cloud. Qwiklabs le permite obtener una
experiencia práctica con GCP y le proporciona credenciales de cuenta de Google para que pueda acceder a
la Consola GCP sin costo alguno. El primer paso es iniciar sesión en Coursera en una ventana de
incógnito. Dependiendo de su navegador, también puede llamarse navegación privada o navegación
privada. Al iniciar sesión en Coursera desde una ventana privada, se asegura de que no use
accidentalmente su propia cuenta de Google mientras accede a la Consola de Google Cloud. No queremos
que reciba facturas inesperadas al final del mes. Echa un vistazo a los enlaces debajo de este video para
ver los diferentes artículos de soporte del navegador. Una vez que haya iniciado sesión en Coursera
utilizando una ventana de incógnito, regrese a su curso y vaya a la página de actividad de laboratorio. Por
lo tanto, si se le solicita, desea aceptar el código de honor e incluso puede tener que ingresar su nombre.
Luego, desea hacer clic en el botón Abrir herramienta para abrir el laboratorio en una nueva pestaña. Así
que dentro de la nueva pestaña, ahora puede hacer clic en Iniciar laboratorio. Desea esperar hasta que se
muestre el laboratorio en ejecución.
1:25
Para cada laboratorio, tendrá un temporizador en la parte superior derecha con el tiempo de acceso
restante. Su laboratorio terminará automáticamente cuando se agote el tiempo. A la izquierda, tiene el
detalle de las conexiones. Haga clic en Abrir consola de Google y luego inicie sesión con el nombre de
usuario y la contraseña que se proporcionan en el panel de detalles de las conexiones. Así que voy a copiar
el nombre de usuario. Pega eso aquí. También voy a tomar la contraseña. Pégalo aquí también. Ahora,
Qwiklabs crea una nueva cuenta para usted cada vez que inicie un laboratorio. Por lo tanto, debe hacer
clic en las ventanas iniciales de configuración de la cuenta. Esencialmente, necesito aceptar esto. No
necesito agregar ningún número de teléfono de recuperación, así que solo puedo hacer clic en Listo.
2:16
Voy a aceptar los términos de los servicios y no necesito ningún correo electrónico.
2:24
Ahora, puedo verificar que estoy usando la cuenta y el proyecto provistos por Qwiklabs dentro de la
Consola GCP. Así que aquí arriba, veo el ID del proyecto. Por aquí, puedo ver el nombre de usuario. Estos
son los mismos que me proporcionaron en el panel de detalles de conexiones. También puede ver que el
temporizador sigue funcionando. Ahora, algunos laboratorios rastrean su trabajo dentro del proyecto GCP
proporcionado por Qwiklabs. Si está habilitado, verá una puntuación en la esquina superior derecha de la
ventana de Qwiklabs, como puede ver aquí. Su puntaje aumenta a medida que se cumplen los objetivos y
puede hacer clic en el puntaje para ver los pasos individuales a calificar. Ahora que he completado el
laboratorio, puedo ver que mi puntuación se ha actualizado y estoy listo para hacer clic en Finalizar
laboratorio. Una vez que haga clic en Finalizar laboratorio, el proyecto proporcionado por Qwiklabs y
todos los recursos dentro de ese proyecto serán eliminados.
3:24
Puedo cerrar una página de laboratorio de Qwiklabs y mi calificación se actualizará con mi puntaje de
laboratorio en Coursera. Eso es todo para este tutorial. Recuerde iniciar Coursera en una ventana de
incógnito y usar las credenciales proporcionadas por Qwiklabs para iniciar sesión en la Consola GCP.
Buena suerte con los laboratorios y disfruta el resto de este curso.
Elegir qué big data y los productos de aprendizaje automático son la combinación correcta para su
solución es una habilidad crítica que debe aprender. Más adelante en este módulo, tendrá la oportunidad
de examinar la arquitectura que utilizan los clientes reales de Google Cloud para que puedan servir de
inspiración. Revisemos las opciones disponibles para los servicios de cómputo y almacenamiento para que
pueda interpretar mejor esos casos de uso más adelante. Este servicio que podría ser el más familiar para
los recién llegados es Compute Engine, que le permite ejecutar máquinas virtuales a pedido en la nube. Es
la infraestructura de Google Cloud como servicio o solución IAS. Proporciona la máxima flexibilidad para
las personas que prefieren administrar las instancias del servidor. GKE, el motor de Google Kubernetes es
diferente. Donde Compute Engine se trata de máquinas individuales que ejecutan código nativo, GKE se
refiere a grupos de máquinas que ejecutan contenedores. Los contenedores tienen paquete de código que
pone todas sus dependencias. Por lo tanto, GKE le permite ejecutar aplicaciones en contenedores en un
entorno de nube que Google administra por usted bajo su control administrativo. La contenedorización es
una forma de empaquetar el código que está diseñado para ser altamente portátil y para utilizar los
recursos de manera muy eficiente. Dado que la mayoría de los casos de uso involucran múltiples
programas que necesitan ejecutarse y comunicarse entre sí, necesita una forma de organizar los
contenedores que ejecutan estos programas separados. Eso es lo que hace Kubernetes. Kubernetes es una
forma de orquestar código que se ejecuta en contenedores. Todos los Kubernetes en GKE están fuera del
alcance de este curso, están vinculados a nuestras especializaciones de arquitectura de nube en los
recursos del curso. App Engine es una plataforma GCP completamente gestionada como un marco de
servicio o PAS. Eso significa que es una forma de ejecutar código en la nube sin tener que preocuparse por
la infraestructura. Solo tiene que concentrarse en su código y dejar que Google se encargue de todo el
aprovisionamiento y la administración de recursos. Puede aprender mucho más sobre App Engine en la
especialización que desarrolla aplicaciones en Google Cloud Platform. Cloud Functions es un entorno de
ejecución completamente sin servidor o Functions as a Service, FAS. Ejecuta su código en respuesta a los
eventos ya sea que ocurran una vez al día o varias veces por segundo. Google escala los recursos según sea
necesario, pero usted solo paga por el servicio mientras se ejecuta su código. ¿Cuál es la diferencia entre
App Engine y Cloud Functions? Normalmente, App Engine se usa para aplicaciones web de larga duración
que pueden escalarse automáticamente a millones, a miles de millones de usuarios. Las funciones de la
nube se utilizan para el código que se activa mediante un evento, como un nuevo archivo que llega al
almacenamiento en la nube. La forma más rápida de levantar y cambiar sus cargas de datos es
aprovisionando una máquina virtual y ejecutando su código. Experimentará con esto más adelante
cuando ejecute trabajos de Spark ML en Cloud Dataproc, lo que hace girar las instancias de Compute
Engine para su clúster. La mayoría de las aplicaciones necesitan una base de datos de algún tipo. Si ha
creado una aplicación en la nube, puede instalar y ejecutar su propia base de datos en una máquina virtual
en Compute Engine. Simplemente inicie la máquina virtual, instale su motor de base de datos y
configúrelo como en un centro de datos. Alternativamente, puede utilizar los servicios de almacenamiento
y la base de datos totalmente administrados de Google. ¿Qué todo esto? Bigtable, Cloud Storage, Cloud
SQL, Spanner, Datastore, todo lo que tienen en común es que reducen el trabajo necesario para almacenar
diferentes tipos de datos. GCP ofrece bases de datos relacionales y no relacionales y almacenamiento de
objetos en todo el mundo. Aprenderás más sobre esto más adelante en este curso. GCP también ofrece
servicios de Big Data y aprendizaje automático totalmente gestionados. Al igual que con los servicios de
almacenamiento y bases de datos, puede crear e implementar estos servicios usted mismo. Pero, ¿por qué
administrar la infraestructura para el cálculo y el almacenamiento donde puede ser totalmente
administrada por Google Cloud? Aquí hay una lista completa de big data y productos de ML organizados
por donde probablemente los encontrará en una carga de trabajo de procesamiento de datos típica. A la
izquierda, verá la base donde se almacenan los datos sin procesar. Si sus datos aún no están almacenados
en GCP, puede ingerirlos utilizando las herramientas que verá a continuación. Una vez que sus datos
están en GCP, puede analizarlos utilizando las herramientas en la tercera columna y ejecutar el
aprendizaje de la máquina con las herramientas en la cuarta columna. La última columna es cómo puede
proporcionar sus datos y conocimientos de LD a sus usuarios.
Ahora es el momento de explorar algunas soluciones geniales de Big Data y Machine Learning que se han
creado con Google Cloud. Luego, tendrá la oportunidad de encontrar un caso de uso y explorarlo en su
propia actividad. Keller Williams es una empresa inmobiliaria estadounidense. Keller Williams usa
AutoML Vision para reconocer automáticamente las características específicas de las casas, ya que esta
casa tiene un estante para libros incorporado. Esto ayuda a los agentes a que las casas se enumeren más
rápidamente y los compradores encuentran casas que satisfacen sus necesidades. Neil Dholakia, director
de productos de Keller Williams, dice que al capacitar a un modelo de aprendizaje automático para
reconocer elementos comunes de muebles y arquitectura, los clientes pueden buscar automáticamente en
las fotos de las listas de inicio para características específicas, como encimeras de granito o incluso estilos
más generales como, "Mostrar Me casas modernas ". Esta aplicación de aprendizaje automático permite a
los agentes de bienes raíces de Keller Williams caminar rápidamente por una casa y grabar un video, y
usar las capacidades de detección de objetos de AutoML Vision para encontrar y etiquetar aspectos clave
de la casa en los que los clientes podrían querer buscar. Un gran beneficio para su organización es que ya
tenían muchas imágenes y videos existentes de visitas a domicilio. Simplemente los introdujeron en el
modelo preconstruido de AutoML Vision y lo personalizaron, todo sin escribir una línea de código.
Aprenderá más sobre AutoML Vision y practicará la creación de modelos de aprendizaje automático más
adelante en este curso. Ocado, el supermercado de abarrotes en línea del Reino Unido, solo usó el
aprendizaje automático para enviar automáticamente los correos electrónicos al departamento que los
necesitaba para manejarlos. Esto evita varias rondas de lectura y clasificación de esos correos
electrónicos. Con su proceso anterior, todos los correos se dirigieron a un buzón central donde se leyó el
correo electrónico, y luego se enrutan a la persona o departamento que podría manejarlo.
Desafortunadamente, el buzón central con alguien que lee todos los correos electrónicos, no se puede
escalar. Esto llevó a largos retrasos y mala experiencia de usuario. Así que Ocado utilizó el aprendizaje
automático, específicamente la capacidad de leer un correo electrónico, procesar un lenguaje natural,
descubrir el sentimiento del cliente y de qué se trataba el mensaje para que pudieran enrutarlo de forma
inmediata y automática. Un último caso de uso. Kewpie fabrica alimentos para bebés. En este caso, la
calidad no es necesariamente una cuestión de seguridad, porque la comida en sí es segura. Pero si la
comida para bebés está descolorida, tiende a preocupar mucho a los padres. Así que Kewpie se dirigió a
Google y a nuestro socio BrainPad para crear una solución que aproveche el reconocimiento de imágenes
para detectar cubos de papa de baja calidad o descoloridos. El algoritmo de aprendizaje automático les
permitió liberar a las personas del trabajo agotador de la inspección y se centró en otro trabajo más
importante.
Ahora es tu turno. Una de las mejores maneras de inspirar y llevar a su equipo y proyectos a la nube, es
mostrar a sus partes interesadas ejemplos de su industria, ejemplos en los que alguien ya ha logrado crear
una solución. Para esta actividad, vaya a [Link]/customers y desplácese hacia abajo. Para
productos y soluciones, filtre en análisis de big data y también en aprendizaje automático. Seleccione un
caso de uso del cliente que le interese, luego responda estas tres preguntas. Número uno, ¿cuáles fueron
las barreras o los desafíos que enfrentó el cliente? Los retos son importantes, quieres entender lo que
eran. Segundo, ¿cómo se resolvieron estos desafíos con una solución en la nube? ¿Qué productos
utilizaron? Tres, ¿cuál fue el impacto en el negocio? Tómese un momento para completar la actividad y
luego vuelva al video.
1:19
Para nuestro ejemplo, elegimos GO-JEK, porque usan una solución de ingeniería de datos que se adapta
bien a los temas que vamos a cubrir como parte de este curso. GO-JEK es una empresa con sede en
Indonesia que ofrece viajes en motocicleta compartidos, trae bienes y brinda una amplia variedad de otros
servicios para más de dos millones de familias en 50 ciudades de Indonesia. Su aplicación tiene más de 77
millones de descargas y están conectadas con más de 150,000 comerciantes que venden a través de su
plataforma de entrega. Si está interesado en los datos de SIG, tienen más de un millón de conductores que
entregan productos y ofrecen recorridos en 50 ciudades y GO-JEK obtiene datos censurados de todos
estos controladores. Entonces, GO-JEK gestiona más de cinco terabytes por día de datos para el análisis.
El Director de Tecnología, el CTO, Ajey Gore, proporciona esta estadística significativa. Por ejemplo,
hacemos ping a todos nuestros controladores cada 10 segundos. Lo que significa que seis millones de
pings por minuto y ocho mil millones de pings por día, es Gore quien está diciendo esto. Si también
observa la escala y el número de interacciones de nuestros clientes, generamos entre cuatro terabytes y
cinco terabytes de datos cada día. Necesitamos aprovechar estos datos para indicar a nuestros
conductores dónde está más fuerte la demanda de los clientes y cómo llegar allí. Con el éxito de su servicio
de viaje en motocicleta a pedido, GO-JEK enfrenta los desafíos cuando busca escalar su plataforma de big
data existente. ¿Qué retos? El equipo de administración declaró que la mayoría de los informes se
producen un día después, por lo que no pudimos identificar los problemas que estaban ocurriendo lo
antes posible. GO-JEK eligió Google Cloud Platform y migró las tuberías de datos a GCP, para que
pudieran obtener un alto rendimiento con un mínimo mantenimiento diario. Su equipo de ingeniería de
datos utiliza Cloud Dataflow para el procesamiento de datos en tiempo real y Google Big Query para
obtener información empresarial en tiempo real. El final de la arquitectura se ve así. Primero, ingieren
datos de su aplicación móvil en línea y dispositivos de IoT en vehículos como el rastreo de GPS para
entregas. Ingieren estos datos en Cloud PubSub. Luego, los datos se incorporan a Cloud Dataflow para su
procesamiento y una variedad de otras fuentes de datos se utilizan para enriquecer los datos de este
evento. Finalmente, una vez que Dataflow ha realizado el procesamiento, Dataflow transmite esos datos a
BigQuery y BigQuery, en este caso se utiliza como un almacén de datos para almacenar los datos. ¿Cuál es
el impacto del negocio? Este es un ejemplo de uno de los problemas que resolvió el equipo de GO-JEK. La
pregunta era, ¿cómo podían saber rápidamente qué ubicaciones tenían demasiados controladores o muy
pocos? Muy pocos conductores para satisfacer la demanda de esa área. Para resolver este problema, ¿qué
necesita hacer el equipo? Número uno, necesitaban verificar la demanda de reservas por parte del cliente
contra el suministro de conductores y hacer esto en tiempo real. Luego, el equipo necesitó identificar
quiénes son estos conductores y notificarles que redirijan a áreas de mayor demanda. Cómo lograron esto,
fue mediante la creación de un flujo de datos de eventos de transmisión mediante Cloud Dataflow. Las
ubicaciones de los controladores harían ping para desplegar una subpista cada 30 segundos y estas
ubicaciones irían a Dataflow para su procesamiento. Los datos para la canalización agregan los pings de
suministro de los controladores contra las solicitudes de reservaciones y luego se conectan al sistema de
notificación GO-JEK para alertar a los conductores. Desde el punto de vista de la tecnología, el sistema
necesita manejar un alto rendimiento de mensajes arbitrariamente y escalar hacia arriba y hacia abajo
para procesar. Cloud Dataflow gestiona automáticamente una serie de trabajadores, procesando la tubería
para satisfacer la demanda. El equipo de GO-JEK puede entonces visualizar y resaltar las áreas de
desajuste entre la oferta y la demanda para los informes de gestión, como puede ver en este ejemplo aquí.
Los puntos verdes, los pequeños puntos verdes, representan los jinetes y las nuevas solicitudes de reserva,
y los puntos rojos, los pequeños puntos rojos, esos son los conductores, por lo que tiene jinetes en los
puntos verdes y los conductores en los pequeños puntos rojos. Luego ve las áreas que el sistema ha
identificado como la mayor falta de coincidencia de oferta y demanda, esas áreas se resaltan en rojo como
la estación de tren que tiene muchas solicitudes de reserva, pero no hay suficientes conductores. El equipo
ahora puede monitorear activamente y asegurarse de que están enviando conductores a las áreas de
mayor demanda, lo que ch significa tiempos de reserva más rápidos para los pasajeros y más ferias para
los conductores.
Hasta ahora, ha visto la infraestructura, el software y los clientes que ya están utilizando GCP. Pero el
factor más crítico para el éxito de sus futuros proyectos de Big Data y ML es su propio equipo. La gente y
las habilidades básicas requeridas, harán o desharán su próxima innovación. Un error común que
cometen las empresas es que salen y contratan a 10 científicos de aprendizaje de máquinas de doctorado y
esperan que ocurra la magia. Lo veo mucho con las empresas que son nuevas en la construcción de
equipos de ciencia de datos y de ML. Se centran en los investigadores de ML, y se olvidan de toda la ayuda
y orientación que los investigadores de ML necesitarán. La realidad, como mi colega Cassie ha señalado
en una publicación de blog, se parece más a esto. Necesita ingenieros de datos para construir las tuberías
y obtener datos limpios. Tomadores de decisiones, para decidir qué tan profundo desea invertir en una
oportunidad basada en datos mientras sopesa los beneficios para la organización. Analistas, para explorar
los datos en busca de perspectivas y relaciones potenciales que podrían ser útiles como características en
un modelo de aprendizaje automático. Estadístico, para ayudar a que sus decisiones inspiradas en datos
se conviertan en verdaderas decisiones impulsadas por datos, con su rigor agregado. Ingenieros de
aprendizaje automático aplicado, que tienen experiencia en el mundo real construyendo modelos de
aprendizaje automático de producción a partir de la mejor y más reciente información e investigación
realizada por los investigadores. Los científicos de datos, que tienen el dominio del análisis, las
estadísticas y el aprendizaje automático. Gerentes de análisis para liderar el equipo. Los científicos
sociales y los especialistas en ética para garantizar que el impacto cuantitativo esté ahí para su proyecto y,
es lo correcto. Como escribí en una publicación de blog sobre este tema, está vinculado a continuación,
una sola persona puede tener una combinación de estos roles, pero esto depende del tamaño de su
organización. El tamaño de su equipo es uno de los mayores impulsores en cuanto a si debe contratar para
un conjunto de habilidades específicas, desarrollar habilidades internas o combinar las dos. ¿Recuerdas
estos grandes desafíos de datos? ¿Puedes ver cómo los diferentes roles se asignarían a esto? Dentro de la
capacitación de Google Cloud, mi equipo y yo hemos pensado en los diferentes tipos de equipos y roles de
ciencia de la información que utilizan Google Cloud, de modo que podamos adaptar mejor nuestros datos
en cursos y laboratorios de ML. Uno de los principales desafíos a los que nos enfrentamos es cómo los
diferentes tipos de usuarios se involucran con nuestros grandes datos de GCP y nuestros productos de
inteligencia artificial. Usaremos algunas personas en este curso. Sus antecedentes, objetivos y desafíos
pueden ser similares a los suyos. Encontrémonos con ellos ahora, y los verás más tarde. Brittany y Theo
lideran su equipo de ingeniería de datos en la administración de su clúster Hadoop para las tuberías de
datos de la organización y los trabajos informáticos. Su organización fue una de las primeras en adoptar
Hadoop para la computación distribuida en 2007, y con el tiempo han creado puestos de trabajo en
Hadoop. El trabajo de Brittany y Theo es garantizar activamente que todos los trabajos de Hadoop se
ejecuten y que el clúster esté bien mantenido. Dicen: "Nuestro CTO ha desafiado a nuestro equipo de
ingeniería de datos a encontrar maneras en que podamos gastar menos en la gestión de nuestro clúster
local. En este momento, solo queremos mostrar sus opciones que no requieren ningún cambio de código
en nuestros más de 100 Hadoop trabajos." Brittany y Theo son ingenieros de datos que administran la
plataforma de datos de una empresa y se centran en reducir la carga de mantenimiento. Jacob es un
analista de datos que tiene experiencia en la construcción y consulta de su base de datos transaccional y
de informes de MySQL. A medida que la empresa crece, las tablas de informes en su RDBMS ya están
comenzando a disminuir. Los usuarios reportan largos tiempos de carga de consultas y paneles. Quiere
encontrar un camino fácil para escalar los informes de datos de sus compañías y no tener que administrar
otro sistema de datos, ya que los datos necesitan crecer. Jacob, es un analista de datos que desea poder
obtener información de los datos y difundirlos con la menor fricción posible. Rebecca es un ingeniero de
datos, cuya compañía se especializa en aprovechar datos de Internet of Things o dispositivos de IoT. Ella
dice: "Tengo muchas ganas de diseñar nuestros canales de datos para el futuro. Para nosotros, eso
significa muchos y muchos datos de transmisión desde nuestros dispositivos IoT con baja latencia". El
líder de su equipo le ha pedido que elabore un plan para manejar el crecimiento esperado de tenax en los
volúmenes de datos de transmisión este año. Quiere probar en el futuro las tuberías de sus equipos, pero
no quiere pasar horas escalando el hardware manualmente a medida que cambia el volumen de la
transmisión. Además, el equipo de partes interesadas de su negocio desea obtener información de todos
los dispositivos de IoT en el campo en sus paneles, con un retraso mínimo. Vishal dice: "Presenté a mi
equipo el valor que el aprendizaje automático puede agregar, y tengo que comprar para construir un
prototipo. Pero ahora tengo que construir un prototipo. ¿Cuáles son algunas de las maneras más fáciles
que puedo ver? ¿Si el aprendizaje automático es factible para mis datos? Vishal es un ingeniero de
aprendizaje automático aplicado, con experiencia en la construcción de modelos de aprendizaje
automático en TensorFlow y Keras. Su equipo está creciendo rápidamente y, a menudo, su liderazgo le
pide que evalúe la viabilidad del aprendizaje automático para una amplia variedad de proyectos. El hace
no tiene tiempo para entrenar y probar todas las ideas con modelos personalizados. Él quiere capacitar a
sus analistas de datos y equipos de ingeniería de datos, enseñándoles aprendizaje automático. ¿Estas
personas te parecen familiares a tu rol y a tu equipo? A continuación, aprenderemos más sobre los
enfoques y soluciones de Google Cloud Platform, Big Data y Machine Learning, de modo que podamos
abordar cada uno de estos desafíos.
--Prueba
Hola soy lak Bienvenido al tercer módulo de nuestro curso de Fundamentos de Big Data y Aprendizaje
Automático. Este módulo es sobre cómo realizar recomendaciones de productos utilizando Cloud SQL y
Apache Spark. Cubriremos las recomendaciones de productos, que es probablemente el problema de
aprendizaje automático más común empleado por las empresas. En el camino, también veremos dos
productos de Google Cloud; Cloud SQL, que es una base de datos relacional administrada, y Cloud
Dataproc, que es un entorno administrado en el que puede ejecutar Apache Spark. Gestionado, ¿qué se
gestiona? Quedarse. Empezaremos hablando de sistemas de recomendación. Qué son, qué aplicaciones de
negocios pueden utilizar y consideran un escenario típico. En este caso, se trata de recomendaciones de
productos que utilizan el aprendizaje automático para recomendar casas de alquiler. Digamos que nuestro
equipo de ciencia de datos está familiarizado con Hadoop y Spark, y ya han creado un sistema de
recomendación. Nuestra misión, que hemos elegido aceptar, es migrar este sistema de recomendaciones
existente que nuestro equipo ha construido desde el clúster local a la nube. Nos fijamos en cómo migraría
las aplicaciones locales a la plataforma Google Cloud. En particular, ¿por qué querría migrar una
aplicación local a la plataforma Google Cloud? Tal vez sea para evitar los desafíos asociados con la
utilización y el ajuste de los clústeres locales. Pero también, cuando mueves una aplicación local a Google
Cloud, también estás pasando del almacenamiento dedicado al almacenamiento en clúster fuera de
Google Cloud Storage, y hablaremos sobre por qué. Comencemos con donde encuentre sistemas de
recomendación que agreguen valor a las empresas. ¿Dónde has visto sistemas de recomendación antes?
Un lugar común que viene a la mente son las recomendaciones de productos de comercio electrónico. Un
modelo aprende lo que le gusta y no le gusta, lo que compra y no compra, y luego comienza a sugerir
productos similares que tal vez no haya descubierto por sí mismo. Luego, puede ayudar a informar el
modelo explícitamente protagonizando, votando arriba o votando su propia calificación personal de un
artículo, o tal vez agregando el artículo al carrito de compras. Note como lo dije explícitamente. Un
modelo también puede aprender implícitamente de sus preferencias. ¿Puede pensar en algunos puntos de
datos que un modelo de comercio electrónico podría aprender sin que usted califique explícitamente los
elementos? Tal vez, el tiempo invertido en el sitio web de productos en particular, tal vez elementos que
haya visto por última vez, tal vez desde dónde lo navega, en qué dispositivo se encuentra y, si lo ha
permitido, personalización geográfica también, cosas que las personas que Vive en tu barrio o tu país
tiende a comprar. Probablemente haya visto motores de recomendación en Netflix, Amazon, etc. También
es lo que Facebook usa para publicar publicaciones en su suministro de noticias, y lo que Google usa para
personalizar sus resultados de búsqueda. Las recomendaciones de productos son la primera aplicación de
aprendizaje automático que el público reconoce. Como en "¿Cómo sabe Netflix que me gustaría esta
película?" La población en general desconocía las aplicaciones de aprendizaje automático como el
diagnóstico médico. Las tarifas de nuestras aerolíneas detectan el registro ilegal o el ajedrez hasta que
llega a las recomendaciones de productos en las que, si te gusta x, también te gustará y, y eso sintoniza al
público con la idea del aprendizaje automático. Un buen ejemplo de un sistema de recomendación es la
respuesta inteligente en Gmail. Este es un modelo de aprendizaje automático que recomienda tres
respuestas posibles a sus correos electrónicos. Otra es cómo Google Photos recomienda fotos similares o
grupos de fotos similares para que pueda agregarlas a un álbum y ordenar una versión impresa. Otro
ejemplo es cómo Google Maps ahora sirve recomendaciones de restaurantes personalizados. Cuando
exploras un área nueva, la aplicación proporciona a los usuarios una pestaña "Para ti", que enumera los
restaurantes y lugares que cree que disfrutarás según tu historial. Por ejemplo, aquí puede ver que Good
Barbecue es una coincidencia del 95 por ciento para mí, así como una recomendación para un nuevo
bistro que está en tendencia. Un aspecto central de un sistema de recomendación es que necesita
capacitarlo y servirlo a escala. Piense en el sistema de aprendizaje automático que impulsa las
recomendaciones de YouTube para los usuarios. Identifica las cosas que a un usuario le pueden gustar en
función de lo que han visto en el pasado y les brinda estas recomendaciones de video, como estas
recomendaciones de video que obtuve cuando ingresé a YouTube. La mayoría de las recomendaciones
aquí son sobre la programación de Tensor Flow o el aprendizaje automático, que supongo dice mucho
sobre los videos que me gustan. Estas recomendaciones son relevantes y útiles para mí. En las siguientes
lecciones, implementará su propio sistema de recomendaciones para alquileres de viviendas.
Ahora que ha visto cómo se usan los sistemas de recomendación en Google y en otras empresas, es hora
de analizar el escenario específico que usaremos en el próximo laboratorio. Las piezas centrales de un
sistema de recomendación son: Los datos, el modelo y la infraestructura para capacitar y brindar
recomendaciones a los usuarios. Nuestro conjunto de datos para este escenario será el alquiler de
viviendas que queremos recomendar a nuestros usuarios en función de sus preferencias. Usaremos un
modelo de aprendizaje automático para hacer estas recomendaciones. Un principio básico del aprendizaje
automático es permitir que el modelo aprenda por sí mismo cuál es la relación entre los datos que tiene
como preferencias de usuario y características de alojamiento, y los datos que no tiene, como la
calificación de un usuario en una propiedad que Aún no he visto. ¿Qué valoraría este usuario a esta
propiedad si se la mostramos? No escribirás lógica personalizada. Lógica como, si la casa es una casa de
playa y la temporada es verano y al usuario le gustan las casas acogedoras, entonces la casa número 22 es
lo que recomendamos. ¿Puede pensar en los problemas si usamos esa lógica en lugar de dejar que el
modelo lo resuelva? ¿Qué pasaría si hubiera muchos tipos diferentes de casas en la playa, con todo tipo de
características diferentes, como el número de habitaciones, ubicaciones, servicios, que te den la imagen?
Qué pasa si tienes diferentes tipos de usuarios. A algunos usuarios les gustaría ir a las casas de playa en
verano y a otros les gustaría la temporada más corta. La lógica de codificación rígida para todas estas
características y diferentes tipos de segmentos de usuarios no es escalable, y se supone que siempre
sabemos la respuesta correcta para cada escenario. Ilustremos este punto con un ejemplo. Tome la
búsqueda de Google, digamos que va a Google y busca gigantes. ¿Qué debemos mostrarle como resultados
para que sea más relevante para usted? Si estás en California, ¿deberíamos mostrar los resultados para el
equipo de béisbol de San Francisco y los juegos locales cercanos? ¿Qué pasa si estás en Nueva York?
¿Deberíamos adaptar los resultados para mostrar al equipo de fútbol de los Gigantes de Nueva York en su
lugar, y deberíamos escribir esto como una regla? Bueno, hasta hace unos años, así es exactamente como
funciona la búsqueda de Google. Había un montón de reglas que formaban parte del código base del
motor de búsqueda para decidir qué equipo deportivo mostraría a un usuario cuando buscaban gigantes.
La consulta es gigantes y el usuario se encuentra en el Área de la Bahía, muestra los resultados sobre los
Gigantes de San Francisco. Si el usuario está en el área de Nueva York, muéstrele los resultados sobre los
Gigantes de Nueva York. Si están en otro lugar, muéstrales resultados sobre personas altas. Solo imagine
cuántos, si entonces o declaraciones de caso sería esto, y qué tan difícil sería mantener, y esto es solo para
una consulta. Multiplique esto por la gran variedad de consultas que hacen las personas, de dónde las
hacen, en qué dispositivo están y qué tipo de intereses tienen las diferentes personas, y puede imaginarse
qué tan compleja se volvería una base de código. El código base comienza a volverse difícil de manejar
porque las reglas codificadas a mano son realmente difíciles de mantener. Así que aquí es donde el
aprendizaje automático entra en juego. El aprendizaje automático se escala mucho mejor porque no
requiere reglas rígidas. Todo está automatizado. Aprender de los datos de forma automatizada, eso es lo
que es el aprendizaje automático. Nuestro conjunto de datos en este caso es que sabemos históricamente
cuando las personas buscaron gigantes y les mostramos un montón de enlaces, ¿en cuál de esos enlaces
hizo clic la gente? Como lo sabemos, tenemos un conjunto de datos de un término de consulta y los
enlaces que les gustaron a las personas. ¿Por qué no podemos entrenar un modelo de aprendizaje
automático para proporcionar básicamente una clasificación de estos enlaces? Eso es exactamente lo que
Google hizo internamente con un modelo de aprendizaje profundo llamado Rank Brain. Después de
lanzarlo, la calidad de los resultados de nuestro ranking de búsqueda mejoró dramáticamente, con la
señal de Rank Brain convirtiéndose en uno de los tres principales para influir en la clasificación de los
diferentes resultados de los enlaces. Si estás interesado, te proporcionaré un enlace donde puedes leer
más sobre él. Revisaremos el aprendizaje automático con mayor profundidad en cada uno de los módulos
de este curso. Pero por ahora, solo recuerde que el aprendizaje automático es esta idea que queremos
enseñar a la computadora usando ejemplos, no con reglas. Cualquier aplicación comercial en la que tenga
esas declaraciones largas de casos o interruptores o si la lógica se codifica manualmente, y tiene un
historial de datos con buenas etiquetas, es decir, datos para los que sabe una buena respuesta o una mala
respuesta, un historial de buenos datos con etiquetas , cualquier aplicación de este tipo es una posible
aplicación para el aprendizaje automático.
Entonces, ¿cómo funcionan las recomendaciones de vivienda en nuestro sistema? Primero, debemos
ingerir las calificaciones de todas las casas que ya han hecho nuestros usuarios cuando les mostramos
casas específicas. Así que tenemos que ir a un inventario de alquileres e ingerir las calificaciones de las
casas. Estas clasificaciones pueden provenir de clasificaciones explícitas, como le mostramos al usuario la
casa en el pasado y han hecho clic en cuatro estrellas después de ver los detalles de la casa, o las
calificaciones provienen de calificaciones implícitas. Tal vez hayan pasado mucho tiempo mirando el sitio
web correspondiente a esta propiedad. Luego, entrenaremos un modelo de aprendizaje automático para
predecir la calificación de un usuario de cada casa que actualmente tenemos en nuestra base de datos de
listados. Luego, elegiremos las cinco mejores casas que aún no han visto. Las personas que no conocen los
motores de recomendación de alguna manera piensan que un automóvil aparece en su cuenta de
Facebook porque leen un artículo de revisión de un automóvil. Dicen: "Oh, estaba leyendo este artículo de
revisión y luego seguí viendo los autos en mi feed de Facebook". Ese no es el caso. Leer el artículo costó la
calificación de todos los autos que subieron y las calificaciones de otros artículos que no son autos para
que permanezcan relativamente iguales. Esto causó que el auto de más alto rango se ubicara entre los
cinco primeros. Así que siempre hubo una calificación para el coche. El auto siempre estuvo ahí, pero su
calificación fue simplemente más baja antes de que leyeran el artículo en cuestión. Entonces, ¿cómo
predeciríamos la calificación de un usuario de una casa, en particular, si no la hubieran visto antes? El
modelo se basa en dos cosas. Se basa en sus otras calificaciones, lo que ha calificado en otras casas y la
calificación de otras personas de esta casa en particular. Un modelo particularmente simple podría ser
mirar a todos los usuarios que calificaron esta casa en particular y encontrar a los tres usuarios en su lista
que más se parecen a usted, tal vez, ellos viven en su país, tal vez tengan la misma edad, tal vez fueron a en
la misma universidad, encuentra a los tres usuarios de la lista que más te gusten. Entonces, la predicción
es el promedio de las calificaciones de esos tres usuarios. Este no es un gran modelo, por supuesto. Es
demasiado fácil de jugar. Piense en lo que sucede si tres personas se juntan y califican una casa, una casa
que a nadie más le importa. Así que solo hay tres calificaciones para esta casa. Así que los tres usuarios
más cercanos serán estas tres personas. Así que para casas dispersas, es muy fácil de jugar. Pero esta idea
de utilizar las calificaciones de usuarios de una casa en particular y de usuarios como usted ayuda a
transmitir la premisa básica de cómo funcionan los modelos de recomendación. Entonces, ¿dónde está
aprendiendo la máquina aquí? ¿Dónde está el aprendizaje? El modelo tendría que averiguar cómo
encontrar a los usuarios que más se parecen a usted. Cuántos usos hay que tener en cuenta. Tres usuarios,
cinco usuarios, siete usuarios, cuántos, y cómo ponderar los diferentes factores, como la popularidad
general de los elementos que tiene en común y así sucesivamente. Esto se puede hacer viendo qué
parámetros ayudan a predecir si intencionalmente retiene las calificaciones. Así que podemos tener miles
de artículos y solo 2-3 revisiones por artículo. Lo más probable es que esos revisores no tengan nada en
común con el usuario para el que deseamos una calificación. Por lo tanto, debido a que esta matriz de
calificación es extremadamente dispersa, necesitamos agrupar elementos y usuarios. Para poner esto de
una manera más intuitiva, imagina que todos tus amigos conducen vehículos utilitarios deportivos (SUV,
Sport Utility Vehicles) y lees un artículo sobre Porsche. El auto que aparece en tu feed podría ser un
Porsche SUV, incluso si el artículo fuera sobre los autos de Porsche y todos tus amigos manejen un Toyota
SUV. El modelo de aprendizaje automático está imputando una calificación para un Porsche SUV que es
bastante alta, aunque ninguno de tus amigos lo haya calificado. Entonces, el modelo de aprendizaje
automático es, en esencia, preguntar quién es este usuario. En segundo lugar, ¿es esta subjetivamente una
casa que las personas tienden a calificar alto? La calificación pronosticada es una combinación de ambos
factores. A fin de cuentas, la calificación de una casa para un usuario particular será el promedio de las
calificaciones de los usuarios como este usuario, pero está calibrada con la calidad del artículo en sí. Ahora
que entendemos el problema y el enfoque, debemos abordar la última pregunta, la cuestión de la
infraestructura. ¿Con qué frecuencia y dónde calculará las calificaciones pronosticadas, y una vez que las
tenga, una vez que haya calculado estas calificaciones, dónde las almacenará? ¿Qué piensas? ¿Con qué
frecuencia y dónde calculará las calificaciones previstas? No es que las recomendaciones de alquiler deban
actualizarse cada vez que algunos usuarios califiquen una casa. No necesitamos actualizar las
recomendaciones de alquiler cada vez que aparece una nueva calificación en nuestro sistema.
Probablemente sea suficiente si actualizamos las casas recomendadas para los usuarios una vez al día, tal
vez incluso una vez a la semana. En otras palabras, esto no necesita ser transmitido. Podría ser por lotes.
Por otro lado, probablemente tendremos miles de casas y millones de usuarios. Entonces, probablemente
sea mejor que calculamos la calificación que cada usuario otorgará a cada casa, hacemos ese cálculo de
manera escalable. No queremos hacerlo en una sola máquina, queremos hacerlo en una Manera tolerante
a fallas que puede escalar a grandes conjuntos de datos. Por lo tanto, una solución típica para el cálculo
que tiene que suceder en grandes conjuntos de datos de forma tolerante a fallas es hacerlo en una
plataforma de big data como Apache Hadoop. Finalmente, ¿dónde almacenará las calificaciones
calculadas? ¿Por qué querrías almacenarlos? Bueno, probablemente queremos potenciar una aplicación
web con estas recomendaciones y no queremos calcular las recomendaciones cuando el usuario lee una
página web. Queremos calcular estas recomendaciones, como dijimos, es un trabajo por lotes. Así que una
vez al día, una vez a la semana, lo calculamos previamente. Luego, cuando el usuario inicia sesión,
queremos mostrarle a ese usuario las recomendaciones que precomputamos específicamente para ellos.
Así que necesitamos una forma transaccional para almacenar las predicciones. ¿Por qué transaccional? De
modo que mientras el usuario está leyendo estas predicciones, también podemos actualizar la tabla de
predicciones. Suponiendo que hay cinco predicciones para cada usuario y tenemos un millón de usuarios,
es una tabla de solo 5 millones de filas. Es lo suficientemente pequeño y compacto que una solución típica
para esto sería almacenar los datos en un sistema de administración de base de datos relacional, un
RDBMS como mi SQL.
Así que decidimos utilizar plataformas de big data como Hadoop y luego RDBMS como MySQL para
resolver el problema de las recomendaciones de vivienda. Estas son ambas tecnologías de código abierto.
Probablemente tenga clusters de Hadoop y bases de datos MySQL que se ejecutan en las instalaciones. Así
que supongamos que su equipo ya tiene este sistema de recomendaciones funcionando en la empresa y
vea cómo migrarlo de las instalaciones a Google Cloud Platform. Por supuesto, solo desea hacerlo si la
migración puede agregar valor. Así que vamos a ver eso también. Para un modelo de recomendación de
vivienda, digamos que nuestro equipo de ciencia de datos ya tiene un modelo de trabajo en las
instalaciones usando el trabajo de SparkML en su grupo de Hadoop. Están interesados en la escala y la
flexibilidad de GCP, y quieren hacer una migración similar de sus trabajos existentes de SparkML desde
locales, y quieren hacerlo como un proyecto piloto. Como se explicó en la lección anterior, podemos salir
adelante con la computación de las calificaciones pronosticadas una vez al día. No necesitamos calcular
las recomendaciones en tiempo real. Así que el procesamiento por lotes de Hadoop es suficiente. Aquí,
usaremos SparkML, pero en lugar de hacerlo en las instalaciones, ejecutaremos el trabajo de aprendizaje
automático en Cloud Dataproc y almacenaremos las calificaciones en un RDBMS en Cloud SQL, porque
este es un conjunto de datos relativamente pequeño de cinco recomendaciones. para cada usuario Así que
esto es lo que practicarás en tu primer laboratorio. Por cierto, esta es la razón por la que la respuesta
inteligente en Gmail es tan sorprendente. A diferencia de las recomendaciones de alojamiento, las
recomendaciones de Spark tienen que hacerse en tiempo real, cuando aparece un nuevo correo
electrónico en su buzón. No hace falta decir que Gmail está haciendo algo mucho más sofisticado de lo que
estamos hablando aquí. Así es como decidimos usar Cloud SQL entre los otros productos de big data
disponibles para almacenar nuestras calificaciones. Esta es una buena referencia para seguir en función
de su patrón de acceso de almacenamiento. Cubriremos las soluciones en sus otros escenarios en este
curso, pero brevemente, use Cloud Storage como un sistema de archivos global. Use Cloud SQL como
RDBMS como un sistema de administración de base de datos relacional para los datos relacionales
transaccionales a los que accede a través de SQL. Use Datastore como una base de datos transaccional
orientada a objetos NoSQL. Utilice Bigtable para datos de solo apéndice de NoSQL de alto rendimiento.
Por lo tanto, no transacciones datos de sólo anexos. Por lo tanto, un caso de uso típico de BigTable es la
información del sensor para dispositivos conectados, por ejemplo. Utilice BigQuery como un almacén de
datos SQL para satisfacer todas sus necesidades analíticas. Así que aquí queríamos una base de datos
transaccional y esperamos tener volúmenes de datos en gigabytes o menos, y por lo tanto, en la nube SQL.
Si eres un aprendiz más visual, este es otro buen mapa para visualizar dónde almacenar tus datos en GCP.
Si sus datos no están estructurados, como imágenes o audio, use Cloud Storage. Si sus datos están
estructurados y necesita transacciones, use Cloud SQL o Cloud Datastore dependiendo de si quiere que su
patrón de acceso sea SQL o NoSQL, y por NoSQL nos referimos a un par clave-valor. En otras palabras,
intentará buscar datos basados en una sola clave, use Datastore si buscaría datos utilizando SQL use
Cloud SQL. Cloud SQL generalmente se encuentra en unos pocos gigabytes. Por lo tanto, si desea una base
de datos transaccional que sea horizontalmente escalable para poder tratar con datos de más de unos
pocos gigabytes, o si necesita múltiples bases de datos para que se distribuyan globalmente, utilice Cloud
Spanner. Así que otra forma de decirlo como si una base de datos fuera suficiente usa Cloud SQL. Si
necesita varias bases de datos, ya sea porque tiene muchos datos o porque su aplicación necesita ser
transaccional en diferentes continentes, use Cloud Spanner. Si sus datos están estructurados y desea
Analytics, considere Bigtable o BigQuery. Use Bigtable si necesita aplicaciones de alto rendimiento en
tiempo real. Utilice BigQuery si desea datos analíticos sobre petabyte a escala. Para nuestro caso de uso de
recomendación de vivienda, queremos almacenar nuestras calificaciones y predicciones en algún lugar.
Este es un conjunto de datos estructurado de las calificaciones de usuarios y casas. Está construido para
una carga de trabajo transaccional, escribe y lee, y una base de datos es suficiente para un conjunto de
datos pequeño y, por lo tanto, elegimos Cloud SQL. Entonces, ¿qué es la nube SQL? Es una base de datos
relacional alojada y administrada por Google en la nube. Cloud SQL admite dos bases de datos de código
abierto; MySQL y Postgres, y otras soluciones de base de datos. En nuestro caso, estaremos usando
MySQL. Una de las ventajas de Cloud SQL es que es familiar. Cloud SQL admite la mayoría de las
declaraciones y funciones de MySQL, incluso los procedimientos almacenados activan y visualizan.
Aporta los beneficios de la economía de la nube en forma de precios flexibles. Usted puede pagar por lo
que usa. ¿A qué nos referimos con eso? GCP gestiona la instancia de MySQL para usted. Esto significa
cosas como copia de seguridad y replicación, está en la nube para que pueda conectarse desde cualquier
lugar. Puede asignarle una dirección IP estática y usar bibliotecas de conectores SQL típicas. Porque está
detrás del firewall de Google es rápido. Puede colocar su instancia de Cloud SQL en la misma región que
sus aplicaciones App Engine o Compute Engine y obtener un gran ancho de banda. Además, obtienes la
seguridad de Google. hacer SQL fuerte reside en los centros de datos de Google seguros. Así que eso cubre
dónde estaremos almacenando las recomendaciones. Pero, ¿cómo vamos a calcular estas
recomendaciones en primer lugar? ¿Dónde estaríamos haciendo el cálculo? Revisemos dónde se han
hecho los cálculos de big data históricamente e incluso hoy. Antes de 2006, big data significaba grandes
bases de datos. El diseño de la base de datos provino de una época en que el almacenamiento era
relativamente barato y el procesamiento era costoso. Por lo tanto, tenía sentido copiar los datos de su
ubicación de almacenamiento al procesador para realizar el procesamiento de los datos, y luego el
resultado se volvería a copiar en el almacenamiento. Alrededor de 2006, el procesamiento distribuido de
big data se hizo práctico con Hadoop. La idea detrás de Hadoop es crear un grupo de computadoras y
procesamiento distribuido aprovechado, HDFS. El Sistema de archivos distribuidos de Hadoop almacenó
los datos en las máquinas del clúster y MapReduce proporcionó el procesamiento distribuido de estos
datos. Todo un ecosistema de software relacionado con Hadoop creció alrededor de Hadoop, incluyendo
Hive, Pig y Spark. Alrededor de 2010, se lanzó BigQuery, que fue el primero de muchos servicios de big
data desarrollados por Google. Alrededor de 2015, Google lanzó Cloud Dataproc, que proporciona un
servicio gestionado para crear clusters de Hadoop y Spark, y administrar las cargas de trabajo de
procesamiento de datos. La otra pieza de nuestro sistema es un software que se ejecuta en Hadoop. El
software en este caso es entrenar un modelo de aprendizaje automático para crear recomendaciones de
vivienda. En este caso utilizamos SparkML, que es parte de ApacheSpark. ApacheSpark es un proyecto de
software de código abierto que proporciona un motor de análisis de alto rendimiento para el
procesamiento de datos por lotes y de transmisión. Spark puede ser hasta 100 veces más rápido que los
trabajos equivalentes de Hadoop porque aprovecha el procesamiento en memoria. Spark también
proporciona un par de abstracciones para tratar con los datos, incluidos los llamados RDD, un conjunto
de datos distribuidos resistentes y DataFrames. Usaremos nuestro trabajo de Spark para las
recomendaciones de alquiler de viviendas. Usaremos nuestro trabajo de Spark para las recomendaciones
de alquiler de viviendas, pero haremos el cálculo en Cloud Dataproc.
Uno de los casos de uso más comunes es ejecutar sus trabajos de Apache Spark en su clúster de Hadoop.
Ahora, hagamos una demostración de cómo crear un nuevo clúster y ejecutar un trabajo de Spark
utilizando Cloud Dataproc, y nuestro objetivo será hacerlo en 10 minutos o menos. Lo que si alguna vez ha
visto usted mismo un clúster de Hadoop local, eso parece ser una gran ganancia para el tiempo y la
eficiencia de configuración de la infraestructura. Empecemos. Todo bien. Aquí estamos en la consola de
Google Cloud Platform. Esto es Cloud Dataproc. La forma de llegar aquí es si abres el menú de
navegación, tengo varios favoritos que he puesto aquí. Pero le mostraré cómo, si se desplaza hacia abajo
en los productos y servicios a big data, verá muchos de los productos que mencionamos hasta ahora.
Dataproc está justo aquí. Si hace clic en ese pin, eso lo traerá hasta aquí, lo que lo ahorra, lo que es un
pequeño y agradable truco de eficiencia. Al pasar por encima del servicio Cloud Dataproc, verá que puede
hacer clic en clústeres, trabajos o flujos de trabajo. Pero si simplemente hace clic en el logotipo, lo llevará
a la página de clusters. Así que aquí lo tenemos. Está en blanco, pizarra en blanco. Entonces, lo primero
que queremos hacer es crear y aprovisionar un clúster de Apache Hadoop en Dataproc. Así que los
detalles de configuración, como cabría esperar, están aquí. Le daremos un gran nombre al cluster.
Estaremos estimando los dígitos de Pi de forma distribuida, lo que se denomina clúster Pi. Aquí puede
elegir qué tipo de disponibilidad es esencialmente la proporción de cuántos nodos maestros desea que n n
nodos de trabajo, por lo que lo mantendremos como estándar. Si desea ajustar el hardware que es su
computadora, las nuevas CPU, puede hacerlo aquí hasta el momento de la grabación con 160 CPU
virtuales y memoria ultra. Vamos a mantener solo el estándar aquí y 15 gigabytes de memoria, 500
gigabytes de disco persistente seguro, estas son todas las configuraciones. Entonces, si está ejecutando un
proyecto piloto para una comparación de manzanas con manzanas, simplemente mapee su misma
infraestructura usando alimentos para sus conglomerados, y la cantidad de nodos que vamos a mantener,
solo hay dos, y lo haremos seguir adelante y haga clic en crear. Mientras ese clúster está girando detrás de
escena, continuaremos y simplemente completaremos un trabajo para comenzar. Así que ya ejecuté un
trabajo anteriormente y puedes decir que ya que no tenía un clúster antes, lo rechacé. Así que vamos a
crear un nuevo trabajo. Entonces, haga clic en enviar trabajo y mantenga la ID del trabajo, o simplemente
llamaremos los dígitos Pi estimados. Región global está bien. Es bueno que tengamos el nombre del
clúster, aunque está girando y todavía lo tiene aquí. Puede enviar un trabajo y ponerlo en cola para que se
ejecute, los tipos de trabajo que no sean un trabajo de Hadoop es un trabajo de Spark. Puede ver los
diferentes tipos de trabajo que puede seleccionar aquí, y ahora definimos la clase Java. Esto se
desencadena con un ejemplo vinculado, pero en realidad se puede ver que hay un montón de otros
ejemplos de Spark que puedes ejecutar, y esencialmente, genera una tonelada de pares de coordenadas x,
y en el círculo unitario o un círculo con una diámetro de uno dentro de un cuadrado, que es el método de
Monte Carlo para estimar el número de dígitos en Pi. Si está interesado, lo vincularé allí, pero
básicamente estamos ejecutando eso y usando los nodos de trabajo de Hadoop para procesarlo en paralelo
masivo y el ejemplo real donde está el archivo jar, lo pegaré en Ahí a partir del ejemplo, y vamos a generar
mil de esos pares xy. Eso es solo un argumento que estaban pasando. Esto es específico para el trabajo que
estamos ejecutando. No siempre ponga mil por sus argumentos a menos que su programa lo requiera, y
seguiremos adelante y lo enviaremos. Ahora, se ejecutará, veamos si ese clúster está listo para usar. Sí,
tenemos la marca de verificación verde aquí. Si quisiéramos, realmente puede hacer clic en el clúster y
obtener una gran cantidad de monitoreo realmente bueno de las métricas que ve aquí. Desde allí, puede
ver los trabajos que se están ejecutando. En este caso, durante los últimos 30 segundos, hemos tenido este
trabajo de estimación de Pi dígitos. Vamos a seguir y supervisar ese trabajo específicamente.
Naturalmente, puede tener múltiples trabajos ejecutándose en un clúster, múltiples clústeres ejecutando
múltiples trabajos, y un auge, obtenemos el resultado de nuestro trabajo. Vemos que comenzó aquí, y si
nos desplazamos lo suficiente, deberíamos darnos una salida de registro, boom. Aquí vamos. En realidad,
hemos enviado la solicitud, y obtenemos el resultado, que es la estimación de Pi justo aquí, y luego el
trabajo está completo. Chispa ha sido detenido. Así que ahora, lo que puede hacer es tener una ejecución
de trabajo exitosa, tardamos 36 segundos y el tiempo para girar el clúster es que la potencia real es que
puede continuar y rechazar ese clúster ahora. Ahora, si quisiera tener un clúster de larga duración porque
tenía datos persistentes, seguro. Hablaremos un poco más adelante acerca de la separación de cómputo y
almacenamiento para tratar de evitar el uso de discos persistentes en clústeres y el uso de Google Cloud
Storage. Pero si no necesitamos este cluster Ya no intentamos persistir ningún dato, ya hemos ejecutado
nuestro cálculo. Es tan simple como hacer clic en el ícono de eliminar y bajar el clúster, no se preocupe
por administrar la infraestructura. Tienes lo que necesitabas de ese trabajo en particular, o si tu trabajo
está hecho, querías enviar más trabajos o volver a ejecutar el mismo trabajo aquí. Sin embargo, utilice
muchos clústeres, independientemente del tamaño de los clústeres, edite los recursos sobre la marcha. La
gran conclusión es que los grupos ahora son lo que llamamos recursos fungibles, son femorales. Los usa
cuando los necesita para enviar sus trabajos, si los necesita más tiempo o si los necesita más cortos, si
necesita más clústeres o menos clústeres, puede administrar esa infraestructura automáticamente aquí a
través de Cloud Dataproc. Eso es en esencia lo que hace. Por lo tanto, mi desafío para usted está dentro de
su laboratorio un poco más adelante cuando esté creando el motor de recomendaciones utilizando Cloud
SQL y Cloud Dataproc, experimente en Cloud Dataproc, observe los registros de cada uno de sus
diferentes trabajos en ejecución, y si está ejecutando cargas de trabajo locales en Hadoop, vea si puede
experimentar con algunos de esos trabajos para pensar en Cloud Dataproc y ver cuál es más eficiente.
Dijimos que hablaríamos sobre los desafíos comunes de Big Data y cómo se abordarán. Uno de los
desafíos más comunes para la gestión de clústeres de Hadoop en las instalaciones es asegurarse de que se
utilicen y ajusten de manera eficiente para todas las cargas de trabajo que sus usuarios les lanzan. Así que
revisemos con nuestro equipo y veamos a qué desafíos se enfrentan al ejecutar el trabajo de Spark ML en
el clúster local. Nuestro equipo tiene un centro de datos local que ejecuta Hadoop representado por el
cuadro azul aquí. En cualquier semana, gestionan cuatro trabajos diferentes para la organización. Nuestro
trabajo de recomendación de Spark ML es uno de los cuatro. Los datos se conservan en el
almacenamiento tradicional basado en disco HDFS. Así que aquí hay un ejemplo de escenario que puede
parecerte familiar. El equipo lanza el trabajo número 1, por ejemplo, es un trabajo de canalización de big
data que aumenta y consume el 50 por ciento de los recursos de clúster disponibles en las instalaciones.
Luego, el equipo tiene una solicitud especial de marketing para ejecutar su trabajo de predicción para una
próxima campaña más tarde hoy. Ese podría ser el trabajo número 2, y aumenta y consume el otro 50 por
ciento de los recursos de clúster disponibles. Probablemente veas el problema ahora. Si nuestro trabajo en
Spark ML fuera el número 3 o el número 4, se quedaría sin recursos debido a que la capacidad de
cómputo de los clusters no está disponible para las demandas de los trabajos de Hadoop de la
organización. O una alternativa costosa, es donde solo se está ejecutando un trabajo, y utiliza el 50 por
ciento de los recursos del clúster y el otro 50 por ciento de las máquinas están energizadas y disponibles,
pero no son necesarias. El problema aquí radica en la naturaleza estática de la capacidad del clúster local.
El equipo necesita una mejor manera de optimizar el uso de los recursos del clúster sin el dolor de cabeza
de sintonizar, agregar y eliminar servidores por sí mismos. Aquí es donde GCP puede ayudar. Ahora
puede pensar en los clusters como recursos flexibles. Con Cloud Dataproc, el producto Hadoop gestionado
de GCP, puede activar tantos o tan pocos recursos de clúster como para sus necesidades de trabajo en la
nube. Observe cómo dije recursos de cluster. Los usa cuando necesita ejecutar trabajos y los desactiva
cuando ya no los necesita. Por lo tanto, en este escenario, podemos tener los trabajos 1 y 2, que se ejecutan
en su clúster personalizado número 1, y los trabajos número 3 y número 4 también pueden ejecutarse en
sus propios clústeres. Tus trabajos obtienen los recursos que necesitan. Puede cerrar los clústeres cuando
no están en uso. Los grupos mismos se convierten en recursos fungibles. Incluso puede automatizar
cuando el clúster se apaga, por lo que no paga por los recursos que no está usando. Puede configurar los
disparadores de apagado según el tiempo que un clúster permaneció inactivo, una marca de tiempo
específica, una duración en segundos o esperar, o cuando envía un trabajo, ejecuta este trabajo y se apaga.
Pero, ¿qué pasa si cambian las necesidades de un trabajo, y en algunos días necesitamos un grupo más
grande, y en algunos días necesitamos un grupo más pequeño? El escalamiento automático de Cloud
Dataproc proporciona una capacidad flexible para ayudarlo a satisfacer esa necesidad. Toma la decisión
de escalar observando las métricas de hilo de Hadoop. Puede usar la escala automática siempre que
cuando cierre la nota de clústeres, no elimine ningún dato. Por lo tanto, no puede almacenar los datos en
el clúster, pero es por eso que almacenamos nuestros datos en el almacenamiento en la nube o Bigtable o
BigQuery, almacenamos nuestros datos fuera del clúster. Por lo tanto, la escala automática funciona
siempre que no almacene sus datos en HDFS. Además de la escala automática, otra ventaja de ejecutar
clústeres de Hadoop en GCP es que puede incorporar máquinas virtuales preferibles en la arquitectura de
su clúster. Las máquinas virtuales preferibles son instancias de cómputo de corta duración y muy
asequibles que son adecuadas para trabajos por lotes y cargas de trabajo tolerantes a fallas. Amplia
tolerancia a fallos porque, las máquinas preventivas, ofrecen los mismos tipos y opciones de máquina que
las instancias de cómputo regulares, pero duran solo hasta 24 horas y pueden eliminarse cada vez que
alguien más aparece y ofrece nuevas necesidades de cómputo para ellas. Entonces, si sus aplicaciones son
tolerantes a fallos y las aplicaciones de Hadoop, entonces las instancias preferibles pueden reducir
significativamente los costos de su motor de cómputo. ¿Qué tan significativo? Las máquinas virtuales
preferibles son hasta un 80 por ciento más baratas que las instancias normales. El precio es fijo, se
obtiene un descuento del 80 por ciento. Por lo tanto, siempre se obtiene una previsibilidad financiera y de
bajo costo sin correr el riesgo de apostar a precios de mercado variables. Pero al igual que la escala
automática, las máquinas virtuales preferibles funcionan cuando su carga de trabajo puede funcionar sin
que los datos se almacenen en el clúster. Desea almacenar esos datos fuera del clúster, y eso es lo que
veremos a continuación.
0:03
Usted está a cargo de migrar la carga de trabajo de aprendizaje automático de su compañía para obtener
recomendaciones de vivienda de su clúster local de Hadoop, la nube. Su organización está contenta con el
modelo actual, pero la infraestructura subyacente en las instalaciones está causando que los dolores de
cabeza se sintonicen y utilicen de manera eficiente.
0:24
Su CTO desea la menor fricción posible de su infraestructura local existente de Hadoop, pero ha oído
hablar de las ventajas que ofrecen las soluciones en la nube para la autoescalado y la administración sin
servidor.
0:38
0:41
0:47
Explore los datos de alquileres usando sentencias de SQL usando Cloud Shell.
0:52
Lanzar Dataproc.
0:54
Entrene y aplique un modelo de aprendizaje automático escrito en PySpark para crear recomendaciones
de productos.
1:02
1:06
Así es como se verá la configuración. En el primer paso, configuramos Google Cloud Storage y Cloud SQL.
Y luego importar los registros de GCS en Cloud SQL. Y ahora que sus calificaciones están en Cloud SQL,
en el paso dos, ejecutará un trabajo de capacitación de aprendizaje automático en Cloud Dataproc para
leer esas calificaciones y capacitar al modelo de aprendizaje automático. En el paso tres, ejecutará el
modelo en Cloud Dataproc para crear recomendaciones. Y guarde las cinco recomendaciones principales
para cada usuario en Cloud SQL.
1:43
Por último, paso cuatro, sus calificaciones se pueden devolver a los usuarios a través de App Engine. No
hará los pasos uno y cuatro en este laboratorio porque esos pasos tratan principalmente con la
programación web. En este laboratorio, te concentras en hacer los pasos dos y tres. Pruebe el laboratorio y
tenga en cuenta que tiene múltiples intentos para cada laboratorio y siempre puede regresar y practicar
más
--Lab
--Prueba