Amazon dynamodb DynamoDB定价使用Titan的DynamoDB存储后端

Amazon dynamodb DynamoDB定价使用Titan的DynamoDB存储后端,amazon-dynamodb,titan,Amazon Dynamodb,Titan,我想了解一下使用DynamoDB Titan后端的价格(以美元计)。为此,我需要能够理解DynamoDB Titan后端何时执行读写操作。现在我很无知 理想情况下,我希望运行一个测试用例,添加一些顶点、边,然后执行一个相当简单的遍历,然后查看完成了多少读写操作。有什么办法可以做到这一点吗?可能是通过指标 如果事实证明我自己无法提取这些信息,我将非常感谢您首先简要解释DynamoDB Titan后端何时执行读写操作。对于所有Titan后端,要了解和估计写操作的数量,我们需要估计给定KCVStore

我想了解一下使用DynamoDB Titan后端的价格(以美元计)。为此,我需要能够理解DynamoDB Titan后端何时执行读写操作。现在我很无知

理想情况下,我希望运行一个测试用例,添加一些顶点、边,然后执行一个相当简单的遍历,然后查看完成了多少读写操作。有什么办法可以做到这一点吗?可能是通过指标


如果事实证明我自己无法提取这些信息,我将非常感谢您首先简要解释DynamoDB Titan后端何时执行读写操作。

对于所有Titan后端,要了解和估计写操作的数量,我们需要估计给定KCVStore的列数。在使用Titan的DynamoDB存储后端时,您还可以使用度量来测量写入的列数

要启用指标,请启用列出的配置选项。 具体而言,启用第7-11行。 请注意配置属性。如果某个特定的
tx.commit()
调用的最大队列长度,则您知道队列/storage.buffer-size不够大。一旦executor队列大小度量达到峰值而未达到最大队列长度,您就知道已经捕获了
tx.commit()
调用中正在写入的所有列,因此这将为您提供
tx.commit()
调用中正在更改的列数。您可以查看edgestore和graphindex的UpdateItem度量,以了解两个表之间的列分布

所有Titan存储后端都实现了KCVStore,键和列根据存储的类型具有不同的含义。假设您没有打开用户定义的事务日志,则有两个存储区可以获取大量写入。它们是edgestore和graphindex

无论是否配置复合索引,edgestore KCVStore始终被写入。每条边和该边的所有边属性由两列表示(除非将该边标签的架构设置为单向)。边列的关键点是直接列中边的外顶点,反向列中边的内顶点。同样,边的列是直列中边的入顶点,而反列中边的出顶点。每个顶点至少由一列表示“隐藏”特性,一列表示“顶点标签”(可选),一列表示每个顶点特性。顶点的关键点是顶点id,列对应于顶点特性、隐藏顶点特性和标签

只有在Titan管理系统中配置复合索引时,才会写入graphindex KCVStore。可以索引顶点和边特性。对于每对索引值和具有该索引值的边/顶点,graphindex KCVStore中将有一列。键将是索引id和值的组合,列将是顶点/边id

现在您已经知道了如何计算列数,您可以使用这些知识来估计在使用Titan的DynamoDB存储后端时写入edgestore和graphindex的大小和数量。如果对KCVStore使用多项目数据模型,则每个键列对将获得一个项目。如果对KCVStore使用单项数据模型,则会在一个键上为所有列获取一项(启用图形分区时不一定如此,但这是我现在不讨论的细节)。只要每个顶点属性小于1kb,且一条边的所有边属性之和小于1kb,则在使用edgestore的多项目数据模型时,每列的写入成本为1 WCU。同样,如果使用多项目数据模型,graphindex中的每一列写入将花费1个WCU

假设您进行了估算,并且始终使用多项目数据模型。假设您估计将每秒向edgestore写入750列,每秒向graphindex写入750列,并且您希望驱动此负载一天。您可以将两个表的读取容量都设置为1,这样您就知道每个表将从一个物理DynamoDB分区开始。在us-east-1中,每10个写入容量单位的写入成本为每小时0.0065美元,因此每表24*75*0.0065美元的写入成本为每天11.70美元。这意味着edgestore和graphindex的写入容量每天将花费23.40美元。可以将每个表的读取设置为每秒读取1次,使两个表每天的读取成本为2*24*$0.0065=$0.312。如果您的AWS帐户是新的,那么读取将属于免费层,因此实际上,您只需为写入付费

另一个方面是存储。如果每秒写入750列,即每天向一个表写入6480万项,则意味着每月写入19亿项(约20亿项)。一个月内表中项目的平均数量为10亿。如果每个项目平均为412字节,并且有100字节的开销,那么这意味着一个月要存储10亿个512字节的项目,一个月大约477 GB。477/25四舍五入为20,因此此负载下第一个月的存储成本为20*$0.25美元/月。如果您继续以这种速度添加项目而不删除它们,每月的存储成本将增加大约5美元/月

如果图形中没有超级节点,或者顶点的属性数相对较多,则对edgestore的写入将均匀分布在整个分区键空间中。这意味着您的表在达到10GB时将拆分为2个分区,然后在达到10GB时,每个分区将拆分为总共4个分区,以此类推。最接近的功率为2到477 GB/(10 GB/分)