pygraphistry-connectors について
PyGraphistry コネクターでグラフデータや表形式データを取り込むためのガイダンスです。データソースに応じたクエリ、DataFrame による取り込み、グラフ分析の進め方を示します。
主な機能
- 01グラフ DB、SQL、ログ用コネクターの選択
- 02DataFrame を優先した取り込み
- 03大規模データの上流フィルタリング
- 04環境変数による認証情報の管理
- 05グラフクエリと描画のガイダンス
活用シーン
- 01グラフ DB やログソース向けコネクターの選定
- 02クエリ結果を PyGraphistry に取り込んで可視化
- 03描画前の大規模データの絞り込み
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ graphistry/ graphistry-skills --skill pygraphistry-connectorsインストール後、Claude Code で/pygraphistry-connectorsを入力して読み込まれたか確認します。
詳細
PyGraphistry コネクター
ドキュメントの案内(ローカル+正式版)
- 最初に
../pygraphistry/references/pygraphistry-readthedocs-toc.mdを確認します。 - セクション単位のショートカットには
../pygraphistry/references/pygraphistry-readthedocs-top-level.tsvを使用します。 - 必要なページが見つからない場合に限り、
../pygraphistry/references/pygraphistry-readthedocs-sitemap.xmlを確認します。 - 詳細ページを読む前に、まとめて一度検索します。
cat *や細かな読み取りを順番に繰り返すことは避けます。 - ユーザー向けの回答では、正式な
https://pygraphistry.readthedocs.io/en/latest/...リンクを優先します。
方針
- 実用的な場合は、データフレームから取り込み、その後
edges()/nodes()でバインドします。 - 認証やクエリの動作が特殊な場合は、コネクター固有のノートブックパターンを使用します。
- 非常に大規模なデータセットでは、プロットの前に上流でフィルタリングや集計を行います。
- コネクターとGraphistryの認証情報は、環境変数またはシークレットストアに保存し、キーをハードコードしないでください。
username='user'/password='pass'/username='...'のようなプレースホルダー値は使用しないでください。os.environ[...]またはos.environ.get(...)を使用します。- 簡潔なタスクでは、最小限の説明文とコンパクトなコードブロックを1つだけ返します。
- 簡潔なスニペットでは、プレースホルダー変数ではなく、明示的なプライバシー値(
'private'または'organization')を優先します。
コネクターの選定基準
- トラバーサルを上流で表現するのが最適な場合は、ネイティブのグラフDBコネクター(
cypher()、Neptune/TigerGraphのフロー)を使用します。 - 外部DBを使わず、メモリー上のPyGraphistryグラフに対してローカルのCypher形式クエリを実行する場合は、
g.gfql("MATCH ...")を使用します。注:graphistry.cypher()はNeo4j/Memgraph/Neptune向けの別個のコネクターであり、ローカルのGFQL Cypherとは異なります。 - データソースが表形式またはSIEM中心の場合は、SQL/ログソースからデータを抽出してからPyGraphistryにバインドします。
- 判断に迷う場合は、まずソースネイティブのクエリからデータフレームを経て
edges()/nodes()へ進み、その後コネクターの利用範囲を最適化します。
コネクターの種類
- グラフDB:Neo4j、Neptune、TigerGraph、Memgraph、Arango。
- データ/SQL:Databricks、PostgreSQL、Spanner、データウェアハウス形式のパイプライン。
- ログ/SIEM:Splunk、Kusto、AlienVault。
- コンピューティング/レイアウトプラグイン:networkx、graphviz、cugraph、igraph、hypernetx。
最小限の例
# Neo4j/Memgraph/Neptune connector (runs query on external DB server)
g = graphistry.cypher('MATCH (a)-[r]->(b) RETURN a,b,r')
g.plot()
# Local Cypher via GFQL (no external DB needed — preferred for local graphs)
g2 = g.gfql("MATCH (a)-[r]->(b) WHERE a.score > 10 RETURN a.id, b.id")
# Graphistry org/service-account auth before connector workflows
graphistry.register(
api=3,
org_name=os.environ.get('GRAPHISTRY_ORG_NAME'),
personal_key_id=os.environ.get('GRAPHISTRY_PERSONAL_KEY_ID'),
personal_key_secret=os.environ.get('GRAPHISTRY_PERSONAL_KEY_SECRET')
)
# Generic dataframe path after source-specific query/extract
# edges_df: src,dst,...
g = graphistry.edges(edges_df, 'src', 'dst')
graphistry.privacy(mode='private')
plot_url = g.plot(render=False)
# Connector-oriented flow with explicit nodes + focused GFQL slice
# Example source can be Neo4j/Splunk -> dataframe extraction
g = graphistry.edges(edges_df, 'src', 'dst').nodes(nodes_df, 'id')
g_focus = g.gfql([...]).name('connector-slice')
graphistry.privacy(mode='organization')
plot_url = g_focus.plot(render=False)
正式なドキュメント
- プラグインの概要:https://pygraphistry.readthedocs.io/en/latest/plugins.html
- コネクターのノートブック:https://pygraphistry.readthedocs.io/en/latest/notebooks/plugins.connectors.html
- コンピューティング/レイアウトプラグインのノートブック:https://pygraphistry.readthedocs.io/en/latest/notebooks/plugins.compute.html
- ノートブックのインデックス:https://pygraphistry.readthedocs.io/en/latest/notebooks/index.html
コメント
Markdown 対応