我计划在 s3 数据存储之上构建一个 Arrow Flight 服务器,s3 数据存储有 PB 级数据。
当飞行服务器将所有 1 pb 的数据加载到内存中时,我几乎不担心它会导致内存不足
其次当我们有增量更新或者新数据到达时我们如何刷新数据?
第三,我们计划部署到 k8s 集群中的多个节点,然后每个节点都会维护一份数据副本,我担心内存中加载如此巨大的数据以及同步数据的理想方式
如果您打算允许下载整个 S3 数据集,则不需要 Flight。您所需要的只是 S3 API。 Flight 是一种数据传输协议,类似于 HTTP 上的 JSON。您的服务应该对数据源做一些有趣的事情(例如过滤它)并向客户端返回小响应(最大 2GB)。
如果您可以设法根据 PB 级数据做出响应,而无需将 PB 级数据放入 RAM(以任何方式),则可以生成 Flight 响应。
第三,我们计划部署到 k8s 集群中的多个节点,然后每个节点都会维护一份数据副本,我担心内存中加载如此巨大的数据以及同步数据的理想方式
为什么不让每个节点从 S3 加载数据,S3 是一个旨在高并发存储和服务 PB 级数据的系统?