No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Fuentes de datos: SQL, NoSQL, API y web scraping

10/25
Recursos

Aportes 51

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Una de mis primeras taras cuando entré a trabajar fue hacer un scrapping, no sabía nada de eso, hoy en día es una funcionalidad que tiene bastante relevancia sobre el use case y que la he escalado en términos de rendimiento y extensión a una manera muy muy avanzada (usando OOP), aprendí un montón con eso y refiné muchas habilidades técnicas, es un muy buen ejercicio tú que estas practicando hacer un scrappper para nutrir tus proyectos de ciencia de datos o crear estos modelos de datos, porque vas a aprender un montón de ese proceso!!

Also muchas veces e el proceso de data te va tocar construir tus datos porque no los tienes, y la herramienta de scraping o conexiones a API de otras fuentes te puede ayudar mucho

Resumen:
SQL

  • Lenguaje de consulta pero tambien el nombre con que se identifican las bases de datos
  • Excelentes para las transacciones por los principios ACID (Atomicity, Consistency, Isolation, Durability)

NoSQL

  • Por su cercania a los lenguajes de programacion son utiles para guardar objetos flexibles
  • La mas famosa es mongoDB, otras importantes como Redis, ElasticSearch, HBase

API

  • Consume informacion de otras plataformas
  • Permite utilizar capacidades mandando un input, recibiendo un output
  • Pueden ser creadas por uno, externas y de paga

Web scraping

  • Es traernos informacion disponible que esta en internet
  • parsehub, Scrapy

Linkedin: Utiliza SenseiDB que es una base de datos NoSQL diseñadas por ellos para espesialmente tener una alta respuesta en actualizaciones.
Platzi que bases de datos utiliza??

Mi resumen de la clase:

Trabajamos con datos y estos datos deben de estar disponibles a través de consultas, estarán muchas veces en bases de datos que poseen consultas, redundancias, integridad, seguridad e índices que nos permite consultar de manera eficiente la integración.

SQL nos ayuda a obtener información de manera clara, las BD son toda la tecnología que nos permiten traer la información de manera adecuada.

Las BD SQL son excelentes para transacciones por los principios ACID, atomicidad, consistencia, aislamiento y durabilidad, estas nos informan cuando hay un error y solo registran cuando se completan.

Las bases de datos no SQL, no siguen las reglas de SQL y son más fáciles de consultar desde un lenguaje de programación y son útiles para guardar objetos flexibles, la más famosa es mongoDB, otras son Redis, ElasticSearch y Hbase cerca de Hadoop.

La forma mas transparente de traer información es a través de una API interfaz de programación de aplicaciones, con ella consumimos los datos de las aplicaciones de manera intencional, dándonos accesos con un input y recibiendo un output. Web scraping nos trae los datos disponibles del internet, esto es una zona gris de lo legal, pues los sitios te dicen que puedes traer y que no puedes traer a través del robot.txt algunas herramientas son parsehub y Scrapy.

Debemos de guardar modelos que nos sean útiles con el tiempo, generando parte por parte lo que querremos construir y que se pueda escalar.

YOUTUBE: YouTube utiliza el sistema de base de datos patentado de Google que llaman **Bigtable**. Es el mismo sistema de base de datos que también impulsa a Google en el motor de búsqueda y muchos otros productos de Google WHATSAPP: Almacenamiento de la información en la base de datos: WhatsApp utiliza **SQLite** para almacenar chats, ficheros y mensajes en la base de datos, por lo que si un atacante logra hacerse con este fichero podría acceder a todas las conversaciones y datos privados INSTAGRAM: Uno de los pilares de Instagram son los datos de las fotografias y los usuarios. La base de datos que se usa es **PostgreSQL**. Afirman que tiene 12 cluster de instancias de memoria Quadruple Extra-Large y sus 12 replicas en distintos lugares

Cuevana dice que usan MySQL
Youtube SQL
Whatsapp SQLite

Mercado Libre usa Bigquery.
  • Whatsapp:SQLite
  • Instagram:Postgre SQL
  • Twitter:Cassandra
  • Telegram:TDLib

Whatsapp: SQLite

en el caso de Netflix utiliza diversas bases de datos cada una funciona para cierto tipo de caracteristica entre los servicios que tiene las bases de datos que usan son: Amazon DynamoDB, Apache Cassandra, MySQL, Elasticsearch.
ultimamente utilizo tiktok de manera continua, es mi red social mas usada, aunq generalmemnte se esta volviendo un habito negativo ya q mal gasto demasiado tiempo, sin embargo investigue y segun ello "TikTok utiliza bases de datos NoSQL comoCassandra y Redispara acceder a datos en tiempo real y a alta velocidad"..
Empresa: **Spotify** Base de datos principal: PostgreSQL Bases secundarias: Cassandra, Redis, Elasticsearch, BigQuery. Empresa: **Pinterest** Base de datos principal: MySQL Bases secundarias: DynamoDB, HBase, Redis, Elasticsearch. Empresa: **WhatsApp** Base de datos principal: Mnesia Bases secundarias: MySQL, Cassandra, RocksDB.
### **Fuentes de datos: SQL, NoSQL, API y Web Scraping** La recopilación y gestión de datos provienen de diversas fuentes. Cada tipo tiene su propósito específico y se utiliza dependiendo del caso de uso en proyectos de ingeniería de datos. ### **1. Bases de datos SQL (Relacionales)** **Descripción**: * Utilizan un modelo estructurado basado en tablas con filas y columnas. * Utilizan SQL (Structured Query Language) para consultas y manipulaciones. **Características**: * Diseño estructurado con relaciones entre tablas. * Esquemas definidos previamente (rigidez en el diseño). * Garantías ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad). **Casos de uso**: * Sistemas de gestión transaccional como ventas, inventarios y registros. * Reportes y análisis de datos con consultas estructuradas. **Ejemplos de bases de datos SQL**: * MySQL * PostgreSQL * Microsoft SQL Server * Oracle Database ### **2. Bases de datos NoSQL (No Relacionales)** **Descripción**: * Flexibles, diseñadas para manejar datos no estructurados o semi-estructurados. * Pueden usar diversos modelos: clave-valor, documentos, grafos o columnas anchas. **Características**: * Escalabilidad horizontal y alto rendimiento. * Esquema flexible o inexistente. * Ideales para manejar grandes volúmenes de datos con variabilidad. **Casos de uso**: * Almacenamiento de datos no estructurados como logs, redes sociales y datos IoT. * Recomendaciones en e-commerce y análisis de comportamiento. **Ejemplos de bases de datos NoSQL**: * MongoDB (documentos). * Cassandra (columnas anchas). * Redis (clave-valor). * Neo4j (grafos). ### **3. APIs (Application Programming Interfaces)** **Descripción**: * Proporcionan acceso a datos y funcionalidades de aplicaciones o servicios externos mediante solicitudes HTTP. **Características**: * Permite integrar datos en tiempo real desde fuentes externas. * Utiliza protocolos estándar como REST o GraphQL. * Frecuentemente devuelven datos en formatos JSON o XML. **Casos de uso**: * Obtener datos desde servicios en línea (por ejemplo, clima, finanzas, mapas). * Integración de funcionalidades entre aplicaciones. **Ejemplos de APIs**: * API de OpenWeatherMap (datos meteorológicos). * API de Twitter (interacción con redes sociales). * API de Google Maps (geolocalización y rutas). ### **4. Web Scraping** **Descripción**: * Técnica para extraer datos directamente de páginas web utilizando scripts o herramientas. **Características**: * Recopila información disponible públicamente en la web. * Requiere interpretar y analizar HTML, CSS y a veces JavaScript. * Puede estar limitado por restricciones legales o técnicas como bloqueos por IP. **Casos de uso**: * Obtener precios en tiempo real de productos (e-commerce). * Recopilar datos de investigación de múltiples sitios web. * Monitoreo de noticias o información pública. **Herramientas para web scraping**: * **BeautifulSoup** (Python): Facilita la navegación y extracción de datos del DOM. * **Selenium**: Automatiza navegadores web para manejar páginas dinámicas. * **Scrapy**: Framework avanzado para scraping a gran escala. ### **Comparativa rápida**: FuenteEstructuraEscalabilidadActualizaciónEjemplo UsoSQLTablasVerticalAltaInventarios, CRMNoSQLFlexibleHorizontalAltaLogs, datos IoTAPIN/ADepende del proveedorDinámicaServicios externos, datos en tiempo realWeb ScrapingHTML/CSS/JSEscalable con esfuerzoDependiente de la páginaRecolección de información pública Estas fuentes se utilizan en combinación para satisfacer las necesidades de los proyectos de datos, desde la recopilación hasta el análisis y la toma de decisiones.
Redes Sociales: * Instagram: Cassandra (NoSQL) para mensajes y PostgreSQL para datos de usuario * WhatsApp: Mnesia (NoSQL) para mensajes y ERLD para gestión de usuarios * Twitter: MySQL para tweets y Redis para timeline en tiempo real Entretenimiento: * Netflix: Cassandra (NoSQL) para el catálogo y MySQL para datos de usuario * Spotify: Cassandra para el catálogo musical y PostgreSQL para información de cuentas * YouTube: BigTable (NoSQL) para videos y Vitess (MySQL) para metadata Comercio: * Amazon: DynamoDB (NoSQL) para carrito y catálogo, Aurora (SQL) para transacciones * Uber: MySQL para viajes y MongoDB para datos en tiempo real * AirBnB: MySQL para listados y reservas, Redis para cache Apps Productividad: * Slack: MySQL para mensajes y datos de usuario * Notion: PostgreSQL para contenido y datos de usuario * Trello: MongoDB para tableros y tareas ¿Por qué usan diferentes tipos? * SQL (MySQL, PostgreSQL): Para datos estructurados y transacciones * NoSQL (MongoDB, Cassandra): Para datos no estructurados y mejor escalabilidad * Cache (Redis): Para acceso rápido a datos frecuentes
Netflix utiliza múltiples tipos de bases de datos, entre ellas: * **DynamoDB y Cassandra**: Bases de datos descentralizadas que almacenan información como perfiles, facturación y películas vistas * **Oracle y MySQL**: Bases de datos que forman parte del stack de Netflix * **NoSQL y SQL**: Bases de datos que Netflix utiliza para almacenar y administrar sus datos Netflix también utiliza AWS para: Computación, Almacenamiento, Análisis, Motores de recomendación, Transcodificación de video.
Recientemente disenie una API en Python para conectarse con DataForSEO y descargar data muy similar a Google Analytics, limpiarla y filtrarla y actualizar un archivo Google Sheets que finalmente arroja reportes mensuales en Tableau. Esto antes lo haciamos en 1 dia, ahora solo tarda 20 minutos.
**Spotify**: Spotify utiliza una combinación de tecnologías para manejar sus vastos volúmenes de datos y ofrecer una experiencia personalizada a sus usuarios: * **Apache Cassandra**: Para el almacenamiento distribuido y escalable de datos. [Pontia](https://www.pontia.tech/los-datos-como-pilar-de-exito-de-spotify/?utm_source=chatgpt.com) * **PostgreSQL**: Para la gestión de bases de datos relacionales. [Pontia](https://www.pontia.tech/los-datos-como-pilar-de-exito-de-spotify/?utm_source=chatgpt.com) * **Hadoop**: Para el procesamiento de grandes volúmenes de datos. [Pontia](https://www.pontia.tech/los-datos-como-pilar-de-exito-de-spotify/?utm_source=chatgpt.com) **Telegram**: Telegram emplea una arquitectura distribuida para garantizar la velocidad y seguridad en la transmisión de mensajes. Aunque los detalles específicos sobre las bases de datos que utiliza no son públicos, se sabe que Telegram utiliza centros de datos distribuidos y técnicas de cifrado para asegurar la integridad y privacidad de los datos. **Instagram**: Instagram, propiedad de Meta (anteriormente Facebook), utiliza una combinación de tecnologías para manejar su enorme cantidad de datos y usuarios: * **PostgreSQL**: Inicialmente, Instagram utilizó PostgreSQL como su base de datos principal. * **Cassandra**: Para el almacenamiento de datos distribuidos y escalables. * **Memcached**: Para el almacenamiento en caché y mejorar la velocidad de acceso a los datos. **Age of Empires**: "Age of Empires" es una serie de videojuegos de estrategia en tiempo real. Los detalles específicos sobre las bases de datos utilizadas en su desarrollo no son ampliamente conocidos. Sin embargo, es común que los videojuegos utilicen bases de datos para gestionar información como perfiles de jugadores, estadísticas y otros datos relacionados con el juego.
Me dio curiosidad ver que base de datos usan los videojuegos, ya que algunas empresas como RIOT, deben manejar demasiado flujo de datos, dicen que usan MYSQL.
### Diferencias entre SQL y NoSQL **SQL (Structured Query Language)** y **NoSQL (Not Only SQL)** son dos tipos de sistemas de gestión de bases de datos que se utilizan para almacenar y gestionar datos, pero tienen enfoques y características diferentes. #### SQL **Características:** * **Estructura Relacional**: Los datos se almacenan en tablas con filas y columnas. * **Esquema Fijo**: Requiere un esquema predefinido que define la estructura de los datos. * **Consultas Complejas**: Utiliza SQL para realizar consultas complejas y uniones entre tablas. * **Consistencia ACID**: Garantiza transacciones que son Atómicas, Consistentes, Aisladas y Duraderas (ACID). **Ventajas:** * **Integridad de Datos**: Alta consistencia y precisión en los datos. * **Consultas Avanzadas**: Capacidad para realizar consultas complejas y detalladas. * **Estándar Bien Conocido**: Amplio soporte y documentación. **Desventajas:** * **Escalabilidad Vertical**: Escalar puede ser costoso y complicado, ya que generalmente requiere hardware más potente. * **Rigidez**: Menos flexible para cambios en la estructura de datos. #### NoSQL **Características:** * **Estructura No Relacional**: Los datos se almacenan en formatos como documentos, grafos, columnas o pares clave-valor. * **Esquema Flexible**: No requiere un esquema fijo, lo que permite una mayor flexibilidad. * **Escalabilidad Horizontal**: Diseñado para escalar horizontalmente, distribuyendo datos en múltiples servidores. * **Consistencia Eventual**: Prioriza la disponibilidad y la partición de tolerancia sobre la consistencia inmediata. **Ventajas:** * **Flexibilidad**: Fácil de adaptar a cambios en los requisitos de datos. * **Escalabilidad**: Escala fácilmente a través de múltiples servidores. * **Rendimiento**: Puede manejar grandes volúmenes de datos y altas tasas de escritura. **Desventajas:** * **Consistencia Eventual**: Los datos pueden no estar siempre actualizados en todos los nodos. * **Consultas Limitadas**: Menos capacidad para realizar consultas complejas comparado con SQL. * **Menos Madurez**: Algunas bases de datos NoSQL pueden tener menos soporte y documentación. ### Resumen * **SQL** es ideal para aplicaciones que requieren alta consistencia y consultas complejas, como sistemas financieros. * **NoSQL** es adecuado para aplicaciones que necesitan manejar grandes volúmenes de datos y requieren flexibilidad, como redes sociales y análisis de big data.
Disney+: Usa AWS para su funcionamiento y TMBS the movie basedata como fuente de datos de peliculas y TV shows YouTube: Usa MySQL con sharding para manejar los registros Twitter: Usa MySQL para almacenamiento de datos Apple Music: Usa ACC advance audio codec para la comprensión de audio, lo que permite la alta calidad de sonido
1. **Netflix**: Utiliza una combinación de bases de datos, incluyendo Amazon Web Services (AWS) para almacenamiento y procesamiento de datos, y su propia base de datos de medios llamada NMDB para gestionar metadatos técnicos. 2. **Spotify**: Ha migrado su infraestructura a la nube de Google Cloud Platform. Utiliza varias bases de datos, incluyendo Bigtable y Spanner para gestionar su catálogo musical y datos de usuarios. 3. **Amazon**: Utiliza una variedad de bases de datos a través de su servicio Amazon Web Services (AWS). Esto incluye Amazon RDS (Relational Database Service) que soporta motores como MySQL, PostgreSQL, MariaDB, Oracle y SQL Server. 4. **WhatsApp**: Utiliza Firestore, una base de datos NoSQL de Google Firebase, para gestionar los grandes volúmenes de datos generados por sus usuarios.
Esto es lo que pude investigar con ChatGPT ### Rappi 1. **PostgreSQL**: Utilizado por muchas startups y empresas tecnológicas para bases de datos relacionales debido a su robustez y características avanzadas. 2. **MongoDB**: Utilizado para almacenar datos no estructurados o semi-estructurados, ideal para catálogos de productos y datos flexibles. 3. **Redis**: Empleado como base de datos en memoria para almacenamiento en caché y para mejorar el rendimiento de las aplicaciones. 4. **Elasticsearch**: Utilizado para capacidades de búsqueda y análisis en tiempo real. 5. **Amazon RDS**: Parte del stack de AWS, utilizado para manejar bases de datos relacionales en la nube con escalabilidad y alta disponibilidad. ### Uber 1. **MySQL**: Inicialmente, Uber utilizaba MySQL para su base de datos relacional principal. 2. **PostgreSQL**: También se utiliza en varias partes de su infraestructura para datos relacionales. 3. **Cassandra**: Utilizado por Uber para manejar grandes volúmenes de datos distribuidos. Es una base de datos NoSQL muy escalable y eficiente para datos de alta disponibilidad. 4. **Redis**: Empleado para almacenamiento en caché y acelerar el acceso a datos frecuentemente consultados. 5. **MongoDB**: Utilizado para almacenar documentos y datos semi-estructurados. 6. **Elasticsearch**: Implementado para realizar búsquedas y análisis en tiempo real sobre grandes conjuntos de datos. 7. **Hadoop**: Utilizado para procesamiento y almacenamiento de grandes volúmenes de datos históricos. 8. **BigQuery**: Parte del stack de Google Cloud Platform (GCP), usado para análisis de datos a gran escala.
![](https://static.platzi.com/media/user_upload/image-cd82473c-5d77-4569-b2b6-08d11a130e77.jpg) :)
**¡Hola!** Whatsapp utiliza SQLite para almacenar chats, ficheros y mensajes en la base de datos. Linkedin usa en algunos de sus servicios SenseiDB Youtube, utiliza un sistema de base de datos propio de Google llamado Bigtable

Gracias

Hola a todos, soy Antonio Ing. Arquitecto y les cuento que en el sector de la arquitectura, ingeniería y construcción (AECO) se utiliza software especializado para crear maquetas 1:1 digitales de edificios, puentes, aeropuertos o cualquier tipo de proyecto, esas maquetas tridimensionales tienen propiedades, características y atributos, mucho software permiten exportar todos esos datos a una base de datos SQL, pero hasta ahora no conozco alguien o algún procedimiento para trabajar con esos datos, podría ser muy útil conectar esos datos, consultarlos o modificarlos para obtener información sobre el proyecto, costo, cantidad de materiales, tiempo, rendimientos.

¿Alguien acá tiene experiencia en el tema?

tick toc usa oracle
Jira y Confluence utilizan el modo de implementación multi-AZ para Amazon RDS (Amazon Relational Database Service).
Lo de scraping, aprendí el término porque me gusta el marketing y eso me llevo a gogle trends y luego eso al periodismo de datos, esa profesión usa mucho eso

Alguna vez me toco hacer un scraping en Selenium con Python. un framework que admite varios lenguajes de programación y que también es muy útil para procesos de automatización.

Netfliz utiliza AWS. Y star+ no encontre. Si alguien sabe…

Después de probar otras soluciones de bases de datos, Rappi recurrió a Amazon Web Services (AWS) para abordar sus problemas de rendimiento, eficiencia y escalabilidad mediante Amazon DocumentDB (con compatibilidad con MongoDB).

10. Fuentes de datos: SQL, NoSQL, API y web scraping

Utilidad de SQL

  • Lenguaje de consulta, pero también el nombre con el que se identifican las bases de datos.

Utilidad de NoSQL

  • Por su cercanía a los lenguajes de programación, son útiles para guardar objetos flexibles.
  • La más famosa es MongoDB. Otras importantes son Redis, ElasticSearch y Hbase.

Web Scraping y APIs

API

  • Consume información de otras plataformas.
  • Permite utilizar capacidades mandando un input, recibiendo un output.
  • Pueden ser creadas, propias o pagadas.

Web scraping

  • parsehub
  • Scrapy

Generando modelos sostenibles

Construye para escalar

Actualmente el contenido On Demand que más consumo es casualmente Platzi y tengo entendido que antes utilizaban MySQL y después se pasaron a PostgreSQL.

En mi trabajo en el banco usan base de datos relacional, intentaron usar MongoDB pero mencionan que sacaron la tecnología por que no soportaba el volumen de datos. 😕

Hola buen dia investigue que bases de datos usan mis apps favoritas y eleji Netflix.

Netflix emplea AWS (Amazon Web Service).

AWS es una aplicacion integral de computacion en la nube que incluye ofertas de infraestrucctura como servicios (laaS) y de plataforma como (PaaS). Los servicios de AWS ofrecen soluciones escalables para la computacoion como el almacenamiento, base de datos, el analisis y mucho mas.

En mi diario utilizo Oracle sql developer, temas de construccion de reportes.

Dentro de mis aplicaciones favoritas están Instagram que usa la base de datos PostgreSQL, Pinterest que usa Redis (base de datos de memoria), organizada en la nube de Amazon Web Services y ya en lo relacionado a mis animes y doramas están en Netflix, principalmente, que usa Amazon Web Services (AWS) para prácticamente todas sus necesidades de informática y almacenamiento, incluidas las bases de datos.

PostgreSQL la usa instrgam

Facebook: Cassandra
Instagram: Postgre SQL
Mercadolibre: Amazon EC2

Intagram usa una base de datos noSQL, donde usa Cassandra

Uso mucho Spotify y YouTube, tanto para escuchar musica como para hacer consultas de material educativo (tutorial). La verdad es que con mis búsquedas y gustos me recomiendan cosas que ya sé que voy a utilizar y consumir. Sin duda alguna que su gestión de BBDD es maravillosa y saben que hacer con ellos.

Buena explicacion.

Spotify orienta su base de datos en Cassandra, PostgreSQL y RESTful

Telegram utiliza TDLib.

PedidoYa migró a Google Cloud y utiliza un almacenamiento serverless BigQuery, según lo explican en este caso de éxito. Pero supongo que en el medio deben trabajar con una OLTP que almacene las transacciones de ventas y clientes, y de la cual ingestan los datos hacia el data warehouse serverless.
https://cloud.google.com/customers/pedidosya?hl=es-419
Twitch tenía entendido, que al ser de Amazon, usan las de AWS, todo cloud native.

MercadoLibre usa AWS, y bases de datos NoSQL (Mongo, Cassandra). Netflix usa AWS y Cassandra, DynamoDB. Platzi usa PostgreSQL.

Me acuerdo que en un video del curso de Fundamentos de Ingeniería de Software impartido por Freddy, él comentó que Platzi en ese momento usaba MySQL y MongoDB, que interesante poder usar más de una plataforma de base de datos para las necesidades de nuestros proyectos.

Youtube utiliza MySQL como base de datos principal.