相关文章推荐
逆袭的柿子  ·  jQuery 效果 delay() 方法 ...·  5 月前    · 
发呆的皮带  ·  在Spring ...·  6 月前    · 
还单身的松鼠  ·  Unconfirmed Errata - ...·  6 月前    · 

简要了解服务架构,然后选择可以满足应用开发需求的 SDK/驱动程序。

NDCS 开发人员任务

Oracle NoSQL Database Cloud Service (NDCS) 是一种完全 HA 服务。它专为要求低延迟响应时间、灵活的数据模型和针对动态负载的弹性扩展的高要求应用而设计。作为完全托管的服务,Oracle 可以处理所有管理任务,例如软件升级、安全补丁程序、硬件故障和打补丁。


NoSQL 数据库 SDK/驱动程序 - 这些 SDK 采用通用许可 (Universal Permissive License,UPL) 许可,可用于 NoSQL Cloud Service 或内部部署数据库。这些是功能完备的 SDK,并提供一组丰富的功能。这些驱动程序还可用于针对在其他供应商云中运行的 Oracle NoSQL 集群执行的应用程序。
  • NoSQL 适用于 Java 的 SDK
  • NoSQL JavaScript SDK
  • NoSQL Python SDK
  • NoSQL .NET SDK
  • NoSQL Go SDK
  • NoSQL 用于 Spring Data 的 SDK
  • OCI 控制台 - 支持快速创建表、修改表、删除表、加载数据、快速创建索引、删除索引、基本查询、变更表容量和查看指标。

    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 存储容量。第二个组件用于全局活动表的每个区域表副本的复制写入。传入的复制写入将根据所消耗的写入进行计费。

  •