#data-streaming #stream #gateway #connector #client #source #protocols

bin+lib sonicd

Sonicd 的客户端库,是一个数据流网关

3 个不稳定版本

使用旧的 Rust 2015

0.6.0 2016年9月28日
0.5.2 2016年8月19日
0.5.0 2016年7月1日

#299WebSocket

自定义许可证

21KB
594

Sonicd 构建状态

问题

  • 针对多个底层数据源实现数据分析 API 通常会导致代码膨胀和紧密耦合。
  • 如果你使用 Akka Streams 进行流处理,你可能缺少一个数据源组件(如 Storm 的 Spouts)。
  • ODBC/JDBC 已过时,且未设计用于流式传输大量数据集。

解决方案

Sonicd 是一个数据流网关,它抽象了数据源连接器,并提供了一个现代协议来通过 WebSocket 或纯 TCP 流式传输数据。

支持的数据源

  • PrestoSource:针对 Facebook 的 Presto 的非阻塞流连接器。
  • ElasticSearchSource:针对 ElasticSearch 的非阻塞流连接器。
  • JdbcSource:适用于具有 JDBC 驱动程序实现的任何数据库的 JDBC 连接器(已测试 Hive、Redshift、H2、MySQL、PostgreSQL)。
  • ZuoraObjectQueryLanguageSource:Zuora 的 SOAP API ZOQL 流连接器。
  • LocalJsonStreamSource:流式传输本地 JSON 文件中的更改。
  • KafkaSource:Apache Kafka 连接器,具有简单的 DSL 以高效选择/过滤流。
  • Composer:将任何先前源组合到单个 Sonic 流中。

部署

请检查 server/src/main/resources/reference.conf 以获取配置参考和 docker run --d --v ${CONFIG_DIR}:/etc/sonicd:ro -p 9111:9111 -p 10001:10001 xarxa6/sonicd;。如果你打算使用 JDBC 源,那么你需要在类路径中添加 JDBC 驱动程序 JAR。

docker run -d -p 9111:9111 -p 10001:10001 -v ${CONFIG_DIR}:/etc/sonicd/ -v ${JDBC_DRIVERS}:/var/lib/sonicd/ xarxa6/sonicd

安装 CLI

sonicd 还提供命令行界面 (CLI) 来执行临时查询。如果您已经安装了 Rust 工具链,只需执行以下命令:cargo install sonic,否则请先使用以下命令安装 rustup:curl https://sh.rustup.rs -sSf | sh,或访问 https://www.rustup.rs/

示例

查看 示例 文件夹。对于 Rust 示例,请查看 CLI

客户端库

贡献

如果您想为项目做出贡献,请先将其分叉,包含您的更改,然后将拉取请求提交回主存储库。

许可协议

MIT 许可协议

依赖项

~10MB
~200K SLoC