feast-dev / feast

The Open Source Feature Store for Machine Learning
https://feast.dev
Apache License 2.0
5.46k stars 976 forks source link

Add `feast plan` #1518

Open MattDelac opened 3 years ago

MattDelac commented 3 years ago

Is your feature request related to a problem? Please describe. When we wanted to move from prototyping to production, we had to execute multiple times feast apply locally and in our CI/CD environment. We ended up deleting everything when we were just trying things differently. It would have been nice to just pass an option like --dry-run to print but not execute what feast apply wants to do

Describe the solution you'd like A clear and concise description of what you want to happen. A very common option would be to add the option --dry-run to feast apply. Another possible one is to create another command (eg: feast plan)

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context Add any other context or screenshots about the feature request here.

MattDelac commented 3 years ago

Just as a comment, this would be a nice feature for CI/CD where we could potentially run feast plan (or feast apply --dry-run) to make sure that the addition of new Entities and FeatureViews would not break the registry in production.

Let's see how feasible this is (instead of just having print() statements with this command)

woop commented 3 years ago

Good article over here: https://www.gresearch.co.uk/article/in-praise-of-dry-run/

Adding this to our backlog for development. Won't land soon, but it's important to have.

jparthasarthy commented 3 years ago

I think the UX should basically look something like this:

$ feast apply
✅ Imported 15 Python modules from the feature repository
 ↓↓↓↓↓↓↓↓↓↓↓↓ Plan Start ↓↓↓↓↓↓↓↓↓↓

  + Create FeatureView
        name: driver_stats
        entity: driver_id

 ↑↑↑↑↑↑↑↑↑↑↑↑ Plan End ↑↑↑↑↑↑↑↑↑↑↑↑
Are you sure you want to apply this plan? [y/N]>

And feast plan should print out the exact same plan, without the "Are you sure you want to apply this plan? [y/N]".

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

mavysavydav commented 2 years ago

+1 to having this

adchia commented 2 years ago

Note that we have minimally launched some of this (diffing of Feast FCOs like FeatureViews) in Feast 0.17, which the upcoming release to include details on the infrastructure diffs as well.

diogommartins commented 1 year ago

I've worked on rendering the output of feast's registry diff as a markdown on the CLI of amora feature-store plan, making it possible to render the output of the plan as a markdown for pull request comments on CI on the following pull request: https://github.com/mundipagg/amora-data-build-tool/pull/307 Given the proper directions, I would gladly adapt it to fit on a a feast CLI command