3 个不稳定版本
使用旧的 Rust 2015
0.6.0 | 2016年9月28日 |
---|---|
0.5.2 | 2016年8月19日 |
0.5.0 | 2016年7月1日 |
#299 在 WebSocket
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/。
示例
客户端库
贡献
如果您想为项目做出贡献,请先将其分叉,包含您的更改,然后将拉取请求提交回主存储库。
许可协议
MIT 许可协议
依赖项
~10MB
~200K SLoC