Salta el contingut

Solucionari — Questionari inicial Mòdul 5074

Ús intern del docent — no publicar als alumnes.

Pregunta 1

Quina és la diferència entre Big Data i una base de dades convencional? Posa un exemple de cada un.

Una base de dades convencional emmagatzema volums de dades manejables (megabytes o pocs gigabytes) en taules estructurades i es gestiona en un únic servidor amb eines com MySQL o PostgreSQL. El Big Data, en canvi, fa referència a conjunts de dades tan grans o complexos que les eines tradicionals no poden processar-los de manera eficient. Per exemple, una petita empresa pot guardar les seves factures en una base de dades MySQL (BD convencional), mentre que Twitter processa centenars de milions de tuits diaris, imatges i metadades amb plataformes distribuïdes (Big Data). La diferència clau no és només el volum, sinó també la varietat i la velocitat amb què arriben les dades.

Pregunta 2

Què significa la V de "velocitat" en les 5V del Big Data? Posa un exemple real d'un sistema que requereixi alta velocitat de processament.

La V de velocitat fa referència a la rapidesa amb què es generen, s'ingereixen i es processen les dades. En molts escenaris, les dades han de ser analitzades en mil·lisegons o segons per tenir valor, i no té sentit processar-les hores més tard. Un exemple paradigmàtic és la detecció de frau bancari en temps real: quan un client fa una transacció amb targeta, el sistema ha d'analitzar patrons i decidir si és fraudulenta en menys d'un segon, perquè si tarda massa, la transacció ja s'ha completat. Altres exemples inclouen els sistemes de recomanació d'e-commerce o la monitorització de xarxes de telecomunicacions.

Pregunta 3

Has sentit parlar d'Hadoop o Spark? Descriu breument el que saps de cadascun.

Hadoop és un framework de codi obert que permet emmagatzemar i processar grans volums de dades de manera distribuïda en clústers de servidors. El seu nucli es compon de HDFS (sistema de fitxers distribuït) i MapReduce (model de processament paral·lel). Apache Spark és un motor de processament distribuït de nova generació, significativament més ràpid que Hadoop MapReduce perquè pot treballar en memòria RAM en lloc de llegir i escriure constantment a disc. Spark ofereix APIs en Python (PySpark), Scala i Java, i suporta processament en lot, streaming, machine learning (MLlib) i consultes SQL (Spark SQL). Avui dia, Spark ha substituït en gran mesura MapReduce en els entorns productius moderns.

Pregunta 4

Quina diferència hi ha entre processar dades en temps real i processar dades en lot (batch)?

El processament en lot (batch) consisteix a acumular un conjunt de dades durant un perióde de temps (hores, dies) i processar-lo tot de cop en un moment programat; és adequat quan no es necessita una resposta immediata, com ara generar un informe mensual de vendes. El processament en temps real (o streaming) analitza les dades pràcticament en el moment en què es generen, amb latències de mil·lisegons a pocs segons, i és imprescindible quan l'acció ha de ser immediata. Per exemple, un sistema de monitorització d'infraestructura que detecta una caiguda de servidor i alerta l'equip tècnic en temps real no pot esperar un processament nocturn en lot. Eines com Apache Kafka i Apache Flink estan dissenyades per al cas en temps real, mentre que Spark Batch o Hadoop MapReduce s'usen per al processament en lot.

Pregunta 5

Quin és el problema d'emmagatzemar un dataset de 10 TB en un únic servidor? Com creus que es pot solucionar?

Emmagatzemar 10 TB en un únic servidor presenta diversos problemes: el disc dur pot no tenir prou capacitat, la RAM és insuficient per processar-ho tot alhora, el processament és lent en ser seqüencial, i si el servidor falla, es perden totes les dades (single point of failure). La solució habitual és l'emmagatzematge i processament distribuïts: repartir les dades entre molts servidors (clúster) de manera que cada node emmagatzemi i processi una fracció del total en paral·lel. Sistemes com HDFS (Hadoop Distributed File System) repliquen els blocs de dades en múltiples nodes per garantir la tolerància a fallades. Al núvol, serveis com Amazon S3 o Google Cloud Storage ofereixen emmagatzematge escalable sense límit pràctic de capacitat.

Pregunta 6

Que és un Data Lake? En què es diferencia d'un Data Warehouse?

Un Data Lake és un repositori centralitzat que emmagatzema dades en el seu format original (raw), ja siguin estructurades, semiestructurades o no estructurades, sense necessitat de definir l'esquema prèviament (schema-on-read). Permet ingerir grans volums de dades de fonts diverses i analitzar-les posteriorment amb eines flexibles. Un Data Warehouse, en canvi, emmagatzema dades ja transformades, netes i estructurades seguint un esquema predefinit (schema-on-write), optimitzat per a consultes analítiques i reporting de negoci. La diferència clau és que el Data Lake és més flexible i econòmic però requereix més feina d'anàlisi posterior, mentre que el Data Warehouse ofereix dades ja preparades i de fàcil consulta però amb menys flexibilitat. Exemples: Amazon S3 com a Data Lake, Amazon Redshift o Snowflake com a Data Warehouse.

Pregunta 7

Has usat mai un sistema de visualització de dades (Excel, Power BI, Tableau, Google Data Studio)? Descriu la teva experiència.

Resposta oberta — s'avalua l'experiència prèvia de l'alumne. Una resposta competent podria esmentar l'ús d'Excel per crear gràfics a partir de taules, o Power BI per connectar a bases de dades i construir dashboards interactius amb filtres dinàmics. Es valorarà positivament que l'alumne hagi creat visualitzacions amb dades reals, que conegui conceptes com ara taules dinàmiques, filtres, o que hagi publicat informes. Una resposta "no he usat cap eina" és vàlida i honesta; en aquest cas, el docent pot anotar-ho per adequar el nivell de les pràctiques inicials del mòdul.

Pregunta 8

Quin format de fitxer creus que és millor per emmagatzemar dades tabulars: CSV, JSON o Parquet? Per quin motiu?

Per a dades tabulars a escala de Big Data, Parquet és generalment el format més adequat perquè és un format columnar binari que comprimeix molt millor que CSV o JSON i permet llegir únicament les columnes necessàries sense llegir el fitxer sencer (column pruning), reduint dràsticament el temps de consulta i el cost en plataformes al núvol. CSV és el format més senzill i universal, però ocupa molt espai i no té tipus de dades natius. JSON és útil per a dades semiestructurades o amb esquema variable, però és ineficient per a consultes analítiques sobre dades tabulars homogènies. En entorns com Spark, Hive o BigQuery, Parquet és el format per defecte recomanat per a datasets grans.

Pregunta 9

Explica amb les teves paraules com funciona MapReduce. Quin problema resol?

MapReduce és un model de programació per processar grans volums de dades de manera paral·lela en un clúster de servidors. Es divideix en dues fases: la fase Map, on cada node processa una fracció de les dades i emet parells clau-valor intermitjos; i la fase Reduce, on els resultats amb la mateixa clau s'agrupen i s'agreguen per produir el resultat final. Per exemple, per comptar quantes vegades apareix cada paraula en milions de documents, la fase Map emetria (paraula, 1) per cada ocurrència, i la fase Reduce sumaria tots els 1 de cada paraula. El problema que resol és permetre que càlculs que serien impossibles o molt lents en un sol servidor es puguin executar en paral·lel en centenars de màquines, reduint el temps de processament de dies a minuts.

Pregunta 10

Qué és Kafka? Has sentit parlar del concepte de "streaming de dades"?

Apache Kafka és una plataforma de streaming distribuïda dissenyada per ingerir, emmagatzemar i distribuir fluxos de dades en temps real amb alta velocitat i tolerància a fallades. Funciona com un sistema de missatgeria publicació-subscripció (pub/sub): els productors publiquen missatges en tòpics i els consumidors s'hi subscriuen per processar-los. El concepte de streaming de dades fa referència al tractament continu d'un flux de dades que arriba de manera ininterrompuda, en contraposició al processament en lot. Kafka s'utilitza en escenaris com la ingesta de logs de servidors, el seguiment d'activitat d'usuaris en temps real, la integració entre microserveis, o l'alimentació de pipelines de machine learning amb dades fresques. Empreses com LinkedIn (on es va crear), Netflix o Uber el fan servir extensivament.

Pregunta 11

Quina diferència hi ha entre una base de dades relacional (MySQL, PostgreSQL) i una base de dades NoSQL (MongoDB, Cassandra)?

Les bases de dades relacionals organitzen les dades en taules amb esquema fix, files i columnes, i utilitzen SQL per fer consultes. Garanteixen propietats ACID (atomicitat, consistència, aïllament, durabilitat) i són ideals per a dades estructurades amb relacions complexes, com ara sistemes de gestió empresarial. Les bases de dades NoSQL, en canvi, utilitzen models de dades alternatius —documents (MongoDB), clau-valor, grafs o columnes amples (Cassandra)— i sacrifiquen part de la consistència per guanyar en escalabilitat horitzontal i flexibilitat d'esquema. NoSQL és adequat quan el volum és molt gran, les dades no estan del tot estructurades o cal escalar a molts nodes fàcilment. En Big Data, les dues tipologies coexisteixen: SQL per a reporting i NoSQL per a ingesta massiva o accés d'alta velocitat.

Pregunta 12

Qué és un dashboard de BI? Quines decisions empresarials pot ajudar a prendre?

Un dashboard de Business Intelligence (BI) és una interfície visual interactiva que presenta indicadors clau de rendiment (KPI) i mètriques de negoci de manera consolidada, actualitzada i fàcilment comprensible per als responsables de l'organització. Agrega dades de múltiples fonts i les mostra en gràfics, taules i mapes que permeten detectar tendències, anomalies i oportunitats ràpidament. Per exemple, un dashboard de vendes pot mostrar el rendiment per zona geogràfica, per producte i per trimestre, ajudant la direcció a decidir on concentrar esforços comercials; un dashboard de logística pot alertar sobre retards en el subministrament; i un dashboard de màrqueting pot mostrar quines campanyes generen més conversions. Eines habituals són Power BI, Tableau, Looker i Metabase.

Pregunta 13

Has fet servir Python per analitzar dades? Quines biblioteques has usat (pandas, NumPy, Matplotlib...)?

Resposta oberta — s'avalua l'experiència prèvia de l'alumne. Una resposta competent podria descriure l'ús de pandas per carregar i netejar datasets en DataFrames, NumPy per a càlculs numèrics vectoritzats, Matplotlib o Seaborn per crear visualitzacions, i scikit-learn per aplicar models de machine learning bàsics. Es valorarà que l'alumne hagi treballat amb datasets reals, hagi netejat valors nuls, fet agregacions o exportat resultats. Si l'alumne no ha usat Python, el docent ho ha d'anotar per planificar adequadament la càrrega de les primeres pràctiques del mòdul, ja que Python és la base tecnològica principal del curs.

Pregunta 14

Qué és la computació distribuïda? Explica per qué és necessària per al Big Data.

La computació distribuïda és un model on múltiples ordinadors (nodes) treballen conjuntament i de manera coordinada per resoldre un problema, compartint tasques i dades a través d'una xarxa. Cada node processa una part del problema en paral·lel, de manera que el temps total es redueix dràsticament respecte a un únic servidor. És necessària per al Big Data perquè els datasets de terabytes o petabytes no caben en la memòria ni en el disc d'una sola màquina, i el processament seqüencial seria prohibitivament lent. Amb la distribució, es pot escalar horitzontalment afegint més nodes al clúster quan creix el volum de dades, en lloc de comprar un servidor únic cada vegada més car (escalat vertical), que té un límit físic i econòmic. Frameworks com Hadoop i Spark implementen aquest model de manera transparent per al desenvolupador.

Pregunta 15

Qué entens per "tolerància a fallades" en un sistema distribuït? Per qué és important?

La tolerància a fallades és la capacitat d'un sistema de continuar funcionant correctament —o de recuperar-se automàticament— quan un o més dels seus components fallen. En un clúster de centenars de servidors, la probabilitat que algun node falli en qualsevol moment és molt alta; per tant, dissenyar el sistema assumint que les fallades passaran és imprescindible. Tècniques habituals inclouen la replicació de dades (guardar còpies en múltiples nodes, com fa HDFS amb factor de rèplica 3), el checkpointing (guardar l'estat del processament periòdicament per reprendre des d'un punt anterior si hi ha error), i la detecció automàtica de nodes caiguts amb reassignació de tasques. Sense tolerància a fallades, un únic node defectuós podria aturar tot el processament i perdre dades, cosa inacceptable en entorns productius crítics.

Pregunta 16

Qué és el núvol (cloud) en el context del Big Data? Quins proveïdors coneixes (AWS, GCP, Azure)?

El núvol (cloud computing) en el context del Big Data fa referència a la utilització de recursos computacionals —emmagatzematge, processament, bases de dades, serveis gestionats— oferts per tercers a través d'internet, amb pagament per ús i escalabilitat pràcticament il·limitada. En lloc de mantenir un clúster Hadoop propi, una empresa pot usar serveis gestionats al núvol que eliminen la complexitat d'administració. Els tres grans proveïdors són Amazon Web Services (AWS), amb serveis com S3, EMR i Redshift; Google Cloud Platform (GCP), amb BigQuery, Dataflow i Dataproc; i Microsoft Azure, amb Azure Data Lake, Synapse Analytics i HDInsight. El núvol ha democratitzat l'accés al Big Data, permetent que empreses petites processin terabytes de dades sense inversió inicial en infraestructura.

Pregunta 17

Qué és un pipeline de dades? Descriu les etapes que creus que hauria de tenir.

Un pipeline de dades és una seqüència automatitzada d'etapes que mou, transforma i prepara les dades des de les fonts originals fins al destí on s'analitzaran o consumiran. Les etapes típiques d'un pipeline de dades son: (1) Ingesta, on es capturen dades de les fonts (APIs, bases de dades, sensors, fitxers); (2) Emmagatzematge raw, guardant les dades originals sense modificar en un Data Lake; (3) Transformació i neteja (ETL/ELT), on s'eliminen duplicats, es normalitzen formats i s'enriqueixen les dades; (4) Emmagatzematge processat, guardant les dades transformades en un format optimitzat (Parquet, Data Warehouse); i (5) Servei i consum, posant les dades a disposició de dashboards, models de ML o APIs. La robustesa d'un pipeline inclou també monitorització, gestió d'errors i orquestració (Apache Airflow, Prefect).

Pregunta 18

Has sentit parlar de Databricks, Snowflake o BigQuery? Qué creus que fan?

Databricks és una plataforma unificada d'anàlisi de dades i machine learning basada en Apache Spark, que ofereix un entorn col·laboratiu de notebooks al núvol amb gestió automàtica de clústers; és especialment popular per a pipelines de dades complexos i projectes de ML a escala. Snowflake és un Data Warehouse al núvol completament gestionat que separa l'emmagatzematge del còmput, permetent escalar cadascun independentment i pagant per ús; destaca per la seva facilitat d'ús amb SQL estàndard i el suport multi-cloud. Google BigQuery és un Data Warehouse serverless de Google Cloud que permet executar consultes SQL sobre terabytes de dades en pocs segons sense gestionar infraestructura; cobra per les dades escanejades. Les tres plataformes formen part de l'ecosistema modern del Big Data al núvol i competeixen en el segment de l'analítica empresarial a gran escala.

Pregunta 19

Qué és la "qualitat de les dades"? Per qué és important netejar les dades abans d'analitzar-les?

La qualitat de les dades fa referència al grau en què les dades són precises, completes, consistents, vàlides, oportunes i úniques per als propòsits per als quals s'utilitzen. Les dades del món real quasi sempre presenten problemes: valors nuls o absents, duplicats, formats inconsistents (dates en formats barrejats, majúscules/minúscules), valors atípics (outliers) erronis, o registres incorrectes per errors d'entrada. Si s'analitzen dades brutes sense netejar, els resultats seran esbiaixats o incorrectes, portant a decisions empresarials equivocades; el principi "garbage in, garbage out" expressa precisament això. La neteja i validació de dades (data cleaning) és, en la pràctica, la fase que consumeix més temps en qualsevol projecte de dades —sovint un 60-80% del temps total— i és condició prèvia indispensable per obtenir resultats fiables.

Pregunta 20

Si haguessis de crear un sistema per analitzar en temps real les publicacions de Twitter/X sobre una marca, quines eines creus que necessitaries?

Un sistema d'aquest tipus requeriria diverses capes tecnològiques. Per a la ingesta, caldria usar l'API de streaming de Twitter/X per capturar tuits en temps real i un broker de missatgeria com Apache Kafka per absorbir el flux de manera fiable i desacoblar productors i consumidors. Per al processament en temps real, eines com Apache Flink o Spark Streaming permetrien analitzar el sentiment dels tuits (positiu/negatiu/neutre) amb models de NLP, detectar pics d'activitat i filtrar per paraules clau. Les dades processades es guardarien en una base de dades ràpida com Elasticsearch (per a cerca) o Cassandra (per a volum alt), i les dades históiques en un Data Lake (S3, GCS). Finalment, un dashboard de BI en temps real (Kibana, Grafana) mostraria les mètriques clau als responsables de màrqueting. Al núvol, serveis gestionats com AWS Kinesis + Lambda + QuickSight o GCP Pub/Sub + Dataflow + Looker podrien simplificar l'arquitectura.