[ https://issues.apache.org/jira/browse/KAFKA-2856?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15032309#comment-15032309 ]
ASF GitHub Bot commented on KAFKA-2856: --------------------------------------- GitHub user ymatsuda reopened a pull request: https://github.com/apache/kafka/pull/604 KAFKA-2856: add ktable @guozhangwang * added KTable API and impl * added standby support for KTable You can merge this pull request into a Git repository by running: $ git pull https://github.com/ymatsuda/kafka add_ktable Alternatively you can review and apply these changes as the patch at: https://github.com/apache/kafka/pull/604.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #604 ---- commit fd4f9998b52768d8a29baec7869167fca714a925 Author: Yasuhiro Matsuda <yasuh...@confluent.io> Date: 2015-11-30T18:04:21Z KAFKA-2856: add ktable commit cee5874274d275f532f8b98ea06bee52113e4dab Author: Yasuhiro Matsuda <yasuh...@confluent.io> Date: 2015-11-30T19:35:31Z ensure committing standby tasks ---- > 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)