扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
像MongoDB, Cassandra, HBase, DynamoDB, 和
创新互联建站专业为企业提供青阳网站建设、青阳做网站、青阳网站设计、青阳网站制作等企业网站建设、网页设计与制作、青阳企业网站模板建站服务,10余年青阳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
Riak这些NoSQL缺乏传统的原子事务机制,所谓原子事务机制是可以保证一系列写操作要么全部完成,要么全部不会完成,不会发生只完成一系列中一两个
写操作;因为数据库不提供这种事务机制支持,开发者需要自己编写代码来确保一系列写操作的事务机制,比较复杂和测试。
这些NoSQL数据库不提供事务机制原因在于其分布式特点,一系列写操作中访问的数据可能位于不同的分区服务器,这样的事务就变成分布式事务,在分
布式事务中实现原子性需要彼此协调,而协调是耗费时间的,每台机器在一个大事务过程中必须依次确认,这就需要一种协议确保一个事务中没有任何一台机器写操
作失败。
package basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBC {
public void findAll() {
try {
// 获得数据库驱动
//由于长时间不写,驱动名和URL都忘记了,不知道对不对,你应该知道的,自己改一下的哈
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
// 创建连接
Connection conn = DriverManager.getConnection(url, userName,
password);
// 新建发送sql语句的对象
Statement st = conn.createStatement();
// 执行sql
String sql = "select * from users";
ResultSet rs = st.executeQuery(sql);
// 处理结果
while(rs.next()){
//这个地方就是给你的封装类属性赋值
System.out.println("UserName:"+rs.getString(0));
}
// 关闭连接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void delete(){
try {
//步骤还是那六个步骤,前边的两步是一样的
String url = "jdbc:oracle:thin:@localhost:1521:XE";
String userName = "system";
String password = "system";
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(url,userName,password);
//这里的发送sql语句的对象是PreparedStatement,成为预处理sql对象,因为按条件删除是需要不定值的
String sql = "delete from users where id = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setInt(0, 1);
int row = ps.executeUpdate();
if(row!=0){
System.out.println("删除成功!");
}
// 关闭连接
rs.close();
st.close();
conn.close();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
NoSQL不像传统关系型库那样有统一的标准,也不具有普适性。所以要根据应用和数据的存取特征来选择适合的NoSQL。如果以前没有接触过NoSQL,MongoDB是一个比较好的选择,他支持的所以和查询能力是所有NoSQL中最强大的,缺点是索引的成本和文档大小限制。如果是使用Hadoop大数据分析,数据基本上不存在修改,只是插入和查询,并且需要配合Hadoop的MR任务,HBase会是很好的选择。如果要求有很强的扩展能力,高并发读写和维护方便,Casaandra则是不错的选择。当然除了上面三个流行的NoSQL,还有很多优秀的NoSQL数据库,而且他们都有各自擅长领域,所以需要了解你们产品自身的特点然后分析选择哪种才是最适合的,往往在大型系统中不是单一的数据库,而是使用多种数据库组合。
何玩转 NoSQL数据库作者:IT专家中国 Weather公司CIO Bryson Koehler整理MongoDBRiakCassandra等NoSQL数据库特性指其重要特性NoSQL限制住 Weather公司致力于气报告气预报业务其并缺乏数据缺乏数据管理工具需要三种同NoSQL数据库 近我向Weather 公司CIO Bryson Koehler提疑问除公司CIO,Bryson Koehler其业务单元孵化者,包括Weather ChannelWeatherFXWeather UndergroundIntellicast等Weather公司每获取处理着约二0万亿字节数据外提供前全球气状况并航空公司紧中国服务货运商公用事业保险及线气中国站气应用程序用户提供气预报服务每需求增加数十亿气数据请求并且预期响应间要一0毫秒左右 RiakWeather 公司台NoSQL数据库服务于公司事务性存储公用中国络(SUN)数据获取平台运行亚马逊中国络服务(AWS)用区域并每一5频率捕获超二0亿气象数据信息所Riak具明确处理规模该公司使用Cassandra及新近添加MongoDB数据库Weather中国 IOSAndroid移应用程序服务 Weather 公司使用同产品Koehler解释说同工具同优势 Cassandra服务于Weather 公司及全球消费者使用第三气应用API数据:我数据发平台每秒处理数十万事务我发现Cassandra用于全球发数据棒解决案并且[数据库]读取面体现高用性 本质全球各消费者所使用数据服务包括Weather 公司第三气应用程序 MongoDB提供Weather中国中国站移应用程序间层缓存功能:离我核API我没全部Weather中国内容所MongoDB容器发站Weather中国及AndroidiOS移应用程序服务Mongo处些处基于其内建JSON格式及灵性 Riak用于消费气象数据观测包括自世界各图片视频等:我喜Riak其优秀数据摄取能力且种全球布式式实现于全球布式平台获取数据入站式数据库真靠选择 我曾听说DatastaxBashoCouchbase高管贬低MongoDB扩展性MongoDB指向规模部署Facebook超二00万台移设备应用程序提供支持eHarmony公司MongDB每处理着数十亿潜比赛预约据Koehle所述MongoDBWeather中国Weather中国移应用程序处理着每十亿交易毫疑问通配置部署Mongo处理批量交易数据 尽管Koehler承认乐于看MongoDB继续使全球集群位置[功能]更加缝化且易于使用 些属于全球性布式集群复制负载平衡CassandraRiak众所周知功能 规模讨论角度看少公司达Weather公司经营规模易于发架构灵性JSON数据处理使MongoDB世界流行NoSQL数据库微软IBM都进行MongoDB模仿微软Azure DocumentDBIBM CloudantCassandraRiak Weather公司三NoSQL标准降低至两程巩固Koehler说公司没准备做 由于我构造由许同数据解决案组中国状结构我目前环境已于复杂说我希望给团队些自由空间让我解所选择利弊看些整合 候迁移件难事关于NoSQL数据库重要事情困其 Koehler说架构编码确数据库迁移另并难随着模式自由及数据转存技术发展论前者key-value存储或其形式转储数据都十容易 特定产品进程自定义编码复杂存储程已经复返Koehler说关于结构化编码确需要考虑?做避免特殊供应商提供工具功能能让身陷其举亚马逊中国络服务(AWS)消息服务例 必让服务云运行解释说部署自RabbitMQ环境陷于其所原先部署AWS 应用程序转部署谷歌计算云服务论数据平台存储环境或云计算环境都要别让自局限仅由供应商提供范围空间内 转
1 . nosql不用设计,增加属性后就增加了一个字段。只要关系自己的业务对象需要怎么设计就好。
一般将NoSQL数据库分为四大类:键值(Key-Value)存储数据库、列存储数据库、文档型数据库和图形(Graph)数据库。它们的数据模型、优缺点、典型应用场景。
键值(Key-Value)存储数据库Key指向Value的键值对,通常用hash表来实现查找速度快数据无结构化(通常只被当作字符串或者二进制数据)内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等。
列存储数据库,以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限分布式的文件系统。
文档型数据库,Key-Value对应的键值对,Value为结构化数据,数据结构要求不严格,表结构可变(不需要像关系型数据库一样需预先定义表结构),查询性能不高,而且缺乏统一的查询语法,Web应用。
图形(Graph)数据库,图结构,利用图结构相关算法(如最短路径寻址,N度关系查找等),很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案,社交网络,推荐系统等。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流