你应该采用哪个云数据库?
发布时间:2021-12-07 10:00:43 所属栏目:云计算 来源:互联网
导读:云计算的基本原则是采用一次性和可更换的多台机器,这对采用云计算技术以及在云中实施的数据库系统的功能有直接影响。 传统数据库大致可以分为并行优先(例如MongoDB或Teradata)或单存储系统优先(例如PostgreSQL或MySQL)。这两个类别都有其核心设计固有的局限
云计算的基本原则是采用一次性和可更换的多台机器,这对采用云计算技术以及在云中实施的数据库系统的功能有直接影响。 传统数据库大致可以分为并行优先(例如MongoDB或Teradata)或单存储系统优先(例如PostgreSQL或MySQL)。这两个类别都有其核心设计固有的局限性。这些限制的程度部分是成熟度的函数。但是,对于某些核心架构决策来说,可能无法有效支持特定功能。 例如,Greenplum有序列,但Redshift没有,尽管这两者都是PostgreSQL的衍生物。而BigQuery没有序列,但Teradata有序列,尽管在传统意义上它们并不是真正的序列。 云数据库属于相同的类别,而新系统明显倾向于并行优先。云计算系统的基本属性是机器的可扩展性和可替换性的并行性。 在单系统优先类别中,云计算实例化往往侧重于传统单机产品的管理成本、升级和可靠性(RPO/RTO),例如Heroku PostgreSQL、Amazon Aurora(PostgreSQL/MySQL)、Google cloud SQL(PostgreSQL/MySQL)和Azure SQL(SQL Server)。 在并行优先类别中,实际上有两个子类别:SQL/关系类别(BigQuery、Snowflake、Redshift、Spark、AzureSynapse)和DHT/NoSQL(BigTable、Dynamo、Cassandra、Redis)类别。这种区别与是否存在类似SQL的语言关系不大,而与系统中数据的物理布局是否经过调整以便通过散列快速查找键进行单行访问,或者使用排序合并和筛选操作进行批量访问有关。 并行优先关系数据库通常依赖于一个或多个原生云存储系统。这些存储系统总是并行优先构建,并公开一个非常有限的get-object/put-object API,它通常允许对数据进行分区,但不允许高性能随机访问。这限制了数据库实现高级持久数据结构(例如索引),在许多情况下,还限制了可变数据的能力。 因此,使用原生存储的云计算实现往往依赖于微分区的顺序读写而不是索引。根据对象名称,存储级对象往往只有一条物理访问路径。索引必须在底层存储的外部实现,即使这样做了,底层云存储API也可能使在存储级别对象中实际使用地址或字节偏移量变得困难。 (编辑:随州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |