Overview

Concepts

Topology

Time

States

Window

Hopping time windows

Tumbling time windows

Sliding windows

Join

API

Low-Level Processor API

High-Level DSL API

Overview

Kafka Stream特点

》简单轻量的SDK

》除了对Kafka本身的依赖外,无外部依赖

》支持容错的local state从而支持高效的状态操作,如Join和Window操作

》Record级别的处理

》提供两种处理原语,Processor API和DSL

Concepts

Stream Topology

》Stream时间上无解的,有序的,不可变数据集

》Stream Processing application通过一个或多个Topology定义的计算逻辑

》Stream processor一个计算原语,类似于Storm的Bolt

Time

》Event Time消息创建时间,一般由消费携带

》Processing Time消息被处理的时间

》Ingestion Time消息存入Topic/Partition时的时间

State

》In-memory State Store(类似Hash表,将结果存在内存中)

》Persistent State Store(一份存内存,一份存磁盘)

Window

Hopping time windows

》Advance interval 结果输出interval

》Window size计算数据集

》使用场景:Advance interval为1个小时,Window size为1s,1s刷新一次,我能知道每秒后前一个小时的pv/uv量

Tumbling time windows

》Hopping time windows的特例(Advance interval=Window size)

》使用场景:统计每一个小时的pv/uv是多少

Sliding windows

》只用于Join操作,可由JoinWindow类指定

KStream vs. KTable

KStream

》KStream为数据流,每条消息代表一条不可变的新纪录

Ktable

》KTable为change log流,每条消息代表一个更新,几条key相同的消息会将该key的值更新为最后一条消息的值

Example

》对于KStream和KTable中插入两条消息(“key”,1),(“key2”,2)

》对KStream作sum,结果为(“key1”,3)

》对KTable作sum,结果为(“key1”,2)

Join

KSream-KStream Join

》适用于Window Join

》结果为KStream

KStream-KTable Join

》KTable的变化只影响KStream中新数据

》新结果的输入由KStream驱动

》输出为KStream

KTable-KTable join

》类似于RDBMS的Join

》结果为KTable

Kafka Strem的更多相关文章

  1. Spark踩坑记——Spark Streaming+Kafka

    [TOC] 前言 在WeTest舆情项目中,需要对每天千万级的游戏评论信息进行词频统计,在生产者一端,我们将数据按照每天的拉取时间存入了Kafka当中,而在消费者一端,我们利用了spark strea ...

  2. 消息队列 Kafka 的基本知识及 .NET Core 客户端

    前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息 ...

  3. kafka学习笔记:知识点整理

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...

  4. .net windows Kafka 安装与使用入门(入门笔记)

    完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS   在环境搭建过程中遇到两个问题,在这里先列出来,以方便查询: 1. \Jav ...

  5. kafka配置与使用实例

    kafka作为消息队列,在与netty.多线程配合使用时,可以达到高效的消息队列

  6. kafka源码分析之一server启动分析

    0. 关键概念 关键概念 Concepts Function Topic 用于划分Message的逻辑概念,一个Topic可以分布在多个Broker上. Partition 是Kafka中横向扩展和一 ...

  7. Kafka副本管理—— 为何去掉replica.lag.max.messages参数

    今天查看Kafka 0.10.0的官方文档,发现了这样一句话:Configuration parameter replica.lag.max.messages was removed. Partiti ...

  8. Kafka:主要参数详解(转)

    原文地址:http://kafka.apache.org/documentation.html ############################# System ############### ...

  9. kafka

    2016-11-13  20:48:43 简单说明什么是kafka? Apache kafka是消息中间件的一种,我发现很多人不知道消息中间件是什么,在开始学习之前,我这边就先简单的解释一下什么是消息 ...

随机推荐

  1. C++编译错误杂记

    目录 2018年12月23日 error: no matching function for call to ××× 2018年12月10日 error: expected ')' before '* ...

  2. 如何在golang中打印grpc详细日志

    最近捣鼓fabric,在一个tls证书问题上纠结挺久,连接orderer服务时候,grpc日志总是冷冰冰的显示这个信息 Orderer Client Status Code: (2) CONNECTI ...

  3. R语言爬虫:CSS方法与XPath方法对比(表格介绍)

    css 选择器与 xpath 用法对比 目标 匹配节点 CSS 3 XPath 所有节点 ~ * //* 查找一级.二级.三级标题节点 <h1>,<h2>,<h3> ...

  4. 20154327 Exp4 恶意代码分析

    基础问题回答 (1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. 监控网络连接 监控是否创建新的进程 监控 ...

  5. 成都Uber优步司机奖励政策(2月1日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. 长沙Uber司机奖励政策(8月24日到8月30日)

    本周奖励(8月24日到8月30日) 滴滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://w ...

  7. Java:二进制(原码、反码、补码)与位运算

    一.二进制(原码.反码.补码) 二进制的最高位是符号位(“0”代表正数,“1”代表负数): Java中没有无符号数: 计算机以整数的补码进行运算: 1.  原码:将一个整数转换成二进制表示 以 int ...

  8. LeetCode:36. Valid Sudoku(Medium)

    1. 原题链接 https://leetcode.com/problems/valid-sudoku/description/ 2. 题目要求 给定一个 9✖️9 的数独,判断该数独是否合法 数独用字 ...

  9. androd hook acitivity 启动流程,替换启动的activity(Android Instrumentation)

    前言:如果程序想要知道有activity启动,如果想要拦截activity,然后跳转到指定的activity怎么办? 我们看下ActivityThread 里面: private Activity p ...

  10. 「日常训练」 Yukari's Birthday(ZOJ-3665)

    题意与分析 二分题.考虑到n的范围是\(10^{12}\),注意到等比公式\(S=a_1\frac{1-q^n}{1-q} (q\ne 1)\),可以看出,不论q有多大(1除外,这个时候\(r=1,k ...