Arrow是一种数据存储格式,以及对这个格式的一系列API及多语言的SDK。
当上层应用使用这个接口访问这些数据的时候,大家就不用在不同的私有格式之间转换。
从而省去了大量的序列化和反序列化的计算资源。
一、Schema:
Schema下有一组Field,以及一个Metadata进行描述。
Schema下的Metadata是一个key-Value的map
二、Field:
每个Field由《名字》,《类型》和一组子《Field》组成。
类型分为基础类型和复合类型。
类型还可以有一个字典编码格式描述。描述十分排序,字典ID,以及索引类型。
三、VectorSchemaRoot:
保存Schema和数据FieldVector
保存有行数量rowCount
保存有Field到FieldVector的Map,以便方便快速找到数据。
四、FieldVector:
一个列数据的数组
底层靠ArrowBuf进行底层内存的实际访问。