9 プロパティ・グラフ・ビューを使用するためのクイック・スタート
この章では、プロパティ・グラフ・ビューの操作を開始する際に役立つクイック・スタート・チュートリアルおよびその他のリソースについて説明します。
- グラフ分析のサンプル・データの使用
- クイック・スタート: プロパティ・グラフ・ビューの操作
このチュートリアルは、プロパティ・グラフ・ビューでのグラフ・アルゴリズムの作成、問合せおよび実行を開始するのに役立ちます。 - クイック・スタート: Pythonクライアントをモジュールとして使用
このセクションでは、PythonアプリケーションのモジュールとしてPythonクライアントを使用する方法について説明します。 - グラフに関するOracle LiveLabsワークショップ
Oracle LiveLabsのグラフ・ワークショップを使用して、Oracleプロパティ・グラフの機能を探索することもできます。
親トピック: プロパティ・グラフ・ビュー
9.1 グラフ分析のサンプルデータの使用
グラフ・サーバーのrpmインストールでは、/opt/oracle/graph/data
ディレクトリにサンプル・グラフ・データが提供されます。
bank_graph
フォルダには、bank_nodes.csv
ファイルおよびbank_edges_amt.csv
ファイル内のグラフの頂点とエッジを表すデータがそれぞれ格納されます。これらの.csv
ファイルからデータベースにグラフ・データをインポートできます。その後、問合せおよび分析用のグラフを作成できます。
9.1.1 CSVファイルからのデータのインポート
-
ファイルから表にデータをインポートする方法については、Oracle SQL Developerユーザーズ・ガイドのデータ・インポート・ウィザードを参照してください。
- データ転送ユーティリティの詳細は、Oracle Databaseユーティリティを参照してください。
次に、Oracle SQL Loaderを使用してデータをデータベース表にロードする手順を示します。
bank_accounts
)表およびエッジ(bank_txns
)表を作成する必要があります。CREATE TABLE bank_accounts(id NUMBER, name VARCHAR2(10));
CREATE TABLE bank_txns(from_acct_id NUMBER, to_acct_id NUMBER, description VARCHAR2(10), amount NUMBER);
次に、次のステップを実行してデータをロードします。
親トピック: グラフ分析のサンプル・データの使用
9.2 クイック・スタート: プロパティ・グラフ・ビューの操作
このチュートリアルは、プロパティ・グラフ・ビューでのグラフ・アルゴリズムの作成、問合せおよび実行を開始するのに役立ちます。
9.3 クイック・スタート: Pythonクライアントをモジュールとして使用
このセクションでは、PythonクライアントをPythonアプリケーションでモジュールとして使用する方法について説明します。
リモート・サーバー
このモードで必要なのは、インストールするPythonクライアントのみです。Pythonプログラムでは、次の例に示すように、セッションを作成する前にリモート・サーバーで認証する必要があります。base_url
、jdbc_url
、username
およびpassword
の値を、環境の詳細と一致する値で置き換える必要があることに注意してください。
import pypgx
import opg4py
import opg4py.graph_server as graph_server
pgql_conn = opg4py.pgql.get_connection("<username>","<password>", "<jdbc_url>")
pgql_statement = pgql_conn.create_statement()
pgql = """
CREATE PROPERTY GRAPH bank_graph
VERTEX TABLES (
bank_accounts
LABEL ACCOUNTS
PROPERTIES (ID, NAME)
)
EDGE TABLES (
bank_txns
SOURCE KEY (from_acct_id) REFERENCES bank_accounts
DESTINATION KEY (to_acct_id) REFERENCES bank_accounts
LABEL TRANSFERS
PROPERTIES (FROM_ACCT_ID, TO_ACCT_ID, AMOUNT, DESCRIPTION)
) OPTIONS(PG_VIEW)
"""
pgql_statement.execute(pgql)
instance = graph_server.get_instance("<base_url>", "<username>", "<password>")
session = instance.create_session("my_session")
graph = session.read_graph_by_name('BANK_GRAPH', 'pg_view')
analyst = session.create_analyst()
analyst.pagerank(graph)
rs = graph.query_pgql("SELECT id(x), x.pagerank FROM MATCH (x) LIMIT 5")
rs.print()
実行するには、前述のプログラムをprogram.py
という名前のファイルに保存し、次のコマンドを実行します。
python3 program.py
次の出力が表示されます。
+-------------------------------------------+
| id(x) | pagerank |
+-------------------------------------------+
| BANK_ACCOUNTS(2) | 9.749447313256548E-4 |
| BANK_ACCOUNTS(4) | 0.004584001759076056 |
| BANK_ACCOUNTS(6) | 5.358461393401424E-4 |
| BANK_ACCOUNTS(8) | 0.0013051552434930175 |
| BANK_ACCOUNTS(10) | 0.0015040122009364232 |
+-------------------------------------------+
PGQL結果セットからPandasデータフレームへの変換
to_pandas()
メソッドを使用して、PGQL結果セットをpandas.DataFrame
オブジェクトに変換することもできます。これによって、結果セットに対して様々なデータ・フィルタリング操作をより簡単に実行できるようになるとともに、それをラムダ関数で使用することもできます。たとえば、example_query = (
"SELECT n.name AS name, n.age AS age "
"WHERE (n)"
)
result_set = sample_graph.query_pgql(example_query)
result_df = result_set.to_pandas()
result_df['age_bin'] = result_df['age'].apply(lambda x: int(x)/20) # create age bins based on age ranges
ノート:
使用可能なPython APIの完全なセットを確認するには、OPG4PY Python API リファレンスを参照してください。組込みサーバー
このモードでは、PythonクライアントとGraph Server RPMパッケージを同じマシンにインストールする必要があります。
import os
os.environ["PGX_CLASSPATH"] = "/opt/oracle/graph/lib/*"
instance = graph_server.get_embedded_instance()
session = instance.create_session("python_pgx_client")
print(session)
実行するには、前述のプログラムをprogram.py
という名前のファイルに保存し、次のコマンドを実行します。
python3 program.py
ログインに成功すると、PGXセッションが作成されたことを示す次のようなメッセージが表示されます:
PgxSession(id: 32fc7037-18f1-4381-ba94-107e5f63aec2, name: python_pgx_client)
ノート:
使用可能なPython APIの完全なセットを確認するには、OPG4PY Python API リファレンスを参照してください。9.4 グラフに関するOracle LiveLabsワークショップ
Oracle LiveLabsのグラフ・ワークショップを使用して、Oracleプロパティ・グラフの機能を探索することもできます。
無償枠のAutonomous Databaseインスタンスに格納されているデータを使用したグラフの問合せ、分析および視覚化に関する完全な例は、Oracle Livelabsワークショップを参照してください。新しい無償枠のAutonomous Databaseインスタンスをプロビジョニングし、そこにデータをロードして、グラフを作成した後、グラフの問合せ、分析および視覚化を行います。