NoSQL 数据库 SDK/驱动程序 - 这些 SDK 采用通用许可 (Universal Permissive License,UPL) 许可,可用于 NoSQL Cloud Service 或内部部署数据库。这些是功能完备的 SDK,并提供一组丰富的功能。这些驱动程序还可用于针对在其他供应商云中运行的 Oracle NoSQL 集群执行的应用程序。
OCI SDK/驱动程序 - Oracle Cloud Infrastructure 提供多种软件开发工具包 (SDK),以促进定制解决方案的开发。这些通常根据 UPL 授权。这些功能通过编程接口与 OCI 控制台的功能相似。
Rest API
适用于 Java 的 SDK
适用于 Python 的 SDK
适用于 Javascript 的 SDK
适用于 .NET 的 SDK
适用于 Go 的 SDK
适用于 Ruby 的 SDK
SQL for NoSQL 文档
NoSQL Cloud Service 与内部部署数据库之间的功能差异
Oracle NoSQL Database Cloud Service 具有各种默认限制。每当创建 Oracle NoSQL Database Cloud Service 表时,系统都会确保您的请求在指定的限制范围内。有些限制在表一级实施,有些限制在区域一级实施。
要了解有关服务限制、其范围以及如何通过提交请求来提高服务限制的更多信息,请参阅
服务限制
。下面列出了适用于
Oracle NoSQL Database Cloud Service
的当前限制。
写入单位 (WU):
一个写入单位定义为每秒最多 1 千字节 (KB) 数据的吞吐量。写入操作是导致插入、更新或删除记录的任何
Oracle NoSQL Database Cloud Service
API 调用。NoSQL 表具有写入限制值,该值指定每秒可以使用的写入单位数。索引更新也会消耗写入单位。
例如,如果记录大小小于 1 KB,则写入操作需要一个 WU。如果记录大小为 1.5 KB,则写入操作需要两个 WU。
读取单位 (Read Unit,RU):
对于最终一致的读取操作,一个读取单位定义为每秒最多 1 KB 数据的吞吐量。NoSQL 表具有读取限制值,该值指定每秒可以使用的读取单位数。
例如,如果记录大小小于 1 KB,则最终一致的读取操作需要一个 RU。如果记录大小为 1.5 KB,则需要两个 RU 执行最终一致的读取操作,四个 RU 执行完全一致的读取操作。
存储容量:
一个存储单元是单个千兆字节 (GB) 数据存储。
绝对一致性:
返回的数据应为最近写入到数据库的数据。
最终一致性:
返回的数据可能不是最近写入到数据库的数据;如果没有对数据进行新的更新,最终对该数据的所有访问都将返回最新的更新值。
确定应用的数据模型(JSON 或固定表)、记录大小和密钥大小。
假设电子商务应用程序遵循 JSON 数据模型,开发人员创建了一个包含两列的简单表。产品特性和属性的记录标识符(主键)和 JSON 文档。低于 1 KB (0.8 KB) 的 JSON 文档如下所示:
"additionalFeatures": "Front Facing 1.3MP Camera",
"os": "Macintosh OS X 10.7",
"battery": {
"type": "Lithium Ion (Li-Ion) (7000 mAH)",
"standbytime" : "24 hours" },
"camera": {
"features": ["Flash","Video"],
"primary": "5.0 megapixels" },
"connectivity": {
"bluetooth": "Bluetooth 2.1",
"cell": "T-mobile HSPA+ @ 2100/1900/AWS/850 MHz",
"gps": true,
"infrared": false,
"wifi": "802.11 b/g" },
"description": "Apple iBook is the best in class computer
for your professional and personal work.",
"display": {
"screenResolution": "WVGA (1280 x 968)",
"screenSize": "13.0 inches" },
"hardware": {
"accelerometer": true,
"audioJack": "3.5mm",
"cpu": "Intel i7 2.5 GHz",
"fmRadio": false,
"physicalKeyboard": false,
"usb": "USB 3.0" },
"id": "appleproduct_1",
"images": ["img/apple-laptop.jpg"],
"name": "Myshop.com : Apple iBook",
"sizeAndWeight": {
"dimensions": [
"300 mm (w)",
"300 mm (h)",
"12.4 mm (d)" ],
"weight": "1250.0 grams" },
"storage": {
"hdd": "750GB",
"ram": "8GB" }
假设应用程序具有 100,000 条此类记录,主键的大小约为 20 字节。此外,假设存在使用辅助索引读取记录的查询。例如,查找屏幕大小为 13 英寸的所有记录。因此,将在
screenSize
字段上创建一个索引。
汇总信息如下:
创建记录。
假设创建记录时不执行任何条件检查(如果存在)。
Record size (rounded to next KB) + 1 KB(index) * (number of indexes)
1 KB + 1 KB (1 ) = 2 KB
记录大小为 1 KB(JSON 列为 0.8 KB,密钥列为 20 字节),有一个大小为 1 KB 的索引。
如果使用某些选项执行 put 命令,则创建操作会产生读取单位成本。由于需要确保读取的是行的最新版本,因此使用了绝对一致的读取。在这种情况下,您可以在读取单位公式中使用乘数 2。以下是确定读取单位成本的不同选项:
如果使用 Option.IfAbsent 或 Option.IfPresent,则读取消耗量 = 2
如果使用 setReturnRow,则读取消耗量 = 2 * 记录大小
如果使用 Option.IfAbsent 和 setReturnRow,则读取消耗量 = 2 * 记录大小
更新现有记录
假设更新的记录大小与旧记录大小 (1 KB) 相同。
Read consumption = record_size * 2
Write consumption = original_record_size + new_record_size + 1 KB (index) * (number of writes)
1 KB * 2
1 KB + 1 KB + 1 KB(1) *(2) = 4 KB
使用查询(SQL 语句)更新行时,会同时使用读写单位。根据更新,可能需要读取主键、辅助键甚至记录本身。需要绝对一致的读取来保证我们正在读取最近的记录。绝对一致性读取是最终一致性读取成本的两倍。这就是公式中乘以 2 的原因。
读取使用量:
索引和记录大小不收取 1 KB 的费用。如果使用选项 setReturnRow 执行,则读取消耗量 = 2 * 记录大小
写入使用量:
一个索引的原始记录和新记录大小为 1 KB 和 1 KB。
Read consumption = 1 KB (index) * 2
Write consumption = record_size + 1KB (index) * (number_of_indexes)
1 KB (1) *2 = 2 KB
1 KB + 1 KB(1) * (1) = 2 KB
删除操作会导致读取和写入单位成本。由于您必须保证查看行的最新版本,因此将使用绝对一致的读取,这就是在读取单位公式中使用 2 乘数的原因。
如果使用选项 setReturnRow 执行,则读取消耗量 = 2 * 记录大小。否则,一个索引的读取使用量 = 1KB
写入使用量:
索引的记录大小为 1 KB 和 1 KB。索引数为 1。
了解如何估算
Oracle Cloud
订阅的每月成本。
当您准备好订购
Oracle Cloud
服务时,Oracle 会为您提供成本估算器,以便在您提交订阅模型或金额之前确定您的每月使用量和成本。
成本估算器根据您输入的读取单位、写入单位和存储量自动计算每月成本。但是,要了解如何计算应用程序的读取和写入单位,请执行以下步骤:
步骤 1:
导航到
估计容量
主题。使用本主题中介绍的示例和公式估计应用程序工作量。
步骤 2:
从 Oracle Technology Network 下载并使用
容量估算器
,根据应用程序工作量和数据库操作标准估计应用程序的写入单位、读取单位和存储容量。
步骤 5:
或者,如果要预配的读取、写入和存储容量高于“始终免费”中的可用容量,则可以通过在 Database-NoSQL 下输入配置值来执行此操作。
步骤 5a:
使用不足时,请勿修改默认值,因为 Oracle NoSQL Database Cloud Service 不使用这些值中的任何一个。
步骤 5 b:
在 "Configuration"(配置)下,添加您在上一步中估计的读取单位数、写入单位数和存储容量。成本根据您的输入值进行估计,并显示在页面上。
如果您使用自动缩放功能,系统将为实时读取和写入单位的实际消耗量生成月末发票。因此,您可能希望在应用中收集自己的审计日志来验证月末计费。建议在每次 API 调用时记录 NoSQL Database Cloud 服务返回的消耗读写单位。您可以使用此数据与来自 Oracle Cloud 计量和计费系统的月末开票数据相关联。
要详细了解可用的不同定价模式,请参阅
NoSQL Database Cloud Service Pricing
。
全局活动表的成本/开单
“全局有效”表的成本/开单有两个组件。第一个组件是
单例表
遵循的
定价模型
,它考虑了每月读取单位数、每月写入单位数和每月 GB 存储容量。第二个组件用于全局活动表的每个区域表副本的复制写入。传入的复制写入将根据所消耗的写入进行计费。