收藏本站

人工智能培训机构,上海涛德,算法工程师,数据科学家高端培训机构-上海涛德

涛德数据科学培训原创:Oracle Nosql入门第四讲:创建和插入Oracle Nosql 记录 ...

2013-4-16 21:06| 查看: 3522| 评论: 0

摘要: 在Oracle NoSQl的第一讲我们有提到 Nosql与RDBMS数据库最大的区别主要它的数据是以 key-value pairs(键-值对)的形式存在。key是用于定位搜索,value 用于存放key对应的数据。那么如何在NoSql 中创建 key-value pai ...

Oracle NoSQl的第一讲我们有提到 NosqlRDBMS数据库最大的区别主要它的数据是以 key-value pairs(键-值对)的形式存在。key是用于定位搜索,value 用于存放key对应的数据。那么如何在NoSql 中创建 key-value pairs(键-值对)了,本章在Databi.cn 的第三讲基础上继续讲述Oracle Nosql 的开发接口,创建Nosql key-value pairs Record

1 首先我们需要创建的是record中的KeyMajor部分也叫Major-Key,如果Key 有相同的Major,那么这些有相同MajorKey以及它所对应的Value将会被Nosql放到相同的Partition。有点列式数据库的味道。只不过这个列就是Major部分。

为了实现这个功能我们先创建一个 String 类型的ArrayList

接着把需要插入Nosqlkey 放入到这个ArrayList

例如:

List majorPath = new ArrayList();

majorPath.add("sean");

majorPath.add("tang");

2 接着我们创建Key Minor部分(也叫Minor-key)。,如果你的一个record 有多个Minor key 那么可以向上面的Major Key 一样定义一个ArrayList来存放。如果Minor key 只有一个则用String 变量来存放也可以。

例如:我们定义了一个Minor-key info

String minorComponent;

minorComponent = "info";

3 接着我们需要利用Key class createKey 方法创建一个Record Key 对象名字叫做mykey

Key myKey = Key.createKey(majorPath,minorComponent);

4 然后我们用Key class createValue 方法 创建一个Value对象,名字叫myValue

例如:

List data = new ArrayList();

data.add("OU Principal Instructor ");

data.add("http://www.weibo.com/u/3236407900");

Value myValue = Value.createValue(data.getBytes());

到目前为止我们已经构建了一个完整的位于内存的record 。这个Record 包含:

Major-Key 2 sean tang

Minor-key 有一个 info

value为:

{

OU Principal Instructor http://www.weibo.com/u/3236407900

}

5 接下来我们要把这条记录插入到Nosql数据中

我们将调用一个叫kvstore handle 对数据做插入处理。kvstore handle的创建方法请查看Nosql第三讲的内容。

import java.util.ArrayList;

import oracle.kv.Key;

import oracle.kv.Value;

import oracle.kv

public class WriteRecord

{

//Create Handle

//Create Record

myStore.put(myKey,myValue);

}

说明:这个专题里我们用了一种简单方法完成了插入,现实中还要考虑异常处理。比如如果已经存在相同的keyNosql 数据库中等场景,Oracle也提供了多种插入方法,和异常处理方法需要大家查询联机文档。还有record还需要取出给用户读取,这就需要用到get() ,multiGet() 等多种方法和接口。限于篇幅我们就不在赘述。大致处理方式与本章写record数据类似。

<点击:上海涛德Oracle OCM认证及BI商业智能课程>|人工智能培训-上海涛德 ( 沪ICP备14006824号 )|网站地图   My title page contents

GMT+8, 2019-7-18 22:29 , Processed in 0.125339 second(s), 15 queries , Gzip On.

回顶部