组件分享之后端组件——ETL组件包transporter

2022-07-12 16:06:37 浏览数 (1)

组件分享之后端组件——ETL组件包transporter

背景

近期正在探索前端、后端、系统端各类常用组件与工具,对其一些常见的组件进行再次整理一下,形成标准化组件专题,后续该专题将包含各类语言中的一些常用组件。欢迎大家进行持续关注。

组件基本信息

  • 组件:transporter
  • 开源协议:BSD-3-Clause license

内容

本节我们分享一个ETL组件包transporter,此版本官方仅支持 mongodb 和 postgresql 适配器。稍后将添加对其他数据库的支持。其他适配器可能工作也可能不工作。鼓励您仍然使用 v0.5.2 进行非 mongo/postgres 迁移。

Transporter 允许用户将许多数据适配器配置为源或接收器。这些可以是数据库、文件或其他资源。从源读取数据,转换为消息格式,然后向下发送到接收器,在接收器中将消息转换为其目的地的可写格式。用户还可以在 JavaScript 中创建数据转换,这些转换可以位于源和接收器之间并操纵或过滤消息流。 适配器可能能够跟踪源数据中发生的更改。这种“尾部”功能允许运输机保持运行并保持接收器同步。

最新的二进制版本可从Github 存储库获得

  • elasticsearch
  • file
  • mongodb
  • postgresql
  • rabbitmq
  • rethinkdb
  • mysql

使用格式如下:

代码语言:javascript复制
transporter init [source adaptor name] [sink adaptor name]

具体使用案例如下:

代码语言:javascript复制
$ transporter init mongodb elasticsearch
$ cat pipeline.js
var source = mongodb({
  "uri": "${MONGODB_URI}"
  // "timeout": "30s",
  // "tail": false,
  // "ssl": false,
  // "cacerts": ["/path/to/cert.pem"],
  // "wc": 1,
  // "fsync": false,
  // "bulk": false,
  // "collection_filters": "{}",
  // "read_preference": "Primary"
})

var sink = elasticsearch({
  "uri": "${ELASTICSEARCH_URI}"
  // "timeout": "10s", // defaults to 30s
  // "aws_access_key": "ABCDEF", // used for signing requests to AWS Elasticsearch service
  // "aws_access_secret": "ABCDEF" // used for signing requests to AWS Elasticsearch service
})

t.Source(source).Save(sink)
// t.Source("source", source).Save("sink", sink)
// t.Source("source", source, "namespace").Save("sink", sink, "namespace")
$

每个适配器都有自己的 README 页面,其中包含有关配置和功能的详细信息

更多使用方式可以参见该README

本文声明:

知识共享许可协议

本作品由 cn華少 采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可。

0 人点赞