規劃您的服務
建立 Oracle NoSQL Database Cloud Service 服務之前,請花一些時間進行規劃。開始之前,請考慮此處概述的問題,並決定您要做什麼。
本文包含下列主題:
開發者簡介
取得服務架構的高階概觀,並選擇符合您應用程式開發需求的 SDK/ 驅動程式。
NDCS 開發人員工作
Oracle NoSQL Database Cloud Service (NDCS) 是完全 HA 服務。它是針對需要低延遲回應時間、彈性資料模型,以及針對動態工作負載彈性調整規模的高要求應用程式所設計。作為完全託管的服務,Oracle 會處理軟體升級、安全性修補程式、硬體故障和修補等所有管理任務。

NoSQL Database SDK/ 驅動程式 - 這些 SDK 是根據通用許可授權 (UPL) 授權,可用於 NoSQL Cloud Service 或內部部署資料庫。這些是功能完整的 SDK,並且提供一組豐富的功能。這些驅動程式也可用於對在其他廠商雲中執行的 Oracle NoSQL 叢集執行的應用程式。
您可以參考下表,瞭解 SDK、API 指南和範例的連結:
-
SDK (GitHub) - 提供有關如何安裝、連線及開始使用 SDK 的詳細資訊
-
API 指南 - 提供 SDK 中可用的套裝程式、類別、方法及介面
-
範例 - 提供您可以嘗試的程式碼範例
OCI 主控台 - 提供快速建立表格、修改表格、刪除表格、快速載入資料、快速建立索引、刪除索引、基本查詢、更改表格容量以及檢視度量的功能。
OCI SDK/ 驅動程式 - Oracle Cloud Infrastructure 提供許多軟體開發套件 (SDK),有助於開發客製化解決方案。這些通常是以 UPL 授權。
NoSQL 資料庫 SDK/ 驅動程式與 OCI SDK/ 驅動程式之間的差異:
OCI SDK 以 REST 為基礎。它們易於使用,但功能有限。另一方面,NoSQL Database SDK 提供一組豐富的功能。建議您使用 NoSQL Database SDK,因為它們對 OCI SDK 提供下列優點。
-
NoSQL Database SDK 可用於連接到雲端服務、內部部署資料存放區和 NoSQL 雲端模擬器的應用程式。
-
NoSQL Database SDK 提供更豐富的開發體驗。它們支援更多透過 REST 不支援的 SQL 功能。
-
您可以搭配使用第三方實行,例如 Jakarta NoSQL 或 Eclipse TopLink 搭配 NoSQL Database SDK。
參照:
Oracle NoSQL Database Cloud Service 限制
Oracle NoSQL Database Cloud Service 有各種預設限制。每當您建立 Oracle NoSQL Database Cloud Service 表格時,系統都會確保您的要求在指定的限制範圍內。有些限制會在表格層級施加,有些則是在區域層級施加。
若要深入瞭解服務限制、其範圍,以及如何透過提交要求來提高服務限制,請參閱服務限制。以下是適用於 Oracle NoSQL Database Cloud Service 的目前限制。
| 限制 | 領域 | 描述 | 非代管環境中的值 | 代管環境中的值 |
|---|---|---|---|---|
| 表格儲存大小上限 | 表格 | 每一租用戶的儲存大小總計上限。一或多個表格所使用的總空間不能超過此值。 | 5 TB | 17.5TB |
| 表格名稱: | 表格 | 表格名稱的字元數上限、允許的字元數以及起始字元數。 | 表格名稱最多可有 256 個字元。所有名稱都必須以字母 (a-z、A-Z) 開頭。後續字元可以是字母 (a-z、A-Z)、數字 (0-9) 或底線。 | 與非代管環境相同 |
| 佈建的容量 - 讀取和寫入傳輸量上限 | 表格 | 佈建表格時的讀取和寫入傳輸量上限。 | 每個表格 40,000 個讀取單位和 20,000 個寫入單位。 | 代管環境中所有表格的最多 420,000 個讀取單位和 280,000 個寫入單位的總計 |
| 隨選容量 - 讀取和寫入傳輸量上限 | 表格 | 使用 On Demand 容量佈建表格時,讀取和寫入傳輸量上限。 | 每個表格 10,000 個讀取單位和 5,000 個寫入單位。 | 不允許 / 需要在代管環境中 |
| 隨選容量 - 表格數目 | 區域 | 具有「隨選容量」的表格數目。 | 3 | 不允許 / 需要在代管環境中 |
| 變更佈建模式 | 表格 | 將表格的佈建模式從「已佈建」變更為 On Demand,反之亦然。 | 每天只能變更一次。 | 無 |
| 表格數目上限 | 區域 | 表格數目上限。 | 30 | 可使用「要求服務限額更新」自訂此項目 |
| 資料欄數上限。 | 表格 | 資料欄數目上限。 | 50 | 可使用「要求服務限額更新」自訂此項目 |
| 表格綱要更新數目上限 | 表格 | 表格綱要更新數目上限。 | 100 | 可使用「要求服務限額更新」自訂此項目 |
| 索引數上限 | 表格 | 索引數目上限。 | 5 | 可使用「要求服務限額更新」自訂此項目 |
| 傳輸量和儲存限制的變更數目上限 | 表格 | 傳輸量和儲存限制的變更數目上限。 | Oracle 允許:
|
可使用「要求服務限額更新」自訂此項目 |
| 指數名稱 | 索引 | 字元數上限、允許的字元數及起始字元數。 | 索引名稱最多可有 64 個字元。所有名稱都必須以字母 (a-z、A-Z) 開頭。後續字元可以是字母 (a-z、A-Z)、數字 (0-9) 或底線。 | 可使用「要求服務限額更新」自訂此項目 |
每一 WriteMultiple 要求的個別作業數目上限 |
要求 | 每一 WriteMultiple 要求的個別作業數目上限。 |
50 | 與非代管環境相同。這也可以使用「要求服務限額更新」來增加 |
WriteMultiple 要求的資料大小上限。 |
要求 | WriteMultiple 要求的資料大小上限。 |
25 MB | 與非代管環境相同。這也可以使用「要求服務限額更新」來增加 |
| 資料欄名稱 | 欄 | 字元數上限、允許的字元數及起始字元數。 | 欄位名稱最多可有 64 個字元。所有名稱都必須以字母 (a-z、A-Z) 開頭。後續字元可以是字母 (a-z、A-Z)、數字 (0-9) 或底線。 | 與非代管環境相同。 |
| 次要索引金鑰大小上限 | 索引 | 索引金鑰大小上限。 | 64 個位元組 | 可使用「要求服務限額更新」自訂此項目 |
| 主要索引金鑰大小上限 | 索引 | 主索引鍵大小上限。 | 64 個位元組 | 可使用「要求服務限額更新」自訂此項目 |
| 資料列大小上限 | 資料列 | 資料列大小上限。 | 512 KB | 可使用「要求服務限額更新」自訂此項目 |
| 最長的查詢字串長度。 | Query - 查詢 | 最長的查詢字串長度。 | 10 KB | 可使用「要求服務限額更新」自訂此項目 |
| 支援的 DDL 作業速率上限。 | 區域 | 支援的 DDL 作業速率上限。 | 4 每分鐘 | 可使用「要求服務限額更新」自訂此項目 |
| 傳輸量和資料儲存資源的最大值。 | 區域 | 傳輸量和資料儲存資源的最大值。 | 根據區域,Oracle 允許:
Oracle 可允許每個租用戶的儲存大小上限為 5 TB。此區域可以有儲存大小為 5 TB 的單一表格,在此情況下,區域無法建立另一個表格。或有多個表格,並確保所有這些表格中的資料皆在 5 TB 的儲存大小上限內。 |
420,000 個寫入單位、280,000 個讀取單位、17.5 TB 儲存空間 |
預估產能
瞭解如何預估 Oracle NoSQL Database Cloud Service 的傳輸量和儲存容量。
計算後的基本知識
在瞭解如何預估服務的傳輸量和儲存體之前,讓我們先複查傳輸量和儲存體單位定義。
-
寫入單位 (WU):一個寫入單位的定義為每秒最多 1 千位元組 (KB) 資料的傳輸量。寫入作業是指導致插入、更新或刪除記錄的任何 Oracle NoSQL Database Cloud Service API 呼叫。NoSQL 表格具有寫入限制值,指定每秒可使用的寫入單位數。索引更新也會使用寫入單位。
例如,記錄大小若小於 1 KB,寫入作業就需要一個 WU。記錄大小為 1.5 KB 時,寫入作業需要兩個 WU。
-
讀取單位 (RU):一個讀取單位的定義為最終一致性讀取作業每秒最高 1 KB 資料的傳輸量。您的 NoSQL 表格有讀取限制值,指定每秒可使用的讀取單位數。
例如,記錄大小若小於 1 KB,最終一致性讀取作業就需要一個 RU。記錄大小為 1.5 KB 時,最終一致讀取作業需要兩個 RU,而對於絕對一致的讀取作業,則需要四個 RU。
-
儲存容量:一個儲存單位是單一 GB 的資料儲存。
-
絕對一致性:傳回的資料預期是最近寫入資料庫的資料。
-
最終一致性:傳回的資料可能不是最近寫入資料庫的資料;如果未對資料進行新的更新,則最終對該資料的所有存取都會傳回最新的更新值。
注意:使用「隨選容量」時,Oracle NoSQL Database Cloud Service 會自動管理讀取和寫入功能,以滿足動態工作負載的需求。建議您確認容量需求不超過「隨需容量」限制。請參閱 Oracle NoSQL Database Cloud Service 限制以瞭解詳細資訊。
影響產能單位的因子
在您佈建容量單位之前,請務必考慮下列影響讀取、寫入及儲存容量的因素。
-
記錄大小:當記錄大小增加時,用於寫入或讀取資料的容量單位數目也會增加。
-
資料一致性:絕對一致性讀取的成本是最終一致性讀取的兩倍。
-
次要索引:在表格中,修改 (新增、更新或刪除) 現有記錄時,更新次要索引會使用「寫入單位」。寫入作業的佈建傳輸量總成本,是寫入表格並更新區域次要索引所使用的寫入單位總和。
-
資料建模選擇:使用無綱要 JSON 時,每個文件都是自我描述,可將中繼資料負荷新增至記錄的整體大小。使用固定的綱要表格時,每筆記錄的額外負荷正好是 1 個位元組。
-
查詢樣式:查詢作業的成本取決於擷取的資料列數目、述詞數目、來源資料的大小、預測以及索引的存在。最低成本的查詢會指定分區索引鍵或索引索引鍵 (具有關聯的索引),讓系統能夠使用主要和次要索引。應用程式可以嘗試不同的查詢並檢查使用的傳輸量,以協助調整作業。
真實世界範例:如何預估應用程式工作負載
請參考電子商務應用程式範例,瞭解如何預估每秒抄表值和寫入次數。在此範例中,Oracle NoSQL Database Cloud Service 是用來儲存應用程式的產品目錄資訊。
-
識別應用程式的資料模型 (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欄位上建立索引。摘要中的資訊如下:
表格 每一表格的資料列數 每一表格的資料欄數 金鑰大小 (位元組) 值大小 (位元組) (所有資料欄的總和) 索引 索引金鑰大小 (位元組) 1 100000 2 20 1 KB 1 20 -
識別表格的作業清單 (通常是 CRUD 作業和索引讀取),以及預期的速率 (每秒)。
操作 作業數目 (每秒) 範例 建立記錄。 3 建立產品。 使用主索引鍵讀取記錄。 200 使用產品 ID 讀取產品詳細資料。 使用次要索引讀取記錄。 1 擷取畫面大小為 13 英吋的所有產品。 更新或新增屬性至記錄。 5 更新攝影機的產品描述
或
新增攝影機的重量相關資訊。
刪除記錄。 5 刪除現有產品。 -
識別讀取和寫入使用量 (KB)。
操作 假設 (如果有的話) 公式 讀取使用量 (KB) 寫入使用量 (KB) 註記 / 說明 建立記錄。 假設建立記錄時未執行任何條件檢查 (如果存在)。 Record size (rounded to next KB) + 1 KB(index) * (number of indexes)0 1 KB + 1 KB (1) = 2 KB 記錄大小為 1 KB (JSON 資料欄為 0.8 KB,索引鍵資料欄為 20 個位元組),索引大小為 1 KB。
如果您使用某些選項執行置放命令,則建立作業會產生讀取單位成本。因為您必須保證能夠讀取資料列的最新版本,所以會使用絕對一致的讀取。在此情況下,您在讀取單位公式中使用乘數 2。以下是決定讀取單位成本的不同選項:
- 如果使用 Option.IfAbsent 或 Option.IfPresent,則抄表耗用量 = 2
- 如果使用 setReturnRow,則抄表耗用量 = 2 * 記錄大小
- 如果使用 Option.IfAbsent 與 setReturnRow,則抄表耗用量 = 2 * 記錄大小
使用主索引鍵讀取記錄。 Record size round up to KB記錄大小 = 1 KB 0 記錄大小為 1 KB 使用次要索引讀取記錄。 假設傳回 100 筆記錄。 record_size * number_of_records_matched11KB *100 = 100KB
100 KB + 10 KB = 110 KB
0 次要指數沒有費用。記錄大小為 1 KB。若為 100 筆記錄,則為 100 KB。
視傳回的批次數目和針對查詢設定的大小限制而定,可能發生的變數負荷額外 10 KB 帳戶。
製造費用是批次中讀取最後一個索引鍵的成本。這是取決於 maxReadKB 和記錄大小的變數。超載最高可達 (numBatches - 1) * 金鑰讀取成本 (1KB)。
更新現有的記錄 假設更新的記錄大小與舊記錄大小相同 (1 KB)。 Read consumption = record_size * 2Write 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) * 2Write consumption = record_size + 1KB (index) * (number_of_indexes)1KB (1) *2 = 2KB 1 KB + 1 KB (1) * (1) = 2 KB 刪除會同時產生讀取和寫入單位成本。由於您必須保證查看的是最新版本的資料列,因此系統會使用絕對一致抄表值,這也是讀取單位公式中使用 2 乘數的原因。
如果使用 setReturnRow 選項執行,則抄表耗用量 = 2 * 記錄大小。否則,一個索引的「讀取使用量」= 1KB
寫入使用量:索引的記錄大小為 1 KB 和 1 KB。索引數目為 1。
使用步驟 2 與 3,決定應用程式工作負載的讀取與寫入單位。
作業 作業速率 讀取數目 (每秒) 寫入數目 (每秒) 建立記錄 3 0 6 使用主索引鍵讀取記錄 300 300 0 使用次要索引讀取記錄 10 1100 0 更新現有記錄 5 10 20 刪除記錄 1 2 2 讀取單位總計: 1412
總寫入單位: 28
因此,電子商務應用程式預估的工作負載為每秒 1412 次讀取,每秒 28 次寫入。下載容量預估工具
注意:先前的計算會假設最終一致的讀取要求。對於絕對一致性讀取要求,作業會耗用兩倍的容量單位。因此,讀取容量單位將會是 4844 讀取單位。
預估您的每月成本
瞭解如何預估 Oracle Cloud 訂閱的每月費用。
當您準備訂購 Oracle Cloud 服務時,Oracle 會提供費用預估工具,讓您在確認訂閱模型或金額之前,先瞭解每月的使用量和費用。
成本預估工具會根據您的讀取單位、寫入單位和儲存輸入,自動計算您的每月成本。但為了讓您瞭解如何計算應用程式的讀寫單位,請遵循下列步驟:
-
步驟 1:導覽至估算容量主題。使用本主題中所述的範例和公式來估算您的應用程式工作負載。
從 Oracle Technology Network 下載並使用容量預估工具,根據應用程式工作負載和資料庫作業條件來預估應用程式的寫入單位、讀取單位及儲存容量。
-
步驟 2:存取 Oracle Cloud 網站上的費用預估工具。選取資料管理核取方塊。捲動以尋找 Oracle NoSQL Database Cloud ,然後選取新增以在「組態選項」底下新增 Oracle NoSQL Database Cloud 項目。展開 NoSQL 資料庫以尋找不同的「使用率」和組態選項。使用率和組態參數的輸入值,用以預估您 Oracle Cloud Pay-As-You-Go 和包月服務訂閱中 Oracle NoSQL Database Cloud Service 使用量的費用。
-
步驟 3:存取 Oracle Cloud 網站上的費用預估工具。在下拉式清單中,選取「資料管理」。您會看到「資料管理」底下的各種選項。捲動並尋找 Oracle NoSQL Database Cloud。按一下「新增」即可在「組態選項」底下新增 Oracle NoSQL Database Cloud 項目。
-
步驟 4:展開「資料庫 - NoSQL」以尋找不同的「使用率」和組態選項。「組態」底下有兩個選項。您可以從「永遠免費」選項開始 (僅適用於鳳凰城區域),也可以使用所需的組態佈建執行處理。
- 步驟 4a:如果您想要使用永遠免費選項,請在「組態」底下展開 Oracle NoSQL Database Cloud - 讀取、Oracle NoSQL Database Cloud Service - 儲存及 Oracle NoSQL Database Cloud Service - 將讀取、儲存及寫入容量變更為 0。接著,您的總成本預估會顯示為 0 ,您可以繼續使用永遠免費選項。
-
步驟 5:或者,如果您要佈建的讀取、寫入和儲存容量高於 Always Free 中可用的容量,可以在 Database-NoSQL 下輸入組態值。
-
步驟 5a:在「使用率」底下,請勿修改預設值,因為 Oracle NoSQL Database Cloud Service 未使用這些值。
-
步驟 5b:在「組態」底下,新增您在上一個步驟中預估的讀取單位、寫入單位和儲存容量數目。費用會根據您的輸入值進行預估,並顯示在頁面上。
-
備註:如果您使用自動調整功能,將會針對即時讀取和寫入單位的實際耗用量,產生發票。因此,您可能會想要在應用程式中收集自己的稽核日誌,以驗證月底的計費。建議您使用每個 API 呼叫來記錄 NoSQL Database Cloud 服務傳回的使用讀取和寫入單位。您可以使用此資料來關聯 Oracle Cloud 計量與計費系統的月底發票資料。
如需深入瞭解不同的定價模型,請參閱 NoSQL Database Cloud Service 定價。
全域有效表格的成本 / 帳單
「全域有效」表格的成本 / 帳單有兩個元件。第一個元件是單一表格後面的定價模型,它將每個月的讀取單位、每個月的寫入單位以及每個月的 GB 儲存容量納入考量。第二個元件用於「全域作用中」表格之每個區域表格複本的複製寫入。傳入的複製寫入會根據使用的寫入收費。