[ 
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)

Reply via email to