forked from feast-dev/feast
-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathFeatureSet.proto
More file actions
97 lines (80 loc) · 3.12 KB
/
FeatureSet.proto
File metadata and controls
97 lines (80 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//
// * Copyright 2019 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.core;
option java_package = "feast.core";
option java_outer_classname = "FeatureSetProto";
option go_package = "github.com/gojek/feast/sdk/go/protos/feast/core";
import "feast/types/Value.proto";
import "feast/core/Source.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
message FeatureSet {
// User-specified specifications of this feature set.
FeatureSetSpec spec = 1;
// System-populated metadata for this feature set.
FeatureSetMeta meta = 2;
}
message FeatureSetSpec {
// Name of project that this feature set belongs to.
string project = 7;
// Name of the feature set. Must be unique.
string name = 1;
// Feature set version.
int32 version = 2;
// List of entities contained within this featureSet.
// This allows the feature to be used during joins between feature sets.
// If the featureSet is ingested into a store that supports keys, this value
// will be made a key.
repeated EntitySpec entities = 3;
// List of features contained within this featureSet.
repeated FeatureSpec features = 4;
// Features in this feature set will only be retrieved if they are found
// after [time - max_age]. Missing or older feature values will be returned
// as nulls and indicated to end user
google.protobuf.Duration max_age = 5;
// Optional. Source on which feature rows can be found.
// If not set, source will be set to the default value configured in Feast Core.
Source source = 6;
}
message EntitySpec {
// Name of the entity.
string name = 1;
// Value type of the feature.
feast.types.ValueType.Enum value_type = 2;
}
message FeatureSpec {
// Name of the feature.
string name = 1;
// Value type of the feature.
feast.types.ValueType.Enum value_type = 2;
}
message FeatureSetMeta {
// Created timestamp of this specific feature set.
google.protobuf.Timestamp created_timestamp = 1;
// Status of the feature set.
// Used to indicate whether the feature set is ready for consumption or ingestion.
// Currently supports 2 states:
// 1) STATUS_PENDING - A feature set is in pending state if Feast has not spun up the jobs
// necessary to push rows for this feature set to stores subscribing to this feature set.
// 2) STATUS_READY - Feature set is ready for consumption or ingestion
FeatureSetStatus status = 2;
}
enum FeatureSetStatus {
STATUS_INVALID = 0;
STATUS_PENDING = 1;
STATUS_READY = 2;
}