立即注册 找回密码

哇靠资源网-小刀娱乐网,CF活动,QQ业务,技术乐园,专注资源收集

搜索
热搜: 活动 交友 discuz
查看: 781|回复: 0

使用Apache Kafka从宇宙中流式传输数据

[复制链接]

8725

主题

8725

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
26201
发表于 2020-5-5 18:57 | 显示全部楼层 |阅读模式
最初于2019年6月13日公布在https://www.confluent.io。
天文学家若何摆设实时管道以分派来自今世千里镜每晚发现的数百万个工具的数据
我的关键词 使用Apache Kafka从宇宙中流式传输数据  默认版块
> Let's build a news feed from the Universe!


您大要会以为天文学中的数据收集由一个孤独的天文学家组成,他们将千里镜瞄准静态天空中的单个物体。 虽然在某些情况下大如果切确的(我以这类方式收集博士学位论文的数据),但天文学范畴正灵敏变化为具有实时需求的数据鳞集型科学。 天天早晨,大型天文千里镜勘察会发现天空中数百万个不竭变革的物体,是以需要将成果传送给科学家,以便举行对时候敏感的补充后续观察。 该数据管道是Apache Kafka用例的一个很好的例子。
实时天文学

观察天文学家研讨了很多差别典范的天体,从我们太阳系中的小行星到数十亿光年远的星系。 虽然单个天文物体发生变革的时候标准凡是在数百万年左右,但千里镜可以检测到数百万个似乎在一个夜晚发生变革的物体。 这些物体凡是被称为瞬变,包含很多差别的现象,包含变星,伽马射线爆发,超新星和太阳系中的移动物体(如小行星)。
为了探测和研讨这些瞬态物体,很多天文学家将与"天空观察"千里镜合作,该千里镜经过在夜空中擦过的图像而不是指向单个预先选定的方针来拍摄图像来收集数据。 斯隆数字天空观察(SDSS)是该观察技术的早期开辟者,它从近10亿个工具中收集了数十TB的图像数据。 经过拍摄天空的最新勘察图像并减去在同一位置拍摄的先歉考图像,天文学家可以检测亮度变革或位置变革的物体。
为了完全表征瞬态物体,天文学家需要几乎同时从其他千里镜收集差别波长的数据。 某些现象,如超新星"冲击爆发",大要仅延续数分钟。 天文学家需要可以大要近实时地收集,处置,表征和分派这些物体上的数据,特别是对时候敏感的事变。
比来,一项新的天空观察联机,其具体方针是快速检测瞬态物体。 Zwicky姑且法子(ZTF)每三晚对全部北方天空举行一次成像。 操纵图像差别,ZTF每45秒检测一次每个图像中约有1,000个工具,相当于每晚大约100万个变革的工具。 数据处置管道对这些工具举行表征,得出诸如亮度,色彩,椭圆度和坐标位置之类的关键参数,并在警报数据包中广播此信息。
Apache Kafka的案例

直到比来,瞬态方针的检测率还相对较低,而且对警报分发机制的根柢技术几乎没有要求。 例如,天文学家电报(ATel)是一项收集办事,答应天文学家从瞬态物体检测中手动公布和广播警报,自1997年景立以来已分发了数以万计的警报。为了分发警报数据 从ZTF大约每晚举行的百万次检测中,需要一种全自动且可扩大的流警报分发。
此外,ZTF是一项更大的技术应战,行将到来的天文学项目(称为大型天气观察千里镜(LSST))的先驱观察。 估计LSST每晚可检测到约1000万个瞬态工具,比ZTF大一个数目级,而且夜间数据流的巨细为1-2 TB消息。 ZTF系统的根柢技术应当是可以大要牢靠地满足LSST需求的原型。
在为ZTF设想警报分派时,我们斟酌了很多身分。 首先,我们需要一个系统,该系统可以大要牢靠地分发每个警报消息,并答应警报流的下流侦听器实时倒带或追逐,而不会因毗连断开或用户操纵迟钝而丧失数据。 现有的标准警报分发系统(称为虚拟天文台事变传输协议)更多地充任广播系统,仅在毗连了用户的情况下才发送警报。 卡夫卡(Kafka)的消耗者抵销治理以及消耗者回溯到话题起头的本事是一大亮点。
由于这些警报是科学质量的数据,所以必须保存警报数据的序列化格式,以连结数据的完整性,以便终极用户科学家可以切确地诠释它。 例如,切确地将数字数据存储为双精度数和浮点数是科学计较的要求。 现有的首要天文警报格式操纵半结构化格式XML。 对于充沛低的警报流速度,以便科学家可以目视检查消息,此格式绝对合适。 为了获得每晚数百万的警报率,科学家需要一种更具结构化的数据格式来举行自动分析管道。 在研讨了格式以后,并阅读了Confluent关于在Kafka中操纵Avro的倡议,我们决议操纵Avro(一种基于JSON的开源二进制格式)对警报消息中的数据举行序列化。 Avro具有以下优点:
· 很是松散(相对于XML的冗杂性)
· 易于操纵简单的JSON形式举行表征
· 支持某种水平的形式演变
· 有几个用于读取和写入数据的Python库
警报分发系统的另一个要求是终极用户易于操纵。 在我们的案例中,终极用户很大如果天文学研讨职员。 今世天文学家操纵的很多代码都是用Python编写的,是以ZTF警报分发系统端点最少需要支持Python。 我们基于Confluent的Apache Kafka的Python客户端,操纵Python构建了警报分发代码。
警报数据管道和系统设想

ZTF千里镜位于加利福尼亚州的帕洛玛天文台,它以每45秒大约1张图像的速度扫过天空时拍摄天空图像。 然后,数据将在CalTech的红外处置和分析中心(IPAC)及第行处置。 清洁图像以消除仪器和大气影响,并举行差分处置以发生瞬态候选图像。 然后,未来自这些检测的数据序列化为Avro二进制格式。
ZTF的Avro警报数据形式在JSON文档中界说,并公布到GitHub,供科学家在吸收到的数据反序列化时操纵。 我们需要分发的部分警报数据是姑且候选者的小暗语图像(或"邮票")。 操纵Avro,我们可以将数据字段序列化为字节典范,从而答应包含二进制格式的数据,例如这些图像暗语或凡是的任何单个文件:
我的关键词 使用Apache Kafka从宇宙中流式传输数据  默认版块


来自超新星探测的模拟数据的图像暗语。 左:科学影象。 中心:模板天空图像。 右图:经过从科学图像中减去模板而构建的差别图像。
序列化警报会发送给Kafka掮客人,每晚的数据都将写入其自己的主题。 卡夫卡(Kafka)已过期了两周以上的数据。 IPAC的Kafka掮客人仅出于平安方针可供两个内部用户操纵-华盛顿大学(UW)的下流Kafka系统和贸易云中的另一个Kafka系统,两者均操纵MirrorMaker镜像可用的警报流主题。
华盛顿大学治理着一个由三个卡夫卡掮客人组成的集群,每个掮客人都摆设在一个零丁的Docker容器中(建立在Confluent的Docker Hub映像之上),该容器供给Avro文件的永久数据存档,并答应来自很多内部科学家合作的毗连 专注于天文学的差别子范畴。 主题分为16个分区,是以流的操纵者可以将阅读器并行化为多达16个的组,以实现更快的阅读以及并行的下流过滤和处置。
我的关键词 使用Apache Kafka从宇宙中流式传输数据  默认版块


经过ZTF警报分发系统的警报数据流图:姑且候选警报已提交给IPAC的Kafka集群,并在UW和贸易云上举行镜像。 下流过滤算法对差别典范的工具举行分类和分手。 终极用户科学家可以定阅感爱好工具的主题,科学家的合作(在天文学界称为事变代理)也可以定阅和重新分发充溢着更多内部数据的警报。
基于云的卡夫卡系统是其他天文学研讨职员所面临的。 科学家可以编写科学的过滤器,以自动利用诸如分类器之类的算法来检测和标志差别典范的物体(例如超新星,变星,近地物体)。 过滤器可以用Python编写,也可以别离摆设在差别的Docker容器中。 这是科学家编写的代码示例:
class Filter001(AlertFilter):
tdef filter(self, alert):
  tif ((alert['source']['signal_level'] > 5) & (alert['source']['brightness'] > 0.00003631)):
    treturn True
ttelse: return False对于经过挑选器的工具,挑选器将返回True,然后将警报数据消息天生到一个新主题,仅针对其他科学家随后可以定阅的工具典范。
流式传输数百万个检测

ZTF管道每晚可发生60万到120万条警报。 我们已经对该系统举行了压力测试,测试了多达200万条警报,没有任何技术题目。 每个警报数据包的巨细约为60 KB,首要由剪切图像占据,每晚最多可经过系统推送多达70 GB的数据量。 在千里镜上拍摄图像大约20分钟后,终极用户可以操纵序列化警报数据,其中大部分时候由图像差分管道占用。 从首要的Kafka分销中心到内部消耗者,传输时候约为4秒。
Kafka是一个强大的工具,可为技术供给强大支持,以应对天文数据分发和数据分析管道应战,满足可伸缩性要求并实现近实时科学成长。 它相对易于操纵,而且充沛让科学家起头举行原型建造。 我将继续摸索与之配合操纵的方式,以为High Alpha Studio中的项目启用实时数据科学管道。
有爱好吗?

假如您想领会更多信息,可以下载Confluent平台以起头操纵Apache Kafka的领先刊行版。
我的关键词 使用Apache Kafka从宇宙中流式传输数据  默认版块


具有博士学位 在天文学范畴,Maria Patterson是优化科学数据分析管道的专家。 她与NASA合作开辟了基于云的管道,用于自动处置逐日卫星图像。 在NOAA的大数据项目早期,她领导了科学"数据同享"的技术开辟,以确保研讨职员可以大要以编程方式拜候数据。 然后,玛丽亚(Maria)返回天文学,设想了一个用于分派大型千里镜实时方针检测警报流的系统。 她在Zwicky瞬变法子和大型天气观察千里镜的制造商名单中获得认可,而且是这两次合作的前成员。 今朝,Maria是风险投资公司High Alpha的数据科学家,支持新兴的云公司经过数据科学扩大其产物。 在Twitter @OpenSciPinay上关注她,领会天文学,数据科学和启动技术的一切方面。
(本文翻译自Maria Patterson的文章《Streaming Data from the Universe with Apache Kafka》,参考:https://medium.com/high-alpha/streaming-data-from-the-universe-with-apache-kafka-3b6b54dee6a9)

免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc & 加田小店

快速回复 返回顶部 返回列表