Spanner Graph 노트북을 사용하면 노트북 환경 (예: Jupyter 노트북 또는 JupyterLab)에서 데이터를 시각적으로 탐색할 수 있습니다. 그래프 쿼리 언어 (GQL) 쿼리 구문을 사용하여 노드 및 에지 속성, 인접 항목 확장 분석을 비롯한 그래프 통계와 관계 패턴을 추출할 수 있습니다. 이 도구는 그래프 스키마 메타데이터 시각화, 표 형식 결과 검사, 다양한 레이아웃 토폴로지도 제공합니다.
Spanner Graph 노트북은 일반 텍스트, TLS, 상호 TLS (mTLS) 연결을 지원합니다.
Spanner Graph 노트북 설치
Python 또는 Jupyter 환경에 Spanner Graph 노트북 패키지 (버전 1.1.11 이상)를 설치하려면 다음 pip 명령어를 실행하세요.
pip install "spanner-graph-notebook>=1.1.11"
Spanner Graph 확장 프로그램 로드
Jupyter 노트북에서 Spanner Graph 확장 프로그램을 로드하려면 다음 명령어를 사용하세요.
%load_ext spanner_graphs
데이터베이스에 연결
Spanner Omni 데이터베이스에 연결하려면 확장 프로그램을 로드한 후 %%spanner_graph 셀 명령어를 사용하세요.
일반 텍스트
일반 텍스트 연결을 설정하려면 다음을 실행합니다.
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text
다음을 바꿉니다.
OMNI_ENDPOINT: Spanner Omni 인스턴스의 호스트 이름 또는 IP 주소PORT: Spanner Omni 인스턴스의 포트 번호입니다.DATABASE_NAME: Spanner Omni 데이터베이스의 이름입니다.
TLS
TLS 연결을 설정하려면 CA 인증서의 경로를 지정하세요.
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT
다음을 바꿉니다.
OMNI_ENDPOINT: Spanner Omni 인스턴스의 호스트 이름 또는 IP 주소PORT: Spanner Omni 인스턴스의 포트 번호입니다.DATABASE_NAME: Spanner Omni 데이터베이스의 이름입니다.PATH_TO_CA_CERT: CA 인증서 파일의 경로입니다.
mTLS
mTLS 연결을 설정하려면 CA 인증서, 클라이언트 인증서, 비공개 클라이언트 키를 지정합니다.
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT --client_certificate PATH_TO_CLIENT_CERT --client_key PATH_TO_CLIENT_KEY
다음을 바꿉니다.
OMNI_ENDPOINT: Spanner Omni 인스턴스의 호스트 이름 또는 IP 주소PORT: Spanner Omni 인스턴스의 포트 번호입니다.DATABASE_NAME: Spanner Omni 데이터베이스의 이름입니다.PATH_TO_CA_CERT: CA 인증서 파일의 경로입니다.PATH_TO_CLIENT_CERT: 클라이언트 인증서 파일의 경로입니다.PATH_TO_CLIENT_KEY: 클라이언트 비공개 키 파일의 경로입니다.
쿼리 시각화
노트북에서 그래프 쿼리 결과를 시각화하려면 쿼리에서 SAFE_TO_JSON 또는 TO_JSON 함수를 사용하여 JSON 형식의 그래프 요소를 반환해야 합니다. 데이터 완전성과 시각화의 용이성을 위해 전체 그래프 경로를 사용하는 것이 좋습니다.
예: 경로를 JSON으로 반환
다음 예에서는 사람을 소유한 계정에 연결하는 경로를 시각화합니다.
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text
GRAPH FinGraph
MATCH query_path = (person:Person {id: 5})-[owns:Owns]->(accnt:Account)
RETURN SAFE_TO_JSON(query_path) AS path_json
예: 멀티홉 그래프 쿼리
다음 예에서는 계정 간의 가변 길이 경로 (1~3홉)를 시각화합니다.
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text
GRAPH FinGraph
MATCH query_path = (src:Account {id: 9})-[edge:Transfers]->{1,3}(dst:Account)
RETURN SAFE_TO_JSON(query_path) AS path_json
예: 여러 경로 반환
다음 예에서는 단일 쿼리에서 여러 그래프 경로를 반환하고 시각화합니다.
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text
GRAPH FinGraph
MATCH path_1 = (person:Person {id: 5})-[:Owns]->(accnt:Account),
path_2 = (src:Account {id: 9})-[:Transfers]->(dst:Account)
RETURN SAFE_TO_JSON(path_1) AS path_1,
SAFE_TO_JSON(path_2) AS path_2