-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add an interface for TransformationService and a basic implementation #1932
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
Changes from all commits
6f07a81
227ab15
6f4bffa
e19ac44
ae55967
b5bdd3a
483892b
cc9f084
2a73ae7
8770015
907aad4
9e5a623
9a21fa2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,67 @@ | ||
| /* | ||
| * Copyright 2021 The Feast Authors | ||
| * | ||
| * Licensed under the Apache License, Version 2.0 (the "License"); | ||
| * you may not use this file except in compliance with the License. | ||
| * You may obtain a copy of the License at | ||
| * | ||
| * https://www.apache.org/licenses/LICENSE-2.0 | ||
| * | ||
| * Unless required by applicable law or agreed to in writing, software | ||
| * distributed under the License is distributed on an "AS IS" BASIS, | ||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| * See the License for the specific language governing permissions and | ||
| * limitations under the License. | ||
| */ | ||
|
|
||
| syntax = "proto3"; | ||
|
|
||
| package feast.serving; | ||
|
|
||
| option java_package = "feast.proto.serving"; | ||
| option java_outer_classname = "TransformationServiceAPIProto"; | ||
| option go_package = "github.com/feast-dev/feast/sdk/go/protos/feast/serving"; | ||
|
|
||
| service TransformationService { | ||
| rpc GetTransformationServiceInfo (GetTransformationServiceInfoRequest) returns (GetTransformationServiceInfoResponse); | ||
|
|
||
| rpc TransformFeatures (TransformFeaturesRequest) returns (TransformFeaturesResponse); | ||
| } | ||
|
|
||
| message ValueType { | ||
| oneof value { | ||
| // Having a oneOf provides forward compatibility if we need to support compound types | ||
| // that are not supported by arrow natively. | ||
| bytes arrow_value = 1; | ||
| } | ||
| } | ||
|
|
||
| message GetTransformationServiceInfoRequest {} | ||
|
|
||
| message GetTransformationServiceInfoResponse { | ||
| // Feast version of this transformation service deployment. | ||
| string version = 1; | ||
|
|
||
| // Type of transformation service deployment. This is either Python, or custom | ||
| TransformationServiceType type = 2; | ||
|
|
||
| string transformation_service_type_details = 3; | ||
| } | ||
|
|
||
| message TransformFeaturesRequest { | ||
| string on_demand_feature_view_name = 1; | ||
| string project = 2; | ||
|
|
||
| ValueType transformation_input = 3; | ||
|
||
| } | ||
|
|
||
| message TransformFeaturesResponse { | ||
| ValueType transformation_output = 3; | ||
| } | ||
|
|
||
| enum TransformationServiceType { | ||
| TRANSFORMATION_SERVICE_TYPE_INVALID = 0; | ||
| TRANSFORMATION_SERVICE_TYPE_PYTHON = 1; | ||
|
|
||
| TRANSFORMATION_SERVICE_TYPE_CUSTOM = 100; | ||
| } | ||
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this makes sense for the most advanced user.
for a user just getting started, i'd want maybe an "EMBEDDED" mode too where transformations happen on the feature server itself?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You mean in the python feature server, right? How would that be different from just running
get_online_featurespointing to a python feature server API, which should look up the values and do the transformation?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe the earlier question is what is the BATCH or ONLINE mode used for? seems like in both cases, we're applying the same row-level udf to all values?