19.1. 架构¶
GeoMesa文件系统数据存储区(GeoMesa FSD)利用现代云本地和分布式文件系统的性能特征来扩展批量分析查询。对于使用Spark SQL和MapReduce等框架执行批量出口查询或大型分析作业而言,FSD是一个不错的选择。FSD与其他数据存储区的不同之处在于,接收和点查询延迟是以高吞吐量查询性能为代价的。FSD可与低延迟接收和基于缓存的数据存储系统(如HBase或Kafka)很好地配合使用,从而提供最佳的热存储和热存储选项组合。这种配对通常称为Lambda架构。
GeoMesa FSD由几个主要组件组成:
FileSystem -实施GeoMesa文件系统API的单独管理的存储系统
Partition Scheme -在文件系统上布局数据的策略
Storage Format -定义的格式或编码,用于在文件中存储数据
Query Engine -用于执行查询和运行分析作业的查询引擎或客户端
19.1.1. FileSystem¶
GeoMesa FSD可以利用任何实现Hadoop文件系统API的文件系统。与GeoMesa FSD配合使用的最常见文件系统包括:
HDFS -Hadoop分布式文件系统
S3 -Amazon Simple Storage
GCS -谷歌云存储
WASB -Windows Azure Blob存储
Local -本地挂载的文件系统(例如本地磁盘或NFS)
选择文件系统通常取决于成本和性能要求。需要注意的一点是,S3、GCS和WASB都是“本地云”存储,这意味着它们内置于Amazon、Google和Microsoft Azure云平台中。这些云本地文件系统可独立于计算节点进行扩展,这通常会提供更具成本效益的存储解决方案。与HDFS相比,它们的每GB存储价格更低,但延迟更高。它们还能够在您关闭所有计算节点后保存数据。
文中提到的任何文件系统都是FSD的不错选择。如果您有更多关于选择的问题,请联系 GeoMesa team
19.1.2. 分区方案¶
分区方案定义了数据在文件系统上的存储方式。该方案很重要,因为它决定了如何查询数据。在评估查询筛选器时,将利用分区方案来清理与筛选器不匹配的数据文件。有关详细信息,请参阅 分区方案 。
19.1.3. 元数据¶
FSD存储有关分区和数据文件的元数据,以避免重复询问文件系统。默认情况下,元数据信息作为更改日志存储在文件系统中。对于更高级的用例,FSD还支持使用关系数据库。有关详细信息,请参阅 文件系统元数据 。
19.1.4. 存储格式¶
Apache Parquet -ApacheParquet是Hadoop生态系统中领先的可互操作的柱状格式。它提供了结构化数据的高效压缩、存储和查询。
Apache ORC --ApacheORC是一种自我描述的类型感知列文件格式,专为Hadoop工作负载设计。它针对大型流读取进行了优化,但集成了对快速查找所需行的支持。
Converter Storage -转换器存储格式是一种合成格式,允许您使用定义的分区方案将GeoMesa转换器覆盖在文件系统之上。这允许您利用以JSON、CSV、TSV、AVRO或其他格式存储的现有数据。转换器是可扩展的,允许用户根据需要公开他们自己的定制存储格式。有关转换器的更多详细信息,请参见 GeoMesa转换器 。转换器存储是只读格式。