Apache Drill 可以查询包含更新数据的文件列表吗?

问题描述 投票:0回答:1

我有一个很大(超过 8.5GB)的 CSV 文件,该文件在每个月的第一天更新。但从每个月的 2 日到最后一天,它可以有 JSON 格式的新更新数据。

我将 CSV 转换为 panquet 并在 Apache Drill 中进行查询,效果很好。但是如何用更新后的文件查询大文件呢?

例如 在 4 月 1 日的 CSV 文件中,它有

ID          Name           Value    LastUpdatedTime
100         John           98       2024-01-05

在 4 月 15 日的 JSON 文件中,有

ID          Name           Value    LastUpdatedTime
100         John           100      2024-04-15

当它查询所有这些文件的 ID = 100 时,它应该给出 Value=100,因为它有较新的 LastUpdatedTime。

我发现这篇post说人们对不再变化的数据使用Drill。

这是真的吗?

apache-drill
1个回答
0
投票

Drill 确实不支持修改现有数据,但我认为您在这里不需要这样做。你有没有尝试过类似的事情

with combined as (
  select ID, Name, Value, LastUpdatedTime from dfs.csv_data
  union all
  select ID, Name, Value, LastUpdatedTime from dfs.json_data
), ranked as (
  select *, row_number() over (partition by ID, order by LastUpdatedTime desc) rank
)
select * from ranked where rank = 1;

© www.soinside.com 2019 - 2024. All rights reserved.