大查询数据过期

Posted

技术标签:

【中文标题】大查询数据过期【英文标题】:Big Query Data Expiration 【发布时间】:2020-02-15 06:58:09 【问题描述】:

我一直在收集BigQuery 中的数据以进行分析。但是,数据量在增长,我只需要 2 周的近期数据。我想删除未使用的数据。我做了一些研究,发现分区数据有一个过期选项。

当前设置:

我的表是分区表 我使用带有类似代码的 Lambda 函数来将数据放入表中(我尝试添加 timePartitioning 选项,但它不起作用,所以这就是为什么我在 *** 上询问是否有人知道)

wait bq
      .dataset("dataset name")
      .table('tablename' + '$' + partitionTime)
      .load( filename, 
        sourceFormat: 'CSV',
        schema,
        skipLeadingRows: 1, 
        timePartitioning: 
           expirationMs: "300000"
        
      );

partitionTime 的格式为 YYYYMMDD(这会将数据插入该分区)

感谢您的所有 cmets 并花时间阅读我的麻烦 :) 祝你有美好的一天。

【问题讨论】:

您能提供更多信息吗?我想知道您在 lambda 中使用的是哪种语言(可能是 javascript)。你能解释一下你的工作流程吗? 【参考方案1】:

如你所见here,函数load接受三个参数:

    来源(需要) 元数据(可选) 回调(可选)

您需要的选项可以在metadata参数中设置。在上面提供的链接中,您还可以注意到 BigQuery SDK 使用 API 调用来执行给定的操作。 在这个link 和下面的打印屏幕中,您可以看到如何为BigQuery 构建正确的API 调用

timePartitioning 字段中,您可以添加DAY 作为分区提示和以毫秒为单位的过期时间。

最后,你的代码会有一点小改动:

 wait bq
      .dataset("dataset name")
      .table('tablename')
      .load( filename, 
        sourceFormat: 'CSV',
        schema,
        skipLeadingRows: 1, 
        timePartitioning: 
           type: "DAY",
           expirationMs: "300000"
        
      );

希望对你有帮助

【讨论】:

以上是关于大查询数据过期的主要内容,如果未能解决你的问题,请参考以下文章

redis使用注意事项

Redis 使用总结

Redis的过期删除策略

oracle数据库密码过期时间查询?

关于查询报表总是"超时已过期"的问题解决

谈谈Redis的SETNX