Oracle NoSQLデータベース:開発者のための包括的ガイド

Oracle NoSQL Database

Oracle NoSQL Databaseは、NoSQLデータモデルを操作するためのSQL-likeインターフェースを提供し、強力なソリューションです。このデータベースシステムは、平坦なリレーショナルデータ、階層的な型付けデータ、スキーマ無しのJSONデータを含む様々なデータ型を処理する際に、 impedance mismatch問題を発生させないように開発者に役立ちます。 impedance mismatchは、データベースとプログラミング言語モデルの間の違いがデータの処理を困難にすることがあります。しかし、Oracle NoSQLはこれを解決し、多重なデータ構造間で一貫性のある体験を提供します。

Oracle NoSQL Database Cloud Serviceは、開発プロセスを簡素化し、開発者がインフラ管理を行わずにアプリケーションを構築することを可能にします。文書、固定スキーマ、key-valueデータベースモデルをサポートし、低レイテンシーのレスポンス時間、アクティブ-アクティブの地域レプリケーション、インスタンスの伸缩性を提供します。このサービスは、動的なワークロードに応じて簡単にスケールアウトすることができ、以下のような機能を提供します。

  • ACID トランザクションを提供してデータの整合性を保証します
  • Serverlessスケーリングを提供し、柔軟なコーパシティ調整をサポートします
  • セキュリティを提供し、データを保護する Comprehensive measures
  • 使用料の計算法を提供し、オンデマンドおよび提供された容量モードの両方をサポートします。

このクラウドサービスは、オンプレミスのOracle NoSQL Databaseと完全に互換性があり、開発者はクラウドとローカル環境間で切り替えることができます。

Oracle NoSQLの特徴的な機能の1つは、SQLとの互換性であり、開発者はNoSQLのコンテキストで熟悉的なクエリ言語を使用することができます。これは、NoSQLデータベースに慣れるまでの学習曲線を大きく短縮する重要な利点であり、多くの場合、特別なクエリ言語の知識が必要であることになっています。Oracle NoSQLを使用すると、開発者はSQLのような熟悉で強力なクエリ機能を引き続き利用しながら、NoSQLデータベースの柔軟性を楽しむことができます。

Oracle NoSQL Database Cloud Serviceは、後端管理を行い、スケールに伴う努力を最小限に抑えながら、開発に集中できる解決策を必要とする開発者に最適なサービスです。鍵となる利点には以下が含まれます。

  • アプリ開発に集中する: 開発者はサーバー、ストレージ、またはソフトウェアの更新管理を心配しないで、機能の開発に集中することができます。
  • インスタンススケーリング: データベースは負荷変更に対応して動的にスケールアップ/スケールダウンし、要求が変動するにも関わらず性能を保ちます。
  • プロビジョニングされたリソース: ユーザーはデータベースのスループットとストレージの要求を事前に定義し、システムがこれらの需要に自動的にリソースを調整するようになっています。

NoSQLデータベースは、表形式のデータモデルを使用しており、開発者は必要に応じてデータを構造化することができる同时に、行とユニークキーといったよく知られた構造を保持することができます。この柔軟性は、単一行トランザクションと非トランザクショナルスキャンの両方をサポートすることで、幅広いアプリケーションに対応する多才なツールとなっています。

OracleはNoSQL Databaseを3つのエディションで提供しています:

  1. Community Edition (CE):Apache License 2.0の下で配布され、このエディションは、開発者がオープンソースで、コミュニティーサポートされたソリューションを探している場合に最適です。
  2. Enterprise Edition (EE):このバージョンは、Oracleからの商業的なサポートとOracle Commercial Licenseの下でライセンスされます。
  3. Basic Edition:開発者がエンタープライズレベルの機能を伴わないコアNoSQL機能を探している場合に、より軽量でシンプルなバージョンです。

開発者ツールと生態系

Oracleは、開発者の体験を向上させる様々なツールとSDKを提供しています。以下を含みます:

  • JetBrains Plugin:JetBrains IDEから直接Oracle NoSQLとやりとりすることができるコネクタです。プラグインを探ることができます:Oracle NoSQL Database Connector
  • 複数の言語のSDK:OracleはJava、Python、Node.js、.NETのSDKを提供しています。SDKを探ることができます:OracleのGitHubページ
  • Java SEのサポート: Javaエコシステムで作業する開発者は、SpringおよびJakarta EEフレームワークのサポートから利益を得ることができます。これには、Eclipse JNoSQLを介してJakarta NoSQLとJakarta Data仕様との統合が含まれます。

挑戦

Oracle NoSQL DatabaseはSQL互換性を持つ大きな利点を提供しますが、それはまだNoSQLのパラダイム内で動作していることを理解する必要があります。これは、開発者がSQLのようなクエリを使用できるにもかかわらず、NoSQLのデータ構造と原則を深く理解する必要があり、システムの恩恵を完全に受けるためです。柔軟なスキーマ、ドキュメントの格納、キーと値の操作などのコンセプトは、従来の関係データベースと比較して、データのモデル化と照会方法に変化をもたらします。純粋なSQL環境から来る開発者は、アプリケーションを最適化し、Oracle NoSQLが提供する柔軟性を利用するために、これらのNoSQLのコンセプトを学ぶ必要があります。

もう一つの考慮は、Oracle NoSQLに囲む成長する生態系についてです。このプラットフォームは素早く拡張し、JavaのフレームワークのJakarta EE、Springなど、開発者ツールに取り込まれ続けます。しかし、既に立ち上げられた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

このコマンドは、Docker上でOracle NoSQLインスタンスを設定し、複雑なインフラを设けずにテストおよびアプリケーション開発を簡単にする。

Oracle NoSQLはJakarta DataEclipse JNoSQLの生態系と密接に統合されています。以下は、Javaアプリケーションの例で、簡単なBeerエンティティを使用してOracle NoSQLとやりとりする方法を示しています。

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);
}

このアプリケーションを実行することで、開発者はOracle NoSQLとやりとりし、よく知られたJavaコンストラクトを使用してデータをクエリングしたり、持続したりすることができます。

結論

Oracle NoSQLデータベースは、高可用性、低 latency、多様なデータモデルと共に動作する必要のあるモダンアプリケーションを開発する開発者には柔軟的でスケーラブルな解決策を提供します。SQL互換性、マネージドクラウドサービス、幅広い開発ツールなどの機能により、Oracle NoSQLは初心者と有経験の開発者の両方に適した完璧な環境を提供します。クラウド上またはローカルでデプロイする場合も同様に、Oracle NoSQLは開発プロセスを簡素化し、開発者が機能を開発し、より速く価値を提供することを焦点に集约できます。

Oracle NoSQLと共に作業する方法の詳細なガイドラインについては、OracleのGitHubページに基づいてください。

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