首页 / 知识
关于python:您如何设计Bigtable / Datastore(GAE)的数据模型?
2023-04-16 09:14:00

How do you design data models for Bigtable/Datastore (GAE)?由于Google App Engine数据存储区基于Bigtable,并且我们知道它不是关系数据库,因此您如何为使用这种数据库系统的应用程序设计数据库架构/数据模型? 设计bigtable模式是一个开放的过程,基本上需要您考虑:
GAE的数据存储区会自动对您的数据进行规范化处理。也就是说,每个索引都包含(大部分)数据的完整副本,因此每个索引都会显着增加执行写入所花费的时间以及所使用的存储空间。 如果不是这种情况,那么设计数据存储架构将需要做更多的工作:您必须仔细考虑每种类型的主键,并考虑您的决定对数据局部性的影响。例如,在呈现博客文章时,您可能需要显示注释以使其与之一起使用,因此每个注释的关键字可能以关联的文章的关键字开头。 使用Datastore,这没什么大不了的:您使用的查询将看起来像" Select * FROM Comment WHERE post_id = N"。 (如果要分页注释,您还将有一个限制子句,可能的后缀为" AND comment_id> last_comment_id"。)添加此类查询后,数据存储区将为您建立索引,并且您的读取结果将为神奇的快。 需要记住的是,每个额外的索引都会产生一些额外的开销:最好使用尽可能少的访问模式,因为这会减少GAE构造的索引数量,从而减少数据所需的总存储量。 仔细阅读这个答案,我发现它有点模糊。也许动手设计的问题将有助于缩小范围? :-) 您可以使用www.web2py.com。您只需构建模型和应用程序一次,即可在GAE上运行,而且还可以使用SQLite,MySQL,Posgres,Oracle,MSSQL,FireBird 由于GAE建立在Django如何管理数据的基础上,因此在Django文档中有很多有关如何解决类似问题的信息(例如,请参见此处,向下滚动到"您的第一个模型")。 简而言之,您将db模型设计为常规对象模型,并让GAE整理出所有对象关系映射。 |
最新内容
相关内容
Python有哪些设计模式?
Python有哪些设计模式?,设计,策略,工厂,系统,代码,统一,培训,模式,软件,通信,设计模式大家一定很熟悉,它是一套被反复使用、多数人知晓的、经过python之当前GIL设计的缺陷
python之当前GIL设计的缺陷,时间,代码,设计,线程,培训,受益,一致,平均,状态,持有,基于pcode数量的调度方式按照Python社区的想法,操作系统本身Python是一种怎样的计算机程序设计
Python是一种怎样的计算机程序设计语言?,代码,企业,新浪,大规模,公司,工作,项目,百度,全球,培训,你可能已经听说过很多种流行编程语言,比如非python有哪些设计模式?
python有哪些设计模式?,设计,策略,工厂,系统,代码,统一,培训,模式,软件,通信,设计模式大家一定很熟悉,它是一套被反复使用、多数人知晓的、经过python如何为函数和模块起别名
python如何为函数和模块起别名,名称,培训,函数,别名,模块,冲突,关键字,以上,两个,程序,python如何为函数和模块起别名1、如果要导入的函数的关于设计模式:使用db4o进行报告
关于设计模式:使用db4o进行报告,关于设计模式:使用db4o进行报告,趋势,项目,我在,每个人,Reporting with db4o过去,我在许多项目上使用db关于会话:PHP:$ _SESSION-将临时使用
关于会话:PHP:$ _SESSION-将临时使用的数据存储在$ _SESSION变量中的优缺点是什么,关于会话:PHP:$ _SESSION-将临时使用的数据存储在$关于用户控件:WPF用户控件设计时间
关于用户控件:WPF用户控件设计时间大小,关于用户控件:WPF用户控件设计时间大小,我就,很方便,器中,任意,WPF UserControl Design Time S值与实体对象(域驱动设计)
值与实体对象(域驱动设计),值与实体对象(域驱动设计),对象,价值,实体,系统,Value vs Entity objects (Domain Driven Design)我刚刚关于模型视图控制器:您知道PAC设计
关于模型视图控制器:您知道PAC设计模式的任何示例吗?,关于模型视图控制器:您知道PAC设计模式的任何示例吗?,网站,设计模式,应用程序,而如何判断Visual Studio设计器是否
如何判断Visual Studio设计器是否正在运行.NET代码,如何判断Visual Studio设计器是否正在运行.NET代码,窗体,错误,设计者,引发了,How关于c#:当两个字符串都可互换时,如何
关于c#:当两个字符串都可互换时,如何为具有两个字符串的结构实现GetHashCode,关于c#:当两个字符串都可互换时,如何为具有两个字符串的结