gpt4 book ai didi

google-bigquery - 基于列子集避免 BigQuery 中重复数据的方法是什么?

转载 作者:行者123 更新时间:2023-12-01 03:45:09 26 4
gpt4 key购买 nike

我正在生成包含应用程序日志数据的 CSV 文件。 CSV 文件中的列是 timestamp, source_address, destination_url, request_type .当我将 CSV 文件加载到 BigQuery 时,它只是将 CSV 中的数据附加到 BigQuery 中的现有表中。我想避免重复 source_address, destination_url, request_type集并简单地跟踪此类集的最新时间戳。

我想过这样做的一种方法是 GROUP BY source_address, destination_url, request_type并获得 MAX(timestamp) ,但这意味着我必须将该查询保存到一个新表中,然后我可以随后进行查询,然后将其复制回我定期将 CSV 文件加载到的原始表中。

有没有更好的方法来做到这一点?除了 Google 对查询完成的数据量收费这一事实之外,重复项是可以的。

---- 编辑 #1 ----

我也完全接受在加载到 BiqQuery 之前对 CSV 数据进行重复数据删除的方法,所以如果有人有任何关于如何使用通过管道连接在一起的命令行工具来区分 CSV 文件的好主意,那么基于某些列索引或某些东西我很想听听他们的消息。

---- 编辑 #2 ----

好的,所以我一直在修补 sort命令,我想我可能会做某事,但我希望其他人的意见得到确认。是 sort -t, -k1,1 -r logfile.csv | sort -u -t, -k2,4做我想做的事?这种方法仍然需要我创建一个新表,而不是每次我想加载新数据时追加,但如果没有其他选项,那也没关系。

最佳答案

您建议的第一种方式通常是最佳选择。您可能需要一个 GROUP EACH BY而不是 GROUP BY如果你有很多数据。

关于google-bigquery - 基于列子集避免 BigQuery 中重复数据的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27594824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com