Oracle NoSQL 資料庫:開發者的綜合指南

關於Oracle NoSQL Database

Oracle NoSQL Database是一款強健的解決方案,集成了SQL類的介面,用於與NoSQL數據模型工作进行。該數據庫系統讓開發者能夠在不發生阻抗失配問題的情況下处理各種數據類型,包括平坦的關係數據、分层類型的數據以及無架構的JSON數據。阻抗失配發生在數據庫和程序設計語言模型的差異導致數據處理挑戰時。但是,Oracle NoSQL通過提供跨多種數據結構的无缝體驗來消除這點。

Oracle NoSQL Database Cloud Service簡化了開發過程,讓開發者能夠專注於建造應用程序,而不是管理基礎設施。它支持文檔、固定結構和鍵值數據庫模型,提供低延遲的反應時間、活躍活躍的区域副本,以及靈活的可擴展性。該服務設計用來無困難地與動態工作負荷擴展,並提供如下的功能:

  • ACID 交易以確保數據完整性
  • 無伺服器擴展以調整靈活的容量
  • 安全性以 comprehensive measures 保護數據
  • 按使用量計費以支持隨需求和預置容量的模式

此雲端服務完全兼容於本地端的 Oracle NoSQL 資料庫,讓開發者能夠在雲和本地環境之間進行切換。

Oracle NoSQL 的一個显著特點是其與 SQL 的兼容性,讓開發者能在 NoSQL 環境中使用熟悉的查詢語言。這是一個重要的優勢,減少了通常與 NoSQL 資料庫相關的學習曲線,這些資料庫通常需要具備專業查詢語言的知識。有了 Oracle NoSQL,開發者可以在不放棄 SQL 熟悉且強大的查詢功能的情況下,享受 NoSQL 資料庫的彈性。

Oracle NoSQL 資料庫雲端服務處理後端管理,適合需要一個無須額外 operational overhead 且能輕鬆擴展的解決方案的開發者。主要的好處包括:

  • 專注於應用開發:開發者可以專注於建立功能,而無需擔心管理伺服器、儲存或軟體更新。
  • 彈性擴展:資料庫可根据工作負載變化而動態擴展,確保在疫情變動時性能保持穩定。
  • Provisioned 資源:用戶預先定義資料庫的吞吐量與儲存需求,系統將自動調整資源以滿足這些需求。

NoSQL資料庫使用表格資料模型,讓開發者可以在保留如行和唯一鍵等熟悉的構造的同時,按照需求結構化資料。這種靈活性延展到支援單行事務和非事務性掃描,使它成為各種應用程式的多用途工具。

Oracle提供了三種版本的NoSQL資料庫:

  1. 社區版(CE):這個版本在Apache許可證2.0下發布,對於尋求開源、社區支援解決方案的開發者來說非常理想。
  2. 企業版(EE):這個版本附帶Oracle的商業支援,並在Oracle商業許可證下授權。
  3. 基本版:這是一個輕量級、更簡單的版本,適合尋求核心NoSQL功能而非企業級功能的開發者。

開發者工具和生態系統

Oracle提供了多種工具和SDK來增強開發者的體驗,包括:

  • JetBrains外掛程式:這個連接器讓開發者能夠直接從JetBrains IDE與Oracle NoSQL進行互動。您可以在此處探索外掛程式:Oracle NoSQL資料庫連接器
  • 多種語言的SDK:Oracle提供了Java、Python、Node.js和.NET SDK。您可以在Oracle的GitHub頁面上探索可用的SDK。
  • Java SE 支援:在Java生態系中工作的開發者可以受益於Spring和Jakarta EE框架的支援,包括透過Eclipse JNoSQL與Jakarta NoSQL和Jakarta Data規格進行整合。

挑戰

雖然Oracle NoSQL資料庫提供了SQL相容性的重要優勢,但重要的是要注意它仍然運作在NoSQL範式內。這意味著即使開發者可以使用類SQL查詢,對NoSQL資料結構和原則的深入理解仍然有必要以充分利用系統。像靈活模式、文件存儲和鍵值操作等概念,與傳統關聯式資料庫相比,需要改變資料的建模和查詢方式。純粹從SQL環境來的開發者需要學習這些NoSQL概念,以優化他們的應用程式並利用Oracle NoSQL提供的靈活性。

另一個考慮因素是围绕Oracle NoSQL日益增长的生態系統。雖然該平台正在迅速扩展並整合到流行的Java框架如Jakarta EE、Spring和其他開發工具中,但與一些 established NoSQL數據庫相比,它仍然是相對較新。因此,第三方的工具、插件和由社區驅動的資源的可用性仍在追赶中。雖然Oracle對該平台的投資確保了持續堅實的支持和增長,但在某些生態系統達到其他較老NoSQL數據庫的成熟水平之前,可能需要一些時間。開發者應該注意,在某些情況下,可能需要進行額外的自定义開發以填補工具或整合中的空缺,這些空缺在其他NoSQL系統中更易於獲得。

Oracle NoSQL開發起步

要開始使用Oracle NoSQL,開發者可以使用Oracle Cloud提供的雲解決方案,或者通過Docker在本地運行數據庫。對於本地運行,以下Docker命令可以讓您開始:

Shell

 

docker run -d --name oracle-instance -p 8080:8080 ghcr.io/oracle/nosql:latest-ce

此命令在您的本地電腦上設定一個Oracle NoSQL實例,使測試和開發應用程序變得容易,而無需設置複雜的基础設施。

Oracle NoSQL 能與 Jakarta DataEclipse JNoSQL 生態系無縫整合。以下是使用簡單的 Beer 实體與 Oracle NoSQL 互動的 Java 應用程序示例:

Java

 

@Entity
public class Beer {

    @Id
    private String id;

    @Column
    private String style;

    @Column
    private String hop;

    @Column
    private String malt;

    @Column
    private List<String> comments;

    @Column
    private List<Crew> crew;

    @Column
    private Map<String, Object> data;
}

存儲庫接口利用 Oracle NoSQL 的專業化,提供類似 SQL 的查詢體驗:

Java

 

@Repository
public interface BeerRepository extends OracleNoSQLRepository<Beer, String> {

    Set<Beer> findByStyle(String style);

    @Query("select * from Beer")
    Set<Beer> query();

    @Find
    @OrderBy("hop")
    CursoredPage<Beer> style(@By("style") String style, PageRequest pageRequest);

    @Query("From Beer where style = ?1")
    List<Beer> jpql(String style);
}

運行此應用程序,開發者可以使用熟悉的 Java 构造與 Oracle NoSQL 互動,查詢和持久化數據。

結論

Oracle NoSQL 數據庫為開發者提供了一個靈活、可擴展的解決方案,用於構建現代應用程序,這些程序需要高可用性、低延遲和與多樣化數據模型工作的能力。憑藉如 SQL 兼容性、管理云服務和廣泛的開發者工具等特性,Oracle NoSQL 為初學者和有經驗的開發者提供了全面的開發環境。無論是在雲端還是本地部署,Oracle NoSQL 都簡化了開發過程,讓開發者能夠專注於構建功能和更快地傳遞價值。

關於使用 Oracle NoSQL 的更詳細指導,請訪問 Oracle 的 GitHub 頁面

Source:
https://dzone.com/articles/oracle-nosql-database-developers-guide