グラフを可視化する

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

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

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

BigQuery Graph クエリの結果を可視化する

コンソールを使用すると、BigQuery Studio で BigQuery Graph のクエリ結果を可視化できます。 Google Cloud BigQuery Graph を使ったクエリを可視化するには、 グラフ要素を JSON 形式で返す必要があります。 TO_JSON 関数を使用します。ノードとエッジを個別に返すのではなく、グラフパス��返すことをおすすめします。パスを返すメリットは次のとおりです。

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

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

次のサンプルクエリは、可視化可能なアカウント移行のパスを返します。

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

結果を可視化するには、[クエリ結果] ペインで [グラフ] をクリックします。詳細パネルには、ノードラベルとエッジラベルの概要と、それぞれの数が表示されます。ノードまたはエッジをクリックしてグラフを移動し、プロパティ、隣接ノード、接続を表示します。また、 クエリ結果をテーブルとして表示することも、 基になるグラフスキーマの可視化に切り替えることもできます

クエリ結果の可視化。

詳細については、 グラフ要素を JSON として返すをご覧ください。

クエリ結果の可視化オプションを選択する

クエリの可視化において、ノードの表示方法を更新できます。たとえば、クエリの可視化のレイアウト、ノードの色、各ノードに表示するプロパティを指定できます。

クエリ結果の表示に関する更新は、現在のクエリ結果の可視化セッション中にのみ有効です。同じクエリをもう一度実行すると、ビジュアリゼーション オプションの更新は保持されません。

BigQuery Graph の可視化のレイアウトを選択する

可視化パネルのメニューには、次のレイアウト オプションがあります。

  • 強制レイアウト(デフォルト): ノードは互いに反発するポイント、接続されたノードは互いに引き寄せられるポイントとして表示されます。物理的な力をシミュレートすることで、視覚的で直感的なレイアウトを作成します。

  • 階層型: 接続に基づく視覚的な階層を作成するようにノードを配置します。

  • 順序型: 接続に基づく視覚的なシーケンスを作成するようにノードを配置します。

  • ラベルを表示: グラフ上のすべてのノードラベルとエッジラベルを、すべてのズームレベルで表示します。

表示するノードまたはエッジのプロパティを選択する

デフォルトでは、ノードまたはエッジには最初のプロパティが表示されます。ノードまたはエッジに別のプロパティを表示する場合は、次の操作を行います。

  1. BigQuery Graph クエリの結果の可視化を表示している場合は、クエリ結果パネルの [結果] タブで [スキーマビューに切り 3 替えます] をクリックします。

    スキーマビューに切り替えるボタン。

  2. スキーマの可視化で、更新するタイプのノードまたはエッジをクリックします。

  3. 選択したノードまたはエッジに対して表示される詳細パネルで、表示するプロパティをクリックします。すると、クエリ結果内にある、選択したノードまたはエッジと同じタイプのすべてのノードまたはエッジに、その選択したプロパティが表示されます。

ノードの色を選択する

  1. BigQuery Graph クエリの結果の可視化を 表示している場合は、クエリ結果 パネルの [結果] タブで [スキーマビューに切り替えます] をクリックします。

  2. スキーマの可視化で、更新するタイプのノードをクリックします。

  3. 選択したノードに対して表示される詳細パネルで、 [Node display options] をクリックします。

  4. 色をクリックします。すると、クエリ結果内にある、選択したノードと同じタイプのすべてのノードが、選んだ色で表示されます。

表示するノードを選択する

可視化に表示するノードを選択するには、次の操作を行います。

  1. クエリの可視化で、ノードを右クリックします。

  2. 次のいずれかのメニュー オプションをクリックして、表示されるグラフの状態を変更します。

    • [展開] は、すべての入力エッジ、出力エッジをトラバースするか、特定のエッジタイプでフィルタして、隣接するノードをレンダリングします。

    • [折りたたむ] は、入力エッジ、出力エッジ、または特定のエッジタイプを使用してターゲット ノードに接続されているすべてのノードを非表示にして、現在のビューを削除します。

    • [ノードを非表示] は、現在のビューからターゲット ノードを削除します。

    • [隣接ノードのみを表示] は、ターゲット ノードとそれに直接接続されているノードを除く、グラフ内のすべてのノードを非表示にします。

    • [ノードをハイライト] は、ターゲット ノードをハイライト表示します。

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

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

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

グラフスキーマを可視化する手順は次のとおりです。

  1. BigQuery Studio で、[エクスプローラ] パネルに移動します。
  2. グラフを含むデータセットを開き、[グラフ] を開いて、 グラフを選択します。
  3. [グラフ] タブをクリックします。

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

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

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

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

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

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

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

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

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

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

次のサンプルクエリは、人物、そのアカウント、アカウント間の送金を見つけて、結果をノートブックに返します。

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

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

クエリ結果の可視化。

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

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

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

��ラフ ��キーマ���可視化���

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

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

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

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

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

  5. 可視化の出力で、 schema [Schema view] をクリックします。

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 ですが、 Google Cloud コンソールの可視化にはハード制限はありません。

解決策: ノートブックを使用している場合は、クエリを簡素化して 2 MB 未満のデータを返すか、 Google Cloud コンソールを使用して結果を可視化します。

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

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

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

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

次のステップ