arrow系列20---输入/输出和文件系统
作者:yunjinqi   类别:    日期:2023-10-16 20:31:11    阅读:149 次   消耗积分:0 分    

Arrow提供了一系列的C++接口,抽象了输入/输出操作的具体细节。它们操作无类型二进制数据流。这些抽象用于各种目的,如读取CSV或Parquet数据,传输IPC流等。

另请参见

输入/输出设施的API参考。

读取二进制数据 

用于读取二进制数据的接口有两种类型:

  • 顺序读取:InputStream接口提供了Read方法;建议将其读取到Buffer中,因为在某些情况下可以避免内存复制。

  • 随机访问读取:RandomAccessFile接口提供了额外的定位功能,最重要的是ReadAt方法,允许从多个线程并行读取。

可用的具体实现包括内存读取、无缓冲文件读取、内存映射文件读取、带缓冲读取、压缩读取。

写入二进制数据 

写入二进制数据主要通过OutputStream接口完成。

可用的具体实现包括内存写入、无缓冲文件写入、内存映射文件写入、带缓冲写入、压缩写入。

文件系统 

文件系统接口允许对各种数据存储后端进行抽象访问,如本地文件系统或S3存储桶。它提供输入和输出流以及目录操作。

文件系统接口公开了底层数据存储的简化视图。数据路径表示为抽象路径,即使在Windows上也是以/分隔的,并且不应包含特殊的路径组件,如.和...如果底层存储支持符号链接,它们将自动解引用。仅提供有关文件条目的基本元数据,如文件大小和修改时间。

可用的具体实现包括本地文件系统访问、HDFS、兼容Amazon S3的存储和Google Cloud存储。

注意

使用文件系统的任务通常在I/O线程池上运行。对于支持高并发级别的文件系统,您可能会受益于增加I/O线程池的大小。


版权所有,转载本站文章请注明出处:云子量化, http://www.woniunote.com/article/353
上一篇:arrow系列19---Gandiva表达式编译器(The Gandiva Expression Compiler)
下一篇:arrow系列21---读写Arrow IPC格式