12 个重大版本

0.14.0 2024年1月18日
0.13.0 2023年4月3日
0.12.0 2023年3月6日
0.6.0 2022年12月31日

可视化 中排名 310

每月下载量 50

Apache-2.0

310KB
574 代码行

QPML

QPML 是一个用于可视化查询计划的工具,旨在帮助生成文档和演示。

查询计划图可以很容易地在基于 YAML 的查询计划标记语言中手动编码,或者可以从 Substrait 查询计划或 EXPLAIN 命令显示的查询计划文本表示中导入。

以下是一个 QPML 文件的示例。有关更完整的示例,请参阅 examples/nested-join.yaml

diagram:
  title: 'Inner Join: w_warehouse_sk = inv_warehouse_sk'
  style: join
  inputs:
    - title: 'Inner Join: cs_item_sk = inv_item_sk'
      style: join
      inputs:
        - title: catalog_sales
          style: table
        - title: inventory
          style: table
    - title: warehouse
      style: table
styles:
  - name: table
    color: lightblue
    shape: rectangle
  - name: join
    color: lightgreen
    shape: rectangle

示例输出

GraphViz

qpml dot minimal.qpml > minimal.dot
dot -Tpng minimal.dot > minimal.png

Example Diagram

GitHub Mermaid 图表

$ qpml mermaid minimal.qpml > minmal.md
flowchart TD
node0[Inner Join: w_warehouse_sk = inv_warehouse_sk] --> node0_0[Inner Join: cs_item_sk = inv_item_sk]
node0_0[Inner Join: cs_item_sk = inv_item_sk] --> node0_0_0[catalog_sales]
node0_0[Inner Join: cs_item_sk = inv_item_sk] --> node0_0_1[inventory]
node0[Inner Join: w_warehouse_sk = inv_warehouse_sk] --> node0_1[warehouse]

文本

$ qpml print minimal.qpml
Inner Join: w_warehouse_sk = inv_warehouse_sk
  Inner Join: cs_item_sk = inv_item_sk
    catalog_sales
    inventory
  warehouse

从现有查询计划创建 QPML

有关更多信息,请参阅 QPML 文档

依赖项

~63MB
~1.5M SLoC