Prefacio
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Piensa en la última vez que buscaste a alguien en una plataforma de redes sociales.
¿Qué has mirado en la página de resultados?
Lo más probable es que empezaras a escudriñar los nombres de la lista de resultados del perfil. Y probablemente pasaste la mayor parte del tiempo inspeccionando la sección de "amigos compartidos" para saber de qué conocías a alguien.
Nuestro comportamiento humano innato de razonar sobre nuestros amigos compartidos en las redes sociales es lo que nos inspiró a escribir este libro. Sin embargo, nuestra inspiración compartida generó dos razones muy diferentes detrás de por qué escribimos este libro.
En primer lugar, ¿te has parado a pensar alguna vez cómo crea una aplicación la sección "amigos compartidos"?
La ingeniería necesaria para ofrecer tus "amigos compartidos" en los resultados de búsqueda crea una intrincada orquestación de herramientas y datos para resolver un problema distribuido extremadamente complejo. Nosotros hemos construido esas secciones o hemos creado las herramientas que las ofrecen. Nuestra pasión por comprender y enseñar a los demás a partir de nuestras experiencias colectivas es la primera razón por la que decidimos escribir juntos este libro.
La segunda razón es que cualquiera que utilice las redes sociales deduce intuitivamente el contexto personal directamente de la sección "amigos compartidos". Este proceso de razonamiento y pensamiento sobre las relaciones dentro de los datos se denomina pensamiento gráfico, y es lo que denominamos el enfoque humano para comprender la vida a través de los datos conectados.
¿Cómo aprendimos todos a hacer esto?
No hubo un momento concreto en el que se nos enseñara a todos esta habilidad. Procesar las relaciones entre personas, lugares o cosas es simplemente nuestra forma de pensar.
Es la facilidad con la que la gente deduce el contexto de las relaciones, ya sea en la vida real o a partir de datos, lo que ha encendido la ola del pensamiento gráfico.
Y cuando se trata de entender el pensamiento gráfico, la mayoría de la gente cae en uno de estos dos bandos: los que piensan que los gráficos son diagramas de barras, o los que piensan que los gráficos son demasiado complicados. En cualquier caso, estos procesos de pensamiento aplican enfoques heredados al pensamiento sobre los datos y la tecnología. El problema es que el arte de lo posible ha cambiado, nuestras herramientas han mejorado y hay nuevas lecciones que aprender.
Creemos que los gráficos son potentes y fáciles de implementar. La tecnología gráfica puede hacerte más productivo; hemos trabajado con equipos que nos lo han dicho.
Este libro reúne estas dos mentalidades.
El pensamiento gráfico cierra la brecha entre cómo funcionamos/vemos/vivimos los humanos y cómo utilizamos los datos para fundamentar una decisión. Imagina ver todo tu mundo como una hoja de cálculo con filas y columnas de datos e intentar darles sentido. Para la mayoría de nosotros, el ejercicio es antinatural y contraproducente.
Esto se debe a que las relaciones son la forma en que las personas navegan y razonan sobre la vida. Son los ordenadores los que necesitan bases de datos y funcionan en el mundo de las filas y columnas de datos.
El pensamiento gráfico es una forma de resolver problemas complejos adoptando un enfoque centrado en las relaciones. La tecnología de grafos tiende un puente entre las "relaciones" y las limitaciones de memoria lineal de la infraestructura informática moderna.
A medida que más gente aprenda a construir con tecnología gráfica aplicando el pensamiento gráfico, imagina lo que nos deparará la próxima ola de innovación.
Quién debería leer este libro
Este libro pretende enseñarte dos cosas. En primer lugar, te enseñaremos el pensamiento gráfico y la mentalidad gráfica a través de preguntas y razonamientos sobre los datos. En segundo lugar, te guiaremos en la escritura de código que resuelva los problemas gráficos más comunes y complejos.
Estos nuevos conceptos se entrelazan con las tareas que se realizan habitualmente en algunas funciones de ingeniería diferentes.
Los ingenieros y arquitectos de datos se encuentran en el centro de la transición de una idea del desarrollo a la producción. Hemos organizado este libro para mostrarte cómo resolver los supuestos comunes que pueden darse al pasar del desarrollo a la producción con datos gráficos y herramientas gráficas. Otro beneficio para el ingeniero de datos o el arquitecto de datos será aprender el mundo de posibilidades que se derivan de la comprensión del pensamiento gráfico. Sintetizar la amplitud de problemas que pueden resolverse con datos de grafos también te ayudará a inventar nuevos patrones para su uso en aplicaciones de producción.
Los científicos y analistas de datos son los que más se pueden beneficiar del razonamiento sobre cómo utilizar los datos de gráficos para responder a preguntas interesantes. Todos los ejemplos de este texto se construyeron para aplicar a los datos de grafos un enfoque basado en la consulta. Un beneficio secundario para un científico o analista de datos será comprender la complejidad de utilizar datos de grafos distribuidos dentro de una aplicación de producción. A lo largo del libro enseñamos y nos basamos en los escollos comunes del desarrollo y sus procesos de resolución en producción, para que puedas formular nuevos tipos de problemas a resolver.
Los informáticos aprenderán a utilizar técnicas de programación funcional y sistemas distribuidos para consultar y razonar sobre datos de grafos. Esbozaremos enfoques fundamentales para recorrer procedimentalmente los datos de grafos y los aplicaremos paso a paso con herramientas de grafos. También aprenderemos sobre tecnologías distribuidas.
Trabajaremos en la intersección de los datos gráficos y los problemas distribuidos y complejos; una fascinante combinación de temas de ingeniería con algo que aprender para cualquier tecnólogo.
Objetivos de este libro
El primer objetivo de este libro es crear una nueva base que exista en una intersección muy diversa. Trabajaremos con conceptos de la teoría de grafos, esquemas de bases de datos, sistemas distribuidos, análisis de datos y muchos otros campos. Esta intersección única forma lo que en este libro denominamos pensamiento gráfico. Un nuevo dominio de aplicación requiere nuevos términos, ejemplos y técnicas. Este libro te servirá de base para comprender este campo emergente.
De la última década de tecnología de grafos surgió un conjunto común de patrones para utilizar datos de grafos en aplicaciones de producción. El segundo objetivo de este libro es enseñarte esos patrones. Definimos, ilustramos, construimos e implementamos las formas más populares en que los equipos utilizan la tecnología de grafos para resolver problemas complejos. Después de estudiar este libro, dispondrás de un conjunto de plantillas para construir con tecnología de grafos para resolver este conjunto común de problemas.
El tercer objetivo de este libro es transformar tu forma de pensar. Comprender y aplicar los datos gráficos a tu problema introduce un cambio de paradigma en tus procesos de pensamiento. A través de muchos ejemplos próximos, pretendemos enseñarte las formas habituales en que otros piensan y razonan sobre los datos gráficos dentro de una aplicación. Este libro te enseña lo que necesitas saber para aplicar el pensamiento gráfico a una decisión tecnológica.
Navegar por este libro
Este libro está organizado aproximadamente como sigue:
-
El capítulo 1 trata del pensamiento gráfico y proporciona procesos detallados para su aplicación a problemas complejos.
-
Los capítulos 2 y3 introducen conceptos fundamentales de grafos que se utilizarán en el resto del libro.
-
Los capítulos 4 y5 aplican el pensamiento gráfico y la tecnología de gráficos distribuidos a la creación de una aplicación bancaria Cliente 360, el caso de uso más popular de los datos gráficos en la actualidad.
-
Los capítulos 6 y7 se adentran en el mundo de los datos jerárquicos y los datos gráficos anidados a través de un caso práctico de telecomunicaciones. El Capítulo 6 prepara el terreno para un error común que se resuelve en el Capítulo 7.
-
Los capítulos 8 y9 tratan en detalle la búsqueda de rutas en datos de grafos, utilizando un ejemplo de cuantificación de la confianza en redes de transacciones sociales a través de rutas.
-
Los capítulos 10 y12 te enseñan a utilizar el filtrado colaborativo en datos de grafos para diseñar un sistema de recomendación inspirado en Netflix.
-
El capítulo 11 puede considerarse un capítulo extra que ilustra cómo aplicar la resolución de entidades a la fusión de múltiples conjuntos de datos en un gran gráfico para el análisis colectivo.
Cada par de capítulos (4 y 5, 6 y 7, 8 y 9, 10 y 12) sigue la misma estructura. El primer capítulo de cada par introduce nuevos conceptos y un nuevo caso de uso de ejemplo en un entorno de desarrollo. El segundo capítulo profundiza en los detalles de las cuestiones de producción, como el rendimiento y la escalabilidad, que deben abordarse para las Implementaciones en el mundo real.
Convenciones utilizadas en este libro
En este libro se utilizan las siguientes convenciones tipográficas:
- Cursiva
-
Indica nuevos términos, URL, direcciones de correo electrónico, nombres de archivo y extensiones de archivo.
Constant width
-
Se utiliza en los listados de programas, así como dentro de los párrafos para referirse a elementos del programa como nombres de variables o funciones, bases de datos, tipos de datos, variables de entorno, sentencias y palabras clave.
Constant width bold
-
Muestra comandos u otros textos que deben ser tecleados literalmente por el usuario.
Constant width italic
-
Muestra el texto que debe sustituirse por valores proporcionados por el usuario o por valores determinados por el contexto.
Consejo
Este elemento significa un consejo o sugerencia.
Nota
Este elemento significa una nota general.
Advertencia
Este elemento indica una advertencia o precaución.
Utilizar ejemplos de código
El material complementario (ejemplos de código, ejercicios, etc.) se puede descargar en https://github.com/datastax/graph-book.
Si tienes una pregunta técnica o un problema al utilizar los ejemplos de código, envía un correo electrónico a bookquestions@oreilly.com.
También puedes seguirnos en Twitter: https://twitter.com/Graph_Thinking
Este libro está aquí para ayudarte a hacer tu trabajo. En general, si se ofrece código de ejemplo con este libro, puedes utilizarlo en tus programas y documentación. No es necesario que te pongas en contacto con nosotros para pedirnos permiso, a menos que estés reproduciendo una parte importante del código. Por ejemplo, escribir un programa que utilice varios trozos de código de este libro no requiere permiso. Vender o distribuir ejemplos de los libros de O'Reilly sí requiere permiso. Responder a una pregunta citando este libro y el código de ejemplo no requiere permiso. Incorporar una cantidad significativa de código de ejemplo de este libro en la documentación de tu producto sí requiere permiso.
Agradecemos la atribución, pero en general no la exigimos. Una atribución suele incluir el título, el autor, la editorial y el ISBN. Por ejemplo"The Practitioner's Guide to Graph Data", de Denise Koessler Gosnell y Matthias Broecheler (O'Reilly). Copyright 2020 Denise Gosnell y Matthias Broecheler, 978-1-492-04407-9".
Si crees que el uso que haces de los ejemplos de código no se ajusta al uso legítimo o al permiso concedido anteriormente, no dudes en ponerte en contacto con nosotros en permissions@oreilly.com.
Aprendizaje en línea O'Reilly
Nota
Durante más de 40 años, O'Reilly Media ha proporcionado formación, conocimientos y perspectivas sobre tecnología y negocios para ayudar a las empresas a alcanzar el éxito.
Nuestra red única de expertos e innovadores comparten sus conocimientos y experiencia a través de libros, artículos, conferencias y nuestra plataforma de aprendizaje online. La plataforma de aprendizaje en línea de O'Reilly te ofrece acceso bajo demanda a cursos de formación en directo, rutas de aprendizaje en profundidad, entornos de codificación interactivos y una amplia colección de textos y vídeos de O'Reilly y de más de 200 editoriales. Para más información, visita http://oreilly.com.
Cómo contactar con nosotros
Dirige tus comentarios y preguntas sobre este libro a la editorial:
- O'Reilly Media, Inc.
- 1005 Gravenstein Highway Norte
- Sebastopol, CA 95472
- 800-998-9938 (en Estados Unidos o Canadá)
- 707-829-0515 (internacional o local)
- 707-829-0104 (fax)
Tenemos una página web para este libro, donde se enumeran erratas, ejemplos y cualquier información adicional. Puedes acceder a esta página en http://www.oreilly.com/catalog/9781492044079.
Envía un correo electrónico a bookquestions@oreilly.com para comentar o hacer preguntas técnicas sobre este libro.
Para más información sobre nuestros libros, cursos, conferencias y noticias, consulta nuestro sitio web en http://www.oreilly.com.
Encuéntranos en Facebook: http://facebook.com/oreilly
Síguenos en Twitter: http://twitter.com/oreillymedia
Míranos en YouTube: http://www.youtube.com/oreillymedia
Agradecimientos
Queremos dar las gracias al increíble grupo de personas que han donado su tiempo y su experiencia para asesorarnos y para leer y corregir este libro.
Tuvimos el honor de trabajar con un equipo de edición de primera clase dirigido por Jeff Bleiel. Nuestro equipo de edición técnica, formado por Alexey Ott, Lorina Poland y Daniel Kuppitz, aplicó su dilatada experiencia en crear, construir y escribir sobre tecnologías gráficas. Sus contribuciones directas elevaron este libro a un nivel que sólo podríamos haber alcanzado con su ayuda. Nos sentimos honrados de que hayan ido más allá para mejorar la calidad y corrección de este texto. Gracias a todos.
También queremos dar las gracias a DataStax por su patrocinio y por animar a nuestros equipos a colaborar en la creación de este libro. Estamos muy agradecidos por el apoyo y la revisión del equipo de Ingeniería Gráfica de DataStax y por los cambios en el producto que realizaron mientras creábamos nuestro trabajo juntos: Eduard Tudenhoefner, Dan LaRocque, Justin Chu, Rocco Varela, Ulises Cerviño Beresi, Stephen Mallette y Jeremiah Jordan. Estamos especialmente agradecidos a Bryn Cooke, que coordinó e implementó una cantidad no trivial de trabajo adicional para apoyar las ideas de este libro.
Muchas otras personas trascendieron sus obligaciones para sacar tiempo para apoyarnos, como es costumbre en DataStax. Queremos dar las gracias a Dave Bechberger, Jonathan Lacefield y Jonathan Ellis por sus expertas contribuciones y su defensa de este trabajo. A Daniel Farrell, Jeremy Hanna, Kiyu Gabriel, Jeff Carpenter, Patrick McFadin, Peyton Casper, Matt Atwater, Paras Mehra, Kelly Mondor y Jim Hatcher: nuestras conversaciones a lo largo de la creación de este trabajo tuvieron más impacto del que os imagináis, así que gracias.
Todas las historias y ejemplos de este texto se han inspirado en nuestras colaboraciones y experiencias con colegas de todo el mundo. Con este fin, nos gustaría reconocer a los héroes gráficos que hablaron con nosotros y ayudaron a dar forma a la narrativa de este libro: Matt Aldridge, Christine Antonsen, David Boggess, Sean Brandt, Vamsi Duvvuri, Ilia Epifanov, Amy Hodler, Adam Judelson, Joe Koessler, Eric Koester, Alec Macrae, Patrick Planchamp, Gary Richardson, Kristin Stone, Samantha Tracht, Laurent Weichberger y Brent Woosley. El tiempo que pasamos hablando con cada uno de vosotros y la información que compartisteis se incorporaron a las historias que tenemos el privilegio de compartir en este texto. Gracias por prestarnos vuestras voces, experiencias e ideas.
Denise también desea expresar su gratitud personal a quienes han sido sus mentores a lo largo de este viaje. A Teresa Haynes y Debra Knisley: encendisteis mi pasión por la teoría de grafos que sigue impulsándome cada día; no habría empezado este viaje sin vosotras. A Mike Berry: me enseñaste a hacer las cosas y a no dejar nunca de buscar mi próxima gran idea; gracias. A Ted Tanner: abriste una puerta y me enseñaste lo que significa construir con pasión y entregar con excelencia; el momento oportuno y la ejecución lo son todo. A Mike Canzoneri: lo sepas o no, fuiste la bota que me empujó a escribir esto; gracias. Y lo que es más importante, a Ty, el "tercer autor" no oficial que estuvo conmigo en todo momento: gracias por tu inagotable positividad.
Get Guía del profesional de los datos gráficos now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.