我想对行进行哈希处理,以确定行的内容是否随时间变化,但我不确定可靠(无数据丢失(和高效地创建行哈希的最佳方法。
我目前的解决方案:
SELECT FARM_FINGERPRINT(TO_JSON_STRING(table)), *
FROM project.dataset.table
在我看来:
- 效率低下-转换
TO_JSON_STRING
相当费力 - 潜在的不可靠-转换为JSON时,更复杂的类型(DATETIME、TIMESTAMP、TIME、STRUCT(是否可能丢失数据
我知道BigQuery提供了一个表的快照备份系统,所以也许有一种更有效的方法可以用于此服务?
我不选择BigQuery快照,因为我需要在一个查询中查询表的所有快照,这在该服务中似乎是不可能的。
发布评论作为与@PhilippeHebert对话的答案。您可以按行存储FARM_FINGERPRINT的结果,而不是使用快照,这样您就可以使用它来与未来的数据检查进行比较。