• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
google app engine  ·  microsoft visual studio  ·  Open Source  ·  Premium Hub CoE  ·  Premium Hub Learnings  ·  Technical Articles

Aprovechamiento de las capacidades de varios modelos con Spotify: procesamiento de datos semiestructurados con SAP HANA Cloud/ SAP Data Warehouse Cloud: parte 1

By s4pcademy 


Esta será una serie de blogs que explicarán las capacidades multimodelo de SAP HANA Cloud/SAP Data Warehouse Cloud con un escenario. Así que tome un café antes de pasar por esta serie de arquitectura, soluciones, implementación con repositorios de código y, finalmente, una versión extendida de la serie como una misión SAP Discovery (por publicarse).

Hemos publicado misiones de descubrimiento para SAP Business Technology Platform[SAP BTP] adopciones centradas en SAP HANA Cloud y SAP Data Warehouse Cloud [SAP DWC] basado en casos de uso de referencia del cliente. Cuando el caso de uso es específico, puede cubrir o no todas las características más recientes que se lanzaron como parte de nuestra plataforma. Por lo tanto, planeamos esta vez cubrirlos y usar un escenario interesante que podría despertar su interés para explorar todas las capacidades de varios modelos. [hopefully!]. No nos limitemos a los componentes BTP y también hablemos sobre las opciones de implementación utilizando servicios de hiperescalador/marcos de código abierto.

¿Por qué Spotify?

Spotify es uno de los proveedores de servicios multimedia y de transmisión de audio más exitosos que se enfoca en la verdadera «Experiencia del cliente» o, mejor dicho, está obsesionado con el cliente. Hacen que la experiencia del cliente sea lo más personal posible. [at least from my experience 😊 ]. Las razones importantes son

  1. Spotify es un excelente ejemplo de arquitectura basada en microservicios que admite y escala para más de 205 millones de usuarios premium y 295 millones de usuarios activos.
  2. Tiene una comunidad de desarrolladores vibrante y proporciona API y paquetes interesantes para diferentes implementaciones tecnológicas. [Web APIs /Spotipy / Spotify R]
  3. Su enfoque en áreas de investigación como inteligencia de audio, interacción humano-computadora,
    La responsabilidad algorítmica, el modelado de usuarios y las publicaciones correspondientes nos dicen qué tan serio
    se tratan de la experiencia del cliente, así como de la industria de la música.
  4. Finalmente, queríamos considerar un escenario con el que nuestra comunidad de SAP con diferentes niveles de experiencia pueda relacionarse, aprender y adoptar los conceptos en su propia área de especialización.

Ahora, con esta introducción a la plataforma Spotify Developer, entremos en el escenario de cómo planeamos usar SAP HANA Cloud/SAP DWC para consumir sus API y procesar los datos semiestructurados o JSON.

Entonces… ¿cuál es el escenario?

  1. Spotify publica las listas principales de cada país y está disponible como lista de reproducción semanal o diaria. Entonces, consideremos la lista de reproducción semanal para, digamos, 10 países.Spotify%20Semanal%20Gráfico
  2. Usando las API de Spotify, recopilaremos el gráfico principal semanalmente para 10 países y lo almacenaremos como JSON en HANA Cloud. Usando identificadores, extraeremos atributos como el nombre de la pista, el nombre del artista, el nombre del álbum, la popularidad.
  3. Para todos estos detalles de la canción que se extrajeron en el paso 2, utilizaremos la API de funciones de audio de Spotify para extraer métricas como la capacidad de baile, el habla y la vivacidad. Explicaremos las métricas en los pasos posteriores. Y todas estas métricas también se almacenarán como JSON.
  4. Cree una vista SQL fusionando las colecciones JSON adquiridas en los pasos 2 y 3.
  5. Según las vistas de SQL, crearemos vistas de cálculo para comprender qué canciones de diferentes listas de reproducción tienen características más bailables y energéticas. Realizaremos cálculos R para agrupar por lista de reproducción de países y comprender las características. Las métricas ahora se pueden consumir a través de SAP Analytics Cloud u otras herramientas como Microsoft Power BI.

Hay escenarios adicionales que explicaremos en la arquitectura y se cubrirán como parte de Discovery Missions.

Ahora la Arquitectura – SAP HANA Cloud

Considere esta arquitectura para consumir las API de Spotify con SAP HANA Cloud y déjeme explicarla en detalle. Además, usaré los números que he agregado en el diagrama de arquitectura mientras explico el escenario.

Spotify proporciona API web[1] para consumir listas de reproducción públicas, pistas, artistas, álbumes, podcasts y extraer funciones de audio para todas las pistas. Para consumir estas API, usaré Python y Spotipy paquete . Ya han compartido suficientes fragmentos de código de muestra sobre cómo usar la autenticación, llame a las API para todos los escenarios. Acabo de juntar las piezas para tener la estructura JSON válida que necesitamos para almacenarla como colección en SAP HANA Cloud. Además, se agregaron funciones separadas para recorrer listas de reproducción, capturar características de audio de cada pista en cada lista de reproducción y almacenarlas en una colección separada.

Podemos analizar las diferentes opciones de implementación que podemos considerar al ingerir documentos JSON en SAP HANA Cloud. Aquí están las opciones

Ingestión de datos: opción 1

Para validar si la ingestión funciona bien, puede ejecutar los scripts[2.1] directamente desde Google Colab/Visual Studio o cualquier entorno Python de su elección. Además, el código se puede ejecutar desde una VM/cualquier computación que se pueda usar para la extracción/ingesta de datos. Básicamente, llamará a las API usando bibliotecas Spotipy y usará la biblioteca hana_ml para insertar los documentos JSON capturados como colecciones. [4].

Ingestión de datos: opción 2

Use la misma secuencia de comandos de Python, pero incorpórela con Docker e impleméntela con SAP Kyma.[2.2]. Luego programe la ejecución cada semana para que pueda recopilar listas de reproducción semanales para diferentes países e ingerirlas en SAP HANA Cloud.[4]. Ya he explicado cómo contenerizar y desplegar en este Blog. Solo necesita seguir los mismos pasos para el escenario actual.

Ingestión de datos: opción 3

Si desea explorar servicios similares de hiperescaladores, también puede intentar usar el mismo código de Python, enviarlo a git repo y usar Google Cloud Platform App Engine.[2.3](Estándar/Flexible) para programar la ingesta de datos en SAP HANA Cloud[4] . Ya he explicado cómo contenerizar y desplegar en este Blog. Solo necesita seguir los mismos pasos para el escenario actual.

Y, por supuesto, podría pensar en diferentes escenarios para la ingesta de datos utilizando Integration Suite o SAP Data Intelligence.

Una vez que haya decidido las opciones de implementación (2.1-2.3), toda la respuesta de las API de Spotify se almacenará como documentos JSON en HANA Cloud. Se almacenarán como Colecciones bajo un esquema. Si lo está programando con SAP Kyma o GCP App Engine, puede organizar el nombre del documento JSON por fecha o semana antes de la ingesta con el paquete hana_ml.

Ahora que tenemos las mejores canciones y funciones de audio de todas las listas de reproducción por país, podemos crear vistas de cálculo y consumir los datos usando SAC.[6]. Podemos incluir cómputos de R con el servidor provisto en SAC o conectando el servidor R local. O también podría consumir los datos usando Microsoft Power BI [7]. Lo estoy usando porque hay algunas funciones directas para mostrar imágenes sobre la marcha desde una tabla.

Hay otros escenarios que podemos considerar después del paso 4, ingesta de respuestas de API en HANA Cloud. Considere este flujo de arquitectura 4 -> 8 -> 9 . Una vez que hayamos ingerido los datos, podemos comparar la lista de reproducción de los gráficos principales con sus propias listas de reproducción privadas utilizando Graph Engine.[8]. Podemos comparar colecciones de ambos y ver cuáles son los artistas comunes, y las canciones que tiene en común tienen las métricas correspondientes que se muestran utilizando SAP Cloud Application Programming o SAP Build. O podemos exponer los datos computacionales basados ​​en gráficos a través del marco web basado en Python, Django.

¿Qué pasa con la arquitectura con SAP Data Warehouse Cloud (SAP DWC)?

El flujo de la arquitectura es casi el mismo que el de SAP HANA Cloud, excepto algunos cambios menores. Solo explicaría las diferencias y los pasos que debe realizar desde SAP HANA Cloud. Como puede ver en la siguiente arquitectura, SAP DWC no habilita las capacidades de Document Store (a partir de ahora) para almacenar datos como JSON Collection. En su lugar, incorporaremos los datos como un objeto grande dentro del arrendatario de HANA Cloud de SAP DWC. tenemos el estandar Función JSON a SQL que podemos aplicar en el objeto grande y extraer la respuesta. Y el resultado sería el mismo que extrajimos de la colección HANA Cloud JSON.

Estos son los pasos a seguir para SAP DWC:

  • Consuma las API de Spotify usando el script de python directamente [2] o a través de SAP Kyma [2.1]
  • Usaremos el paquete python hdcli para ingerir los datos como un objeto grande NCLOB.
  • Cree un acceso de esquema Open SQL desde un espacio SAP DWC [3]
  • Ingerir la respuesta JSON como tipo de datos «NCLOB» en una tabla [3]
  • Para poder ingerir los datos, podemos usar SAP Kyma[2.1] o use el script de python [2] directamente desde cualquier máquina virtual/computadora.
  • Para comparar las listas de reproducción de Top Chart con su lista de reproducción privada, podemos utilizar el motor gráfico como lo hicimos para SAP HANA Cloud. Para conocer el proceso de desarrollo sobre a quién compilar en función del arrendatario HC subyacente, consulte mi blog.
  • Puede usar la función Data Builder para combinar datos de diferentes listas de reproducción [5]
  • Puede exponer los datos a SAP SAC[6]Herramientas de informes que no son de SAP[8]

También puede exponer los mismos datos para crear aplicaciones usando SAP CAP[7] compilación de SAP[7] o el marco externo basado en web como Django[9]

Una vez que pase por uno de los escenarios, diga informes basados ​​​​en las mejores pistas de diferentes países, podrá comparar las métricas de Danceability (cálculo R) y visualizar los datos en SAP SAC como se ve a continuación. La siguiente visualización compara las 500 mejores canciones de 10 países diferentes en función de la métrica Danceability: la regularidad general de una canción en función del tempo, el ritmo, la estabilidad y la fuerza del ritmo… ¿lo sientes? 🙂

Y aquí hay otra métrica habla que se compara en todas las pistas agrupadas por país como se muestra a continuación [R computations using Spotify R package]. Todos estos códigos que usé para Spotify R ya se mencionan en el repositorios de github por diferentes desarrolladores de código abierto. Acabo de modificar de acuerdo con estos escenarios específicos y agregaré las referencias en mis blogs centrándome en la práctica.

Y aquí está la visualización de lo mismo en Power BI. Aquí comparamos las mismas métricas de bailabilidad y energía para todas las pistas de 10 países diferentes. Además, Power BI tiene una característica genial de mostrar imágenes sobre la marcha y parte de la tabla. ¡Y sí, el nuevo álbum de Taylor Swift es genial! ¿Aún lo sientes?

¿Que aprenderás?

Según el tipo de implementación que pruebe o pruebe, aprenderá algunos o todos los temas que se mencionan a continuación 😊

  • Conceptos básicos de la nube de SAP HANA
  • Capacidades multimodelo de HANA [Document Store / Graph / Modeling / CAP]
  • Desarrollo utilizando Business Application Studio
  • Conceptos básicos y desarrollo de Python con Visual Studio
  • Instalación y configuración de Docker y conceptos básicos del concentrador de Docker
  • Implementaciones de SAP BTP Kyma
  • Conceptos básicos de GCP e implementaciones de App Engine
  • Conceptos básicos de SAP Data Warehouse Cloud e integración con HDI
  • SAP Build Integración con SAP HANA Cloud
  • Introducción a SAP Analytics Cloud y desarrollo básico del guión gráfico
  • Programación basada en Django Framework

Pasamos por diferentes opciones de arquitectura usando SAP HANA Cloud/ SAP DWC. Espero que le proporcione una descripción general de alto nivel sobre cómo procesar los datos semiestructurados. Ahora centrémonos en la parte de implementación. En los siguientes blogs, hablaré sobre el consumo de datos semiestructurados en SAP HANA Cloud/SAP DWC y su consumo para generar informes. También cubriremos escenarios centrándonos en Graph Engine comparando listas de reproducción públicas y privadas y consumiéndolas en aplicaciones basadas en SAP CAP o SAP Build Apps. Y, finalmente, incorporar reproductores web en Django con SAP HANA Cloud como backend y extraer métricas basadas en las canciones reproducidas.

Por favor, háganos saber sus comentarios. Si la arquitectura y las opciones de implementación le interesan, continúe con parte 2 donde se comenta la implementación basada en SAP HANA Cloud. Y si está buscando acceso a SAP HANA Cloud, puede registrarse individualmente usando Nivel gratuito de SAP ofrendas

Feliz aprendizaje !




AprovechamientocapacidadesCloudconDatadatosHANAlasmodelosparteProcesamientoSAPsemiestructuradosSpotifyvariosWarehouse

Artículos relacionados


Embedded Launch Activities  ·  sap value maps  ·  User Experience Insights
Nuevas actividades de lanzamiento integradas para SAP Customer Data Cloud
code challenge  ·  Developer Challenge  ·  Event Information
Desafío de desarrolladores de la comunidad SAP: EDA con SAP HANA y Python
Logistics
La Arquitectura de SAP MII
Integración de correo electrónico entrante de O365 a SAP S4 a través de SAP CPI
Previo
Preguntas y respuestas de SAP: cómo publicar una pregunta perfecta para obtener una respuesta perfecta
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.