【问题标题】:Is there Bloom Filter UDF function in Hive?Hive 中是否有 Bloom Filter UDF 功能?
【发布时间】:2021-05-31 15:44:23
【问题描述】:

大的全事实表加入增量事实表有问题,我知道Bloom Filter是减少加入行数的好选择,但是Bloom UDF实现很少,我只能找到brickhouse的Bloom UDF,并且用起来不是很够用,需要先读取小表,将bloom数据加载到本地目录,以后再使用。 那么,有没有更好的布隆过滤器 UDF 实现可以直接在 Hive 中使用(只需上传 JAR)?谢谢。

【问题讨论】:

  • ORC 已嵌入布隆过滤器
  • @leftjoin 是的,谢谢提及,但我不确定如果我们只是为表设置“orc.bloom.filter.columns”="xx",orc 的bloom 是否会在join 中起作用。试过了吗,好用吗?
  • 我已经尝试并注意到仅在 ORC 加载排序后有所改进。

标签: hive user-defined-functions bloom-filter


【解决方案1】:

在这几天里,我发现了 2 个具有 Bloomfilter UDF 功能的存储库,一个是 Hivemall,用于机器学习,另一个是 Brickhouse。但是,他们两个都不能解决我的问题。对于Brickhouse的Bloomfilter UDAF,它需要你将临时的bloom结果存储在本地目录中以供以后使用,但是当这个bloom结果足够大时,它会填满本地服务器的内存并导致本机的hiveserver关闭。 Hivemall 的一个,它适用于小数据集,但是当数据集变大时,比如数百万个唯一 id,它会抛出异常,仍然无法弄清楚为什么,但看起来它无法处理长字符串 id(长度从 40到 50) 并且无法处理其数据结构中的数百万个 id。这很奇怪,因为 UDF 数据结构都是字节数组,应该支持无限数量的 id。

【讨论】:

  • 嘿伙计们,我刚刚发现第二个Bloom udf的问题,Hivemall一个,错误是由于新Bloomfilter实例时“预期元素数”参数太小,现在UDF可以工作了, 我很高兴。希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2018-05-06
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多