Skip to content
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

[API] Add ingest endpoint to feature store #876

Merged
merged 12 commits into from Apr 25, 2021

Conversation

theSaarco
Copy link
Member

@theSaarco theSaarco commented Apr 22, 2021

Support feature-store ingest through an MLRun API.

API endpoint:
API is based on an existing feature-set. If the UI needs to ingest a new feature-set, it will need to first create the feature-set (POST/PUT) and then perform the ingest call.

POST /api/projects/{project}/feature-sets/{name}/references/{reference}/ingest

The API server will generate a remote job to perform the ingest operation. The caller will get the details of the run as result, and can use it to track its results and status.

Payload:

{
  source: { source object },
  targets: Optional[List[{ target object }]],
  infer_options: Optional[int]
}
  • If infer_options are not specified, then the default infer options are used.
  • The source and target objects have a minimal set of required fields (name and kind, and path for the source). Additional parameters may be passed (for example, schedule for source), and will be passed to the ingest function as part of the data-source and data-target objects.
  • Source is mandatory.

Header parameters:

Those are optional, and are needed just in case v3io mount is required. The UI doesn't need to provide them as they are added automatically in an Iguazio system (and in open-source they are not needed, as mentioned):

x-remote-user: <User name to mount to v3io>
X-V3io-Session-Key: <v3io access key for the user>

Returns:

On success, the API returns a 202 (ACCEPTED) response, since it triggers an async background process. The body of the response is:

{
  feature-set: { feature-set object },
  run-object: { run execution object }
}

This PR covers the functionality and was tested manually. Unit tests and system tests will be added separately.

Implements https://jira.iguazeng.com/browse/ML-368

@Hedingber Hedingber changed the title [Feature store/API] Ingest api [API] Add ingest endpoint to feature store Apr 24, 2021
mlrun/api/api/endpoints/feature_sets.py Outdated Show resolved Hide resolved
mlrun/api/api/endpoints/feature_sets.py Outdated Show resolved Hide resolved
mlrun/api/api/endpoints/feature_sets.py Outdated Show resolved Hide resolved
mlrun/api/api/endpoints/feature_sets.py Show resolved Hide resolved
mlrun/api/schemas/feature_store.py Outdated Show resolved Hide resolved
mlrun/api/schemas/feature_store.py Outdated Show resolved Hide resolved
mlrun/api/schemas/feature_store.py Outdated Show resolved Hide resolved
mlrun/db/sqldb.py Outdated Show resolved Hide resolved
mlrun/feature_store/feature_set.py Outdated Show resolved Hide resolved
mlrun/platforms/iguazio.py Show resolved Hide resolved
@Hedingber Hedingber merged commit 0495041 into mlrun:development Apr 25, 2021
@theSaarco theSaarco deleted the ingest_api branch April 28, 2021 14:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants