(Which configuration is valid for deploying a JDBC Source Connector to read all rows from the orders table and write them to the dbl-orders topic?)
Correct Answer: D
According to the official Apache Kafka Connect and Confluent JDBC Source Connector documentation, the correct connector class for a JDBC source connector is io.confluent.connect.jdbc.JdbcSourceConnector. This connector is used to read data from relational databases and publish each table as a Kafka topic. To read all rows from a specific table, the configuration must include table.whitelist (or table.include.list in newer versions) with the table name, and a topic.prefix to determine the Kafka topic name. In this case, using topic.prefix=dbl- with table.whitelist=orders results in records being written to the dbl-orders topic, which matches the requirement. Options A, B, and C are invalid because they reference a non-existent connector class (DdbcSourceConnector), contain unsupported properties such as topic.whitelist for a source connector, or include malformed/incorrect JDBC parameters. Additionally, blacklisting tables does not ensure that only the orders table is read. Therefore, option D is the only configuration that is syntactically correct, uses the proper connector class, and aligns with the official Kafka Connect JDBC Source Connector documentation.
Question 17
A consumer application runs once a week and reads from a Kafka topic. The last time the application ran, the last offset processed was 217. The application is configured with auto.offset.reset set to "latest". The current offsets in the topic start at 318 and end at 588. What offset will the application start reading when it starts up for its next run?
Correct Answer: D
Question 18
(You are building real-time streaming applications using Kafka Streams. Your application has a custom transformation. You need to define custom processors in Kafka Streams. Which tool should you use?)
Correct Answer: B
The Apache Kafka Streams documentation clearly distinguishes between the Kafka Streams DSL and the Processor API. While the DSL is designed for common stream processing operations such as filtering, mapping, joining, and aggregations, it does not support fully custom processing logic. For use cases that require custom transformations, fine-grained control over record processing, access to headers, timestamps, state stores, and punctuation, Kafka Streams provides the Processor API. This API allows developers to implement custom Processor, Transformer, or ValueTransformer classes and explicitly define the processing topology. Option A (TopologyTestDriver) is a testing utility, not a development API. Option C (DSL) is higher-level and not suitable for advanced custom logic. Option D does not exist in Kafka. Therefore, the correct and officially supported approach for defining custom processors in Kafka Streams is to use the Processor API.
Question 19
You are experiencing low throughput from a Java producer. Metrics show low I/O thread ratio and low I/O thread wait ratio. What is the most likely cause of the slow producer performance?
Correct Answer: D
Low I/O thread activity with blocked throughput often indicates thatproducer callbacks are consuming too much time, causing the sender thread to block while waiting for onCompletion() to finish. FromKafka Producer Performance Guide: "Expensive logic in callbacks (e.g., I/O or complex computation) can block the sender thread, reducing throughput." * Compression (A) may slightly impact CPU but not I/O thread usage. * Large batches (B) improve throughput if managed correctly. * A Layer 2 network issue (C) would lead to packet loss, not specifically low callback metrics. Reference:Kafka Producer Metrics and Performance Tuning
Question 20
What are stateful operations in Kafka Streams API? (Choose 2.)