Git Product home page Git Product logo

Comments (2)

cpcloud avatar cpcloud commented on July 4, 2024

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.

NickCrews avatar NickCrews commented on July 4, 2024

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)

  1. have ibis.explain(expr) in addition to backend.explain(expr)
  2. just have expr.explain() (though we don't want to fill up that namespace TOO much)
  3. have expr.explain() in addition to backend.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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.