専用Exadataインフラストラクチャ上のAutonomous DatabaseでのJSONドキュメントの使用

Autonomous Database on Dedicated Exadata Infrastructureは、トランザクション、索引付け、宣言的問合せおよびビューを含むリレーショナル・データベースの機能を使用してJavaScriptオブジェクト表記(JSON)データをネイティブにサポートしています。Autonomous Databaseでは、JSONドキュメントはリレーショナル・データと共存できます。

リレーショナル・データとは異なり、JSONデータは、データを定義するスキーマがなくても、データベースへの格納、索引付けおよび問合せを行うことができます。一般に、Autonomous DatabaseでJSONデータを作業するときには、次のタスクを実行します:
  1. is json format osonチェック制約を使用したJSON列の作成
  2. 列へのJSONデータの挿入、および
  3. JSONデータの問合せ
コード例を含む詳細な手順は、Autonomous DatabaseでのJSONドキュメントの作業を参照してください。
ノート

Oracle Database 19cでSODAを使用してコレクションにアクセスする場合、データベースがリリース21以上にアップグレードされるときにJSONデータ型の使用にスムーズに移行できるように、Oracle Database 21c以降用のインスタント・クライアントを使用することをお薦めします。

SQLおよびPL/SQL API

JSONデータの格納にAutonomous Databaseを使用すると、Autonomous Databaseで使用可能なすべての機能を利用できます。JSONデータと非JSONデータを組み合せることができます。データベースに格納されたJSONデータには、Oracle Call Interface (OCI)、Microsoft .NET Framework、Java Database Connectivity (JDBC)を使用するなど、他のデータベース・データにアクセスするときと同じ方法でアクセスできます。SQLおよびPL/SQL APIを使用したJSONドキュメントの作業の詳細は、Oracle DatabaseにおけるJSONを参照してください。

MongoDBのためのOracle APIのサポート

Oracle Database API for MongoDBは、MongoDBワイヤ・プロトコルをOracle Databaseによって実行されるSQL文に変換します。MongoDBスキル・セットを持つ開発者は、MongoDBプロトコルを理解するドライバおよびツールを使用するOracle Database用のJSONドキュメント・ストア・アプリケーションを記述できます。このAPIの詳細は、Oracle Database API for MongoDBOracle Database API for MongoDBの概要を参照してください。

Autonomous DatabaseでMongoDB APIを使用するには、顧客管理Oracle REST Data Services (ORDS)を個別にインストールおよび構成し、ORDSのバージョンは22.3以上である必要があります。このAPIのアーキテクチャ概念については、Oracle REST Data Servicesインストレーションおよび構成ガイドOracle API for MongoDBサポートを参照してください。

次に示すタスクを実行して、Autonomous Databaseで顧客管理ORDSを使用してMongoDBのOracle Database APIを有効にします。
  1. ords install adbコマンドを使用して、ORDSをインストールおよび構成します。

    詳細は、Oracle REST Data Servicesインストレーションおよび構成ガイドAutonomous Databaseでの顧客管理ORDSのインストールおよび構成を参照してください。

  2. ORDS対応ユーザーを作成します。

  3. MongoDBシェルを使用してORDSに接続します。

前述のステップのデモンストレーションについては、Oracle REST Data Servicesインストレーションおよび構成ガイドスタート・ガイドを参照してください。

Simple Oracle Document Access (SODA)

Oracleは、データベースに格納されたJSONデータにアクセスするためのSimple Oracle Document Access (SODA) APIのファミリも提供しています。SODAは、リレーショナル・データベースの機能や言語(SQLやPL/SQLなど)に関する知識なしでスキーマレス・アプリケーションを開発できるように設計されています。これにより、ドキュメントがデータベースにどのように格納されているかを知らなくても、ドキュメントのコレクションを作成してOracle Databaseに格納し、それを取得し、問い合せることができます。SODAの詳細は、ドキュメント・ストアとしてのOracleおよびSODAの概要を参照してください。

複数のSODA実装があります:
  • SODA for REST: Representational State Transfer (REST)リクエストは、HTTPコールを実行できる任意の言語を使用して、コレクション操作およびドキュメント操作を実行します。
  • SODA for Java: Javaクラスおよびインタフェースは、データベース、コレクションおよびドキュメントを表します。
  • SODA for PL/SQL: PL/SQLオブジェクト型は、コレクションおよびドキュメントを表します。
  • SODA for C: Oracle Call Interface (OCI)のハンドルは、コレクションおよびドキュメントを表します。
  • SODA for Node.js: NoSQLスタイルのSODA APIを使用して、SODAドキュメントを挿入、問合せおよび取得します。SodaDatabase、SodaCollection、SodaDocument、SodaDocumentCursor、SodaOperationなどのオブジェクトはそれぞれ、データベース、コレクション、ドキュメント、ドキュメント・カーソルおよび読取り/書込み操作を表します。
  • SODA for Python: NoSQLスタイルのcx_Oracleメソッドを使用して、SODAドキュメントを挿入、問合せおよび取得します。SodaDatabase、SodaCollection、SodaDocument、SodaDocumentCursor、SodaOperationなどのオブジェクトはそれぞれ、データベース、コレクション、ドキュメント、ドキュメント・カーソルおよび読取り/書込み操作を表します。
SODAドライバは、Autonomous Databaseの「詳細」ページからダウンロードできます。
  • Autonomous Databaseの「詳細」ページに移動します。専用Autonomous Databaseの詳細の表示を参照してください。
  • 「ツール」タブを開きます。
  • 「SODAドライバ」タイルを見つけて、「SODAドライバのダウンロード」をクリックします。
  • 表示されたドライバ・リストから、選択したSODAドライバをダウンロードします。

SODAコレクション・メタデータ

SODAコレクションは、Autonomous Databaseの表またはビューに基づく一連のドキュメントです。デフォルトでは、SODAドキュメント・コレクションを作成するとOracle Database内に次のものが作成されます:
  • 永続的なデフォルト・コレクション・メタデータ
  • SODAクライアントの接続先のデータベース・スキーマにコレクションを格納するための
コレクション・メタデータをカスタマイズして、デフォルトで提供される動作とは異なる動作を取得できます。Autonomous Databaseでカスタマイズできるメタデータは、ドキュメント・キー生成方法およびコンテンツ・メディア・タイプのみです。具体的には、JSONコンテンツの格納に使用する列(コンテンツ列)のSQLデータ型は変更できません。デフォルトおよびカスタマイズしたコレクション・メタデータの使用方法は、Autonomous DatabaseのSODAコレクション・メタデータを参照してください。

SODAおよびJSONの使用に関する制限事項

Autonomous DatabaseはSODAおよびJSONをサポートしていますが、次の制限があります:
  • SQL/JSONファンクションjson_existsを使用するSQLおよびPL/SQLコードでは、自動索引付けはサポートされていません。詳細は、SQL/JSON条件JSON_EXISTSを参照してください。
  • SODAの例による問合せ(QBE)では、自動索引付けはサポートされていません。