关于 pygraphistry-connectors
为使用 PyGraphistry 连接器导入图数据和表格数据提供指导,帮助用户选择源端查询、DataFrame 导入及图分析方式。
主要功能
- 01覆盖图数据库、SQL 和日志的连接器选择
- 02优先使用 DataFrame 导入
- 03指导大数据集上游筛选
- 04通过环境变量管理凭据
- 05图查询与绘图指导
适用场景
- 01为图数据库或日志源选择连接器
- 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/...。
策略
- 可行时优先采用以 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)
规范文档
- 插件概览:https://pygraphistry.readthedocs.io/en/latest/plugins.html
- 连接器 Notebook:https://pygraphistry.readthedocs.io/en/latest/notebooks/plugins.connectors.html
- 计算/布局插件 Notebook:https://pygraphistry.readthedocs.io/en/latest/notebooks/plugins.compute.html
- Notebook 索引:https://pygraphistry.readthedocs.io/en/latest/notebooks/index.html
评论
支持 Markdown