- ES Español

- EN English

5.53. Big Data (Mandatory)
- Semester: 9th Sem. Credits: 3
- Hour of this course: Theory: 1 hours; Practice: 2 hours; Laboratory: 2 hours;
- Syllabus:
- htmlonly

Español

English - Prerrequisites:
- CS3P1 Parallel and Distributed Computing (8th Sem) itemize
5.53.1. Justification ↑ Back to top
In the current era, the volume, velocity, and variety of data exceed the capabilities of traditional storage and processing systems. This course introduces the fundamental concepts and technologies of Big Data. It covers distributed file systems, parallel processing frameworks, NoSQL databases, and real-time data streaming. Students will learn to design scalable architectures to extract value from massive datasets.
5.53.2. Generales Goals ↑ Back to top
- Understand the 5 V's of Big Data and their impact on system design.
- Design and implement scalable solutions using the MapReduce paradigm.
- Master the use of distributed file systems like HDFS.
- Analyze different architectural patterns for Big Data (Lambda and Kappa).
- Apply stream processing techniques for real-time data analysis.
5.53.3. Contribution to Outcomes ↑ Back to top
- AG-C11) Use of Tools: Applies modern computing tools in problem solving. (Usage)
- AG-C09) Design and Development of Solutions: Designs, implements, and evaluates solutions for complex computing problems. (Usage)
5.53.4. Content ↑ Back to top
5.53.4.1. Core Database System Concepts (12 hours) [Skills AG-C09,AG-C11] ↑ Back to top
Bibliography: (White, 2015; Karau et al., 2017)
Topics
- Purpose and advantages of database systems
- Components of database systems
- Design of core DBMS functions (e.g., query mechanisms, transaction management, buffer management, access methods)
- Database architecture, data independence, and data abstraction
- Transaction management
- Normalization
- Approaches for managing large volumes of data (e.g., NoSQL database systems, use of MapReduce)
- How to support CRUD-only applications
- Distributed databases/cloud-based systems
- Structured, semi-structured, and unstructured data
- Use of a declarative query language
- Systems supporting structured and/or stream content
Learning Outcomes
- Identify at least four advantages that using a database system provides [Analyze]
- Enumerate the components of a (relational) database system [Enumerate]
- Follow a query as it is processed by the components of a (relational) database system [Analyze]
- Defend the value of data independence [Defend]
- Compose a simple select-project-join query in SQL [Compose]
- Enumerate the four properties of a correct transaction manager [Enumerate]
- Describe the advantages for eliminating duplicate repeated data [Describe]
- Outline how MapReduce uses parallelism to process data efficiently [Outline]
- Evaluate the differences between structured and semi/unstructured databases [Evaluate]
5.53.4.2. Distributed Databases/Cloud Computing (12 hours) [Skills AG-C09,AG-C11] ↑ Back to top
Bibliography: (White, 2015; Lin and Dyer, 2010)
Topics
- Distributed DBMS:
- Distributed data storage
- Distributed query processing
- Distributed transaction model
- Homogeneous and heterogeneous solutions
- Client-server distributed databases enumerate
- Parallel DBMS:
- Parallel DBMS architectures: shared memory, shared disk, shared nothing
- Speedup and scale-up, e.g., use of the MapReduce processing model
- Data replication and weak consistency models enumerate
Learning Outcomes
- Describe the key components of a distributed DBMS, including distributed data storage, query processing, and transaction management [Describe]
- Analyze the tradeoffs between parallel DBMS architectures: shared memory, shared disk, and shared nothing [Analyze]
- Describe data replication strategies and weak consistency models in distributed database systems [Describe]
5.53.4.3. NoSQL Systems (12 hours) [Skills AG-C09,AG-C11] ↑ Back to top
Bibliography: (Sadalage and Fowler, 2012; Kleppmann, 2017b)
Topics
- Why NoSQL? (e.g., Impedance mismatch between Application [CRUD] and RDBMS)
- Key-Value and Document data model
- Storage systems (e.g., Key-Value systems, Data Lakes)
- Distribution Models (Sharding and Replication)
- Graph Databases
- Consistency Models (Update and Read, Quorum consistency, CAP theorem)
- Processing model (e.g., Map-Reduce, multi-stage map-reduce, incremental map-reduce)
- Case Studies: Cloud storage system (e.g., S3); Graph databases; "When not to use NoSQL"
Learning Outcomes
- Develop a use case for the use of NoSQL over RDBMS [Create]
- Describe the defining characteristics behind Key-Value and Document-based data models [Describe]
5.53.4.4. Data Analytics (12 hours) [Skills AG-C09,AG-C11] ↑ Back to top
Bibliography: (Matei et al., 2012; Bill and Matei, 2018; Kleppmann, 2017b; Psaltis, 2017)
Topics
- Exploratory data techniques (motivation, representation, descriptive statistics, visualizations)
- Data science lifecycle: business understanding, data understanding, data preparation, modeling, evaluation, deployment, and user acceptance
- Data mining and machine learning algorithms: e.g., classification, clustering, association, regression
- Data acquisition and governance
- Data security and privacy considerations
- Data fairness and bias
- Data visualization techniques and their use in data analytics
- Entity Resolution
Learning Outcomes
- Describe several data exploration approaches, including visualization, to understanding unfamiliar datasets [Describe]
- Apply several data exploration approaches to understanding unfamiliar datasets [Apply]
- Describe basic machine learning/data mining algorithms and when they are appropriate for use [Describe]
- Apply several machine learning/data mining algorithms [Apply]
- Describe legal and ethical considerations in acquiring, using, and modifying datasets [Describe]
- Describe issues of fairness and bias in data collection and usage [Describe]
5.53.5. Bibliography ↑ Back to top
White, T. (2015). Hadoop: The Definitive Guide. O'Reilly Media, 4th edition.
Karau, H., Konwinski, A., Wendell, P., and Zaharia, M. (2017). Learning Spark: Lightning-Fast Big Data Analysis. O'Reilly Media.
Lin, J. and Dyer, C. (2010). Data-Intensive Text Processing with MapReduce. Morgan and Claypool Publishers.
Sadalage, P. J. and Fowler, M. (2012). NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence. Addison-Wesley.
Kleppmann, M. (2017b). Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O'Reilly Media.
Matei, Z., Mosharaf, C., Tathagata, D., Ankur, D., Justin, M., Murphy, M., J, F. M., Scott, S., and Ion, S. (2012). Resilient distributed datasets: A fault-tolerant abstraction for in-memory cluster computing. In Proceedings of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI), San Jose, CA. USENIX Association.
Bill, C. and Matei, Z. (2018). Spark: The Definitive Guide: Big Data Processing Made Simple. O'Reilly Media, Sebastopol, CA.
Psaltis, A. (2017). Streaming Data: Understanding the real-time pipeline. Manning Publications.