-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Execute-only invocations #3360
Comments
In theory we might be able to load a manifest.json file to use as a manifest, since most of the issues with doing that have been hammered out with the msgpack serialization project. It would be interesting to see what the difference is between a manifest state file with and without the files dictionary. The files dictionary drives partial parsing, so a manifest state file without it could only do load-and-go. The partial_parse file and manifest.json are not necessarily current and previous state. When parsing starts they're both previous state. When parsing ends, they're both current state. One thing we might want to do is remove all the references to absolute file paths in the various nodes and instead store that info only in the project file, as a step in the direction of reducing our ties to the file system. The 'file_id' that was introduced in the partial parsing work was a first step. |
Goal: an even faster partial parsing (no files changed so skip file system) -> don't even bother reading the files (this is not a 1.0 issue) If we don't have a clear picture of what client/server will look like in the future, we failed this ticket (this is a 1.0 issue) Open Questions:
|
|
For right now, I'm only interested in the pieces for this that are prerequisites to client/server. It's likely that we'll want to further delineate parsing and execution, but our current plan for client/server does not require the complete separation that this ticket originally envisioned. |
I'm glad we had the conversation above; our thinking here has developed significantly since. I'm going to close this issue for the time being, but this isn't the last of "msgpack-only execution." |
We're making a number of improvements to partial parsing (#3217). One of the goals we're targeting is very quick project mise-en-place (<5s) if no files have changed, regardless of project size.
A natural extension of this functionality is removing the need for a file system altogether, and supporting "execute-only" invocations which can take, as their only input, the partial-parse save-state / internal manifest (i.e.
partial_parse.msgpack
).We're thinking that this functionality would:
The scope of this issue is to determine whether our partial-parsing logic could reasonably support this workflow. If there are changes we need to make, we should consider make them ahead of v1.0:
run_started_at
,invocation_id
, Jinja functions remain static in YAML files on RPC until modified #2330)Questions
dbt_project.yml
, how do users defineprofile_name
+target
? Would these need to be passed as flags / env vars?files
object wouldn't be needed, since we're not comparing against a file systemtarget
Jinja variablesstate:modified
and--defer
, by passingpartial_parse.msgpack
(current state) alongsidemanifest.json
(previous state)?catalog.json
)? This is likely out of scope for the current issue, but I definitely want to think more about itThe text was updated successfully, but these errors were encountered: