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

Oracle Database Technology Night #47 DBAのための機械学習&グラフデータベース入門(DBAのためのグラフ・データベース)

Oracle Database Technology Night #47 DBAのための機械学習&グラフデータベース入門(DBAのためのグラフ・データベース)

グラフ・データベースや機械学習、これらの技術はいまや幅広い分野で利用され、これからのデジタル・トランスフォーメーション時代のシステムには欠かせない技術の1つとなっています。一方で今までデータベースの開発・運用に携わってきた皆さんの中には、なかなか手を出しづらいと思われている方もいらっしゃるのではないでしょうか?

今回のOracle Database Technology Nightでは、Oracleのエキスパートよりデータベース・エンジニアの皆様に向けたグラフおよび機械学習の入門講座を行います。
Oracle Databaseですぐにグラフや機械学習を始められるGraph StudioやAutoML UIといったツールも登場しています。これらの分野は初めて、といった方でもお楽しみいただける、技術的説明+実演といった構成になっております。
是非ここからグラフや機械学習を始めてみませんか?

oracle4engineer

August 27, 2021
Tweet

More Decks by oracle4engineer

Other Decks in Technology

Transcript

  1. 関係性の発見や理解が重要になる場合にグラフは力を発揮します: 例) 1. Bob と Charlieに 何かしらの資金のやり取りは存在しているか? 2. トランザクションの中からコミュニティを検出できるか? Why

    Graph Databases? Copyright © 2021, Oracle and/or its affiliates 2 acc_id cst_id a1 c2 a2 c1 a3 c4 a4 c3 a5 c1 ... src_acc dst_acc amount date a1 a3 $20,000 2020-10-01 a5 a4 $30,000 2020-10-02 a4 a2 $10,000 2020-10-03 a3 a5 $20,000 2020-10-04 ... ... Account Transaction cst_id name c1 Alice c2 Bob c3 Charlie c4 Dave ... ... Customer
  2. 1. Bob と Charlieに 何かしらの資金のやり取りは存在してい るか? グラフパターンを用いたクエリ - 直感的なクエリのシンタックス -

    高速なトラバーサル - パス検索 Why Graph Databases? Copyright © 2021, Oracle and/or its affiliates 3 c1 (Alice) c2 (Bob) c3 (Charlie) c4 (Dave) a1 a2 a3 a4 a5 $20,000 $20,000 $30,000 $10,000
  3. CaixaBank ソーシャルな関係グラフを構築、分析し、顧客プロファイル の向上やリスクスコアリングに活用 video 事例 Copyright © 2021, Oracle and/or

    its affiliates 5 Paysafe オンライン決済ソリューションとして、グラフをリアルタイムの 不正検知分析に活用 slides, video
  4. プロパティグラフのモデルとグラフデータベース Copyright © 2021, Oracle and/or its affiliates 6 SELECT

    DISTINCT a2.city MATCH (a1)-[f1]->(a2) WHERE a1.city = 'Bangkok' AND f1.airline = 'Japan Airlines' グラフパターンを用いたクエリ プロパティグラフのモデル グラフアルゴリズム オラクルデータベースにプロパティグラフデータを格納可能で、グラフデータベースの機能も活用できます グラフパターンを用いたクエリでのデータ検索やアルゴリズムを用いた計算等が実行できます
  5. PGQL MATCH 句はグラフのパターンを記載します マリオとルイージの共通の祖先を探す場合 グラフパターンを用いたクエリ (PGQL) Copyright © 2021, Oracle

    and/or its affiliates 7 SELECT p.name FROM MATCH (m:Person)-[:likes]->(p:Person) WHERE m.name = 'Mario' PATH has_parent AS () -[:has_father|has_mother]-> (:Person) SELECT ancestor.name FROM MATCH (p1:Person) -/:has_parent+/-> (ancestor) , MATCH (p2:Person) -/:has_parent+/-> (ancestor) WHERE p1.name = 'Mario' AND p2.name = 'Luigi'
  6. 60個以上のグラフアルゴリズム Detecting components and communities Strongly Connected Components, Weakly Connected

    Components, Label Propagation, Conductance Minimization, Infomap Ranking and walking PageRank, Personalized PageRank, Degree Centrality, Closeness Centrality, Vertex Betweenness Centrality, Eigenvector Centrality, HITS, SALSA, Random Walk with Restart Evaluating structures Adamic-Adar Index, Conductance, Cycle Detection, Degree Distribution, Eccentricity, K-Core, LCC, Modularity, Reachability Topological Ordering, Triangle Counting Path-finding Shortest Path (Bellman-Ford, Dijkstra, Bidirectional Dijkstra), Fattest Path, Compute Distance Index, Enumerate Simple Paths, Fast Path Finding, Hop Distance Link prediction and others WTF (Who to follow) Minimum Spanning-Tree, Matrix Factorization Machine learning DeepWalk * Supervised GraphWise * Pg2Vec * Copyright © 2021, Oracle and/or its affiliates 8 * Not yet supported in Graph Studio
  7. グラフの可視化ツール Copyright © 2021, Oracle and/or its affiliates 9 Graph

    Visualizationはビルトインの PGQLクエリを実行し、実行結果を描 画するためのツールです。 データベースユーザーのアカウントでログ インをして、ユーザーが所有しているグラ フにのみアクセスが可能です。
  8. • リレーショナル表のデータからグラフを作成可能 • CREATE PROPERTY GRAPH 文を使用した宣言的なマッピング • ビューとしてグラフを保持(PG View)

    • グラフデータを他のデータモデルと同じデータベース上で利用可能 • リレーショナル表、JSON、地理空間、機械学習、ブロックチェーン • トランザクションと分析の両方の用途をリアルタイムに実現 • データベース運用の一本化 • バックアップ・リカバリ等 • 新たなライセンスが不要 • グラフ機能はすべての Oracle Database エディションに含まれます Oracle Database を使うメリット Copyright © 2021, Oracle and/or its affiliates 10
  9. 2階層構成 (PG Schema のみの場合) Copyright © 2021, Oracle and/or its

    affiliates 11 • グラフデータはオラクルデータベースのテーブルに格納されます(ノード表,エッジ表,インデックス表など) • グラフの作成、アップデート、セレクト、検索はJava API経由でPGQLクエリで実行可能 Oracle Database Graph Client - Java Graph Viz SQLcl PGQL
  10. 2階層構成 (リレーショナル表 + PG Schema ) Copyright © 2021, Oracle

    and/or its affiliates 12 • CREATE PROPERTY GRAPH文を利用して、リレーショナル表のデータがグラフに変換可能 • このDDLはGraph Clientから発行され、グラフを格納する表はデータベース内に生成されます Graph Client - Java Graph Viz SQLcl PGQL Oracle Database DDL
  11. 2階層構成 (リレーショナル表 + PG Views) Copyright © 2021, Oracle and/or

    its affiliates 13 • 同じCREATE PROPERTY GRAPH 文を使用して、グラフはビューとして作成されます • データは複製されず、PGQLクエリは内部的にSQLクエリに変換されます Graph Client - Java Graph Viz SQLcl PGQL DDL Oracle Database
  12. 3階層構成 (PG Schema) Copyright © 2021, Oracle and/or its affiliates

    14 • 3階層構成は全ての機能が利用可能です(アルゴリズムなど) • Graph Server はデータベースの外に構築されます Graph Client - Java - Python Graph Viz load PGQL & Algo SQLcl PGQL PGQL Oracle Database Graph Server (PGX)
  13. 3階層構成 (リレーショナル表 + PG Views) Copyright © 2021, Oracle and/or

    its affiliates 15 • 同じCREATE PROPERTY GRAPH 文を使用して、グラフはビューとして作成されます • データは複製されず、PGQLクエリは内部的にSQLクエリに変換されます Graph Client - Java - Python Graph Viz load PGQL & Algo SQLcl PGQL PGQL Oracle Database Graph Server (PGX) DDL
  14. 3階層構成 (リレーショナル表のみ) Copyright © 2021, Oracle and/or its affiliates 16

    • リレーショナル表から直接データをグラフサーバーにロードすることが可能です • データソースはリレーショナル表で更新され、グラフの利用は分析用途のみに限られます Graph Client - Java - Python Graph Viz load PGQL & Algo SQLcl PGQL (DDL) Oracle Database Graph Server (PGX)
  15. Graph Studio でグラフを作成 Copyright © 2021, Oracle and/or its affiliates

    19 • PGQL クエリを用いて空のグラフを作成、ノードとエッジを追加します
  16. 2-tier Deployment (PG Schema Only) Copyright © 2021, Oracle and/or

    its affiliates 20 • グラフデータはオラクルデータベースのテーブルに格納されます(ノード表,エッジ表,インデックス表など) • グラフの作成、アップデート、セレクト、検索はJava API経由でPGQLクエリで実行可能 Oracle Database Graph Client - Java Graph Viz SQLcl PGQL
  17. Graph Studio で既存のリレーショナル表のデータからグラフを作成 Copyright © 2021, Oracle and/or its affiliates

    21 • リレーショナル表に既にデータが格納されている場合 • マッピングを記述することにより、グラフを作成することができます • この際、ビューとしてグラフを作成することもできます
  18. 2階層構成 (リレーショナル表 + PG Schema ) Copyright © 2021, Oracle

    and/or its affiliates 22 • CREATE PROPERTY GRAPH文を利用して、リレーショナル表のデータがグラフに変換可能 • このDDLはGraph Clientから発行され、グラフを格納する表はデータベース内に生成されます Graph Client - Java Graph Viz SQLcl PGQL Oracle Database DDL
  19. 2階層構成 (リレーショナル表 + PG Views) Copyright © 2021, Oracle and/or

    its affiliates 23 • 同じCREATE PROPERTY GRAPH 文を使用して、グラフはビューとして作成されます • データは複製されず、PGQLクエリは内部的にSQLクエリに変換されます Graph Client - Java Graph Viz SQLcl PGQL DDL Oracle Database
  20. SQLcl で SQL への翻訳を確認 Copyright © 2021, Oracle and/or its

    affiliates 24 • PGQL は SQL に変換されて実行されます • グラフを表(= PG スキーマ)とビュー(= PG ビュー)として作成した場合、それぞれについて変換された SQL を確認します
  21. Graph Server を使うメリット Copyright © 2021, Oracle and/or its affiliates

    25 • すべてのデータがメモリ上に「グラフとして」展開される • インデックスを使わずにグラフを辿れる • グラフアルゴリズムを実行可能 load Oracle Database Graph Server (PGX) DDL
  22. グラフを Graph Server にロード Copyright © 2021, Oracle and/or its

    affiliates 26 • 作成したグラフ(PG スキーマまたは PG ビュー)を Graph Server にロードします • Graph Server は ADB とは別のインスタンスが自動的に起動します • 5分使わないと終了します
  23. 3階層構成 (リレーショナル表 + PG Views) Copyright © 2021, Oracle and/or

    its affiliates 27 • 同じCREATE PROPERTY GRAPH 文を使用して、グラフはビューとして作成されます • データは複製されず、PGQLクエリは内部的にSQLクエリに変換されます Graph Client - Java - Python Graph Viz load PGQL & Algo SQLcl PGQL PGQL Oracle Database Graph Server (PGX) DDL
  24. Notebook を使用して分析 Copyright © 2021, Oracle and/or its affiliates 28

    • PGQL および JShell が使用できます(将来的に Python もサポート予定) • PGQL のクエリ結果はグラフとして可視化 • JShell でアルゴリズム実行など • 共有も簡単
  25. PGQL の実行計画 Copyright © 2021, Oracle and/or its affiliates 29

    • https://join.slack.com/t/andouc/shared_invite/zt-mfbk0un9- E7mgQweUfBnJ6BfRgcTeMQ • 現時点では公開されている情報は少ないので、Slack などで問い合わせを推奨!
  26. Copyright © 2021, Oracle and/or its affiliates 31 Graph Server

    and Client - Resources • Doumentation • どのデータベースバージョンを利用する際も最新版のgraphドキュメントをご参照ください: https://docs.oracle.com/en/database/oracle/property-graph/index.html • Graph Server and Clientはオラクルデータベース12.2以降で利用可能 • Download • パッケージはデータベースごとに別々に入手可能です: https://www.oracle.com/database/technologies/spatialandgraph/property-graph-features/graph- server-and-client/graph-server-and-client-downloads.html • Q&A https://community.oracle.com/tech/apps-infra/categories/graph • ワークショップ https://apexapps.oracle.com/pls/apex/f?p=133:100:110908502382914::::SEARCH:graph
  27. Copyright © 2021, Oracle and/or its affiliates 33 Resources -

    LiveLabs Graph Studio • Getting Started with Graph Studio How to use Graph Studio on Autonomous Database for beginners https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=758 • Graph Studio: Finding Circular Payment Chains using Graph Queries Use graph analytics and visualization to detect potentially fraudulent money transfers https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=770 Grapy Server and Client • Analyze, Query, and Visualize Graphs in Oracle Database How to setup the Marketplace image with Autonomous Database and use queries and algorithms https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wid=686
  28. • Video • Autonomous Graph Database: A tour of the

    Graph Studio interface https://youtu.be/S6Q-IJcBkU0 • Tutorial • Getting started with Autonomous Graph Workshop https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wec=0087-LVWV- GLZJ-PHDS • Graph Studio: Finding Circular Payment Chains using Graph Queries Workshop https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/view-workshop?wec=0115-KOQZ- ROBR-AKAK • Documentation Portal https://docs.oracle.com/en/cloud/paas/autonomous-database/graph-studio.html Links Copyright © 2021, Oracle and/or its affiliates 34