📜  用于 web 的颤振构建 (1)

📅  最后修改于: 2023-12-03 14:56:18.884000             🧑  作者: Mango

用于 web 的颤振构建

什么是颤振构建?

颤振构建(Tremor)是一个用于Web和云原生环境下的高性能数据流编排引擎。它结合了实时流处理、数据摄取、数据转换和路由等功能,是一个可编程数据集成工具,提供了一种快速且灵活地构建和部署数据集成服务的方法。

颤振构建的目标是提供一个灵活、高性能、低延迟、分布式和高可用的数据集成引擎,以更好地满足现代应用的需求。

颤振构建的特点
  • 高性能:颤振构建使用非阻塞的事件驱动架构,能够以极低的延迟和高吞吐量处理数据流。
  • 低延迟:颤振构建专注于实时数据流处理。每个管道(Pipeline)都是以毫秒为单位的延迟级别运行。
  • 可编程:颤振构建提供了一个简单的编程模型,允许开发人员定义流程图、转换、过滤和路由,以适应于不同的数据集成场景。
  • 可扩展:颤振构建旨在支持大规模和高可用性,默认情况下它支持分布式部署和水平扩展。
  • 易用:颤振构建在设计之初就考虑了简单性,以便开发人员可以通过简单的API快速创建和管理管道。
颤振构建的用途

颤振构建可用于web和云原生环境下的多种场景,包括:

  • 数据摄取:从多个数据源收集和聚合数据,包括日志文件、数据库、网络API和传感器等。
  • 数据转换:将收集到的数据进行转换、过滤和加工,以满足不同数据集成场景的要求。
  • 实时流处理:基于实时数据流处理数据,如过滤、聚合、音频/视频处理等。
  • 无线电分析:处理从无线电范围内各种来源获取的数据源,如RFI搜索、FFT分析、天文学等。
如何使用颤振构建?

颤振构建由Rust编写,可以通过官方网站(https://www.tremor.rs)获取最新的安装和使用文档。下面以一个实例介绍如何使用颤振构建。

假设我们要从一个Twitter Feed中拉取数据并将其过滤为包含特定关键字的tweet。我们可以使用如下的颤振构建管道实现:

# 其中`[source]`和`[sink]`为占位符。(在实际例子中应该替换为具体的输入流和输出流)。 
[example-pipeline]
auto = false
input = "[source]"
output = "[sink]"

# 使用Twitter输入
[[inputs]]
type = "twitter"
oauth_consumer_key = "consumer_key"
oauth_consumer_secret = "consumer_secret"
oauth_access_token = "access_token"
oauth_access_token_secret = "access_token_secret"
interval = "30s"

# 定义一个过滤器,使用`Lua`编写
[[processors]]
type = "lua"
operator = """
function process(x)
  filter= "Tremor"
  if string.find(x.data.text, filter) then
    y=x
    y['filt']=filter
    return y
  end
end
"""

# 输出到STDOUT
[[outputs]]
type = "stdout"
codec = "json"

这个颤振构建pipeline来自官方文档,其中[[inputs]]定义了数据源(Twitter Feed),[[processors]]定义了过滤器,并使用了Lua编写。最后一个[[outputs]]是将结果输出到控制台。

总结

颤振构建是一个用于Web和云原生环境下的高性能数据流编排引擎。它提供了灵活、高性能、低延迟、可编程、可扩展和易用的特点,用于数据摄取、数据转换、实时流处理和无线电分析等不同场景。通过简单的API,开发人员可以快速创建和管理管道,适应于不同的数据集成场景。