天文学论文

您当前的位置:学术堂 > 物理论文 > 天文学论文 >

面向地基广角相机阵星表数据管理系统的设计与验证(4)

来源:计算机研究与发展 作者:杨晨;翁祖建;孟小峰;
发布于:2017-06-22 共11303字
  2.3持久化操作

  二级缓存用于快速处理当前观测夜的数据,并不能用于持久化所有观测夜的星表数据。随着当前观测夜结束,二级缓存上数据的“热度”自然下降,需要持久化到速度更慢的硬盘上,为离线分析做准备。
  
  天文科研人员很大一部分的查询需求是关注某颗星的光变曲线,因此最为理想的存储方法是一颗星一张物理表。当需要查询光变曲线时,只需按星名找到该表,并按照给定的时间段扫描该表即可。但这种存储方式的问题是小表太多,按照GWAC设计标准来说,40个CCD能发现680万颗左右的星,也就对应着680万个小表。过多的小表的随机写和管理代价过高,有时候甚至导致整个白天的时间不足以完成持久化操作,导致数据堆积在二级缓存中。
  
  如图5所示,本文依托天文数据查询的特征发现多数查询会批量搜索某一范围内星的各类属性,因此按照星之间的距离特征作为Hash函数,将邻近星映射到同一个Hash桶内,构成星表簇。再考虑到不同星表簇的查询热度不同,因此不同的星表簇内所聚合的星的个数不同。例如,越容易查询到的星(异常星),所在的星表簇越小,查询就会越快,极端情况下会将单颗星作为一个星表簇。反之,查询热度不高的区域存储为一个大的星表簇便于存储,降低数据管理的开销。
  

  E.  

  实现上,本文使用Spark[10]和HDFS[11]实现持久化操作。在将星名映射到不同的Hash桶之后,使用Spark对 每 个Hash桶 中 的 星 批 量 从Rediscluster读出,经过Spark sql[12]的建表操作,压缩后写入HDFS.为提高写性能,不同Hash桶的写操作是可以并行执行的。需要注意的是,同一个CCD的星表簇数据需要写入同一个CCD的目录下,以便于快速检索。从本质上看,为了查找某颗星的光变曲线,需要经过两级检索:1)确定该星所在的CCD;2)确定该星所在的星表簇2.4查询操作基于星表簇的存储方式,查询操作并不能直接使用SQL完成,对于某些查询而言需要做一定程度的解析。
  
  查询共分为2种类型:1)返回的结果不需要随时间变化的属性,如查询某位置范围内所有出现的星名;2)返回的结果需要随时间变化的属性,如返回某颗星的光变曲线。通过收集天文查询需求,本文发现天文学家虽然关注光变曲线,如图6,但是锁定查询哪条光变曲线的操作往往集中在不变的属性列上。如查询某个范围内所有星的光变曲线,首先是查询该范围内的所有星名,其次是查询该星的光变曲线。因此,无论结果是否需要随时间变化的属性数据,都需要先查询与时间无关的属性数据。
  

  F.  

  如图6所示,本文合并所有CCD交叉认证时使用的模板表,并加入一些随时间变化数据的统计列,如亮度均值、方差、最大值和最小值等,构成一个逻辑上的索引表,因为该表很小,可以常驻内存。一个查询请求到来后,先判断结果的属性列是否需要随时间变化的属性,如果不需要,查找索引表,直接返回;如果需要,查找索引表,找出满足要求的星名,然后查找原始数据。这样做的好处是:1)对于结果不需要随时间变化的数据,查找索引表能避免扫描原始星表数据,提高查找性能;2)对于结果需要随时间变化的数据,查找索引表能最小化扫描原始星表数据的次数和范围,以提高查找性能。
  
  对于采用缓存架构的本系统而言,原始星表数据存储于二级缓存(Redis cluster)和硬盘(HDFS)上,查找条件有可能涉及到这2个数据源。因此,就查询数据源而言,可分为以下3种策略对原始星表查询。
  
  1)仅从二级缓存查询。查找索引表找出满足条件的星名集合;将该集合传入Redis cluster查询对应星的全部属性列;筛选符合条件的属性列。
  
  2)仅从硬盘查询。查找索引表找出满足条件的星名集合;使用持久化的Hash函数将星名的结果集合映射到星表簇;对同一星表簇的星进行批量查询并筛选符合条件的属性列;对于不同的星表簇可以并行查询;最后合并不同星表簇的结果。
  
  3)从二级缓存和硬盘查询。并行从2个数据源按照上述的策略查询,最终将结果合并。
  
  3系统验证与分析

       3.1实验准备

  本文在Ubuntu 14.04,Hadoop 2.6.0,Spark1.6.2和Redis 3.2.5平台上建立了验证系统,采用10台物理机构建Hadoop,Spark,Redis cluster和分布式GWAC数据模拟生成器集群。对于Hadoop,Spark和分布式GWAC数据模拟生成器集群都使用相同的物理机作为主节点,剩下的9个物理机作为从 节 点 (模 拟9个CCD),此 外Spark使 用standalone模式进行资源管理。对于无中心结构的Redis cluster,每个物理机上开启4个Redis节点进程,共40个节点,并且另加入8个Redis slave节点作为整个Redis集群的冗余备份。
  
  整个物理集群为同构环境,每台物理机使用英特尔i7-4790处理器、32GB DDR3-1600内存和1块500GB 7200SATA硬盘,节点之间采用万兆以太网互联。
  

原文出处:杨晨,翁祖建,孟小峰,任玮,忻日辉,王春凯,都志辉,万萌,魏建彦. 天文大数据挑战与实时处理技术[J]. 计算机研究与发展,2017,(02):248-257
相关内容推荐
相关标签:
返回:天文学论文