From SQL to Graph Databases Sábado 26 de Mayo
From SQL to Graph Databases Patricio Cofre Sebastián Garcés Master of Engineering Management, Northwestern Univ. Master Engineering Sciences, Catholic University of Chile Metric Arts Co-Founder, Big Data & Analytics Professional Services firm focused on the Latam market. Ingeniero en informática de la Universidad Santiago de Chile. Especialista en ETL, BI. Data Engineer en MetricArts /pcofre @pcofre pcofre pcofre@metricarts.com /sgarces sgarces@metricarts.com
Gold Sponsors Silver Sponsors
En la Web Moderna TODO es recomendación
Sistemas de Recomendación (RecSys) Los sistemas de recomendación corresponden a paradigmas de modelación, capaces de desplegar ítems ordenados en función de una predicción del ranking que un usuario le daría a un ítem que aún no ha considerado, o bien no lo ha hecho en la compra actual
Sistemas de Recomendación (RecSys) MANY PEOPLE TELL US THEY WATCH FOREIGN MOVIES AND DOCUMENTARIES, BUT IN PRACTICE, THAT DOESN T HAPPEN. NETFLIX People rate movies like Schindler s List high, as opposed to one of the silly comedies I watch, like Hot Tub Time Machine. If you give users recommendations that are all four- or five-star videos, that doesn t mean they ll actually want to watch that video on a Wednesday night after a long day at work NETFLIX
Sistemas de Recomendación (RecSys) Existen dos familias de enfoques: Filtrado basado en contenido Filtrado colaborativo
Sistemas de Recomendación (RecSys) Filtrado Basado en Contenido (Afinidad Sujeto - Ítem) #can #red #trendy #brand
Sistemas de Recomendación (RecSys) Filtrado Colaborativo (Afinidad Ítem - Sujeto)
Sistemas de Recomendación (RecSys) Filtrado
Bases de Datos Orientadas a Grafos
Base de datos orientada a grafos Representación de entidades como nodos de un grafo y sus relaciones como las aristas del mismo, de manera que se pueda usar teoría de grafos para recorrerlo A diferencia de la las bases de datos relacionales, almacena relaciones entre nodos de cualquier tipo, reduciendo la cantidad de joins.
Base de datos orientada a grafos En sets de datos evolutivos, interconectados y jerárquicos han demostrado ser más eficiente que los modelos relacionales. Ejemplos contemporáneos de esto son las redes sociales y los sistemas de recomendación.
Base de datos orientada a grafos Motores Lenguajes
OPCION 1: SQL SQL Server 2017 Corre en Windows, Linux & Docker SQL Server 2017 Soporte para Machine Learning en R & Python Soporte para Graph Data para realizar análisis complejo de relaciones
OPCION 2: AZURE
Elementos Grafo Nodo (Node): Representa un objeto real, capaz de interactuar con otros. Equivalente a las entidades. En el ejemplo: Persona, Ciudad o Restaurant Vértice (Edge): Representa las relaciones en el grafo. Pueden tener atributos. En el Ejemplo: Amigo de, Like, Ubicado en, etc. Propiedades (Properties): Propiedad de interés, que describe a un Nodo o Vértice.
Ejemplo SQL Server 2017 -- Restaurants preferidos por Patricio SELECT Restaurant.name FROM Person, likes, Restaurant WHERE MATCH (Person-(likes)->Restaurant) AND Person.name = 'Patricio'; -- Restaurants que gustan a los amigos de Patricio SELECT distinct Restaurant.name FROM Person person1, Person person2, likes, friendof, Restaurant WHERE MATCH(person1-(friendOf)->person2-(likes)->Restaurant) AND person1.name='patricio'; -- Restaurants Preferidos por quienes viven en Montevideo SELECT distinct Restaurant.Name FROM Person, likes, Restaurant, livesin, City, locatedin WHERE MATCH (Person-(likes)->Restaurant-(locatedIn)->City AND Person-(livesIn)->City) AND City.name = 'Montevideo'
DEMO SQL
(Chile) E-commerce fundado en Chile hace más de 10 años SQL Server back-bone 200+ Empleados 5K+ Eventos 8M+ Tickets 3M+ Visitas Web / Mes
(Chile)
Recomendación User1 Artista1 User2 Artista2 User3 Artista3 User4 Artista4 User5 Artista5
Implementación en Graph Data UniqueUser (node table) Compra (edge table) UniqueEvent (node table) CREATE TABLE UniqueUser (UserId VARCHAR(80)) AS NODE CREATE TABLE Compra (Nivel BIGINT)) AS EDGE CREATE TABLE UniqueEvent (EventId VARCHAR(50),EventTitle VARCHAR(500),ArtistName VARCHAR(500)) AS NODE
DEMO GREMLIN / COSMOS
Empresa Sueca de streaming de música. Posee millones de canciones y artistas. Artistas son relacionados a géneros musicales. Qué tan similares son los artistas de Spotify? Análisis de relación entre artistas por géneros musicales. Ejemplo: Spotify
Ejemplo: Spotify Propiedades Nombre: Rock Artista Clasificado En Genero Clasificado En Artista Propiedades Nombre: Metallica Popularidad: 82 Seguidores: 6.319.948... Propiedades Nombre: Van Halen Popularidad: 68 Seguidores: 1.493.414 Que otros géneros tienen en común estos 2 artistas?
g.v() Ejemplo: Spotify
g.v().has("artista", "nombre", "Metallica") Ejemplo: Spotify
g.v().has("artista", "nombre", "Metallica").repeat(both().simplePath()).until(has("artista", "nombre", "Iron Maiden")).path().limit(4).unfold().hasLabel("genero") Ejemplo: Spotify
PASS Virtual Groups
Gracias por vuestra asistencia