Spark OLAPジョブでのNorthwindデモ・グラフの使用
Northwindデモ・グラフ・データに対してOLAPクエリーを実行します。
DSEデモに含まれているNorthwindデモでは、架空の証券会社に関するデータのグラフを作成するためのスクリプトを取り扱っています。
このタスクでは、Gremlin Consoleを使用してNorthwindグラフを作成し、グラフの一部分のスナップショットを取得して、SparkGraphComputerを使用してサブグラフでカウント操作を実行します。
始める前に
- データ・センターで、DSE Graph、DSE Search、およびDSE Analyticsモードを有効にします。
- DSE Graph Loaderをインストールします。
- グラフ・サンプルのGitリポジトリを、Gremlin Consoleをインストールしているマシンに複製します。
git clone https://github.com/datastax/graph-examples.git
手順
-
graphloader
ツールを使用して、Northwindグラフと補足データを読み込みます。graphloader -graph northwind -address localhost graph-examples/northwind/northwind-mapping.groovy -inputpath graph-examples/northwind/data && graphloader -graph northwind -address localhost graph-examples/northwind/supplemental-data-mapping.groovy -inputpath graph-examples/northwind/data/
-
dse gremlin-consoleコマンドを使用して、Gremlin Consoleを起動します。
dse gremlin-console
-
デフォルトのOLTP探索ソースを使用して、Northwindグラフに探索の別名を割り当てます。
:remote config alias g northwind.g
-
スキーマ・モードを
Development
に設定します。接続されたグラフ・データベースのスキーマの変更を許可するには、セッションごとにモードを
Development
に設定する必要があります。DSE Graphのデフォルトのスキーマ・モードはProduction
です。このモードの場合は、グラフのスキーマを変更できません。schema.config().option('graph.schema_mode').set('Development')
-
スキャンとラムダを使用できるようにします。
schema.config().option('graph.allow_scan').set('true') graph.schema().config().option('graph.traversal_sources.g.restrict_lambda').set(false)
-
northwind
グラフのスキーマを確認します。schema.describe()
-
Northwind分析OLAP探索ソース
a
に探索の別名を割り当てます。1回限りの分析クエリーの場合は、OLAP探索ソースに別名gを割り当てます。
:remote config alias g northwind.a
==>g=northwind.a
-
OLAP探索ソースを使用して頂点の数をカウントします。
g.V().count()
==>3294
OLAP探索ソース
database name.a
に別名g
を割り当てると、DSE Analyticsはワークロード・バックエンドになります。 -
graph.snapshot()を使用して、サブグラフをスナップショットに格納します。
1つのセッションでグラフに対して複数のOLAPクエリーを実行する必要がある場合は、探索ソースとしてグラフのスナップショットを使用します。
employees = graph.snapshot().vertices('employee').create()
==>graphtraversalsource[hadoopgraph[persistedinputrdd->persistedoutputrdd], sparkgraphcomputer]
categories = graph.snapshot().vertices('category').create()
==>graphtraversalsource[hadoopgraph[persistedinputrdd->persistedoutputrdd], sparkgraphcomputer]
snapshot()メソッドでは、SparkGraphComputerを使用してOLAP探索ソースを返します。
-
スナップショット・グラフで操作を実行します。
スナップショット・グラフで従業員の頂点の数をカウントします。
employees.V().count()
==> 9
スナップショット・グラフでカテゴリーの頂点の数をカウントします。
categories.V().count()
==> 8