1.13 グラフZeppelinインタプリタ・クライアントの使用

Oracle Graphは、Apache Zeppelinのインタプリタ・クライアント実装を提供します。このチュートリアル・トピックでは、グラフZepplinインタプリタ・クライアントを使用して単純な操作を実行する方法について説明します。

ローカルのZeppelinインストールにグラフ・インタプリタをインストールする方法の詳細は、グラフZeppelinインタプリタ・クライアントのインストールを参照してください。

インタプリタの使用

グラフ・インタプリタにpgxという名前を付けた場合は、他のインタプリタと同様に、%pgxディレクティブを使用して段落を開始することにより、グラフ・サーバーに段落を送信できます。

インタプリタは、リモート・グラフ・サーバーと対話するクライアントのように動作します。Zeppelinインタプリタ内に埋め込まれたグラフ・サーバー・インスタンスは実行できません。次の例に示すように、グラフ・サーバーのベースURLおよび接続情報を指定する必要があります。

%pgx
import oracle.pgx.api.*
import groovy.json.*
 
baseUrl = '<base-url>'
username = '<username>'
password = '<password>'
 
conn = new URL("$baseUrl/auth/token").openConnection()
conn.setRequestProperty('Content-Type', 'application/json')
token = conn.with {
  doOutput = true
  requestMethod = 'POST'
  outputStream.withWriter { writer ->
    writer << JsonOutput.toJson([username: username, password: password])
  }
  return new JsonSlurper().parseText(content.text).access_token
}
 
instance = Pgx.getInstance(baseUrl, token)
session = instance.createSession("my-session")

インメモリー・アナリストZeppelin Interpreterは、インメモリー・アナリスト・シェルと同じ方法で段落を評価して出力を返します。したがって、有効なインメモリー・アナリストのシェル・スクリプトはすべて、次の例のようにインメモリー・アナリスト・インタプリタで実行されます。

%pgx
g_brands = session.readGraphWithProperties("/opt/data/exommerce/brand_cat.json")
g_brands.getNumVertices()
rank = analyst.pagerank(g_brands, 0.001, 0.85, 100)
rank.getTopKValues(10)

次の図は、アイコンをクリックしてその問合せを実行した後の問合せの結果を示しています。

前述の図で確認できるように、Zeppelinインタプリタは、rank.getTopKValues(10)によってZeppelin表として返された値を自動的にレンダリングし、より便利な方法で結果を参照できるようにします。

プロパティ値(getTopKValues()getBottomKValues()およびgetValues())の他に、次の戻り型が段落から返された場合は、それらも自動的に表としてレンダリングされます。

  • PgqlResultSet - PgxGraphクラスのqueryPgql("...")メソッドによって返されるオブジェクト
  • MapIterable - PgxMapクラスのentries()メソッドによって返されるオブジェクト

他のすべての戻り型およびエラーは、インメモリー・アナリスト・シェルと同様に、通常の文字列として返されます。

Zeppelinの詳細は、公式のZeppelinドキュメントを参照してください。