Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database DynamoDB-查询查找表_Database_Amazon Web Services_Amazon Dynamodb - Fatal编程技术网

Database DynamoDB-查询查找表

Database DynamoDB-查询查找表,database,amazon-web-services,amazon-dynamodb,Database,Amazon Web Services,Amazon Dynamodb,我刚刚开始在DynamoDB中建立一个社交网站 我将拥有大量与用户相关的数据,我计划将这些数据全部放在一个表中-例如: 用户ID 出生日期 头发 照片网址 细节 等等-可能有几百个属性 问题: 把这么多的数据放在一个表中有什么问题吗 假设所有这些数据都包含在表中,我如何查询这些数据(我可以这样查询“这个年龄、这个颜色的头发、这个位置和这次登录的所有成员”) 如果一个表的内容很长,并且我在该表上像上面那样运行查询,那么读取IO的成本会很高吗?从长远来看,表中可能有很多条目 谢谢否。您不能以

我刚刚开始在DynamoDB中建立一个社交网站

我将拥有大量与用户相关的数据,我计划将这些数据全部放在一个表中-例如:

  • 用户ID
  • 出生日期
  • 头发
  • 照片网址
  • 细节
等等-可能有几百个属性

问题:

  • 把这么多的数据放在一个表中有什么问题吗
  • 假设所有这些数据都包含在表中,我如何查询这些数据(我可以这样查询“这个年龄、这个颜色的头发、这个位置和这次登录的所有成员”)
  • 如果一个表的内容很长,并且我在该表上像上面那样运行查询,那么读取IO的成本会很高吗?从长远来看,表中可能有很多条目

谢谢

否。您不能以这种方式查询DynamoDB。您只能查询主键(以及可选的单个范围)。扫描DynamoDB中的表速度慢且成本高,并且会导致其他查询挂起

如果属性数量较少,则可以轻松地为这些属性创建索引表。但如果属性数量较多,则会变得过于复杂

主表:

Primary Key (Type: Hash) - userid
Attributes - the rest of the attributes
“头发”索引表:

您也可以查看正在为其他属性添加索引的,因此允许您想要的查询。但它的规模和支持低延迟的能力有限

您还可以考虑多个数据存储和表的组合,因为您的实时和报告的要求不同:

  • 用于快速实时用户查找的DynamoDB
  • SimpleDB/RDBMS(如MySQL或),用于其他属性过滤器和查询
  • 内存中的DB(如Redis、Casandra),用于计数器和表,作为引导板或队列
  • 可以分析以发现模式和趋势的活动日志
Primary Key (Type: Hash and Range) - hair and userid