大查询数据过期
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"
);
希望对你有帮助
【讨论】:
以上是关于大查询数据过期的主要内容,如果未能解决你的问题,请参考以下文章