Comments (2)
Hey Nick!
This is a super interesting problem, but I think it's not feasible for us to correlate an ibis expression with a particular duration (or some proxy of that like instructions, or even database plan node) because the thing that the database executes often looks very different from the thing it was asked to execute.
It's one of the trade-offs associated with using SQL and/or a database: you generally get better performance at the cost of debugability.
That said, what do you think about a backend.explain(expr)
method? We had this a while ago but it was removed due to lack of implementation across our backends.
This would at least allow you to get some insight into what the database thinks is happening.
from ibis.
what do you think about a backend.explain(expr) method?
I think that sounds nice, even if it returns teh raw string. However, to avoid needing to do a private method on a non-explicit-backend expression
e = ibis.read_csv().<sdfgdsfg>
e._find_backend().explain(e)
I would love to either (1 is my favorite)
- have
ibis.explain(expr)
in addition tobackend.explain(expr)
- just have
expr.explain()
(though we don't want to fill up that namespace TOO much) - have
expr.explain()
in addition tobackend.explain(expr)
Possible things to support (duckdb for inspiration)
- (need) show physical plan
- (need) show profiling/timing results
- (nice to have) show logical plan
- (nice to have) show optimized logical plan
from ibis.
Related Issues (20)
- feat: allow to connect to a duckdb named in-memory database
- feat(memtable): handle castable inputs from date-like strings to date HOT 3
- feat: better distinguish ibis scalars from evaluated results in interactive repr
- feat: add databricks support HOT 2
- bug: .insert() uses column position, not names, to align HOT 1
- feat(settings): generalize and extend settings passthrough dictionary
- feat: Leverage SQLGlot AST for query parsing HOT 2
- bug: EOFError when running ibis tutorial code with ClickHouse backend HOT 4
- bug: The function `parse_sql` fails when `COUNT(*)` is in the query HOT 4
- feat: Add the ability to pass regex flags HOT 2
- Config Value spark.sql.mapKeyDedupPolicy not Supported by Databricks SQL Warehouse HOT 1
- bug: ibis mssql backend can not create table for very simple pandas dataframe HOT 3
- bug: cannot convert mysql `datetime(6)` type to ibis datatype HOT 1
- bug: Failed to load Postgres table containing ENUM HOT 3
- feat: deprecate `ibis.memtable` in favor of expanding `ibis.table` HOT 2
- refactor: remove ibis.NA HOT 4
- bug: `.collect()` handling of null values is backend-specific HOT 3
- bug: ibis-snowflake 8.0.0 insert failure HOT 3
- Impala backend how to drop memtable tmp table after `insert(data)`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ibis.