在实践中(而非理论上),小批量与实时流有什么区别?

2023-12-19

在实践中(而非理论上),小批量与实时流有什么区别?从理论上讲,我理解迷你批次是在给定时间范围内进行批处理的东西,而实时流更像是在数据到达时执行某些操作,但我最大的问题是为什么不使用带有 epsilon 时间范围(例如一毫秒)的迷你批次或者我想了解为什么其中一个解决方案比其他解决方案更有效?

我最近遇到一个示例,其中小批量 (Apache Spark) 用于欺诈检测,实时流 (Apache Flink) 用于欺诈预防。有人还评论说小批量不会是预防欺诈的有效解决方案(因为目标是防止交易发生)现在我想知道为什么小批量(Spark)不会那么有效?为什么以 1 毫秒延迟运行小批量没有效果?批处理是一种无处不在的技术,包括操作系统和内核 TCP/IP 堆栈,其中磁盘或网络的数据确实被缓冲,那么这里有什么令人信服的因素可以说一个比另一个更有效呢?


免责声明:我是 Apache Flink 的提交者和 PMC 成员。我熟悉Spark Streaming的整体设计,但不了解其内部细节。

Spark Streaming实现的小批量流处理模型的工作原理如下:

  • 流的记录被收集在缓冲区中(小批量)。
  • 定期使用常规 Spark 作业处理收集的记录。这意味着,对于每个小批量,都会调度并执行完整的分布式批处理作业。
  • 当作业运行时,会收集下一批的记录。

那么,为什么每 1ms 运行一次小批量并不有效呢?很简单,因为这意味着每毫秒安排一个分布式批处理作业。尽管 Spark 在调度作业方面非常快,但这有点太多了。它还会显着降低可能的吞吐量。如果操作系统或 TCP 中使用的批处理技术的批次变得太小,则它们也无法正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在实践中(而非理论上),小批量与实时流有什么区别? 的相关文章

随机推荐

  • 为什么以及如何重载运算符 << 进行打印

    我写了一个程序来实现堆栈 我里面有一个显示功能 我一开始是这样写显示函数的 template
  • QPushButton 更改同一布局中其他小部件的边距

    我有一个大布局 其中包含以下结构的小部件和布局 QVBoxLayout QTableView QPushButton 我将布局上的边距 填充和间距设置为 0 按照 Mac OS X 上的呈现方式 按钮不会填充其所有空间 相反 它周围有一些填
  • 带有不透明背景图像的引导内容

    我正在学习 Bootstrap 并试图找出一种用不透明背景图像显示内容的好方法 我目前正在使用 well 但不必这样做 我可以得到井 内部 且不透明的图像 但我无法得到其他内容 后面 的图像 这是 html 的一个小示例 backgroun
  • C# 将 PDF 文件附加到 MemoryStream - 无法访问关闭的流

    是否可以使用 iTextSharp 将现有 PDF 文件附加到动态创建的 PDF 中 我尝试按照下面的代码使用 PdfCopy 但我得到了Cannot access a closed Stream error 我见过将实际 PDF 文件合并
  • 添加 SQL 查询统计

    我正在尝试将记录从文本框更新到 Access 数据库中 我想知道每次点击保存时都会生成错误 System Data dll 中发生 System Data OleDb OleDbException 类型的未处理异常 附加信息 没有为一个或多
  • Redux 中的 Action 应该始终是唯一的吗?

    在此示例中 我使用名为的操作ADD TODO import createStore combineReducers from redux function todos state action state state switch acti
  • phpmyadmin 导出 html 而不是 sql

    我有 phpmyadmin 4 4 7 并且之前已将 MySql 表精细导出为 sql 格式 但是 即使我使用快速或高级方法选择 sql 格式 它现在仍以 html 格式导出 非常感谢任何想法 建议 谢谢 Lyle 当数据库非常大 在我的例
  • 最优雅的项目分类用户界面?

    我有一个项目集合 用户需要以多种方式对这些项目进行分组 分类 举个例子 假设它是汽车的集合 用户希望按以下方式对它们进行分类 颜色 红 银 蓝 黑等 车身形状 掀背车 轿车 轿跑车 旅行车等 座位 2 4 5 6 等 etc 您是否遇到过一
  • 使用 DI 进行类注入有什么意义吗

    在 Angular1 中 我们经常使用工厂来注入类 而不是实例 在 angular2 中 我可以做同样的事情 provide MyClass useFactory gt return MyClass constructor MyClass
  • 多个 PostConstruct 方法?

    它说在Java 的文档 http docs oracle com javaee 7 api javax annotation PostConstruct htmlPostConstruct 页面 该注解只能注解一种方法 但我只是尝试使用 P
  • AVL树最小节点

    高度为 h 的 AVL 树中的最小节点数是多少 我在互联网上做了一些研究 但它们都很令人困惑 n h 是高度为 h 的 AVL 树的最小节点数 则 n 0 1 n 1 2 n h 1 n h 1 n h 2
  • sas 日期时间转 R 日期格式

    我有一个包含日期时间变量的 SAS 数据集 我已使用 sas7bdat 包将此数据集移植到 R 中 但日期时间变量以整数格式显示 例如 1706835972 有什么办法可以将这个整数转换为日期格式吗 要准确匹配默认日期时间结构的 SAS 输
  • reinterpret_cast 为相同类型

    考虑以下程序 struct A int main A a A b a A c reinterpret cast a a 编译器 g 14 抛出一个错误invalid cast from type A to type A 为什么转换为相同类型
  • “请求中的 URI 无效”尝试代理 iframe 内容以进行本地调试

    我正在尝试调试包含 iframe 的页面中的问题 为父页面提供服务的网站是我正在处理的代码 我可以轻松地在本地运行 但 iframe 的内容来自我无权访问的代码 有一些保护措施会阻止跨域 iframe 这在生产中不会成为问题 因为它们将在同
  • 如何在Linux上后台无限运行脚本?

    我有一个带有无限循环的 PHP 脚本 我需要这个脚本永远运行 所以 我跑 php path to script php gt dev null 它在我当前用户的安全上下文中在后台运行 但是当我关闭终端窗口 注销 时 CentOS Linux
  • 从命令行运行 PyCharm 项目

    我正在尝试将我的项目部署到服务器并在那里运行它 当我尝试从命令行启动脚本时 它显示错误 导入父目录中的脚本时 我使用 PyCharm 制作了该项目 python 2 7 10 并将其分散到多个目录中 这些文件夹看起来像这样 项目 dir s
  • 匹配澳大利亚商业号码 (ABN) 的正则表达式

    我需要一个正则表达式来匹配一个值 其中每个字符可以是 0 到 9 之间的数字或空格 该值必须恰好包含 11 位数字 例如 它应匹配格式为 012 345 678 90 或 01234567890 的值 有人可以帮我解决这个问题吗 为了将来可
  • Camunda 使用 REST 获取 XOR 网关的机会

    I have the following situation 我想要做的是在我的 Angular 应用程序中获得一个下拉菜单 其中列出了书籍的所有机会 所以我可以在 哈利 波特 白鲸记 和 鲁宾逊漂流记 之间进行选择 当我选择一本书并按提交
  • 沙盒 AppDomain 中的线程安全

    我有一个应用程序域来托管不受信任的代码 程序集 我用安全属性解决了所有安全问题 效果很好 不受信任的代码在专用线程上运行 CLR 是 2 0 这就是我所拥有的应用程序域Shell http code google com p robocod
  • 在实践中(而非理论上),小批量与实时流有什么区别?

    在实践中 而非理论上 小批量与实时流有什么区别 从理论上讲 我理解迷你批次是在给定时间范围内进行批处理的东西 而实时流更像是在数据到达时执行某些操作 但我最大的问题是为什么不使用带有 epsilon 时间范围 例如一毫秒 的迷你批次或者我想