我有一个大规模的分布式系统,它每天下载大量的大型 .csv 文件并对数据进行索引。可以说,我们的文件(file.csv)是: col1 col2 col3 user11 val12 val13 user21 val22 val23
然后我们逐行读取该文件并存储该文件中 user11 或 user12 的行所在位置的字节偏移量。例如:索引表 - user11 -> 1120-2130(字节偏移) user12 -> 2130-3545(字节偏移)
当有人说删除user11的数据时,我们参考这张表,下载并打开文件,删除文件中的字节偏移量。请注意,这个字节偏移量是整行的。
如何设计系统来处理镶木地板文件?Parquet 文件按列操作。要获得一整行的 10 列,我需要打 10 次电话吗?然后,形成一整行,计算字节,然后将它们存储在表中?然后,在删除时,我将不得不再次形成行然后删除字节?
其他选项是存储每列的字节偏移量并按列处理,但这会炸毁索引表。
如何以行方式有效地处理镶木地板文件?当前系统是 C# 中的后台作业。