写点什么

Amazon 在 AWS DynamoDB 中添加了对过期时间(TTL)特性的支持

  • 2017-03-20
  • 本文字数:1106 字

    阅读完需:约 4 分钟

Amazon 近期在一个博客帖子中宣布其 NoSQL 数据库 DynamoDB 服务做了改进,添加了 DynamoDB 中存储数据的过期时间(TTL,Time To Live)特性。这一特性允许根据时间阈值删除那些价值与日俱减的数据,可降低企业数据存储的开销。

可扩展的无服务器数据库服务在广告、游戏、物联网以及对低延迟数据访问有需求的应用中具有广泛的用例。Lyft 就是 Amazon推销的一个用例,它通过迁移到 DynamoDB 实现了 GPS 数据的持久化,进而在驾驶位置跟踪系统(Ride Location Tracking System)中使用。

对于在应用中存在短期数据波涌的企业,一个挑战是如何处理数据滞留问题。例如,虽然 GPS 追踪数据在驾车当时是非常有用的,但是这些数据的价值与日俱减。对企业而言,长期存储这些数据会增加开销负担。

现在企业可以通过使用新的 TTL 特性设置一个时间阈值,数据一旦达到过期时限就会被自动删除。AWS 的首席布道师 Jeff Barr解释了 TTL 特性的工作机制:

该特性可以逐表启用。启用时只需为表项指定一个包含了过期时间的属性。一旦设置了属性并启用了 TTL 管理(这两个操作都可以通过一个 API 实现),DynamoDB 将会查找并删除过期的条目。这个过程是在后台自动执行的,并不会影响到表的读取和写入操作。

开发人员和管理员可以通过 AMS 管理平台(Management Console)设置 TTL 属性,属性值使用了 DynamoDB Number 格式,解释为 Unix 新纪元时间(Epoch Time)系统中的秒值。TTL 阈值可以从 AWS 的命令行接口(CLI,Command Line Interface)调用 update-time-to-live 命令更改,也可以在代码中调用 UpdateTimeToLive 函数更改。

图片来源: https://aws.amazon.com/blogs/aws/new-manage-dynamodb-items-using-time-to-live-ttl/

由于 TTL 而过期的表项可以被移动到冷存储(Cold Storage),或是使用 AWS Lamda 和 DynamoDB 触发器更新到其它的 DynamoDB 中。还可以使用 DynamoDB 流处理,或是直接删除掉。

在使用 DynamoDB TTL 时,其它应了解的考虑包括:

  • TTL 属性可以在新的表或已有的表上应用,但是不能用作 JSON 文档的元素,因为该属性必须是 DynaomoDB Number 类型。
  • 管理员能通过 AWS Identity and Access Management(IAM)管理对 TTL 属性的访问。
  • 使用 TTL 属性并不会降低数据服务的性能,因为扫描和删除是在后台执行的。
  • 使用 TTL 不需要支付额外的费用。客户只需为表项被删除前所占用的存储付费。
  • TTL 特性于 2017 年 2 月 27 日可用。

查看英文原文: Amazon Adds Time to Live (TTL) Support to AWS DynamoDB


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-03-20 19:002000
用户头像

发布了 227 篇内容, 共 74.9 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

数据分析有 AI 帮你,Sugar BI 智能分析全场景介绍

Baidu AICLOUD

数据分析 可视化 BI

你会用Go语言的rune类型吗?

王中阳Go

Go golang 学习方法 数据处理 10月月更

C++11智能指针(auto_ptr,unique_ptr,shared_ptr,weak_ptr的详解与模拟实现)

雪芙花

c c++ 10月月更

ZooKeeper基本架构

穿过生命散发芬芳

zookeeper 10月月更

Vue组件入门(十)Attributes 继承

Augus

Vue 3 10月月更

超级app+轻应用带来的改变

Geek_99967b

小程序

Go语言 if判断和for循环实战 goto使用的那些坑

王中阳Go

Go golang 学习方法 面试题 10月月更

docker学习笔记(二)

Studying_swz

Docker 10月月更

技术使用点-mixins的使用

默默的成长

前端 Vue 3 10月月更

SAP | Local结构和Global结构

暮春零贰

SAP 结构 10月月更

2022-10-19:一个数组如果满足 : 升降升降升降... 或者 降升降升...都是满足的 给定一个数组, 1,看有几种方法能够剔除一个元素,达成上述的要求 2,数组天然符合要求返回0 3,剔

福大大架构师每日一题

算法 rust 福大大

docker学习笔记(一)

Studying_swz

10月月更

什么是IP路由?思科与华为在IP路由配置上有啥区别?

wljslmz

路由器 动态路由 静态路由 10月月更 IP 路由

工赋开发者社区 | 精益思想与数字化技术难融合?

工赋开发者社区

工赋开发者社区 | 即使是程序员也会喜欢这8种无代码/低代码工具

工赋开发者社区

数据产品经理那点事儿四

松子(李博源)

大数据 深度思考 高效工作 数据产品经理

工赋开发者社区 | Gartner发布2023年十大战略技术趋势

工赋开发者社区

C/C++的类型转换

雪芙花

c c++ 10月月更

【Java深入学习】一个关于“锁”的程序-上

Geek_65222d

10月月更

一起学习 Go 语言设计模式之单例模式

宇宙之一粟

设计模式 单例模式 Go 语言 10月月更

来了!2022 XDR网络安全运营新理念峰会即将开幕!

未来智安XDR SEC

网络安全

你一定要看的:Go slice切片详解和实战

王中阳Go

Go golang 高效工作 学习方法 10月月更

牛客刷题系列(完全数计算,扑克牌大小)

雪芙花

c c++ 10月月更

Spring Boot「09」Property 高级特性

Samson

Java 学习笔记 Spirng spring-boot 10月月更

vivo 鲁班平台 RocketMQ 消息灰度方案

阿里巴巴云原生

阿里云 云原生 Apache RocketMQ

工赋开发者社区 | 最小可行架构注意事项:必须考虑分布式处理和数据的位置

工赋开发者社区

运维服务体系架构

阿泽🧸

10月月更 运维服务

nginx快速入门

Studying_swz

10月月更

聊聊 K8S:K8S集群搭建实战

老周聊架构

k8s 10月月更

谷歌?新手不推荐 选它就对了

江拥羡橙

前端 工具 浏览器 谷歌 10月月更

Pixel系列还能打,靠的是什么?

脑极体

人工智能

Amazon在AWS DynamoDB中添加了对过期时间(TTL)特性的支持_数据库_Kent Weare_InfoQ精选文章