[ https://issues.apache.org/jira/browse/KAFKA-3338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Guozhang Wang updated KAFKA-3338: --------------------------------- Description: We want to provide some REPL-like pattern for users for better debuggability. More concretely, we want to allow users to easily inspect their intermediate data streams in the topology while running the application. Theoretically this can be done by using a break point, or by calling System.out.println() inside the operator, or through a finer grained trace-level logging. But more user-friendly API would be to add a print() function to the KStream / KTable object like: {code} // Prints the elements in this stream to the stdout, i.e. "System.out" of the JVM KStream#print(/* optional serde */); KTable#print(/* optional serde */); // Writes the stream as text file(s) to the specified location. KStream#writeAsText(String filePath, /* optional serde */); KTable#writeAsText(String filePath, /* optional serde */); {code} was: We want to provide some REPL-like pattern for users for better debuggability; this would be like a finer grained trace-level logging. Such example APIs can be found in Flink (search for class DataSet<T>): https://ci.apache.org/projects/flink/flink-docs-master/api/java/ > Add print and writeAsText functions to the Streams DSL > ------------------------------------------------------ > > Key: KAFKA-3338 > URL: https://issues.apache.org/jira/browse/KAFKA-3338 > Project: Kafka > Issue Type: Sub-task > Reporter: Guozhang Wang > Labels: newbie++ > Fix For: 0.10.1.0 > > > We want to provide some REPL-like pattern for users for better debuggability. > More concretely, we want to allow users to easily inspect their intermediate > data streams in the topology while running the application. Theoretically > this can be done by using a break point, or by calling System.out.println() > inside the operator, or through a finer grained trace-level logging. But more > user-friendly API would be to add a print() function to the KStream / KTable > object like: > {code} > // Prints the elements in this stream to the stdout, i.e. "System.out" of the > JVM > KStream#print(/* optional serde */); > KTable#print(/* optional serde */); > // Writes the stream as text file(s) to the specified location. > KStream#writeAsText(String filePath, /* optional serde */); > KTable#writeAsText(String filePath, /* optional serde */); > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)