Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Autonomous JSON Database 技術概要 / ajd_technical_detail_jp

Autonomous JSON Database 技術概要 / ajd_technical_detail_jp

Autonomous Databaseのインスタンスタイプの一つである、
Oracle Autonomous JSON Database (AJD) に関するサービス概要です。

その他、参考資料)
■マニュアル
https://docs.oracle.com/en/cloud/paas/autonomous-json-database/index.html

■Autonomous Database技術詳細(全般)
https://speakerdeck.com/oracle4engineer/adb-s-technical-detail-jp

oracle4engineer
PRO

January 11, 2022
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. ⽇本オラクル株式会社
    クラウド・エンジニアリング統括
    Autonomousソリューション部
    2022/1/17
    技術概要
    Autonomous JSON Database

    View Slide

  2. Safe harbor statement
    以下の事項は、弊社の⼀般的な製品の⽅向性に関する概要を説明するものです。また、
    情報提供を唯⼀の⽬的とするものであり、いかなる契約にも組み込むことはできません。以
    下の事項は、マテリアルやコード、機能を提供することを確約するものではないため、購買
    決定を⾏う際の判断材料になさらないで下さい。
    オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊
    社の裁量により決定され、変更される可能性があります。
    Copyright © 2022, Oracle and/or its affiliates
    3

    View Slide

  3. 6 Copyright © 2022, Oracle and/or its affiliates|
    はじめに
    最新情報や詳細情報は以下もご参照ください
    マニュアル
    • AJD : https://docs.oracle.com/en/cloud/paas/autonomous-json-database/index.html
    その他、 Autonomous Database に関する技術情報全般
    • Autonomous Database 技術詳細
    • 「Autonomous Database 技術詳細」で検索ください。Speaker Deckにアップしています。
    本資料の内容については、クラウド・エンジニアリング統括、Autonomousソリューション部にお問い合わせください
    AJDはAutonomous Database – Shared(ADB-S)と共通する部分が多いため、
    Autonomous Database に関する技術情報全般を記載したこちらの資料も合わせてご確認ください

    View Slide

  4. 概要
    Copyright © 2022, Oracle and/or its affiliates.
    7

    View Slide

  5. 8 Copyright © 2022, Oracle and/or its affiliates|
    Autonomous JSON Database
    JSONストレージのためのマネージド・サービス
    JSONをベースとした開発のための新サービス
    • ネイティブJSONストレージ
    • シンプルなドキュメントAPI
    • 各種⾔語・ドライバに対応
    • SQLは必ずしも不要
    NoSQL ドキュメントストアと同様のベネフィットを提供
    • 柔軟性が⾼く、迅速にスケール(Compute/Storage)
    • Read / Write時の低レイテンシ
    • ⾼可⽤性
    • 低価格
    低価格
    ⾼可⽤性
    低レイテンシ
    柔軟性
    $
    24
    7

    View Slide

  6. 9 Copyright © 2022, Oracle and/or its affiliates|
    Autonomous JSON Database
    JSONストレージのためのマネージド・サービス
    さらに優れたポイント
    • Autonomous Database 上で稼働
    • ⾼い性能、可⽤性、セキュリティ、柔軟性
    • エンタープライズ・データベース
    • ACID トランザクションに対応
    • SQLを完全サポート
    • APEX に対応
    • One-click でATPインスタンスにアップグレード可能
    SQL
    REST

    View Slide

  7. 10 Copyright © 2022, Oracle and/or its affiliates |
    Autonomous JSON Database
    NoSQL および SQL からのアクセスをサポート
    API
    Oracle Database / Exadataに
    JSONドキュメントを保管
    JSONに対するSQLベースの
    レポート作成と分析操作
    SQL
    Autonomous Database
    SODA API を利⽤した
    アプリケーションからの操作 *
    * MongoDB互換のAPIも利⽤可能

    View Slide

  8. NoSQLを利⽤したシンプルな開発
    Copyright © 2022, Oracle and/or its affiliates.
    11

    View Slide

  9. 12 Copyright © 2022, Oracle and/or its affiliates|
    Autonomous JSON Database
    NoSQLを利⽤したシンプルな開発
    SQL
    JSON
    Autonomous Database
    SODA APIを使⽤して
    開発されたアプリケーション
    Oracle Database / Exadataを使⽤した
    JSONドキュメントの保存と管理
    JSONに対するSQLベースの
    レポート作成と分析操作

    View Slide

  10. 13 Copyright © 2022, Oracle and/or its affiliates|
    SODA (Simple Oracle Document Access)
    SODA APIs
    • NoSQLスタイルのAPI
    • Java, JavaScript/Node.js, Python,
    REST, PL/SQL, C…
    • JSONデータの管理に利⽤
    • create collections
    • store documents in collections
    • retrieve documents
    • query documents

    View Slide

  11. 14 Copyright © 2022, Oracle and/or its affiliates|
    SODA (Simple Oracle Document Access)
    様々な⾔語に対応
    Java
    OracleClient client = new OracleRDBMSClient();
    db = client.getDatabase(jdbcConn);
    OracleCollection col =
    db.admin.createCollection("purchase_orders");
    col.admin().drop();
    Node.js
    conn = await oracledb.getConnection(…);
    db = conn.getSodaDatabase();
    col = await db.createCollection("purchase_orders");
    await col.drop();
    PL/SQL (and Oracle Application Express)
    col := dbms_soda.create_collection('purchase_orders');
    select dbms_soda.drop_collection('purchase_orders')
    from dual;
    Python
    conn =cx_Oracle.connect(…);
    db = conn.getSodaDatabase();
    col = db.createCollection("purchase_orders");
    col.drop();

    View Slide

  12. 15 Copyright © 2022, Oracle and/or its affiliates|
    SODA (Simple Oracle Document Access)
    対応ツール
    SQLcl
    • Oracleデータベース⽤のコマンドラインインターフェイス
    • SQLおよびPL/SQLを実⾏・操作
    • SODAコマンドの発⾏が可能
    SQL Developer Web
    • Autonomous Databaseに同梱された
    開発ツール
    • SQLおよびPL/SQLを実⾏・操作
    • SODAコマンドの発⾏が可能
    SQL Developer Web

    View Slide

  13. MongoClient mongoClient = new MongoClient();
    DB database = mongoClient.getDB("procurement");
    DBCollection coll =
    database.getCollection("purchase_orders");
    BasicDBObject po = new
    BasicDBObject(JSON.parse(json1));
    coll.insert(po);
    DBObject query = new BasicDBObject("Requestor",
    "Alexis Bull");
    DBCursor cursor = coll.find(query);
    DBObject doc = cursor.one();
    OracleDatabase db = new
    OracleRDBMSClient().getDatabase(jdbcConnection);
    OracleCollection coll =
    db.admin().createCollection("purchase_orders");
    OracleDocument po =
    db.createDocumentFromString(json1));
    coll.insert(po);
    OracleDocument qbe =
    db.createDocumentFromString("""{"Requestor":"Alexis
    Bull"}""");
    OracleCursor cursor =
    coll.find().filter(qbe).getCursor();
    OracleDocument doc = cursor.next();
    MongoDB と Oracle SODA との⽐較
    Copyright © 2022, Oracle and/or its affiliates|
    16

    View Slide

  14. 17 Copyright © 2022, Oracle and/or its affiliates|
    MongoDB と Oracle SODA との制限⽐較
    2020/08時点
    Autonomous JSON Database MongoDB Atlas
    ドキュメント最⼤サイズ 32 MB 16 MB
    ドキュメントの最⼤ネスト深度 1024レベル 100レベル
    コレクション毎の索引数 制限なし 64
    複合索引のフィールド数 制限なし 32
    ドキュメント全体への索引 JSON SEARCH Index なし
    サーバー側での関数の実装 Functions, Procedures, Triggers お勧めしない*1
    トランザクション管理 常にACIDが有効 ACIDは明⽰的なAPI呼び出しによるリクエスト時のみ
    トランザクションの持続期間 制限なし デフォルト60秒。超えた場合はクエリが破棄される
    トランザクションサイズ 制限なし 1000 documents 以下が推奨
    集計データサイズ 制限なし 100 MBのRAM制限
    (超える場合は、allowDiskUse パラメータを利⽤)
    複数ドキュメントにわたるSQL 可能 なし
    Source : https://blogs.oracle.com/jsondb/autonomous-json-database
    *1 : https://docs.mongodb.com/manual/tutorial/store-javascript-function-on-server/

    View Slide

  15. 18 Copyright © 2022, Oracle and/or its affiliates|
    MongoDB と Oracle SODA との制限⽐較
    Autonomous JSON Database MongoDB Atlas
    auto-scaling ✓ X
    SQLアクセス ✓ X
    コレクション間の分析 ✓ X
    セキュリティ ✓ X
    コスト $2.74 / hour $3.95 / hour
    2020/08時点

    View Slide

  16. 19 Copyright © 2022, Oracle and/or its affiliates|
    Autonomous JSON Database
    MongoDB よりも低コストで利⽤可能
    Autonomous JSON Database Pricing:
    • $0.3226 OCPU per hour ($240/month)
    • $0.1591 TB per hour ($118.40/month)
    Autonomous JSON DB MongoDB Atlas
    Configuration 8 OCPU
    1 TB storage
    M60 on AWS
    16 vCPU (= 8 OCPU)
    320 GB storage
    Price (on-demand) $2.74 / hour $3.95 / hour
    PLUS: Autonomous JSON Database は auto-scalingに対応
    2020/09時点

    View Slide

  17. 21 Copyright © 2022, Oracle and/or its affiliates |
    Oracle Database API for MongoDB
    MongoDB⽤のAPIを提供 NEW︕
    既存のMongoDBからの移⾏が容易に
    • MongoDB⽤に作成されたアプリケーションでAutonomous Databaseにアクセス可能
    注意点
    • AJDまたはATPで利⽤可能
    • アクセス制御リスト(ACL)で保護されたネットワークアクセスを使⽤する必要がある
    (許可されたIPおよびVCNアクセスタイプからの安全なアクセスを使⽤する)
    • プライベートエンドポイントおよびACLで保護されていないパブリックエンドポイント(すべての場所からのセキュアアク
    セスを許可)は⾮サポート
    2021/12
    $ mongosh --tls --tlsAllowInvalidCertificates
    'mongodb://TESTUSER:@.region>.oraclecloudapps.com:27017/admin?authMechanism=PLA
    IN&authSource=$external&ssl=true&loadBalanced=false'
    testuser> db.createCollection('fruit');
    testuser> db.fruit.insertOne( {name:"orange", count:42} )
    testuser> db.fruit.insertOne( {name:"apple", count:12,
    color: "red"} )
    JSON
    MongoDB アプリケーション
    サービスコンソールの[開発]でMongoDB接続⽂字列を確認
    →LoadBalancedプロパティをサポートしているドライバの場合
    →LoadBalancedプロパティをサポートしていないドライバの場合
    AJD or ATP

    View Slide

  18. SQLを利⽤した柔軟な開発
    Copyright © 2022, Oracle and/or its affiliates.
    22

    View Slide

  19. 23 Copyright © 2022, Oracle and/or its affiliates|
    Autonomous JSON Database
    SQLを利⽤した柔軟な開発
    JSON
    Autonomous Database
    SQL
    SODA APIを使⽤して
    開発されたアプリケーション
    Oracle Database / Exadataを使⽤した
    JSONドキュメントの保存と管理
    JSONに対するSQLベースの
    レポート作成と分析操作

    View Slide

  20. 24 Copyright © 2022, Oracle and/or its affiliates|
    シンプルな構⽂
    SQL> select j.PO_DOCUMENT
    2 from J_PURCHASEORDER j
    3 where j.PO_DOCUMENT.PONumber = 1600;
    SQL> select *
    2 from CUSTOMER NESTED jcol.orders.lineitems[*]
    3 COLUMNS (lineid, quantity, prodid, upc, comments);
    SQL> select JSON_OBJECT(c.jcol.orders.lineitems FORMAT JSON)
    2 from CUSTOMERS c;
    Field Access
    Collection unnesting
    JSON Generation

    View Slide

  21. 25 Copyright © 2022, Oracle and/or its affiliates
    JSONデータのための充実したSQL機能
    空間分析(Spatial)
    • GeoJSON上で実⾏できる何百もの組み込み空間分析機能
    機械学習(Machine Learning)
    • 30以上の内蔵MLアルゴリズムによるモデルの構築とスコア化
    ⼿続き型⾔語
    • JSON拡張機能、SODAをサポートを備えたPL/SQLを利⽤可能
    プライベートデータベース
    • ドキュメントベースのきめ細かなセキュリティポリシー
    さらに Autonomous JSON Database はリレーショナルデータ⽤に20GBの領域を利⽤可能

    View Slide

  22. まとめ
    Copyright © 2022, Oracle and/or its affiliates.
    26

    View Slide

  23. 27 Copyright © 2022, Oracle and/or its affiliates
    まとめ
    ドキュメントサービスに特化した3つ⽬のAutonomous Database
    JSONを中⼼とした開発のためのサービス
    • JSONを利⽤したNoSQL型アプリケーションの開発に特化
    • JSONコレクションベースのデータモデル
    • 各種⾔語,ドライバにAPIを提供
    開発を加速するための実績あるエンタープライズ・データベース機能
    • ACID トランザクション
    • JSONデータに対するSQLによるレポーティング処理、分析処理が可能
    Autonomous Database の特徴はそのまま
    • ⾼い可⽤性、セキュリティ、柔軟性
    AJD

    View Slide

  24. 28 Copyright © 2022, Oracle and/or its affiliates|
    Autonomous JSON Database
    その他、特記事項
    • Sharedでのみ利⽤可能(Dedicatedには現時点で未対応)
    • BYOLは選択不可(Liscence Includeのみ選択可能)
    • Always Free は選択不可
    • アップグレードパス
    • Free ATPからのAJDへの変更が可能(Free ADWからは不可)
    • AJDからATPへの変更が可能(ATPからAJDへのダウングレードは不可、ADWへの変更は不可)
    • APEX, OML, SQL Developer Webに対応
    • Auto Scaling、Autonomous Data Guard、クローンによる複製、Data Safeに対応
    • その他機能制限については以下マニュアルを参照ください
    • https://docs.oracle.com/en/cloud/paas/autonomous-json-database/ajdug/experienced-
    database-users.html

    View Slide

  25. 29 Copyright © 2022, Oracle and/or its affiliates
    良くある質問
    ATPとAJDとの違いは何ですか︖
    ATPとAJDの技術的な違いは何ですか︖
    ATPとAJDの技術的な違いは、AJDは20GBの⾮JSONデータの制限があることだけです。
    他のすべての機能、機能、パフォーマンスは同じです。
    AJDは、これまでコスト観点でOracle Databaseを検討できていなかったお客様・開発
    者の⽅々に、⾮常にお得な価格でOracle Database をお使いいただけるサービスです。

    View Slide

  26. 30 Copyright © 2022, Oracle and/or its affiliates
    良くある質問
    ATPとAJDとの違いは何ですか︖
    MongoDBからのデータ移⾏はどうすれば良いですか︖
    MongoDBのエクスポートユーティリティを利⽤し、JSON形式のファイルに出⼒、AJDに
    ロードします。

    View Slide

  27. View Slide