📖 Scenario: You work at a company that collects data from many sources like sales, website clicks, and customer feedback. All this data needs to be stored in one big place called a data lake so analysts can use it later.
🎯 Goal: Build a simple data ingestion pipeline that collects data from different sources and stores it in a data lake represented by a dictionary. This will help you understand why ingestion pipelines feed the data lake.
📋 What You'll Learn
Create a dictionary called data_sources with three sources and their sample data
Create a list called data_lake to store all ingested data
Write a loop to add data from each source into the data_lake
Print the final data_lake to see all collected data
💡 Why This Matters
🌍 Real World
Companies collect data from many places like sales, websites, and customer feedback. They use ingestion pipelines to gather all this data into a data lake for easy access and analysis.
💼 Career
Understanding data ingestion pipelines is important for data engineers and data scientists who prepare data for analysis and machine learning.
Progress0 / 4 steps
1
Create data sources dictionary
Create a dictionary called data_sources with these exact entries: 'sales': [100, 200, 150], 'website_clicks': [300, 400], and 'customer_feedback': ['good', 'bad'].
Hadoop
Hint
Use curly braces {} to create a dictionary with keys and lists as values.
2
Create data lake list
Create an empty list called data_lake to store all ingested data.
Hadoop
Hint
Use square brackets [] to create an empty list.
3
Ingest data into the data lake
Use a for loop with variables source and data to iterate over data_sources.items(). Inside the loop, use data_lake.extend(data) to add each source's data to the data_lake.
Hadoop
Hint
Use for source, data in data_sources.items(): to loop through the dictionary. Use extend() to add list items.
4
Print the data lake
Write print(data_lake) to display all the data collected in the data lake.
Hadoop
Hint
Use print(data_lake) to show the final combined data.
Practice
(1/5)
1. Why do ingestion pipelines feed data into a data lake?
easy
A. To collect raw data from multiple sources in one place
B. To delete old data automatically
C. To convert all data into a single format immediately
D. To prevent data from being accessed by users
Solution
Step 1: Understand the role of ingestion pipelines
Ingestion pipelines gather data from many different sources.
Step 2: Understand the purpose of a data lake
A data lake stores raw data centrally for easy access and analysis later.
Final Answer:
To collect raw data from multiple sources in one place -> Option A
Quick Check:
Ingestion pipelines feed raw data to data lakes = A [OK]
Hint: Remember: pipelines bring raw data together [OK]
Common Mistakes:
Thinking pipelines delete data
Assuming data is converted immediately
Believing data lakes block user access
2. Which of the following is a correct tool used in ingestion pipelines for feeding data lakes?
easy
A. WordPress
B. Photoshop
C. Excel
D. Hadoop
Solution
Step 1: Identify tools related to data ingestion
Hadoop is a big data tool used for storing and processing large datasets.
Step 2: Check other options
Photoshop, Excel, and WordPress are not designed for data ingestion pipelines.
Final Answer:
Hadoop -> Option D
Quick Check:
Hadoop is a data ingestion tool = A [OK]
Hint: Pick big data tools, not office or design apps [OK]
Common Mistakes:
Confusing data tools with office software
Choosing popular but unrelated software
Ignoring Hadoop's role in data pipelines
3. Consider this code snippet using Apache NiFi to ingest data:
flowFile = session.get()
if flowFile is None:
session.commit()
exit()
flowFile = session.putAttribute(flowFile, "source", "sensor1")
session.transfer(flowFile, REL_SUCCESS)
What does this pipeline step do?
medium
A. It deletes the data from the pipeline
B. It adds a source attribute and sends data forward
C. It converts data to CSV format
D. It stops the pipeline permanently
Solution
Step 1: Analyze the code actions
The code gets a data flow file, adds an attribute named 'source' with value 'sensor1'.
Step 2: Understand the transfer step
It then transfers the flow file to the success relationship, moving data forward.
Final Answer:
It adds a source attribute and sends data forward -> Option B
Quick Check:
Attribute added + transfer = C [OK]
Hint: Look for attribute changes and transfer commands [OK]
Common Mistakes:
Thinking data is deleted
Assuming format conversion happens here
Believing pipeline stops permanently
4. This ingestion pipeline code snippet has an error:
data = kafka_consumer.poll()
if data:
print('Data received:', data)
process(data)
What is the error and how to fix it?
medium
A. Indentation error; indent the print and process lines
B. Syntax error; replace poll() with consume()
C. Runtime error; data variable is undefined
D. Logical error; should check data length instead of truthiness
Solution
Step 1: Identify the error in code structure
The print and process lines are not indented under the if statement, causing an indentation error.
Step 2: Fix the indentation
Indent these lines to be inside the if block to run only when data exists.
Final Answer:
Indentation error; indent the print and process lines -> Option A
Quick Check:
Indentation fixes code error = B [OK]
Hint: Check indentation after if statements [OK]
Common Mistakes:
Confusing method names
Assuming variable is undefined
Overthinking data checks
5. You want to build an ingestion pipeline that feeds a data lake with streaming data from multiple sensors. Which approach best ensures data is stored raw and ready for future analysis?
hard
A. Use batch uploads once a day to reduce pipeline complexity
B. Transform data into summaries before storing to reduce storage needs
C. Use Kafka to collect streams, then store raw data in Hadoop HDFS without transformation
D. Store data only after converting to JSON format and filtering out duplicates
Solution
Step 1: Understand raw data storage needs
Storing raw data means saving original data without changes for flexible analysis later.
Step 2: Evaluate options for streaming ingestion
Kafka is designed for streaming data collection; Hadoop HDFS stores large raw datasets efficiently.
Step 3: Compare other options
Transforming or filtering data early loses raw details; batch uploads delay data availability.
Final Answer:
Use Kafka to collect streams, then store raw data in Hadoop HDFS without transformation -> Option C
Quick Check:
Raw streaming data + Hadoop storage = D [OK]
Hint: Keep data raw and streaming for best analysis [OK]
Common Mistakes:
Filtering data too early
Using batch instead of streaming
Converting formats before storage
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.