規劃您的服務

建立 Oracle NoSQL Database Cloud Service 服務之前,請花一些時間規劃。開始之前,請先考慮此處所列的問題,並決定您要做什麼。

本文包含下列主題:

開發者總覽

取得服務架構的高階總覽,並選取符合您應用程式開發需求的 SDK/ 驅動程式。

NDCS 開發人員工作

Oracle NoSQL Database Cloud Service (NDCS) 是完全高可用性服務。專為需要低延遲回應時間、彈性資料模型及彈性調整動態工作負載的高需求應用程式所設計。作為完全託管的服務,Oracle 會處理所有管理工作,例如軟體升級、安全修補程式、硬體故障和修補。


NoSQL 資料庫 SDK/ 驅動程式 - 這些 SDK 是以 Universal Permissive License (UPL) 授權,可用於 NoSQL Cloud Service 或內部部署資料庫。這些都是功能完整的 SDK,提供一組豐富的功能。這些驅動程式也可以用於在其他廠商雲端執行的 Oracle NoSQL 叢集上執行的應用程式。
  1. 適用於 Java 的 NoSQL SDK
  2. NoSQL JavaScript SDK
  3. NoSQL Python SDK
  4. NoSQL .NET SDK
  5. NoSQL 前往 SDK
  6. 春季資料的 NoSQL SDK

OCI 主控台 - 可讓您快速建立表格、修改表格、刪除表格、載入資料、快速建立索引、刪除索引、基本查詢、更改表格容量及檢視度量。

OCI SDK/ 驅動程式 - Oracle Cloud Infrastructure 提供許多軟體開發套件 (SDK),有助於開發自訂解決方案。這些通常根據 UPL 授權。這些透過程式設計介面提供類似於 OCI 主控台的功能。
  1. Rest API
  2. Java 適用的 SDK
  3. Python 適用的 SDK
  4. Javascript 適用的 SDK
  5. 適用於 .NET 的 SDK
  6. 前往 SDK
  7. Ruby 適用的 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 個寫入單位。

不允許 / 需要在代管環境中

需求容量 - 表格數目

區域

具有「On Demand 容量」的表格數目。

3

不允許 / 需要在代管環境中

變更啟動設定模式

表格

將表格的佈建模式從「已佈建」變更為 On Demand,反之亦然。

每天只能變更一次。

表格數目上限

區域

表格數目上限。

30

可使用「要求服務限額更新」自訂此項目

資料欄數目上限。

表格

資料欄數目上限。

50

可使用「要求服務限額更新」自訂此項目

表格綱要更新數目上限

表格

表格綱要更新數目上限。

100

可使用「要求服務限額更新」自訂此項目

索引數目上限

表格

索引數目上限。

5

可使用「要求服務限額更新」自訂此項目

傳輸量和儲存限制的變更數目上限

表格

傳輸量和儲存限制的變更數目上限。

Oracle 允許:

  • 每天傳輸量和儲存增加次數無限制

  • 每 24 小時期間,傳輸量或儲存量最多可減少 4 個。

可使用「要求服務限額更新」自訂此項目

索引名稱

索引

字元數、允許的字元數及起始字元數上限。

索引名稱最多可有 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 允許:

  • 最多 100,000 個讀取單位

  • 最多 40,000 個寫入單位

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 個位元組。

  • 查詢樣式:查詢作業的成本取決於擷取的資料列數目、述詞數目、來源資料的大小、投影以及索引的存在。最低廉的查詢會指定分區索引鍵或索引索引鍵 (具有關聯的索引),讓系統能夠利用主要和次要索引。應用程式可以嘗試不同的查詢並檢查使用的傳輸量,以協助調整作業。

Real World 範例:如何預估您的應用程式工作負載

請考量電子商務應用程式範例,學習如何預估每秒的讀取和寫入次數。在此範例中,Oracle NoSQL Database Cloud Service 是用來儲存應用程式的產品目錄資訊。

  1. 識別應用程式的資料模型 (JSON 或固定表格)、記錄大小及金鑰大小。

    假設電子商務應用程式遵循 JSON 資料模型,且開發人員已建立包含兩個資料欄的簡單表格。產品功能和屬性的記錄識別碼 (主索引鍵) 和 JSON 文件。JSON 文件在 1 KB (0.8 KB) 之下如下:

    {
      "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

  2. 識別表格上的作業清單 (通常是 CRUD 作業和索引讀取),以及它們的預期速率 (每秒)。

    操作 作業數目 (每秒) 範例

    建立記錄。

    3

    建立產品。

    使用主索引鍵讀取記錄。

    200

    使用產品 ID 讀取產品詳細資料。

    使用次要索引讀取記錄。

    1

    擷取畫面大小為 13 英吋的所有產品。

    更新或新增屬性至記錄。

    5

    更新相機的產品說明

    新增相機重量的相關資訊。

    刪除記錄。

    5

    刪除現有產品。

  3. 識別讀取和寫入使用量 (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。

    如果您使用某些選項執行 put 命令,則建立作業會產生讀取單位成本。因為您必須保證讀取最新版本的資料列,所以會使用絕對一致的讀取。在此情況下,您在讀取單位公式中使用乘數 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_matched

    11KB *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 * 2

    Write consumption = original_record_size + new_record_size + 1 KB (index) * (number of writes)

    1 KB * 2 1 KB + 1 KB + 1KB (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。

    使用步驟 2 和步驟 3 決定應用程式工作負載的讀取和寫入單位。

    作業 作業速率 讀取數 / 秒 寫入數 / 秒

    建立記錄

    3

    0

    6

    使用主索引鍵讀取記錄

    300

    300

    0

    使用次要索引讀取記錄

    10

    1100

    0

    更新現有記錄

    5

    10

    20

    刪除記錄

    1

    2

    2

    讀取單位總數: 1412

    總寫入單位: 28

    因此,電子商務應用程式預估每秒可讀取 1412 次,每秒可寫入 28 次。下載 Oracle Technology Network 上提供的 Capacity Estimator 工具,以輸入這些值及預估應用程式的傳輸量和儲存量。

附註:

上述計算假設最終一致的讀取要求。對於絕對一致性讀取要求,作業會使用容量單位的兩倍。因此,讀取容量單位會是 4844 個讀取單位。

預估您的每月成本

瞭解如何預估 Oracle Cloud 訂閱的每月費用。

當您準備好訂購 Oracle Cloud 服務時,Oracle 會在您確認訂閱模型或金額之前,提供費用預估工具,讓您瞭解每月的使用量與費用。

「費用預估工具」會根據您輸入的讀取單位、寫入單位及儲存,自動計算您的每月費用。但若要瞭解如何計算應用程式的讀取和寫入單位,請遵循下列步驟:

  1. 步驟 1:導覽至預估產能主題。使用本主題中描述的範例和公式來預估您的應用程式工作負載。

    步驟 2:下載並使用 Oracle Technology Network 的容量預估工具,根據應用程式工作負載和資料庫作業條件來預估應用程式的寫入單位、讀取單位以及儲存容量。

  2. 步驟 2:存取 Oracle Cloud 網站上的費用預估工具。選取資料管理核取方塊。捲動以尋找 Oracle NoSQL Database Cloud ,然後按一下新增,即可在「組態選項」底下新增 Oracle NoSQL Database Cloud 項目。展開 NoSQL 資料庫以尋找不同的使用狀況和組態選項。使用率與組態參數的輸入值,可預估 Oracle Cloud Pay-As-You-GoMonthly Flex 訂閱中的 Oracle NoSQL Database Cloud Service 使用量。

  3. 步驟 3:存取 Oracle Cloud 網站上的成本預估工具。在下拉式清單中,選取「資料管理」。您會看到「資料管理」底下顯示的各種選項。捲動以尋找 Oracle NoSQL Database Cloud。按一下「新增」即可在「組態選項」底下新增 Oracle NoSQL Database Cloud 項目。

  4. 步驟 4:展開資料庫 - NoSQL 以尋找不同的使用狀況和組態選項。「組態」下有兩個選項。您可以從「永遠免費」選項開始,或是使用想要的組態佈建執行處理。
    • 步驟 4a: 如果您想要使用「永遠免費」選項,請在「組態」底下展開 Oracle NoSQL Database Cloud - Read、Oracle NoSQL Database Cloud Service - Storage 及 Oracle NoSQL Database Cloud Service - 寫入及變更讀取、儲存及寫入容量為 0。接著您的總成本預估會顯示為 0 ,您可以繼續進行永遠免費選項。
  5. 步驟 5:或者,如果您要佈建比 Always Free 中可用的較高讀取、寫入和儲存容量,可以在 Database-NoSQL 下輸入組態值來執行此操作。
    • 步驟 5a:在「使用率」下,請勿修改預設值,因為 Oracle NoSQL Database Cloud Service 不使用這些值。
    • 步驟 5 b:在「組態」下,新增您在上一個步驟中預估的「讀取單位」、「寫入單位」和「儲存容量」數目。成本會根據您的輸入值進行預估,並顯示在頁面上。

附註:

如果您使用自動調整功能,將會即時產生每月底發票,以供實際的讀取和寫入單位使用。因此,您可能希望在應用程式中收集您自己的稽核日誌,以驗證月底的帳單。建議您將 NoSQL Database Cloud 服務傳回的已使用讀取和寫入單位記錄到每個 API 呼叫中。您可以使用此資料與 Oracle Cloud 計量與計費系統的月底發票資料建立關聯。

如需詳細瞭解可用的不同定價模型,請參閱 NoSQL Database Cloud Service 定價

全域有效表格的成本 / 帳單

「全域有效」表格的成本 / 帳單有兩個元件。第一個元件是 singleton table 後面接著的定價模型,會考量每月讀取單位、每月寫入單位和每月的 GB 儲存容量。第二個元件用於「全域作用中」表格之每個區域表格複本的複製寫入。內送複製寫入會根據使用的寫入收費。