【问题标题】:SELECT random sample of data via PRESTO connector通过 PRESTO 连接器选择随机数据样本
【发布时间】:2020-12-22 21:11:05
【问题描述】:

我目前正在寻找如何从表中获取随机数据样本的最佳方法(例如在 HIVE 中)。我知道 PRESTO 提供了 RANDOM() 函数或 TABLESAMPLE BERNOULLI/SYSTEM。问题是查询记录数较多的表时,耗时较长,不适合与JayDeBeApi合作,可能会关闭连接,等待响应时间过长。

我更喜欢使用 TABLESAMPLE BERNOULLI/SYSTEM,它将要获取的记录的百分比作为参数。与ORACLE、SAP或MSSQL数据库相比,可以通过精确的百分比,即0.003123412%,PRESTO不允许你,尽管功能非常相似,一切都在1-100%的范围内转换。

有人知道如何解决这个问题吗?我宁愿避免与 TABLESAMPLE BERNOULLI/SYSTEM 合作的 limit 子句,这可能无法按预期工作。

【问题讨论】:

    标签: python database presto


    【解决方案1】:

    使用 Presto 341(即将发布),您只需

     ... FROM my_table TABLESAMPLE BERNOULLI (0.01)
    

    正如@michal.kyjovsky 指出的那样,旧版本有一个错误,需要使用科学记数法来获得低于百分比的采样率

     ... FROM my_table TABLESAMPLE BERNOULLI (0.01e0)
    

    【讨论】:

      【解决方案2】:

      这可以通过以科学计数法传递数字来获得。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 2011-01-28
      • 2019-01-01
      • 2011-01-31
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多