题目中文:结构化流: Apache spark中,处理实时数据的声明式API

Abstract

with the ubiquity of real-time data, organizations need streaming systems that are scalable, easy to use, and easy to integrate into business applications. Structured Streaming is a new high-level streaming. Structured Streaming differs from other recent streaming APIs, such as Google Dataflow, in two main ways. First, it is a purely declarative API based on automatically incrementalizing a static relational query(expressed using SQL or DataFrames), in contrast to APIs that ask the user to build a DAG of physical operators. Second, Structured Streaming aims to support end-to-end real time applications that integrate streaming with batch and interactive analysis. We found that this integration was often a key challenge in practice. Structured Streaming achieves high performance via Spark SQL's code generation engine and can outperformance via Spark SQL's code generation engine and can outperform Apache Flink by up to 2* and Apache Kafka streams by 90*. It also offers rich operational features such as roolbacks, code updates, and mixed streaming/batch execution. We describtion deployments on Databricks, the largest of which process over 1PB of data per month.

  随着实时数据的普遍性,企业也更加需要“流式计算系统”具有更好的可扩展性、容易使用,并且容易整合进业务系统中去。结构化流(Structured Streaming)是一个基于我们开发spark streaming经验而开发出来的一个高级流式API。结构化流和其他最近的一些流式API(比如:Google Dataflow)主要在两个方面有所不一样。

  第一. 它是一个纯粹的声明式API。它基于自动增量化关系查询(这个查询方法,通常使用SQL或者DataFrames)。这一点上,它和那些要求用户创建一个物理operators的DAG很不一样。

  第二. 结构化流目的在于支持端到端的实时应用,并且集成了批处理和交互式分析。

  我们实践时才发现,这样的集成却是真正关键的挑战。结构化流媒体通过Spark SQL代码生成器能够取得很好的表现。我们测试时得到的效果是:它的性能是Flink的两倍,是Apache Kafka Stream的90倍(主要应该是吞吐量上,可参考第9节的具体讲解)。它也提供了丰富的操作特性,比如:回滚,代码更新,混合批处理和流处理。

  我们通过Databricks上上百个生产部署的案例来描述系统的设计和使用。其中,最大的每个月处理超过1PB的数据。

Structured streaming: A Declarative API for Real-Time Applications in Apache Spark(Abstract: 原文+注译)的更多相关文章

  1. Spark2.3(四十二):Spark Streaming和Spark Structured Streaming更新broadcast总结(二)

    本次此时是在SPARK2,3 structured streaming下测试,不过这种方案,在spark2.2 structured streaming下应该也可行(请自行测试).以下是我测试结果: ...

  2. Spark2.3(三十四):Spark Structured Streaming之withWaterMark和windows窗口是否可以实现最近一小时统计

    WaterMark除了可以限定来迟数据范围,是否可以实现最近一小时统计? WaterMark目的用来限定参数计算数据的范围:比如当前计算数据内max timestamp是12::00,waterMar ...

  3. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(二十五)Structured Streaming:同一个topic中包含一组数据的多个部分,按照key它们拼接为一条记录(以及遇到的问题)。

    需求: 目前kafka的topic上有一批数据,这些数据被分配到9个不同的partition中(就是发布时key:{m1,m2,m3,m4...m9},value:{records items}),m ...

  4. Structured Streaming编程向导

    简介 Structured Streaming is a scalable and fault-tolerant stream processing engine built on the Spark ...

  5. Spark Structured Streaming框架(5)之进程管理

    Structured Streaming提供一些API来管理Streaming对象.用户可以通过这些API来手动管理已经启动的Streaming,保证在系统中的Streaming有序执行. 1. St ...

  6. Apache Spark 2.2.0 中文文档 - Structured Streaming 编程指南 | ApacheCN

    Structured Streaming 编程指南 概述 快速示例 Programming Model (编程模型) 基本概念 处理 Event-time 和延迟数据 容错语义 API 使用 Data ...

  7. Spark3.0分布,Structured Streaming UI登场

    近日,在Spark开源十周年之际,Spark3.0发布了,这个版本大家也是期盼已久.登录Spark官网,最新的版本已经是3.0.而且不出意外,对于Structured Streaming进行了再一次的 ...

  8. Spark2.x(五十四):在spark structured streaming下测试ds.selectExpr(),当返回列多时出现卡死问题。

    业务需求,有一部分动态字段,需要在程序中动态加载并解析表达式: 实现方案1):在MapFunction.MapPartitionFunction中使用FelEngine进行解析: FelEngine ...

  9. Spark之Structured Streaming

    目录 Part V. Streaming Stream Processing Fundamentals Structured Streaming Basics Event-Time and State ...

随机推荐

  1. matlab 基础知识1

    一.数组和矩阵注意 逗号 和 分号 的区别 向量生成方式: 传统方式:行向量 :空格,逗号列向量 :分号,回车 函数方式: x = linspace(a,b,n) 等分关系,从a 到 b, n等分.n ...

  2. Python学习笔记:序列构成的数组

    列表推导是一种构建列表(list)的快捷方式 #列表推导 symbols = '!@#$%' codes = [ord(symbol) for symbol in symbols] #ord()Pyt ...

  3. 消金ABS

    对于持牌消金公司来说,发行ABS需满足至少3年经营期限的硬性规定,目前已开业的24家消金公司里,有15家符合此项规定. 2019年下半年以来,个人消费金融领域共发行了15个资产证券化产品,发行规模达4 ...

  4. Oracle之:Function :numberToDate()

    create or replace function numberToDate(i_date in number) return date is v_date number; result date ...

  5. Python的f.seek(offset, whence)函数

    file.seek()方法标准格式是:seek(offset,whence=0)offset:开始的偏移量,也就是代表需要移动偏移的字节数whence:给offset参数一个定义,表示要从哪个位置开始 ...

  6. 【agc004d】Teleporter

    题目大意 一棵树,改变一些边的父亲,使得深度不超过k. 解题思路 我一开始就想到了贪心,结果莫名其妙的把这种方法给否决了, 然后考虑优化树形dp,然后优化失败⊙﹏⊙ 贪心思路很简单,也很好感受出来,从 ...

  7. 快速数论变换NTT模板

    51nod 1348 乘积之和 #include <cmath> #include <iostream> #include <cstdio> #include &l ...

  8. ztree中如何通过点击节点文字就可以选中节点前的选择框,并且父级和子级之间进行选择联动?

    配置信息如下: var UsersTreeSetting = { check : { enable : true, chkboxType : { "Y" : "ps&qu ...

  9. BZOJ 3270: 博物馆 概率与期望+高斯消元

    和游走挺像的,都是将概率转成期望出现的次数,然后拿高斯消元来解. #include <bits/stdc++.h> #define N 23 #define setIO(s) freope ...

  10. 树的计数 + prufer序列与Cayley公式(转载)

    原文出处:https://www.cnblogs.com/dirge/p/5503289.html 树的计数 + prufer序列与Cayley公式 学习笔记(转载) 首先是 Martrix67 的博 ...