{"id":13998536,"url":"https://github.com/tableau/query-graphs","last_synced_at":"2025-12-29T23:47:35.831Z","repository":{"id":17504024,"uuid":"71926459","full_name":"tableau/query-graphs","owner":"tableau","description":"A visualizer for queries - Hyper, Postgres, Tableau","archived":false,"fork":false,"pushed_at":"2024-10-31T18:27:28.000Z","size":19618,"stargazers_count":88,"open_issues_count":5,"forks_count":26,"subscribers_count":10,"default_branch":"main","last_synced_at":"2024-11-15T05:42:04.668Z","etag":null,"topics":["database","postgres","postgresql","query-optimization","visualization"],"latest_commit_sha":null,"homepage":"https://tableau.github.io/query-graphs/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tableau.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-25T18:23:12.000Z","updated_at":"2024-10-31T18:26:35.000Z","dependencies_parsed_at":"2023-02-13T22:45:18.897Z","dependency_job_id":"10954c2f-9fe8-465d-961e-b5490cd478ae","html_url":"https://github.com/tableau/query-graphs","commit_stats":{"total_commits":217,"total_committers":15,"mean_commits":"14.466666666666667","dds":0.5668202764976958,"last_synced_commit":"891f37156040bf32a38804f4cf001698a3ea4f2a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tableau%2Fquery-graphs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tableau%2Fquery-graphs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tableau%2Fquery-graphs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tableau%2Fquery-graphs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tableau","download_url":"https://codeload.github.com/tableau/query-graphs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227245183,"owners_count":17753239,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","postgres","postgresql","query-optimization","visualization"],"created_at":"2024-08-09T19:01:45.615Z","updated_at":"2025-12-29T23:47:35.789Z","avatar_url":"https://github.com/tableau.png","language":"TypeScript","readme":"Query Graphs\n============\n[![Community Supported](https://img.shields.io/badge/Support%20Level-Community%20Supported-457387.svg)](https://www.tableau.com/support-levels-it-and-developer-tools)\n\nHelping people see and understand queries - [Visualize your own query!](http://tableau.github.io/query-graphs/index.html)\n\n[\u003cimg src=\"media/tpch-q19.png\" width=200 alt=\"Sample Visualization\"/\u003e](https://tableau.github.io/query-graphs/index.html?file=examples%2Fhyper%2Ftpch%2Ftpch-q19-analyze.plan.json\u0026title=tpch-q19-analyze.plan.json)\n[\u003cimg src=\"media/tpch-q2.png\" width=400 alt=\"Sample Visualization\"/\u003e](https://tableau.github.io/query-graphs/index.html?file=examples%2Fhyper%2Ftpch%2Ftpch-q2-analyze.plan.json\u0026title=tpch-q2-analyze.plan.json)\n\nDescription\n-----------\n\n\"Query graphs\" visualizes query plans for PostgresQL, Hyper or Tableau logical queries and can easily be extended for other database systems.\n\nQuery graphs is based on the experience of Tableau and the Hyper team with debugging complex OLAP queries.\nIn contrast to many competing plan visualizers, query graphs:\n* visualizes large and complex query plans without presenting an overwhelming amount of information,\n* immediately draws your attention to tne most critical parts of the query plan through proper color coding,\n* allows you to drill down on the interesting parts of the query-plan, e.g., by expanding more details by clicking on the node of interest,\n* supports multiple different plan types (currently Postgres, Hyper and PostgresQL),\n* can be easily embeded into larger tools,\n* works fully offline and can be installed as a \"web app\" from your browser.\n\nFor a first impression see our [list of example visualizations](https://tableau.github.io/query-graphs/examples.html), a few particularly examples are:\n* [PostgreSQL TPC-H Query 2](https://tableau.github.io/query-graphs/index.html?file=examples%2Fpostgres%2Ftpch%2Ftpch-q2-analyze.plan.json\u0026title=tpch-q2-analyze.plan.json)\n* [Hyper TPC-H Query 2](https://tableau.github.io/query-graphs/index.html?file=examples%2Fhyper%2Ftpch%2Ftpch-q2-analyze.plan.json\u0026title=tpch-q2-analyze.plan.json)\n* [Optimizer steps of Hyper for TPC-H Q2](https://tableau.github.io/query-graphs/index.html?file=examples%2Fhyper%2Ftpch%2Ftpch-q2-steps.plan.json\u0026title=tpch-q2-steps.plan.json)\n\n\nInstallation\n------------\n\nYou can use https://tableau.github.io/query-graphs/, you do not need to install anything.\nIf you still need a local deployment, see the [Developer instructions](DEVELOPMENT.md) for instructions.\n\nUsage\n-----\n\n1. Go to https://tableau.github.io/query-graphs/\n2. Open your query plan, e.g. by copy pasting\n3. Visually explore the query plan\n\nNote that we never upload your query plan.\nAll processing happens directly inside your browser.\nThe query plans never leave your machine - we value your privacy ;)\n\nSupported query plan formats:\n* Postgres' JSON format, obtained by `EXPLAIN (FORMAT JSON)`. Particularly interesting if used in combination with `EXPLAIN(ANALYZE, FORMAT JSON)`\n* Hyper's query plans. You can run Hyper (the database system powering Tableau) locally through HyperAPI, and send Hyper `EXPLAIN (VERBOSE)` queries to obtain query plans. See [dump-plans.py](plan-dumper/dump-plans.py) for an example.\n* Tableau logical queries. Can be obtained from the log files of Tableau Desktop or Tableau Online.\n\nContributing\n------------\n\nPull requests welcome!\n\nIn particular, we would be happy about support for additional query plan formats from additional database systems.\nNew core functionality is also welcome, but you might want to open a GitHub issue first and get some feedback, before spending considerable amounts of time on cool new features.\n\nTo get started hacking on query graphs, see [DEVELOPMENT.md](DEVELOPMENT.md).\n\nAcknowledgements\n----------------\n\nQuery Graphs uses the amazing [react-flow](https://reactflow.dev/) library for rendering. For layouting the query plan, we use [d3-flextree](https://github.com/Klortho/d3-flextree).\n","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftableau%2Fquery-graphs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftableau%2Fquery-graphs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftableau%2Fquery-graphs/lists"}