グラフを可視化する

この機能に関するサポートのリクエストやフィードバックは、bq-graph-preview-support@google.com 宛てにメールでお送りください。

BigQuery Graph の可視化では、クエリによって返されたグラフ要素やグラフスキーマの要素が表示されます。グラフは、BigQuery Studio、Google ColabJupyter Notebook などのノートブック環境で可視化できます。

可視化は、データポイント(ノード)がどのように接続されているか(エッジ)を把握する際に役立ちます。数百個のデータポイントを含む表は解釈が難しい場合がありますが、グラフの可視化によりパターン、依存関係、異常を明らかにできます。

ノートブック環境でクエリ結果とスキーマを可視化する

BigQuery Studio、Google Colab、Jupyter Notebook などのノートブック環境で、グラフクエリの結果とグラフスキーマを可視化できます。可視化は IPython Magics として実装されます。

グラフクエリの結果を可視化する

ノートブックでクエリ結果を可視化する手順は次のとおりです。

  1. ノートブックのセルで次のコマンドを実行して、最新の BigQuery マジック ライブラリをインストールします。

    !pip install bigquery_magics==0.12.1
    
  2. ノートブック環境で、BigQuery Graph クライアント ライブラリがインストールされていることを確認します。

  3. ノートブック セルで、%%bigquery --graph マジック コマンドの後に GQL クエリを使用します。クエリは、TO_JSON 関数を使用して、グラフ要素を JSON 形式で返す必要があります。個々のノードとエッジではなく、グラフパスを返すことをおすすめします。パスを返すメリットは次のとおりです。

    • パスには、ノードとエッジの完全なデータが含まれます。個々のノードとエッジを返すと、複雑なクエリの可視化で一部の中間ノードとエッジが使用できない場合があります。

    • パスを返す場合、個々のノードとエッジを返す場合よりも RETURN ステートメントが複雑にならない場合があります。

  4. セルを実行します。可視化はセルの出力領域に表示されます。

次のサンプルクエリは、人物、そのアカウント、返済済みのローンを検索し、結果をノートブックに返します。

%%bigquery --graph
GRAPH graph_db.FinGraph
MATCH
  p = ((person:Person {name: "Dana"})-[own:Owns]->
  (account:Account)-[transfer:Transfers]->(acount2:Account)<-[own2:Owns]-(person2:Person))
RETURN
  TO_JSON(p) AS path;

クエリを実行すると、出力領域に可視化が表示されます。詳細パネルには、ノードラベルとエッジラベルの概要と、それぞれの数が表示されます。ノードまたはエッジをクリックしてグラフを移動し、プロパティ、隣接ノード、接続を表示します。次の図は、プロパティ、隣接ノード、接続を示しています。

クエリ結果の可視化。

BigQuery Graph スキーマを視覚化する

グラフの構造(ノード、エッジ、ラベル、プロパティなど)は、BigQuery テーブルのデータをグラフ要素にマッピングするスキーマによって定義されます。グラフ定義は、入力テーブルを使用して作成したスキーマに保存されます。

スキーマを使用して作成したグラフを可視化できます。スキーマを可視化すると、グラフの構造(含まれるノードとエッジのタイプ、それらの接続など)を把握できます。これは複雑なグラフに役立ちます。グラフの作成に使用した DDL ステートメントだけでは推測しにくい関係を明確に把握できるためです。次の画像は、グラフ スキーマの可視化の例を示しています。

グラフ スキーマの可視化。

ノートブックで BigQuery Graph スキーマの可視化を表示する手順は次のとおりです。

  1. ノートブック セルで次のコマンドを実行して、BigQuery マジック ライブラリをインストールします。

    !pip install bigquery_magics==0.12.1
    
  2. ノートブック環境で、BigQuery Graph クライアント ライブラリがインストールされていることを確認します。

  3. ノートブック セルで、%%bigquery --graph マジック コマンドの後に GQL クエリを使用します。クエリは、TO_JSON 関数を使用して、グラフ要素を JSON 形式で返す必要があります。

  4. セルを実行します。可視化はセルの出力領域に表示されます。

  5. 可視化出力で、 スキーマ スキーマビューをクリックします。

BigQuery Graph の可視化のトラブルシューティング

次の情報は、BigQuery Graph の可視化に関する問題と動作のトラブルシューティングと理解に役立ちます。

BigQuery Graph クエリの可視化が表示されない

問題: BigQuery Graph クエリを実行すると、テーブル形式でのみ表示されます。

考えられる原因: クエリがグラフ要素を JSON 形式で返していません。

たとえば、次のクエリは、グラフ要素を JSON 形式で返すのではなく、プロパティ値を返すため、可視化できません。

GRAPH graph_db.FinGraph
MATCH (person:Person {name: "Dana"})-[owns:Owns]->(account:Account)
RETURN owns.create_time, account.nick_name;

解決策:

TO_JSON を使用して、グラフ要素を JSON 形式で返します。詳細については、BigQuery Graph のクエリ結果を可視化するをご覧ください。

BigQuery Graph のクエリ結果が一部だけ可視化される

問題: クエリ結果の可視化に、クエリ結果の一部しか表示されません。

考えられる原因: クエリが 2 MB を超えるデータを返しています。クエリの可視化では、最大 2 MB のデータが表示されます。

解決策: クエリを簡素化して、2 MB 未満のデータが返されるようにします。

BigQuery Graph の可視化で一部のグラフ要素が表示されない

問題: 可視化には返されたノードとエッジがすべて含まれていますが、一部のグラフ要素が表示されません。

考えられる原因: BigQuery Graph の可視化の作成に使用されたクエリが、グラフパスではなく個々のノードとエッジを返します。

解決策: グラフパスを返すようにクエリを更新します。

次のステップ