mcpField
P
pygraphistry-connectors

pygraphistry-connectors

github.com/graphistry数据与数据库338 次安装今天更新
代码仓库

关于 pygraphistry-connectors

为使用 PyGraphistry 连接器导入图数据和表格数据提供指导,帮助用户选择源端查询、DataFrame 导入及图分析方式。

主要功能

  1. 01覆盖图数据库、SQL 和日志的连接器选择
  2. 02优先使用 DataFrame 导入
  3. 03指导大数据集上游筛选
  4. 04通过环境变量管理凭据
  5. 05图查询与绘图指导

适用场景

  1. 01为图数据库或日志源选择连接器
  2. 02将查询结果载入 PyGraphistry 可视化
  3. 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/...。

策略

  • 可行时优先采用以 DataFrame 为先的导入方式,然后通过 edges()/nodes() 绑定。
  • 当身份验证或查询语义具有专门特性时,使用连接器专属的 Notebook 模式。
  • 对于超大型数据集,在绘图前将筛选和聚合操作尽量推至上游。
  • 将连接器和 Graphistry 凭据保存在环境变量或密钥存储中;不要硬编码密钥。
  • 切勿使用 username='user' / password='pass' / username='...' 之类的占位符字面量;请使用 os.environ[...] 或 os.environ.get(...)。
  • 对于简洁的任务,使用单个精简代码块并尽量少写说明文字。
  • 在简洁代码片段中,优先使用明确的隐私字面量('private' 或 'organization'),而不是占位变量。

连接器分类准则

  • 当遍历最适合在上游表达时,使用原生图数据库连接器(cypher()、Neptune/TigerGraph 流程)。
  • 对于内存中 PyGraphistry 图的本地 Cypher 风格查询(无外部数据库),使用 g.gfql("MATCH ...")。注意:graphistry.cypher() 是不同的 Neo4j/Memgraph/Neptune 连接器,并非本地 GFQL Cypher。
  • 如果数据源为表格型或以 SIEM 为中心,使用 SQL/日志源提取,然后在 PyGraphistry 中绑定。
  • 若不确定,从数据源原生查询 -> DataFrame -> edges()/nodes() 开始,然后再优化连接器的使用深度。

连接器类别

  • 图数据库: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)

规范文档

评论

支持 Markdown