Bird
Raised Fist0
Azurecloud~10 mins

Event Hubs for streaming data in Azure - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create an Event Hub client using the connection string.

Azure
from azure.eventhub import EventHubProducerClient

producer = EventHubProducerClient.from_connection_string(conn_str=[1], eventhub_name="myeventhub")
Drag options to blanks, or click blank then click option'
Amyeventhub
B"Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123"
CEventHubProducerClient
Dconnection_string
Attempts:
3 left
💡 Hint
Common Mistakes
Using the event hub name instead of the connection string.
Passing the client class name instead of the connection string.
Using a variable name without quotes.
2fill in blank
medium

Complete the code to send a batch of events to the Event Hub.

Azure
with producer:
    event_data_batch = producer.create_batch()
    event_data_batch.add(EventData('First event'))
    producer.[1](event_data_batch)
Drag options to blanks, or click blank then click option'
Areceive
Bcreate_batch
Csend_batch
Dclose
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'receive' which is for receiving events.
Calling 'create_batch' again instead of sending.
Calling 'close' which closes the client.
3fill in blank
hard

Fix the error in the code to receive events from the Event Hub.

Azure
from azure.eventhub import EventHubConsumerClient

consumer = EventHubConsumerClient.from_connection_string(conn_str=[1], consumer_group="$Default", eventhub_name="myeventhub")

def on_event(partition_context, event):
    print(event.body_as_str())

consumer.receive(on_event=on_event)
Drag options to blanks, or click blank then click option'
A"Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123"
B"myeventhub"
Con_event
Dconsumer_group
Attempts:
3 left
💡 Hint
Common Mistakes
Passing the event hub name instead of the connection string.
Passing the consumer group instead of the connection string.
Passing the callback function instead of the connection string.
4fill in blank
hard

Fill both blanks to create a batch and add multiple events before sending.

Azure
with producer:
    batch = producer.[1]()
    batch.[2](EventData('Event 1'))
    batch.add(EventData('Event 2'))
    producer.send_batch(batch)
Drag options to blanks, or click blank then click option'
Acreate_batch
Bsend_batch
Cadd
Dreceive
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'send_batch' to create a batch.
Using 'receive' to add events.
Using 'send_batch' to add events.
5fill in blank
hard

Fill all three blanks to receive events with a consumer client and start receiving.

Azure
consumer = EventHubConsumerClient.from_connection_string(conn_str=[1], consumer_group=[2], eventhub_name=[3])

consumer.receive(on_event=on_event)
Drag options to blanks, or click blank then click option'
A"Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=abc123"
B"$Default"
C"myeventhub"
D"RootManageSharedAccessKey"
Attempts:
3 left
💡 Hint
Common Mistakes
Using the shared access key instead of the connection string.
Using the event hub name as the consumer group.
Leaving any of the parameters as variables without quotes.

Practice

(1/5)
1. What is the main purpose of Azure Event Hubs in cloud infrastructure?
easy
A. To manage user identities and access
B. To store data permanently like a database
C. To collect and stream large amounts of data in real time from multiple sources
D. To host virtual machines for applications

Solution

  1. Step 1: Understand Event Hubs role

    Event Hubs is designed to collect and stream data from many sources in real time, acting like a big pipeline for data.
  2. Step 2: Compare other options

    Options A, B, and C describe other Azure services like identity management, databases, and virtual machines, not Event Hubs.
  3. Final Answer:

    To collect and stream large amounts of data in real time from multiple sources -> Option C
  4. Quick Check:

    Event Hubs = real-time data streaming [OK]
Hint: Event Hubs streams data live, not stores or hosts [OK]
Common Mistakes:
  • Confusing Event Hubs with databases
  • Thinking Event Hubs manages users
  • Assuming Event Hubs runs virtual machines
2. Which of the following is the correct way to create an Event Hub namespace using Azure CLI?
easy
A. az eventhubs create namespace --resource MyNamespace --group MyResourceGroup --location eastus
B. az eventhubs namespace create --name MyNamespace --resource-group MyResourceGroup --location eastus
C. az namespace eventhubs create --name MyNamespace --group MyResourceGroup --location eastus
D. az create eventhubs namespace --resource-group MyResourceGroup --name MyNamespace --region eastus

Solution

  1. Step 1: Recall Azure CLI syntax for Event Hubs namespace

    The correct command starts with az eventhubs namespace create followed by required parameters.
  2. Step 2: Check parameters and order

    az eventhubs namespace create --name MyNamespace --resource-group MyResourceGroup --location eastus uses correct parameter names: --name, --resource-group, --location. Other options have wrong command order or parameter names.
  3. Final Answer:

    az eventhubs namespace create --name MyNamespace --resource-group MyResourceGroup --location eastus -> Option B
  4. Quick Check:

    Correct CLI syntax = az eventhubs namespace create --name MyNamespace --resource-group MyResourceGroup --location eastus [OK]
Hint: Use 'az eventhubs namespace create' with proper flags [OK]
Common Mistakes:
  • Mixing command order
  • Using wrong parameter names
  • Confusing resource group and namespace names
3. Given an Event Hub with 4 partitions and a retention period of 2 days, what happens if data is sent continuously for 3 days without reading it?
medium
A. Data is duplicated across partitions to increase retention
B. All 3 days of data are stored permanently
C. Event Hub stops accepting new data after 2 days
D. Data older than 2 days is automatically removed, so only the last 2 days of data remain

Solution

  1. Step 1: Understand retention period effect

    Retention period defines how long data is kept. After 2 days, older data is deleted automatically.
  2. Step 2: Analyze continuous data sending

    Since data is sent for 3 days, data from the first day exceeds retention and is removed, leaving only last 2 days.
  3. Final Answer:

    Data older than 2 days is automatically removed, so only the last 2 days of data remain -> Option D
  4. Quick Check:

    Retention period limits data age [OK]
Hint: Retention period limits data age, older data is deleted [OK]
Common Mistakes:
  • Assuming data is stored forever
  • Thinking partitions increase retention
  • Believing Event Hub stops on retention limit
4. You have an Event Hub configured with 2 partitions but your streaming application is only reading from one partition. What issue might occur?
medium
A. Data from the unread partition will accumulate and may cause delays or data loss
B. Event Hub will automatically merge partitions to fix the issue
C. The application will read data from both partitions anyway
D. Partitions do not affect data reading, so no issue occurs

Solution

  1. Step 1: Understand partition role in Event Hubs

    Partitions split data streams. Each partition must be read to process all data.
  2. Step 2: Analyze reading from only one partition

    If only one partition is read, data in the other partition accumulates, risking delays or data loss if retention expires.
  3. Final Answer:

    Data from the unread partition will accumulate and may cause delays or data loss -> Option A
  4. Quick Check:

    Unread partitions cause data buildup [OK]
Hint: Read all partitions to avoid data backlog [OK]
Common Mistakes:
  • Assuming automatic partition merging
  • Thinking one reader covers all partitions
  • Ignoring partition impact on data flow
5. You want to design an Event Hub solution to handle a sudden spike of 10,000 events per second for 10 minutes, then normal traffic. Which approach is best to ensure no data loss and smooth processing?
hard
A. Create an Event Hub namespace with enough throughput units and increase partitions to distribute load
B. Use a single partition with default throughput units and rely on retry logic in the consumer
C. Set retention period to 1 hour to keep data longer during spikes
D. Disable partitions and use a single stream to simplify processing

Solution

  1. Step 1: Understand throughput units and partitions

    Throughput units control capacity. More partitions allow parallel processing and better load distribution.
  2. Step 2: Analyze spike handling

    To handle 10,000 events/sec, increase throughput units and partitions to avoid throttling and data loss during spikes.
  3. Step 3: Evaluate other options

    Use a single partition with default throughput units and rely on retry logic in the consumer risks overload; C affects retention but not throughput; D disables partitions which reduces scalability.
  4. Final Answer:

    Create an Event Hub namespace with enough throughput units and increase partitions to distribute load -> Option A
  5. Quick Check:

    Scale throughput and partitions for spikes [OK]
Hint: Scale throughput units and partitions for high load [OK]
Common Mistakes:
  • Relying on single partition for high load
  • Confusing retention with throughput
  • Disabling partitions reduces scalability