그래프 시각화

이 기능에 대한 지원을 요청하거나 의견을 제공하려면 bq-graph-preview-support@google.com으로 이메일을 보내세요.

BigQuery 그래프 시각화에는 그래프 스키마 쿼리에서 반환된 결과가 표시됩니다. BigQuery Studio 또는 Google Colab, Jupyter Notebook과 같은 노트북 환경에서 그래프를 시각화할 수 있습니다.

시각화를 사용하면 데이터 포인트 (노드)가 연결되는 방식(에지)을 파악할 수 있습니다. 데이터 포인트 수백 개로 구성된 테이블을 해석하기 어려울 수 있지만 그래프 시각화를 사용하면 패턴, 종속 항목, 이상치를 파악할 수 있습니다.

BigQuery 그래프 쿼리 결과 시각화

Google Cloud 콘솔을 사용하여 BigQuery Studio에서 BigQuery 그래프 쿼리 결과를 시각화할 수 있습니다. BigQuery Graph로 쿼리를 시각화하려면 쿼리에서 TO_JSON 함수를 사용하여 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 그래프 시각화의 레이아웃 선택

시각화 패널의 메뉴에서는 다음과 같은 레이아웃 옵션을 제공합니다.

  • 강제 레이아웃(기본값): 노드를 연결된 노드가 서로 당기는 동안에 서로 밀어내는 점으로 표시하여 물리력을 시뮬레이션해 시각적으로 직관적인 레이아웃을 만듭니다.

  • 계층적: 연결을 기반으로 시각적 계층 구조가 생성되도록 노드를 배치합니다.

  • 순차: 연결을 기반으로 시각적 시퀀스가 생성되도록 노드를 배치합니다.

  • 라벨 표시: 모든 확대/축소 수준에서 그래프에 모든 노드 라벨과 에지 라벨을 표시합니다.

표시할 노드 또는 가장자리 속성 선택

기본적으로 노드 또는 에지는 첫 번째 속성을 표시합니다. 노드 또는 에지에 다른 속성을 표시하려면 다음 단계를 따르세요.

  1. BigQuery Graph 쿼리 결과의 시각화를 보는 경우 쿼리 결과 패널의 결과 탭에서 스키마 보기로 전환을 클릭합니다.

    스키마 뷰로 전환 버튼

  2. 스키마 시각화에서 업데이트할 유형의 노드 또는 가장자리를 클릭합니다.

  3. 선택한 노드 또는 에지에 표시되는 세부정보 패널에서 표시할 속성을 클릭합니다. 선택한 노드 또는 에지 유형의 쿼리 결과에 있는 모든 노드 또는 에지에 선택한 속성이 표시됩니다.

노드 색상 선택

  1. BigQuery Graph 쿼리 결과의 시각화를 보는 경우 쿼리 결과 패널의 결과 탭에서 스키마 보기로 전환을 클릭합니다.

  2. 스키마 시각화에서 업데이트할 유형의 노드를 클릭합니다.

  3. 선택한 노드에 대해 표시되는 세부정보 패널에서 노드 표시 옵션을 클릭합니다.

  4. 색상을 클릭합니다. 선택한 노드 유형의 쿼리 결과에 있는 모든 노드가 선택한 색상으로 표시됩니다.

표시할 노드 선택

시각화에 표시할 노드를 선택하려면 다음 단계를 따르세요.

  1. 쿼리 시각화에서 노드를 마우스 오른쪽 버튼으로 클릭합니다.

  2. 다음 메뉴 옵션 중 하나를 클릭하여 표시되는 그래프 상태를 수정합니다.

    • 펼치기는 모든 수신 에지, 발신 에지를 순회하거나 특정 에지 유형으로 필터링하여 인접한 노드를 렌더링합니다.

    • 접기는 들어오는 에지, 나가는 에지 또는 특정 에지 유형을 사용하여 타겟 노드에 연결된 모든 노드를 숨겨 현재 뷰를 정리합니다.

    • 노드 숨기기는 현재 뷰에서 타겟 노드를 삭제합니다.

    • 인접 항목만 표시는 타겟 노드와 타겟 노드에 직접 연결된 노드를 제외한 그래프의 모든 노드를 숨깁니다.

    • 노드 강조 표시는 타겟 노드를 강조 표시합니다.

BigQuery 그래프 스키마 시각화

노드, 에지, 라벨, 속성과 같은 그래프의 구조는 그래프 요소를 BigQuery 테이블의 데이터에 매핑하는 스키마에 의해 정의됩니다. 그래프 정의는 입력 테이블을 사용하여 만든 스키마에 저장됩니다.

스키마로 만든 그래프를 시각화할 수 있습니다. 스키마를 시각화하면 포함된 노드 및 에지의 유형과 연결 방식을 비롯한 그래프의 구조를 이해하는 데 도움이 됩니다. 이는 복잡한 그래프에 유용하며 DDL 문만으로는 추론하기 어려울 수 있는 관계를 명확하게 보여줍니다.

그래프 스키마를 시각화하려면 다음 단계를 따르세요.

  1. BigQuery Studio에서 탐색기 패널로 이동합니다.
  2. 그래프가 포함된 데이터 세트를 펼치고 그래프를 펼친 후 그래프를 선택합니다.
  3. 그래프 탭을 클릭합니다.

노트북 환경에서 쿼리 결과 및 스키마 시각화

BigQuery Studio, Google Colab, Jupyter Notebook과 같은 노트북 환경에서 그래프 쿼리 결과와 그래프 스키마를 시각화할 수 있습니다. 시각화는 IPython 매직으로 구현됩니다.

그래프 쿼리 결과 시각화

노트북에서 쿼리 결과를 시각화하려면 다음 단계를 따르세요.

  1. 노트북 셀에서 다음 명령어를 실행하여 최신 BigQuery 매직 라이브러리를 설치합니다.

    !pip install bigquery_magics==0.12.1
    
  2. 노트북 환경에 BigQuery 그래프 클라이언트 라이브러리가 설치되어 있는지 확인합니다.

  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]->(account2:Account)<-[own2:Owns]-(person2:Person))
RETURN
  TO_JSON(p) AS path;

쿼리를 실행하면 출력 영역에 시각화가 표시됩니다. 세부정보 패널에는 노드 라벨과 에지 라벨의 요약과 각 라벨 수가 표시됩니다. 노드 또는 에지를 클릭하여 그래프를 탐색하고 속성, 이웃, 연결을 봅니다. 다음 이미지는 속성, 이웃, 연결을 보여줍니다.

쿼리 결과 시각화

BigQuery 그래프 스키마 시각화

노드, 에지, 라벨, 속성과 같은 그래프의 구조는 BigQuery 테이블의 데이터를 그래프 요소에 매핑하는 스키마에 의해 정의됩니다. 그래프 정의는 입력 테이블을 사용하여 만든 스키마에 저장됩니다.

스키마로 만든 그래프를 시각화할 수 있습니다. 스키마를 시각화하면 포함된 노드 및 에지의 유형과 연결을 비롯한 그래프의 구조를 이해하는 데 도움이 됩니다. 이는 복잡한 그래프에 유용하며 그래프를 만드는 데 사용한 DDL 문만으로는 추론하기 어려울 수 있는 관계를 명확하게 보여줍니다. 다음 이미지는 그래프 스키마 시각화의 예를 보여줍니다.

그래프 스키마의 시각화

노트북에서 BigQuery 그래프 스키마를 시각화하려면 다음 단계를 따르세요.

  1. 노트북 셀에서 다음 명령어를 실행하여 BigQuery 매직 라이브러리를 설치합니다.

    !pip install bigquery_magics==0.12.1
    
  2. 노트북 환경에 BigQuery Graph 클라이언트 라이브러리가 설치되어 있는지 확인합니다.

  3. 노트북 셀에서 %%bigquery --graph 매직 명령어와 GQL 쿼리를 차례로 사용합니다. 쿼리에서 TO_JSON 함수를 사용하여 JSON 형식의 그래프 요소를 반환해야 합니다.

  4. 셀을 실행합니다. 시각화가 셀의 출력 영역에 표시됩니다.

  5. 시각화 출력에서 스키마 스키마 보기를 클릭합니다.

BigQuery 그래프 시각화 문제 해결

다음 정보는 BigQuery Graph 시각화 문제와 동작을 해결하고 이해하는 데 도움이 됩니다.

BigQuery 그래프 쿼리에 시각화가 표시되지 않음

문제: 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 쿼리 결과가 부분적으로 시각화됨

문제: 쿼리 결과 시각화에 쿼리 결과 일부만 표시됩니다.

가능한 원인: 노트북 시각화를 사용하는 경우 쿼리가 2MB가 넘는 데이터를 반환합니다. 노트북 시각화는 2MB로 제한되지만Google Cloud 콘솔 시각화에는 엄격한 제한이 없습니다.

해결 방법: 노트북을 사용하는 경우 2MB 미만의 데이터가 반환되도록 쿼리를 간소화하거나 Google Cloud 콘솔을 사용하여 결과를 시각화합니다.

일부 그래프 요소가 BigQuery 그래프 시각화에 표시되지 않음

문제: 시각화에 반환된 모든 노드와 에지가 포함되지만 일부 그래프 요소가 표시되지 않습니다.

원인: BigQuery Graph 시각화를 만드는 데 사용된 쿼리에서 그래프 경로 대신 개별 노드와 에지를 반환합니다.

해결 방법: 그래프 경로가 반환되도록 쿼리를 업데이트합니다.

다음 단계