Bird
Raised Fist0
Kafkadevops~10 mins

Sink connectors in Kafka - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to specify the connector class for a sink connector.

Kafka
"connector.class": "[1]",
Drag options to blanks, or click blank then click option'
AKafkaSinkConnector
BFileStreamSourceConnector
CKafkaSourceConnector
DFileStreamSinkConnector
Attempts:
3 left
💡 Hint
Common Mistakes
Using a source connector class instead of a sink connector class.
2fill in blank
medium

Complete the code to set the Kafka topic that the sink connector will consume from.

Kafka
"topics": "[1]",
Drag options to blanks, or click blank then click option'
Asource_topic
Bsink_topic
Cinput_topic
Doutput_topic
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing the topic name with the output or sink destination.
3fill in blank
hard

Fix the error in the configuration key to specify the file path for the FileStreamSinkConnector.

Kafka
"file": "[1]",
Drag options to blanks, or click blank then click option'
A/tmp/output.txt
Boutput.txt
C/var/data/output.log
Ddata/output.txt
Attempts:
3 left
💡 Hint
Common Mistakes
Using relative file paths instead of absolute paths.
4fill in blank
hard

Fill both blanks to complete the sink connector configuration that writes to a file and consumes from a topic.

Kafka
{
  "name": "file-sink-connector",
  "connector.class": "[1]",
  "tasks.max": "1",
  "topics": "[2]",
  "file": "/tmp/sink-output.txt"
}
Drag options to blanks, or click blank then click option'
AFileStreamSinkConnector
BFileStreamSourceConnector
Cinput_topic
Doutput_topic
Attempts:
3 left
💡 Hint
Common Mistakes
Using source connector class or wrong topic name.
5fill in blank
hard

Fill all three blanks to create a sink connector configuration that writes to a file, consumes from a topic, and limits tasks.

Kafka
{
  "name": "file-sink-connector",
  "connector.class": "[1]",
  "tasks.max": "[2]",
  "topics": "[3]",
  "file": "/var/log/kafka_sink.log"
}
Drag options to blanks, or click blank then click option'
AFileStreamSinkConnector
B3
Cinput_topic
DFileStreamSourceConnector
Attempts:
3 left
💡 Hint
Common Mistakes
Using source connector class, wrong tasks.max value, or wrong topic name.

Practice

(1/5)
1.

What is the main purpose of a Kafka sink connector?

easy
A. To create new Kafka topics dynamically
B. To move data from external systems into Kafka topics
C. To monitor Kafka cluster health
D. To move data from Kafka topics to external systems automatically

Solution

  1. Step 1: Understand the role of sink connectors

    Sink connectors are designed to export data from Kafka topics to other systems.
  2. Step 2: Differentiate from source connectors

    Source connectors import data into Kafka, while sink connectors export data out.
  3. Final Answer:

    To move data from Kafka topics to external systems automatically -> Option D
  4. Quick Check:

    Sink connector = export data from Kafka [OK]
Hint: Sink connectors export data out of Kafka topics [OK]
Common Mistakes:
  • Confusing sink with source connectors
  • Thinking sink connectors create topics
  • Assuming sink connectors monitor Kafka health
2.

Which of the following is a correct JSON field to specify the Kafka topic for a sink connector configuration?

{
  "name": "my-sink-connector",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "topics": "my_topic",
    "connection.url": "jdbc:mysql://localhost:3306/mydb"
  }
}
easy
A. "topics"
B. "topic"
C. "topic_name"
D. "source.topics"

Solution

  1. Step 1: Check the standard Kafka Connect config field

    The field to specify Kafka topics in sink connector config is "topics" (plural).
  2. Step 2: Verify the example JSON

    The example uses "topics": "my_topic", which is correct syntax.
  3. Final Answer:

    "topics" -> Option A
  4. Quick Check:

    Kafka sink config uses "topics" field [OK]
Hint: Use "topics" (plural) to list Kafka topics in config [OK]
Common Mistakes:
  • Using "topic" (singular) instead of "topics"
  • Using non-standard fields like "topic_name"
  • Confusing source connector fields with sink
3.

Given this sink connector config snippet, what will be the destination system?

{
  "name": "file-sink-connector",
  "config": {
    "connector.class": "FileStreamSink",
    "topics": "logs",
    "file": "/tmp/output.log"
  }
}
medium
A. A Kafka topic named 'logs'
B. A file located at /tmp/output.log
C. A database table named 'logs'
D. A remote HTTP endpoint

Solution

  1. Step 1: Identify the connector class

    The connector class is "FileStreamSink", which writes data to a file.
  2. Step 2: Check the "file" config field

    The "file" field specifies the destination file path "/tmp/output.log".
  3. Final Answer:

    A file located at /tmp/output.log -> Option B
  4. Quick Check:

    FileStreamSink writes to file path [OK]
Hint: FileStreamSink writes Kafka data to a file path [OK]
Common Mistakes:
  • Assuming data goes back to Kafka topic
  • Confusing sink with source connectors
  • Thinking it writes to a database or HTTP
4.

Identify the error in this sink connector config JSON:

{
  "name": "jdbc-sink",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "topic": "orders",
    "connection.url": "jdbc:postgresql://localhost:5432/shop"
  }
}
medium
A. Invalid JDBC URL format
B. Connector class name is incorrect
C. Missing 'topics' field; uses 'topic' instead
D. Missing 'name' field

Solution

  1. Step 1: Check the topic field name

    The config uses "topic" (singular), but Kafka sink connectors require "topics" (plural).
  2. Step 2: Verify other fields

    The JDBC URL and connector class are correctly formatted, and "name" is present.
  3. Final Answer:

    Missing 'topics' field; uses 'topic' instead -> Option C
  4. Quick Check:

    Use "topics" not "topic" in sink config [OK]
Hint: Use plural "topics" field in sink connector config [OK]
Common Mistakes:
  • Using singular "topic" instead of "topics"
  • Assuming JDBC URL is wrong without checking
  • Thinking connector class name is invalid
5.

You want to export data from multiple Kafka topics to a single database table using a JDBC sink connector. Which configuration approach is correct?

{
  "name": "multi-topic-jdbc-sink",
  "config": {
    "connector.class": "io.confluent.connect.jdbc.JdbcSinkConnector",
    "topics": "topic1,topic2,topic3",
    "connection.url": "jdbc:mysql://localhost:3306/mydb",
    "table.name.format": "combined_table"
  }
}
hard
A. This config exports all topics to one table named 'combined_table'
B. Each topic will create a separate table ignoring 'table.name.format'
C. The connector will fail because multiple topics are not allowed
D. Data will be merged but only from 'topic1'

Solution

  1. Step 1: Understand 'topics' field with multiple topics

    The "topics" field lists multiple topics separated by commas, which is valid.
  2. Step 2: Check 'table.name.format' usage

    Setting "table.name.format" to a fixed table name causes all data to go into that single table.
  3. Step 3: Confirm connector behavior

    The JDBC sink connector supports writing multiple topics to one table if configured this way.
  4. Final Answer:

    This config exports all topics to one table named 'combined_table' -> Option A
  5. Quick Check:

    Multiple topics + fixed table name = single table export [OK]
Hint: Use comma-separated topics and fixed table name for single table export [OK]
Common Mistakes:
  • Assuming multiple topics create separate tables automatically
  • Thinking multiple topics are not allowed in sink config
  • Ignoring 'table.name.format' effect
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard