[ https://issues.apache.org/jira/browse/KAFKA-2856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15032294#comment-15032294 ]
ASF GitHub Bot commented on KAFKA-2856: --------------------------------------- Github user ymatsuda closed the pull request at: https://github.com/apache/kafka/pull/604 > add KTable > ---------- > > Key: KAFKA-2856 > URL: https://issues.apache.org/jira/browse/KAFKA-2856 > Project: Kafka > Issue Type: Sub-task > Components: kafka streams > Reporter: Yasuhiro Matsuda > > KTable is a special type of the stream that represents a changelog of a > database table (or a key-value store). > A changelog has to meet the following requirements. > * Key-value mapping is surjective in the database table (the key must be the > primary key). > * All insert/update/delete events are delivered in order for the same key > * An update event has the whole data (not just delta). > * A delete event is represented by the null value. > KTable does not necessarily materialized as a local store. It may be > materialized when necessary. (see below) > KTable supports look-up by key. KTable is materialized implicitly when > look-up is necessary. > * KTable may be created from a topic. (Base KTable) > * KTable may be created from another KTable by filter(), filterOut(), > mapValues(). (Derived KTable) > * A call to the user supplied function is skipped when the value is null > since such an event represents a deletion. > * Instead of dropping, events filtered out by filter() or filterOut() are > converted to delete events. (Can we avoid this?) > * map(), flatMap() and flatMapValues() are not supported since they may > violate the changelog requirements > A derived KTable may be persisted to a topic by to() or through(). through() > creates another base KTable. > KTable can be converted to KStream by the toStream() method. -- This message was sent by Atlassian JIRA (v6.3.4#6332)