我是雪花新手,我运行了一个查询来获取几天的数据--这会返回2亿多行,需要几天的时间。我尝试在木星中运行相同的查询--在查询结束之前内核重新定位/死亡。即使它进入木星-我怀疑我是否能够在任何合理的时间内分析数据(但可能使用达斯克?)
我不知道该从哪里开始--我正试图检查数据中丢失的值,我的第一反应是使用木星--但我现在迷失了方向。
我的下一个想法是呆在雪花中--用case语句检查列(例如,sum(当column_value = '‘然后1其他0结束时)作为number_missing_values
有没有人有任何我可以尝试的想法/方向--或者知道我做错了什么?谢谢!
发布于 2022-01-17 20:25:03
不是你想要的答案,而是
sum(case when column_value = '' then 1 else 0 end) as number_missing_values`当您说缺少值时,这只会找到空字符串的值。
这也是一种更简单的形式,如:
count_if(column_value = '') as number_missing_values数据库已经知道一列中有多少行,并且知道有多少空列。如果将数据加载到表中,则可能更有意义的是不加载空字符串,然后使用null代替,因为不计算成本,您可以运行:
count(*) - count(column) as number_empty_values同样值得注意的是,如果在雪花中有两张表,您可以比较via 减
又名
select * from table_1
minus
select * from table_2查找缺少的行非常有用,您必须在两个方向上都这样做。
但是通常情况下,在查找丢失的数据时,您有一个外部系统,因此驱动程序是“系统能处理什么”并找到共同点。
同样在过去,我们在处理过程中搜索导致重复数据的错误(在那里我们需要/不希望重复),所以上面的命令和命令是不同的。
https://stackoverflow.com/questions/70740143
复制相似问题