Bird
Raised Fist0
Kafkadevops~5 mins

Sink connectors in Kafka - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a sink connector in Kafka Connect?
A sink connector is a component in Kafka Connect that reads data from Kafka topics and writes it to an external system like a database, file system, or search index.
Click to reveal answer
beginner
Name two common external systems where sink connectors send data.
Common external systems include relational databases (like MySQL, PostgreSQL) and search engines (like Elasticsearch).
Click to reveal answer
beginner
How does a sink connector know which Kafka topic to read from?
The sink connector configuration specifies the Kafka topic(s) it should read data from using the 'topics' property.
Click to reveal answer
intermediate
What is the role of the 'tasks.max' setting in sink connectors?
'tasks.max' defines the maximum number of tasks (parallel workers) the sink connector can use to write data to the external system, improving throughput.
Click to reveal answer
intermediate
Why is it important to handle data format compatibility in sink connectors?
Sink connectors must convert Kafka record formats (like Avro, JSON) into the format expected by the external system to avoid errors and data loss.
Click to reveal answer
What does a Kafka sink connector do?
AReads data from Kafka and writes it to an external system
BReads data from an external system and writes it to Kafka
CManages Kafka cluster configuration
DMonitors Kafka topic partitions
Which configuration property specifies the Kafka topics a sink connector reads from?
Aconnect.topics
Bsource.topics
Ctopics
Dsink.topics
What does the 'tasks.max' setting control in a sink connector?
AMaximum retries on failure
BMaximum Kafka topic partitions
CMaximum message size
DMaximum number of parallel tasks for writing data
Which of these is NOT a typical sink connector destination?
ARelational databases
BKafka topics
CFile systems
DSearch indexes
Why must sink connectors handle data format conversion?
ATo match the external system's expected data format
BTo encrypt data before sending
CTo compress data for faster transfer
DTo change Kafka topic names
Explain what a sink connector is and how it works in Kafka Connect.
Think about how data flows from Kafka to other systems.
You got /3 concepts.
    Describe why data format compatibility is important for sink connectors and how it affects data transfer.
    Consider what happens if the external system expects a different format.
    You got /3 concepts.

      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