Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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 に関する技術情報全般を記載したこちらの資料も合わせてご確認ください

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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も利⽤可能

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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/

Slide 15

Slide 15 text

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時点

Slide 16

Slide 16 text

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時点

Slide 17

Slide 17 text

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:@..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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

No content