Sylph 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Sylph 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: Apache-2.0
开发语言: Java Scala 查看源码 »
操作系统: 跨平台
收录时间: 2018-11-20
提 交 者: ideal_github_harbby

简介

Sylph 被定位为大数据生态中的一站式流计算平台,您可以使用它来开发、管理、监控、运维您的流计算.

什么没看懂? 没关系apache-hive您总听过吧?(如果依然不知道,那么您最先需要看下最基础的hadoop三件套Hdfs,Yarn,Hive(MapReduce))

hive将您编写的hive-sql转换成分布式MR批计算Job(默认engine),然后自动在Hadoop-Yarn上执行,那么Sylph就是将Stream-Sql转换成分布式(Flink,…)流计算Job,然后同样自动在Hadoop-Yarn上执行,

您可以形象的把它比喻为Stream-Hive

demo

我们来看一个简单导航demo:

-- 注册json解析 udf
create function get_json_object as 'ideal.sylph.runner.flink.udf.UDFJson';
-- 定义数据流接入
create input table topic1(    
    _topic varchar,    
    _key varchar,    
    _message varchar,    
    _partition integer,   
    _offset bigint
) with (
    type = 'kafka',
    kafka_topic = 'TP_A_1,TP_A_2',
    "auto.offset.reset" = latest,
    kafka_broker = 'localhost:9092',
    kafka_group_id = 'streamSql_test1'
);
-- 定义数据流输出位置
create output table event_log(    
    key varchar,    
    user_id varchar,    
    event_time bigint
) with (    
    type = 'hdfs',   -- write hdfs    
    hdfs_write_dir = 'hdfs:///tmp/test/data/xx_log',    
    eventTime_field = 'event_time',    
    format = 'parquet'
);
-- 描述计算逻辑
insert into event_log 
select _key,get_json_object(_message, 'user_id') as user_id,
cast(get_json_object(_message, 'event_time') as bigint) as event_time 
from topic1

快速了解

快速两部了解sylph两步走:

+ 第一步: 您只需编写好Stream Sql,然后Sylph会编译您的sql,将其翻译成具体的物理计算引擎

+ 第二步: 然后你接下来只需点击任务上线,然后sylph就会将这个分布式流计算任务提交到Hadoop-Yarn上运行。 ok到此,你的大数据分布式流计算程序已经上线了,接下来您可以直接在sylph的代理页面查看您的job, 了解下参数情况等,可以在这里管理和杀死job。

对了如果您的分布式job挂了,那么sylph还会尝试重新期待并恢复它。

简要设计

下面我将列出一些主要的特性, 这里先简单看下sylph的设计:

特性盘点:

  • 1, 如上所诉您已经出窥了一些sylph一站式方面的特性

  • 2, Stream SQL支持

  • 3, connector-plugin层提供统一抽象层,随着时间推移我们会有非常多稳定connector供你选择,如果您选择自己编码那么您的代码逻辑甚至无需做改动,就可以同时支持Flink,Spark等引擎

  • 4, Stream SQL支持支持Watermark技术,注:Apache Flink-Table-SQL目前还不支持

  • 5, 支持批流维表join(俗称打宽),注: Apache Flink-Table-SQL目前还不支持

  • 6, Stream SQL支持同时支持基于Prscess Time和 Event Time两种语义进行计算,注:Apache Flink-Table-SQL目前还不支持 

写给未来:

未来我们会添加local模式,on ks8等模式,因为一站式的原因,您甚至无做任何业务代码修改就可以非常容易进行过渡和升级,并且local模式可能会在没有hadoop的边缘计算场景中带来价值.

此致:

最后欢迎您的阅读!

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

Sylph 的相关博客

12种Flutter开发工具推荐

Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群...

spark 开发中的那些事1-之编程模型

一, 简介 Spark是一个用来实现快速而通用的集群内存计算的平台。扩展了广泛使用的MapReduce计算模型,而且高效地支持更多的计...

Sylph 的相关问答

还没有任何问答,马上提问

评论 (7)

加载中
麻烦问一下,往kafka生产json数据应该怎么写?谢谢啦
2019/11/18 18:55
回复
举报
ideal_github_harbby软件作者
没有内置提供kafka sink,可以自己按需实现一个
2019/11/25 10:31
回复
举报
🕟
2018/12/03 10:36
回复
举报
降低使用流技术壁垒优秀平台,快速迭代特性,让更多人、企业分享流处理的技术红利
2018/11/28 11:42
回复
举报
sylph 支持: spark1.x Spark-Streaming,spark2.x Structured-Streaming ,flink stream
2018/11/28 10:13
回复
举报
ideal_github_harbby软件作者

引用来自“joeyhacker”的评论

非常好
谢谢😁
2018/11/28 10:09
回复
举报
非常好
2018/11/28 10:05
回复
举报
更多评论
7 评论
50 收藏
分享
返回顶部
顶部