database - 大查询数据过期
问题描述
我一直在收集数据以BigQuery
进行分析。但是,数据量在增长,我只需要 2 周的近期数据。我想删除未使用的数据。我做了一些研究,发现分区数据有一个过期选项。
当前设置:
我的表是一个分区表我使用带有类似代码的 Lambda 函数来将数据放入表中(我尝试添加 timePartitioning 选项,但它不起作用,所以这就是为什么我在 stackoverflow 上询问是否有人知道)
wait bq
.dataset("dataset name")
.table('tablename' + '$' + partitionTime)
.load( filename, {
sourceFormat: 'CSV',
schema,
skipLeadingRows: 1,
timePartitioning: {
expirationMs: "300000"
}
});
其中 partitionTime 的格式为 YYYYMMDD(这会将插入该分区的数据放置)
感谢您的所有评论并花时间阅读我的麻烦 :) 祝您有美好的一天。
解决方案
正如您在此处看到的,该函数load
接受三个参数:
- 来源(需要)
- 元数据(可选)
- 回调(可选)
您需要的选项可以在metadata
参数中设置。在上面提供的链接中,您还可以注意到BigQuery SDK
使用 API 调用来执行给定的操作。在此链接和下面的打印屏幕中,您可以看到如何构建正确的 API 调用BigQuery
在该字段中timePartitioning
,您可以添加DAY作为分区提示和以毫秒为单位的到期时间。
最后,您的代码会有一个小的变化:
wait bq
.dataset("dataset name")
.table('tablename')
.load( filename, {
sourceFormat: 'CSV',
schema,
skipLeadingRows: 1,
timePartitioning: {
type: "DAY",
expirationMs: "300000"
}
});
我希望它有帮助
推荐阅读
- javascript - 如何使用两个下拉菜单在文本框中打印值
- reactjs - 使用 Redux 的 connect() 后,历史作为孩子的道具在我的反应应用程序中消失了吗?
- sql - 在 postgresql 表中查找利润更高的用户
- maven - Maven - 获取所有测试的列表而不运行它们?
- javascript - jquery keyup/keydown 触发器在没有控制台错误的数据表中不起作用
- c++ - Gstreamer 动态更改源元素
- amazon-web-services - 将 filebeat 添加到 ebextensions 以及使用 AWS Code Pipelines 创建的 war 文件
- python - 所有键都在字典python中被选中
- javascript - Kendo UI ToolTip on Icon
- c# - 创建 LINQ 查询对象