• 关于

    数据扩展有什么用

    的搜索结果

问题

我表示再次质疑阿里云数据盘问题

durian 2019-12-01 21:58:38 7834 浏览量 回答数 10

问题

Python的C扩展 argument 1 must be string without null bytes, not str

a123456678 2019-12-01 19:49:55 1426 浏览量 回答数 1

回答

用mysql自带函数有什么不好?1.很可能造成where后的条件无法走索引2.把一些php层面简单的业务逻辑交给mysql来做,加大了mysql的压力(尽管可能你看来执行一次sql语句影响很小),对小系统而言没什么。如果对于大型系统,那会是灾难。大型系统的瓶颈基本都在数据库层面难以扩展,php很容易的水平扩展,php不会是瓶颈,因此,尽可能的降低数据库的处理压力,包括减少查询次数通过cache来解决,减少每次查询的时间则通过索引以及尽可能的业务在php层面处理,mysql只做最基本简单的查询少使用自带函数。那mysql自带函数为什么存在?比如一些数据初始化是可以用,或者存储过程等..小型系统可以使用mysql自带函数,反正没啥瓶颈不能因为大型系统不建议查询用自带函数就不提供,因为考虑到普遍的需求比如php框架的ORM设计,很费资源又慢,大型系统也不建议用,小系统就随便用,方便又快速。总结就是不能因为一些场景不建议用就不提供...方便快速的代价就是性能。

西秦说云 2019-12-02 01:33:16 0 浏览量 回答数 0

Quick BI 数据可视化分析平台

2020年入选全球Gartner ABI魔力象限,为中国首个且唯一入选BI产品

问题

请问大家如何设计多平台应用报错 

kun坤 2020-06-10 10:19:56 13 浏览量 回答数 1

问题

Java Web项目设计数据库时是否需要在表中加备用字段

蛮大人123 2019-12-01 19:52:08 1510 浏览量 回答数 1

回答

辩证法有讲过任务事物都是有关系的,对于一些事件,人只有按照习惯的思维,把它们归类整理,人才有能力去记忆、检阅、比较。而现在所谓的nosql,形态上,只是反sql标准,独创一种数据查询语言,处处和sql作对,就像python一样处处反c语言,实际上只是为了少敲打几个操作符{}, (),nosql所对应的数据库实际上,也是一种新形关系数据组织形式,只是数据用什么集合、文档代表了原来的表、字段,而且字段的数目名称可以申缩,且可以无限扩展,文档下还可以文档。但终归还是按人的思维:关系处理数据。按照我讲nosql所对应的数据库,就比如php对java,只是形态上应用上有不同,都是数据应用上的一种互补。

a123456678 2019-12-02 03:00:12 0 浏览量 回答数 0

回答

参考:https://www.iteblog.com/archives/2530.html分布式和去中心化(Distributed and Decentralized)Cassandra 是分布式的,这意味着它可以运行在多台机器上,并呈现给用户一个一致的整体。事实上,在一个节点上运行 Cassandra 是没啥用的,虽然我们可以这么做,并且这可以帮助我们了解它的工作机制,但是你很快就会意识到,需要多个节点才能真正了解 Cassandra 的强大之处。它的很多设计和实现让系统不仅可以在多个节点上运行,更为多机架部署进行了优化,甚至一个 Cassandra 集群可以运行在分散于世界各地的数据中心上。你可以放心地将数据写到集群的任意一台机器上,Cassandra 都会收到数据。对于很多存储系统(比如 MySQL, Bigtable),一旦你开始扩展它,就需要把某些节点设为主节点,其他则作为从节点。但 Cassandra 是无中心的,也就是说每个节点都是一样的。与主从结构相反,Cassandra 的协议是 P2P 的,并使用 gossip 来维护存活或死亡节点的列表。关于 gossip 可以参见《分布式原理:一文了解 Gossip 协议》。去中心化这一事实意味着 Cassandra 不会存在单点失效。Cassandra 集群中的所有节点的功能都完全一样, 所以不存在一个特殊的主机作为主节点来承担协调任务。有时这被叫做服务器对称(server symmetry)。综上所述,Cassandra 是分布式、无中心的,它不会有单点失效,所以支持高可用性。弹性可扩展(Elastic Scalability)可扩展性是指系统架构可以让系统提供更多的服务而不降低使用性能的特性。仅仅通过给现有的机器增加硬件的容量、内存进行垂直扩展,是最简单的达到可扩展性的手段。而水平扩展则需要增加更多机器,每台机器提供全部或部分数据,这样所有主机都不必负担全部业务请求。但软件自己需要有内部机制来保证集群中节点间的数据同步。弹性可扩展是指水平扩展的特性,意即你的集群可以不间断的情况下,方便扩展或缩减服务的规模。这样,你就不需要重新启动进程,不必修改应用的查询,也无需自己手工重新均衡数据分布。在 Cassandra 里,你只要加入新的计算机,Cassandra 就会自动地发现它并让它开始工作。高可用和容错(High Availability and Fault Tolerance)从一般架构的角度来看,系统的可用性是由满足请求的能力来量度的。但计算机可能会有各种各样的故障,从硬件器件故障到网络中断都有可能。如何计算机都可能发生这些情况,所以它们一般都有硬件冗余,并在发生故障事件的情况下会自动响应并进行热切换。对一个需要高可用的系统,它必须由多台联网的计算机构成,并且运行于其上的软件也必须能够在集群条件下工作,有设备能够识别节点故障,并将发生故障的中端的功能在剩余系统上进行恢复。Cassandra 就是高可用的。你可以在不中断系统的情况下替换故障节点,还可以把数据分布到多个数据中心里,从而提供更好的本地访问性能,并且在某一数据中心发生火灾、洪水等不可抗灾难的时候防止系统彻底瘫痪。可调节的一致性(Tuneable Consistency)2000年,加州大学伯克利分校的 Eric Brewer 在 ACM 分布式计算原理会议提出了著名的 CAP 定律。CAP 定律表明,对于任意给定的系统,只能在一致性(Consistency)、可用性(Availability)以及分区容错性(Partition Tolerance)之间选择两个。关于 CAP 定律的详细介绍可参见《分布式系统一致性问题、CAP定律以及 BASE 理论》以及《一篇文章搞清楚什么是分布式系统 CAP 定理》。所以 Cassandra 在设计的时候也不得不考虑这些问题,因为分区容错性这个是每个分布式系统必须考虑的,所以只能在一致性和可用性之间做选择,而 Cassandra 的应用场景更多的是为了满足可用性,所以我们只能牺牲一致性了。但是根据 BASE 理论,我们其实可以通过牺牲强一致性获得可用性。Cassandra 提供了可调节的一致性,允许我们选定需要的一致性水平与可用性水平,在二者间找到平衡点。因为客户端可以控制在更新到达多少个副本之前,必须阻塞系统。这是通过设置副本因子(replication factor)来调节与之相对的一致性级别。通过副本因子(replication factor),你可以决定准备牺牲多少性能来换取一致性。 副本因子是你要求更新在集群中传播到的节点数(注意,更新包括所有增加、删除和更新操作)。客户端每次操作还必须设置一个一致性级别(consistency level)参数,这个参数决定了多少个副本写入成功才可以认定写操作是成功的,或者读取过程中读到多少个副本正确就可以认定是读成功的。这里 Cassandra 把决定一致性程度的权利留给了客户自己。所以,如果需要的话,你可以设定一致性级别和副本因子相等,从而达到一个较高的一致性水平,不过这样就必须付出同步阻塞操作的代价,只有所有节点都被更新完成才能成功返回一次更新。而实际上,Cassandra 一般都不会这么来用,原因显而易见(这样就丧失了可用性目标,影响性能,而且这不是你选择 Cassandra 的初衷)。而如果一个客户端设置一致性级别低于副本因子的话,即使有节点宕机了,仍然可以写成功。总体来说,Cassandra 更倾向于 CP,虽然它也可以通过调节一致性水平达到 AP;但是不推荐你这么设置。面向行(Row-Oriented)Cassandra 经常被看做是一种面向列(Column-Oriented)的数据库,这也并不算错。它的数据结构不是关系型的,而是一个多维稀疏哈希表。稀疏(Sparse)意味着任何一行都可能会有一列或者几列,但每行都不一定(像关系模型那样)和其他行有一样的列。每行都有一个唯一的键值,用于进行数据访问。所以,更确切地说,应该把 Cassandra 看做是一个有索引的、面向行的存储系统。Cassandra 的数据存储结构基本可以看做是一个多维哈希表。这意味着你不必事先精确地决定你的具体数据结构或是你的记录应该包含哪些具体字段。这特别适合处于草创阶段,还在不断增加或修改服务特性的应用。而且也特别适合应用在敏捷开发项目中,不必进行长达数月的预先分析。对于使用 Cassandra 的应用,如果业务发生变化了,只需要在运行中增加或删除某些字段就行了,不会造成服务中断。当然, 这不是说你不需要考虑数据。相反,Cassandra 需要你换个角度看数据。在 RDBMS 里, 你得首先设计一个完整的数据模型, 然后考虑查询方式, 而在 Cassandra 里,你可以首先思考如何查询数据,然后提供这些数据就可以了。灵活的模式(Flexible Schema)Cassandra 的早期版本支持无模式(schema-free)数据模型,可以动态定义新的列。 无模式数据库(如 Bigtable 和 MongoDB)在访问大量数据时具有高度可扩展性和高性能的优势。 无模式数据库的主要缺点是难以确定数据的含义和格式,这限制了执行复杂查询的能力。为了解决这些问题,Cassandra 引入了 Cassandra Query Language(CQL),它提供了一种通过类似于结构化查询语言(SQL)的语法来定义模式。 最初,CQL 是作为 Cassandra 的另一个接口,并且基于 Apache Thrift 项目提供无模式的接口。 在这个过渡阶段,术语“模式可选”(Schema-optional)用于描述数据模型,我们可以使用 CQL 的模式来定义。并且可以通过 Thrift API 实现动态扩展以此添加新的列。 在此期间,基础数据存储模型是基于 Bigtable 的。从 3.0 版本开始,不推荐使用基于 Thrift API 的动态列创建的 API,并且 Cassandra 底层存储已经重新实现了,以更紧密地与 CQL 保持一致。 Cassandra 并没有完全限制动态扩展架构的能力,但它的工作方式却截然不同。 CQL 集合(比如 list、set、尤其是 map)提供了在无结构化的格式里面添加内容的能力,从而能扩展现有的模式。CQL 还提供了改变列的类型的能力,以支持 JSON 格式的文本的存储。因此,描述 Cassandra 当前状态的最佳方式可能是它支持灵活的模式。高性能(High Performance)Cassandra 在设计之初就特别考虑了要充分利用多处理器和多核计算机的性能,并考虑在分布于多个数据中心的大量这类服务器上运行。它可以一致而且无缝地扩展到数百台机器,存储数 TB 的数据。Cassandra 已经显示出了高负载下的良好表现,在一个非常普通的工作站上,Cassandra 也可以提供非常高的写吞吐量。而如果你增加更多的服务器,你还可以继续保持 Cassandra 所有的特性而无需牺牲性能。

封神 2019-12-02 02:00:50 0 浏览量 回答数 0

问题

java存储日志到mongodb问题

落地花开啦 2019-12-01 19:47:13 1359 浏览量 回答数 1

回答

我可以简单回答下这个问题。以前搞数据分析,数据也往往没有这么多(为什么没有这么多,广泛讲原因是因为存储的成本太大,计算能力又不足或者说不知道存下来有啥用),一般就是用数据库,或者一些数据仓库(规模还是比较小的 一般也就1-2T)。当时的数据库可是非常贵的,oracle一般运行在专有的硬件上,一般就是小型机了;当然后面慢慢发展了mysql可以跑在mysql上。数据越来越多,就有后来很多方案:1、oracle rac为代表一类共享存储的,一般需要专有的硬件。2、MPP,以Greenplum为代表,可以再pc上面跑,也有一些在专有的服务器上。 但是MPP在场景下确实取得了很高的性能,但是稳定性、扩展性还是有一定的限制的。 机器挂了一般也服务是有一定的影响的3、后来就是hadoop了,开始就设计在廉价的PC机器上,机器挂了,服务毫无影响。总结起来讲,也就是阿里巴巴带头的去IOE的运动了,因为大家都感觉以前的贵,还不能解决问题。IBM是服务器提供商,Oracle是数据库软件提供商,EMC则是存储设备提供商,三者构成了一个从软件到硬件的企业数据库系统。具体来说,阿里巴巴的“去IOE”运动就是用成本更加低廉的软件——MYSQL替代Oracle,使用PC Server替代EMC2、IBM小型机等设备。具体到啥价位,这个具体我还没有对比过。

封神 2019-12-02 02:09:30 0 浏览量 回答数 0

问题

postgresql 的表设计问题和一些困惑

小旋风柴进 2019-12-01 20:15:49 1438 浏览量 回答数 1

回答

引用来自“AiryLinus”的评论 1. 装 PHP 的时候记得装 PDO 扩展和 PDO_PGSQL 扩展,在安装  drupal, wordpress, phpbb 的时候选择使用 PDO_PGSQL 驱动。 2. 单独装 phppgadmin 就下载 php 代码包,自己新建 nginx 虚拟主机或者放到 web 根目录下面的某个子目录。 多谢6楼,终于得到一个答案! 同时多谢大家的捧场和建议,这次本人就要钻牛角尖,所以决定 postgresql 一条路走到黑了 ^^; 另外,我一边作环境一边把过程记录下来,我觉得对本身是大有益处的。或者过后在把整理出来的内容发给大家,希望对同道们有些帮助 ###### PHP+MySQL是黄金搭档,不喜欢Oracle,你可以用MariaDB或者Percona Server。 另外WordPress默认只支持MySQL数据库,还有国内很多PHP程序也都使用MySQL的,比如Discuz!  编译过PHP你就知道,PHP现在都是在内置MySQL数据库驱动mysqlnd,数据库连接和操作性能更好,另外还针对MySQL开发了mysqli扩展,提供一系列MySQL操作函数,从phpMyAdmin也可以看到PHP对MySQL的控制能力。另外MySQL管理程序HeidiSQL、MySQL-Front、MySQL Workbench都很不错,不输于PGAdmin3。 ######用nativecat吧,如果没安装桌面的话,安装 PGAdmin3干嘛,既然在虚拟机,可以在物理机安装PGAdmin3或者nativecat,ssh登录啊######哦,原来是劝我改行啊! 不过暂时还不想改呀... ###### PHP除了MySQL外,对其他数据库支持都不好。 这里说的不好,指得一个是数据库扩展的功能和性能上的跟进(比如PHP针对MySQL驱动做了特殊优化,对其他数据库则没有),其他数据库在PHP里都是二等公民;其次是PHP不支持连接池,对Pg、Oracle等进程型数据库来说是不能接受的;最后,也是最重要的,社区支持。你几乎找不到PHP和其他数据库配合使用的代码和项目、讨论等,比如你要找JAVA和Oracle,MySQL,H2,Sqlite等搭配,.NET和MSSQL,MySQL等搭配的文章,烂大街,但你找PHP,只能找到PHP+MySQL的文章或软件。遇到问题基本也是孤军奋战。 所以说,虽然理论上PHP支持各种数据库,但现实是,PHP只能搭配MySQL。 说完PHP,再说PG。PG在日本和对日外包中用的多,国内很少很少。 ######如果不允许盗版,PG就会多起来的了, MySQL有它水土不服的领域。######PHP内置SQLite3数据库和MySQL数据库驱动,当然连接其他数据库也完全可以,使用PDO也很方便:http://us.php.net/manual/zh/refs.database.php###### 果断 MySQL,还用说吗?! 你想学 php,就专注在上面,不要搞七搞八的。 ###### 1. 装 PHP 的时候记得装 PDO 扩展和 PDO_PGSQL 扩展,在安装 drupal, wordpress, phpbb 的时候选择使用 PDO_PGSQL 驱动。 2. 单独装 phppgadmin 就下载 php 代码包,自己新建 nginx 虚拟主机或者放到 web 根目录下面的某个子目录。 ######支持楼主######呵呵,推荐mysql这种垃圾的也不知道是什么心理

kun坤 2020-06-04 11:20:25 0 浏览量 回答数 0

回答

阿里云不是有方案吗,针对中小型电商平台什么的,,大型游戏,XXX平台什么的,找找 还有,其实在阿里云上做站,存储的成本占比蛮大的,RDS,图片都是存储后端,网站可以视为前端,这二者应分开,负重担的初期是后端,流量大了才慢慢前后端都要兼顾,为了扩展起见,我的建议是不要直接买RDS或OSS,可以统统买成ECS: 图片和数据可以都用或共用一台或几台ECS,一定要买那种IO优化的,内存稍微大点,不大也没关系可以后期扩展。注意,带宽买成内网或按量,公网IP不需要。 因为接下来买放网站用的ECS才需要公网环境,对接上面提到的后端存储可以用内网,内网流量免费。网站ECS带宽设一个看你需求,后期可以慢慢扩展嘛 把握了在阿里云上做站,就是处理前后端的成本,,其它就看你的决策了。

minlearn2015 2019-12-02 00:15:25 0 浏览量 回答数 0

问题

ios关于下拉刷新问题:报错

kun坤 2020-06-07 20:33:12 0 浏览量 回答数 1

问题

ECS自建数据库CPU过高,切换到RDS能解决问题吗?

williamoj 2019-12-01 20:22:06 1505 浏览量 回答数 2

回答

Java架构师,首先要是一个高级java攻城狮,熟练使用各种框架,并知道它们实现的原理。jvm虚拟机原理、调优,懂得jvm能让你写出性能更好的代码;池技术,什么对象池,连接池,线程池……    Java反射技术,写框架必备的技术,但是有严重的性能问题,替代方案java字节码技术;nio,没什么好说的,值得注意的是”直接内存”的特点,使用场景;java多线程同步异步;java各种集合对象的实现原理,了解这些可以让你在解决问题时选择合适的数据结构,高效的解决问题,比如hashmap的实现原理,好多五年以上经验的人都弄不清楚,还有为什扩容时有性能问题?不弄清楚这些原理,就写不出高效的代码,还会认为自己做的很对;总之一句话越基础的东西越重要,很多人认为自己会用它们写代码了,其实仅仅是知道如何调用api而已,离会用还差的远。    熟练使用各种数据结构和算法,数组、哈希、链表、排序树…,一句话要么是时间换空间要么是空间换时间,这里展开可以说一大堆,需要有一定的应用经验,用于解决各种性能或业务上的问题。    熟练使用linux操作系统,必备,没什么好说的 。    熟悉tcp协议,创建连接三次握手和断开连接四次握手的整个过程,不了解的话,无法对高并发网络应用做优化; 熟悉http协议,尤其是http头,我发现好多工作五年以上的都弄不清session和cookie的生命周期以及它们之间的关联。    系统集群、负载均衡、反向代理、动静分离,网站静态化 。    分布式存储系统nfs,fastdfs,tfs,Hadoop了解他们的优缺点,适用场景 。    分布式缓存技术memcached,redis,提高系统性能必备,一句话,把硬盘上的内容放到内存里来提速,顺便提个算法一致性hash 。    工具nginx必备技能超级好用,高性能,基本不会挂掉的服务器,功能多多,解决各种问题。    数据库的设计能力,mysql必备,最基础的数据库工具,免费好用,对它基本的参数优化,慢查询日志分析,主从复制的配置,至少要成为半个mysql dba。其他nosql数据库如mongodb。    还有队列中间件。如消息推送,可以先把消息写入数据库,推送放队列服务器上,由推送服务器去队列获取处理,这样就可以将消息放数据库和队列里后直接给用户反馈,推送过程则由推送服务器和队列服务器完成,好处异步处理、缓解服务器压力,解藕系统。   以上纯粹是常用的技术,还有很多自己慢慢去摸索吧;因为要知道的东西很多,所以要成为一名合格的架构师,必须要有强大的自学能力,没有人会手把手的教给你所有的东西。    想成为架构师不是懂了一大堆技术就可以了,这些是解决问题的基础、是工具,不懂这些怎么去提解决方案呢?这是成为架构师的必要条件。    架构师要针对业务特点、系统的性能要求提出能解决问题成本最低的设计方案才合格,人家一个几百人用户的系统,访问量不大,数据量小,你给人家上集群、上分布式存储、上高端服务器,为了架构而架构,这是最扯淡的,架构师的作用就是第一满足业务需求,第二最低的硬件网络成本和技术维护成本。    架构师还要根据业务发展阶段,提前预见发展到下一个阶段系统架构的解决方案,并且设计当前架构时将架构的升级扩展考虑进去,做到易于升级;否则等系统瓶颈来了,出问题了再去出方案,或现有架构无法扩展直接扔掉重做,或扩展麻烦问题一大堆,这会对企业造成损失。Java架构师学习路线图如:https://yq.aliyun.com/articles/225941?spm=5176.8091938.0.0.qyp0tC

zwt9000 2019-12-02 00:25:32 0 浏览量 回答数 0

回答

众所周知,git的性能很差,尤其是不适宜处理大量文件。不仅微软系的同学喷git,连开源先锋的fb都不看好git这玩意。facebook之前用的就是Git,后来由于性能问题改用mercurial了。经验结论是上了1G的文件量后,git就吭哧了。据微软的童鞋反映,微软的代码库有200多个G。比如visual studio什么的,编译后的安装包就有几个G,那源码几十个G很正常。git肯定是不堪大用的。 所以,git并不是一个好的文件备份管理软件,只适合代码这种数据量不大的场景。后来出现了一个专门针对大数据量的git扩展git LFS,侧面反映了git性能很差。

a123456678 2019-12-02 02:48:38 0 浏览量 回答数 0

回答

首先,我们先来聊聊各类数据模型。下列相关信息参考自Emil Eifrem的博文及NoSQL数据库说明。文档类数据库传承:受Lotus Notes启发而来。数据模型:文档汇总,包括键-值汇总。实例: CouchDB, MongoDB优势: 数据建模自然、程序员易于上手、开发流程短、兼容网页模式、便于达成CRUD(即添加、查询、更新及删除的简称)。图形类数据库传承:来自 Euler 及图形理论。数据模型:节点及关系,二者结合能够保持键-值间的成对状态实例: AllegroGraph, InfoGrid, Neo4j优势:轻松玩转复杂的图形问题、处理速度快关系类数据库传承:源自 E. F. Codd在大型共享数据库中所提出的数据关系模型理论数据模型:以关系组为基础实例: VoltDB, Clustrix, MySQL优势:性能强大、联机事务处理系统扩展性好、支持SQL访问、视图直观、擅长处理交易关系、与程序员间的交互效果优异面向对象类数据库传承:源自图形数据库方面的研究成果数据模型: 对象实例: Objectivity, Gemstone优势:擅长处理复杂的对象模型、快速的键-值访问及键-功能访问并且兼具图形数据库的各类功能键-值存储传承: Amazon Dynamo中的paper概念及分布式hash表数据模型:对成对键-值的全局化汇总实例: Membase, Riak优势:尺寸掌控得当、擅长处理持续的小规模读写需求、速度快、程序员易于上手BigTable Clones传承自:谷歌BigTable中的paper概念数据模型:纵列群,即在某个表格模型中,每行在理论上至少可以有一套单独的纵列配置实例: HBase, Hypertable, Cassandra优势:尺寸掌控得当、擅长应对大规模写入负载、可用性高、支持多数据中心、支持映射简化数据结构类服务传承: 不明实例: Redis数据模型: 执行过程基于索引、列表、集合及字符串值优势:为数据库应用引入前所未有的新鲜血液网格类数据库传承:源自数据网格及元组空间研究数据模型:基于空间的构架实例: GigaSpaces, Coherence优势:优良的性能表现及上佳的交易处理扩展性我们该为自己的应用程序选择哪套方案?选择的关键在于重新思考我们的应用程序如何依据不同数据模型及不同产品进行有针对性的协同工作。即用正确的数据模型处理对应的现实任务、用正确的产品解决对应的现实问题。要探究哪类数据模型能够切实为我们的应用程序提供帮助,可以参考“到底NoSQL能在我们的工作中发挥什么作用?”一文。在这篇文章中,我试着将各种不同特性、不同功能的常用创建系统中的那些非常规的应用实例综合起来。将应用实例中的客观需求与我们的选择联系起来。这样大家就能够逆向分析出我们的基础架构中适合引入哪些产品。至于具体结论是NoSQL还是SQL,这已经不重要了。关注数据模型、产品特性以及自身需要。产品总是将各种不同的功能集中起来,因此我们很难单纯从某一类数据模型构成方式的角度直接找到最合用的那款。对功能及特性的需求存在优先级,只要对这种优先级具备较为清晰的了解,我们就能够做出最佳选择。如果我们的应用程序需要…复杂的交易:因为没人愿意承受数据丢失,或者大家更倾向于一套简单易用的交易编程模式,那么请考虑使用关系类或网格类数据库。例如:一套库存系统可能需要完整的ACID(即数据库事务执行四要素:原子性、一致性、隔离性及持久性)。顾客选中了一件产品却被告知没有库存了,这类情况显然容易引起麻烦。因为大多数时候,我们想要的并不是额外补偿、而只是选中的那件货品。若是以扩展性为优先,那么NoSQL或SQL都能应对自如。这种情况下我们需要关注那些支持向外扩展、分类处理、实时添加及移除设备、负载平衡、自动分类及整理并且容错率较高的系统。要求持续保有数据库写入功能,则需要较高的可用性。在这种情况下不妨关注BigTable类产品,其在一致性方面表现出众。如有大量的小规模持续读写要求,也就是说工作负载处于波动状态,可以关注文档类、键-值类或是那些提供快速内存访问功能的数据库。引入固态硬盘作为存储媒介也是不错的选择。以社交网络为实施重点的话,我们首先想到的就是图形类数据库;其次则是Riak这种关系类数据库。具备简单SQL功能的常驻内存式关系数据库基本上就可以满足小型数据集合的需求。Redis的集合及列表操作也能发挥作用。如果我们的应用程序需要…在访问模式及数据类型多种多样的情况下,文档类数据库比较值得考虑。这类数据库不仅灵活性好,性能表现也可圈可点。需要完备的脱机报告与大型数据集的话,首选产品是Hadoop,其次则是支持映射简化的其它产品。不过仅仅支持映射简化还不足以提供如Hadoop一样上佳的处理能力。如果业务跨越数个数据中心,Bigtable Clone及其它提供分布式选项的产品能够应对由地域距离引起的延迟现象,并具备较好的分区兼容性。要建立CRUD应用程序,首选文档类数据库。这类产品简化了从外部访问复杂数据的过程。需要内置搜索功能的话,推荐Riak。要对数据结构中的诸如列表、集合、队列及发布/订阅信息进行操作,Redis是不二之选。其具备的分布式锁定、覆盖式日志及其它各种功能都会在这类应用状态下大放异彩。将数据以便于处理的形式反馈给程序员(例如以JSON、HTTP、REST、Javascript这类形式),文档类数据库能够满足这类诉求,键-值类数据库效果次之。如果我们的应用程序需要…以直观视图的形式进行同步交易,并且具备实时数据反馈功能,VoltDB算得上一把好手。其数据汇总以及时间窗口化的表现都非常抢眼。若是需要企业级的支持及服务水平协议,我们需要着眼于特殊市场。Membase就是这样一个例子。要记录持续的数据流,却找不到必要的一致性保障?BigTable Clone交出了令人满意的答卷,因为其工作基于分布式文件系统,所以可以应对大量的写入操作。要让操作过程变得尽可能简单,答案一定在托管或平台即服务类方案之中。它们存在的目的正是处理这类要求。要向企业级客户做出推荐?不妨考虑关系类数据库,因为它们的长项就是具备解决繁杂关系问题的技术。如果需要利用动态方式建立对象之间的关系以使其具有动态特性,图形类数据库能帮上大忙。这类产品往往不需要特定的模式及模型,因此可以通过编程逐步建立。S3这类存储服务则是为支持大型媒体信息而生。相比之下NoSQL系统则往往无法处理大型二进制数据块,尽管MongoDB本身具备文件服务功能。如果我们的应用程序需要…有高效批量上传大量数据的需求?我们还是得找点有对应功能的产品。大多数产品都无法胜任,因为它们不支持批量操作。文档类数据库或是键-值类数据库能够利用流畅的模式化系统提供便捷的上传途径,因为这两类产品不仅支持可选区域、添加区域及删除区域,而且无需建立完整的模式迁移框架。要实现完整性限制,就得选择一款支持SQL DLL的产品,并在存储过程或是应用程序代码中加以运行。对于协同工作极为依赖的时候就要选择图形类数据库,因为这类产品支持在不同实体间的迅速切换。数据的移动距离较短且不必经过网络时,可以在预存程序中做出选择。预存程序在关系类、网格类、文档类甚至是键-值类数据库中都能找到。如果我们的应用程序需要…键-值存储体系擅长处理BLOB类数据的缓存及存储问题。缓存可以用于应对网页或复杂对象的存储,这种方案能够降低延迟、并且比起使用关系类数据库来说成本也较低。对于数据安全及工作状态要求较高的话可以尝试使用定制产品,并且在普遍的工作范畴(例如向上扩展、调整、分布式缓存、分区及反规范化等等)之外一定要为扩展性(或其它方面)准备解决方案。多样化的数据类型意味着我们的数据不能简单用表格来管理或是用纵列来划分,其复杂的结构及用户组成(也可能还有其它各种因素)只有文档类、键-值类以及Bigtable Clone这些数据库才能应付。上述各类数据库都具备极为灵活的数据类型处理能力。有时其它业务部门会需要进行快速关系查询,引入这种查询方式可以使我们不必为了偶尔的查看而重建一切信息。任何支持SQL的数据库都能实现这类查询。至于在云平台上运行并自动充分利用云平台的功能——这种美好的愿望目前还只能是愿望。如果我们的应用程序需要…支持辅助索引,以便通过不同的关键词查找数据,这要由关系类数据库及Cassandra推出的新辅助索引系统共同支持才能实现。创建一套处于不断增长中的数据集合(真正天文数量级的数据)然而访问量却并不大,那么Bigtable Clone是最佳选择,因为它会将数据妥善安排在分布式文件系统当中。需要整合其它类型的服务并确保数据库提供延后写入同步功能?那最好的实现方式是捕捉数据库的各种变化并将其反馈到其它系统中以保障运作的一致性。通过容错性检查了解系统对供电中断、隔离及其它故障情况的适应程度。若是当前的某项技术尚无人问津、自己却感觉大有潜力可挖,不妨在这条路上坚持走下去。这种情况有时会带来意料之外的美好前景。尝试在移动平台上工作并关注CouchDB及移动版couchbase。哪种方案更好?25%的状态改善尚不足以让我们下决心选择NoSQL。选择标准是否恰当取决于实际情况。这类标准对你的方案有指导意义吗?如果你的公司尚处于起步阶段,并且需要尽快推出自己的产品,这时不要再犹豫不决了。无论是SQL还是NoSQL都可以作为参考。

a123456678 2019-12-02 03:00:14 0 浏览量 回答数 0

回答

回 1楼51干警网的帖子 请问下,怎么查找最新的挂载状态?用什么命令? ------------------------- 回 3楼51干警网的帖子 可能是我写错了,我想查看数据盘写入后的那个状态。 /etc/fstab 之前有重复的,现在没有处理之前,我都不敢操作下去了。 ------------------------- 回 5楼51干警网的帖子 今天删除好了。我原来的系统是7.X,用不了Wdcp。刚才更换了系统,数据盘挂载已经不对了,怎么操作?谢谢 ------------------------- 回 7楼51干警网的帖子 你是说,现在我的系统和数据盘都是还原了对吧? ------------------------- 回 9楼51干警网的帖子 现在我只做了两个分区,一个主的,一个是扩展的(虽然不知道有什么用,留一点)。那么,你说回归到初始化,我原来分好,格式好的分区,是不是重新挂载就可以了? 我看了很多帖子说,在云服务器自建的数据库有时候会坏,就你做网站的经验,是不是要用到RDS? ------------------------- 回 11楼51干警网的帖子 我也想做个论坛,哈哈。 回到正题:我把原来的分区删除了,系统换成CentOS6.5,在再次分区主区时,提示说分区“1”无效?该怎么处理。 ------------------------- 回 13楼51干警网的帖子 另外买的数据盘,有必要做扩展分区不?还是直接分区成一个主区就可以了? ------------------------- 回 16楼鬼才神兵的帖子 多谢,昨天我重新初始化弄好的。 问下两个问题: 1、平时创建扩展分区是用来做什么的? 2、我想用服务器来做多个网站,那么我“mount -a”挂载的数据盘,是不是要改挂载目录?如果要创建,怎么操作?(我用的是WdCP) ------------------------- 回 13楼51干警网的帖子 我今天弄了WdCP,原来挂载的数据盘是“mount -a”完成的,用不用改? 如果改,要怎么操作? ------------------------- 回 19楼51干警网的帖子 我就是按照官方教程来弄的,里面就只有挂载新分区“mount -a”。后来我才安装WdCP,我又看到其他的教程说做网站要把数据盘挂载在“www"目录下,还有一说是”home",所以想问一下,之前那样挂载的数据盘有没有影响? ------------------------- 回 21楼51干警网的帖子 我不会改,看来只能提交工单了。 ------------------------- 回 23楼(51干警网) 的帖子 我按照官方教程挂载了数据盘,然后在服务器里面安装了wdcp。 我的问题是:数据盘挂载在mnt目录,而wdcp创建站点根目录是www,是不是要改? ------------------------- 回 25楼(51干警网) 的帖子 原来如此,现在我已经修改好了。还要看昨天安装了的wdcp,FTP帐户会不会正常了。

魔君 2019-12-02 02:23:28 0 浏览量 回答数 0

回答

在社区中也有很多公司使用的Redis做的延时消息,在Redis中有一个数据结构是Zest,也就是有序集合,他可以实现类似我们的优先级队列的功能,同样的他也是堆结构,所以插入算法复杂度依然是O(logN),但是由于Redis足够快,所以这一块可以忽略。(这块没有做对比的基准测试,只是猜测)。有同学会问,redis不是纯内存的k,v吗,同样的应该也会受到内存限制啊,为什么还会选择他呢? 其实在这个场景中,Redis是很容易水平扩展的当一个Redis内存不够,这里可以使用两个甚至更多,来满足我们的需要,redis延时消息的原理图(原图出自:https://www.cnblogs.com/lylife/p/7881950.html)如下: Delayed Messages Pool: Redis Hash结构,key为消息ID,value为具体的message,当然这里也可以用磁盘或者数据库代替。这里主要存储我们所有消息的内容。 Delayed Queue: ZSET数据结构,value为消息ID,score为执行时间,这里Delayed Queue可以水平扩展从而增加我们可以支持的数据量。 Worker Thread Pool: 其中有多个Worker,可以部署在多个机器上形成一个集群,集群中的所有Worker通过ZK进行协调,分配Delayed Queue。

kun坤 2020-04-23 20:05:49 0 浏览量 回答数 0

问题

dubbo 的 spi 思想是什么?【Java问答学堂】50期

剑曼红尘 2020-07-07 09:48:29 25 浏览量 回答数 1

回答

  JFinalModel提供了put方法,当初是为了方便开发者在前端显示非数据库字段数据,从数据库查到List<YourModel>以后,可以先在后端循环对每个modelput点需要在前端显示的数据。   如果考虑再加个put方法,那么肯定不能叫putAttrs,因为attrs是属性,是与数据库字段对应的,只能考虑加个putMap或者什么别的有不需要和table对应的put(String,Object)方法啊,不过你是想一次设置多个吧,这个还真没有。你可以自己继承扩展一下 这种需求如果多的话,还是在框架层来封装吧,自己再整一层只是为了做一些小的修改,代码不太好看    CPI.getAttrs(Modelmodel)可以得到Mapattrs,然后attrs.putAll(map)就可以了。JFinal目前的设计是为了尽可能避免开发者犯错,如果想打破规则也是可以的,用CPI就可以。   不过从API的一致性来说,既然有了 model.put(...)那么添加一个model.putMap(...)可以考虑 其实我不是太支持向model里面放非数据库字段,我觉得尽量去遵循语义,model就是一个table的映射。 一般有这样的需求我都用record.最后落实到入库肯定是用model。。这样的话把无关的字段放进去model没意义,如果是相当vo来使用的话,那么record可以满足的 引用来自“绝望的八皮”的答案 其实我不是太支持向model里面放非数据库字段,我觉得尽量去遵循语义,model就是一个table的映射。 一般有这样的需求我都用record. ar模式的一个含义是: 每一个数据库表对应创建一个类.类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field 我是比较坚持这个原则的。避免语义被异化。 当然同时我也不是很学术的,觉得怎么好用就怎么来吧。

爱吃鱼的程序员 2020-06-22 17:38:52 0 浏览量 回答数 0

问题

全球级的分布式数据库 Google Spanner原理 热:报错

kun坤 2020-06-09 15:26:35 4 浏览量 回答数 1

回答

引用来自“李崇”的答案 分开两个类来处理。 Entity:和数据库中字段一一对应,比如你的员工和部门,是多对一关系, 所以员工类里面有一个deptId即可。如果是多对多关系那就建立一个中间表的类。 操作Entity中的字段就相当于操作数据库的字段。 VO:用来做显示,和界面上的元素一一对应。 UserVO{   privateintid;     privateStringdeptId;        privateStringdeptName; } 差不多是这样,传入到Dao层的是Entity,传出的是VO,通过关联查询的SQL语句为VO赋值,传递回界面。 你那种做法可能是用惯了hibernate的做法,不知道能不能理解。 明白了!嗯,这样扩展性大大提高了!多谢啊! 最好的设计--去掉pojo和DAO 现在可能无法理解 慢慢就理解了您的意思是不要考虑这些东西,直接考虑代码与数据库的关系是吗?拼接SQL,然后直接使用DBHelper执行?如果使用pojo与Dao,就要使用Hibernate是吗?最纯粹的才是最简便的,可惜我的场景就是这样的,头疼! 分开两个类来处理。 Entity:和数据库中字段一一对应,比如你的员工和部门,是多对一关系, 所以员工类里面有一个deptId即可。如果是多对多关系那就建立一个中间表的类。 操作Entity中的字段就相当于操作数据库的字段。 VO:用来做显示,和界面上的元素一一对应。 UserVO{   privateintid;     privateStringdeptId;        privateStringdeptName; } 差不多是这样,传入到Dao层的是Entity,传出的是VO,通过关联查询的SQL语句为VO赋值,传递回界面。 你那种做法可能是用惯了hibernate的做法,不知道能不能理解。 谢谢你耐心的回答,我明白你的意思了,一个对应数据库,一个对应需求,不过我有个疑问。如果针对UserVO的业务比较复杂,也就是外键跨表字段比较多,是不是要在UserVO里面定义很多跨表的属性,有没有基于对象设计思想的解决方案啊!这样是不是扩展性有所欠缺,VO与页面绑死了!不知我说的对否! 看了看楼主的设计,感觉挺合理的啊-。-有一个问题,不知楼主能否帮忙解答 为什么 executeUpdate(StringBuildersql,Object...params)没有传入Connection对象,而 executeQuery(Connectionconn,StringBuildersql,Object...params)传入了呢? 这样设计的道理是什么? 这个很简单,1对多在多的一方设置一个外键字段,为了实现实体查询方便、添加一个List临时字段,查询的时候多的可以查询放入该List即可同理其他1对1多对多也一样,hibernate也是这样思想的嗯,你说的思路我明白,如果这样做,就要自己写一个类似Hibernate的懒加载机制,不然会死循环的 引用来自“Timco”的答案 看了看楼主的设计,感觉挺合理的啊-。-有一个问题,不知楼主能否帮忙解答 为什么 executeUpdate(StringBuildersql,Object...params)没有传入Connection对象,而 executeQuery(Connectionconn,StringBuildersql,Object...params)传入了呢? 这样设计的道理是什么? 明白,我现在数据库的dao设计都是采用了楼主这样的设计。不过executeUpdate也传人了,因为这样可以在dao层同一connection进行事物控制,禁用autoCommit,等事物完成再提交。是啊,你说的很对,所以后续扩展了这个DBHelper类,重载了几个方法,也加入了执行事务的方法,执行存储过程的方法等等。

爱吃鱼的程序员 2020-06-22 14:20:35 0 浏览量 回答数 0

回答

回1楼服务器之家的帖子 你没理解我的问题。 不考虑什么共享的问题,排开这些干扰因素, 仅仅从一台8核8G与两台4核4G的机器,哪个跑起来性能更优?还是两者的性能一样? 我觉得后者的性能更优 ------------------------- 回4楼南极的风的帖子 如果是分布式的,为什么两台要优?我很想听听你的理由。 如果你的应用需要的线程比较多,为什么8核要优,8核分成两个4核,有什么不同吗? ------------------------- 回6楼南极的风的帖子 分布式的话,多台的扩展性和安全性当然比一台好。 我只是仅仅想从性能方面考虑, 是不是多台性能,比一台性能要高那么点点呢 ------------------------- 回8楼南极的风的帖子 恩。你说的有道理。 但如果应用结合SLB,偏向分布式, 那2台4核和一台8核相比较呢? ------------------------- Re一台8核8G与两台4核4G的云主机性能对比 单从性能上来将,我觉得两台肯定优于一台。比如IO ------------------------- 回15楼南极的风的帖子 在分布式应用中,多台的IO肯定是多于一台的。 利用虚拟机的磁盘来做IO密集型应用,为什么不适合呢? 我打个比方,假如我有个项目,上传文件的应用,都是集中在一台云主机上,用ftp。这不用怀疑,这台云主机肯定出现IO瓶颈。 在不考虑用OSS的情况下,我想解决IO问题,必须借助分布式部署。 假如我现在的站点是用slb部署的两台web应用,如果我将ftp上传功能,从一台云主机中抽取出来,用http上传,部署到两台web应用的云主机中。这样,两台云主机的IO肯定会比一台强。你说呢? ------------------------- 回17楼南极的风的帖子 我都不理解你是怎么想的。 总共三台云主机,两台web,还有一台云主机专门用来做ftp,slb用来做负载。请求到达任意一台web,我直接内网连接那台ftp,将数据存储到ftp中,有何不可?或者直接用外网IP,客户端直接将文件上传到ftp,不经过web服务器中转,也可以。但这里ftp的这台云主机,在后面必然存在IO瓶颈。那就换成刚才我的那种方案。 总共三台云主机,现在我把这台ftp去除,将ftp也变成web,我用三台web,取消ftp上传,我改为http上传。http请求来了,我将文件存储在任意一台web中。三台云主机的文件同步,用nfs就行了。这种方案,不用想,当然要比第一种方案的IO要好。这也是我之前说的那个问题,两台的IO肯定比一台好,也就是这个原因。 ------------------------- 回17楼南极的风的帖子 利用多台虚拟机提高IO的策略,这是个分布式应用的好办法,并不是行不通啊,很多客户也是这么在用。 ------------------------- 回20楼南极的风的帖子 用nfs只是应付小规模,到后面,就不会用nfs,直接结合oss来了。 我只是借用这个例子,说明一下两台比一台的IO要好这个观点而已 ------------------------- 回22楼南极的风的帖子 我已经强调了,不想再重复说明 “用nfs只是应付小规模,到后面,就不会用nfs,直接结合oss来了。” 意思已经说明了,几台服务器的数据同步,一般用nfs就能满足需求。 大规模的应用,根本不会采用服务器之间还数据同步,这样扩展性,及数据同步等等都会给架构带来重大问题,也没人这么做。 一般都是用分布式文件系统解决,在云端,就用云存储oss来解决。这样就不存在还解决什么数据同步的问题,扩展性也不是问题了。

乔锐杰 2019-12-02 02:40:19 0 浏览量 回答数 0

问题

我应该为我的Web应用程序使用什么Python框架/数据库

祖安文状元 2020-02-21 17:35:07 3 浏览量 回答数 1

问题

ODPS的使用性能比RDS的差,什么原因?

福利达人 2019-12-01 21:27:11 3799 浏览量 回答数 2

问题

一道逻辑题:我拿走了哪个数:报错

kun坤 2020-06-14 13:55:46 0 浏览量 回答数 0

问题

我们为什么需要HBase?

pandacats 2019-12-23 10:02:07 2 浏览量 回答数 1

问题

RDS使用前的一些疑问,求帮助

一尘 2019-12-01 21:46:28 8733 浏览量 回答数 6

回答

Re:Re求扫盲,为什么VPS可以无缝扩展硬盘,云主机不行? 引用第3楼finereason于2013-12-27 00:31发表的 Re求扫盲,为什么VPS可以无缝扩展硬盘,云主机不行? : 这个应该是VPS更虚吧,VPS硬盘完全是虚拟出来的,每个VPS在硬盘上可以说就是一个文件目录,当然里边的文件是通过各种技术实现的,当VPS数据增大时这个文件目录占用空间也会增大,但不是VPS设置100G硬盘,实际在“宿主机”就直接分100G,云计算的硬盘无法直接扩展可不可以理解为像我们自己用的电脑C D E分区分好后,就没法随意改变分区大小一样呢,真正基于硬件呢。求解 OPENVZ技术符合你这种理解,所有其他的虚拟技术,比如常见的XEN(阿里云所用),KVM,开出来多少硬盘就是多少硬盘,即使空闲也无法给其他VPS使用。 对于你举例的C D E盘的例子,这些可以调整容量。 除了一块物理硬盘的容量无法调整外,任何逻辑上的分割,包括分区,LVM逻辑卷,都有办法调整容量,所以,阿里云不能调整硬盘大小,绝对不是单纯技术上的无法实现。

云代维 2019-12-02 02:30:29 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板