未验证 提交 5be37524 编写于 作者: 葛亚芳 提交者: Gitee

master:database/database-mdds-guidelines.md:分布式数据服务指南优化,需同步翻译

Signed-off-by: N@ge-yafang <geyafang@huawei.com>
上级 892901d8
......@@ -8,19 +8,18 @@
## 接口说明
具体分布式数据相关功能接口请见[分布式数据管理](../reference/apis/js-apis-distributed-data.md)
OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种功能:
**表1** 分布式数据服务关键API功能介绍
| 功能分类 | 接口名称 | 描述 |
| -------------------------- | ------------------------------------------------------------ | ----------------------------------------------- |
| 分布式数据库创建。 | createKVManager(config:&nbsp;KVManagerConfig,&nbsp;callback:&nbsp;AsyncCallback&lt;KVManager&gt;):&nbsp;void<br/>createKVManager(config:&nbsp;KVManagerConfig):&nbsp;Promise&lt;KVManager> | 创建一个KVManager对象实例,用于管理数据库对象。 |
| 分布式数据库创建。 | getKVStore&lt;T&nbsp;extends&nbsp;KVStore&gt;(storeId:&nbsp;string,&nbsp;options:&nbsp;Options,&nbsp;callback:&nbsp;AsyncCallback&lt;T&gt;):&nbsp;void<br/>getKVStore&lt;T&nbsp;extends&nbsp;KVStore&gt;(storeId:&nbsp;string,&nbsp;options:&nbsp;Options):&nbsp;Promise&lt;T&gt; | 指定Options和storeId,创建并获取KVStore数据库。 |
| 分布式数据增、删、改、查。 | put(key:&nbsp;string,&nbsp;value:&nbsp;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;boolean,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void<br/>put(key:&nbsp;string,&nbsp;value:&nbsp;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;number&nbsp;\|&nbsp;boolean):&nbsp;Promise&lt;void> | 插入和更新数据。 |
| 分布式数据增、删、改、查。 | delete(key:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;void&gt;):&nbsp;void<br/>delete(key:&nbsp;string):&nbsp;Promise&lt;void> | 删除数据。 |
| 分布式数据增、删、改、查。 | get(key:&nbsp;string,&nbsp;callback:&nbsp;AsyncCallback&lt;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;boolean&nbsp;\|&nbsp;number&gt;):&nbsp;void<br/>get(key:&nbsp;string):&nbsp;Promise&lt;Uint8Array&nbsp;\|&nbsp;string&nbsp;\|&nbsp;boolean&nbsp;\|&nbsp;number> | 查询数据。 |
| 订阅分布式数据变化。 | on(event:&nbsp;'dataChange',&nbsp;type:&nbsp;SubscribeType,&nbsp;observer:&nbsp;Callback&lt;ChangeNotification&gt;):&nbsp;void<br/>on(event:&nbsp;'syncComplete',&nbsp;syncCallback:&nbsp;Callback&lt;Array&lt;[string,&nbsp;number]&gt;&gt;):&nbsp;void | 订阅数据库中数据的变化。 |
| 分布式数据同步。 | sync(deviceIdList:&nbsp;string[],&nbsp;mode:&nbsp;SyncMode,&nbsp;allowedDelayMs?:&nbsp;number):&nbsp;void | 在手动模式下,触发数据库同步。 |
| 接口名称 | 描述 |
| ------------------------------------------------------------ | ----------------------------------------------- |
| createKVManager(config:KVManagerConfig,callback:AsyncCallback&lt;KVManager&gt;):void<br/>createKVManager(config:KVManagerConfig):Promise&lt;KVManager> | 创建一个`KVManager`对象实例,用于管理数据库对象。 |
| getKVStore&lt;TextendsKVStore&gt;(storeId:string,options:Options,callback:AsyncCallback&lt;T&gt;):void<br/>getKVStore&lt;TextendsKVStore&gt;(storeId:string,options:Options):Promise&lt;T&gt; | 指定`Options``storeId`,创建并获取`KVStore`数据库。 |
| put(key:string,value:Uint8Array\|string\|number\|boolean,callback:AsyncCallback&lt;void&gt;):void<br/>put(key:string,value:Uint8Array\|string\|number\|boolean):Promise&lt;void> | 插入和更新数据。 |
| delete(key:string,callback:AsyncCallback&lt;void&gt;):void<br/>delete(key:string):Promise&lt;void> | 删除数据。 |
| get(key:string,callback:AsyncCallback&lt;Uint8Array\|string\|boolean\|number&gt;):void<br/>get(key:string):Promise&lt;Uint8Array\|string\|boolean\|number> | 查询数据。 |
| on(event:'dataChange',type:SubscribeType,observer:Callback&lt;ChangeNotification&gt;):void<br/>on(event:'syncComplete',syncCallback:Callback&lt;Array&lt;[string,number]&gt;&gt;):void | 订阅数据库中数据的变化。 |
| sync(deviceIdList:string[],mode:SyncMode,allowedDelayMs?:number):void | 在手动模式下,触发数据库同步。 |
......@@ -35,7 +34,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
```
2. 根据配置构造分布式数据库管理类实例。
1. 根据应用上下文创建KvManagerConfig对象。
1. 根据应用上下文创建`kvManagerConfig`对象。
2. 创建分布式数据库管理器实例。
以下为创建分布式数据库管理器的代码示例:
......@@ -64,7 +63,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
3. 获取/创建分布式数据库。
1. 声明需要创建的分布式数据库ID描述。
2. 创建分布式数据库,建议关闭自动同步功能(autoSync:false),需要同步时主动调用sync接口。
2. 创建分布式数据库,建议关闭自动同步功能`autoSync:false`),需要同步时主动调用`sync`接口。
以下为创建分布式数据库的代码示例:
```js
......@@ -91,9 +90,10 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
}
```
> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
> 组网设备间同步数据的场景,建议在应用启动时打开分布式数据库,获取数据库的句柄。在该句柄(如上例中的kvStore)的生命周期内无需重复创建数据库,可直接使用句柄对数据库进行数据的插入等操作。
> **说明:**
>
> 组网设备间同步数据的场景,建议在应用启动时打开分布式数据库,获取数据库的句柄。在该句柄(如示例中的`kvStore`)的生命周期内无需重复创建数据库,可直接使用句柄对数据库进行数据的插入等操作。
4. 订阅分布式数据变化。
以下为订阅单版本分布式数据库数据变化通知的代码示例:
```js
......@@ -103,7 +103,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
```
5. 将数据写入分布式数据库。
1. 构造需要写入分布式数据库的Key(键)和Value(值)
1. 构造需要写入分布式数据库的`Key`(键)和`Value`(值)
2. 将键值数据写入分布式数据库。
以下为将字符串类型键值数据写入分布式数据库的代码示例:
......@@ -125,7 +125,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
```
6. 查询分布式数据库数据。
1. 构造需要从单版本分布式数据库中查询的Key(键)
1. 构造需要从单版本分布式数据库中查询的`Key`(键)
2. 从单版本分布式数据库中获取数据。
以下为从分布式数据库中查询字符串类型数据的代码示例:
......@@ -149,9 +149,13 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
```
7. 同步数据到其他设备。
1.选择同一组网环境下的设备以及同步模式,进行数据同步。
选择同一组网环境下的设备以及同步模式,进行数据同步。
以下为单版本分布式数据库进行数据同步的代码示例,其中deviceIds可由deviceManager调用getTrustedDeviceListSync()方法得到,1000表示最大延迟时间为1000ms:
> **说明**:
>
> 其中`deviceManager`模块的接口均为系统接口。
以下为单版本分布式数据库进行数据同步的代码示例:
```js
import deviceManager from '@ohos.distributedHardware.deviceManager';
......@@ -160,7 +164,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
deviceManager.createDeviceManager("bundleName", (err, value) => {
if (!err) {
devManager = value;
// get deviceIds
// deviceIds由deviceManager调用getTrustedDeviceListSync方法得到
let deviceIds = [];
if (devManager != null) {
var devices = devManager.getTrustedDeviceListSync();
......@@ -169,6 +173,7 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
}
}
try{
// 1000表示最大延迟时间为1000ms
kvStore.sync(deviceIds, distributedData.SyncMode.PUSH_ONLY, 1000);
}catch (e) {
console.log("An unexpected error occurred. Error:" + e);
......@@ -181,4 +186,4 @@ OpenHarmony系统中的分布式数据服务模块为开发者提供下面几种
- [`DistributedDataGobang`:分布式五子棋(eTS)(API9)](https://gitee.com/openharmony/app_samples/tree/master/data/DistributedDataGobang)
- [`DDMQuery`:结果集与谓词(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/data/DDMQuery)
- [`KvStore`:分布式数据库(eTS)(API8)](https://gitee.com/openharmony/app_samples/tree/master/data/Kvstore)
- [分布式数据库(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData)
- [分布式数据库(JS)(API8)](https://gitee.com/openharmony/codelabs/tree/master/Data/JsDistributedData)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册