-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Expand file tree
/
Copy pathFeatureView.proto
More file actions
157 lines (118 loc) · 5.33 KB
/
Copy pathFeatureView.proto
File metadata and controls
157 lines (118 loc) · 5.33 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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
//
// Copyright 2020 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 go_package = "github.com/feast-dev/feast/go/protos/feast/core";
option java_outer_classname = "FeatureViewProto";
option java_package = "feast.proto.core";
import "google/protobuf/duration.proto";
import "google/protobuf/timestamp.proto";
import "feast/core/DataSource.proto";
import "feast/core/Feature.proto";
import "feast/core/Transformation.proto";
// Lifecycle state of a feature view.
enum FeatureViewState {
// Default value for backward compatibility. Treated as AVAILABLE_ONLINE
// for existing feature views that predate the state machine.
STATE_UNSPECIFIED = 0;
// Feature view has been registered via feast apply but no data is available.
CREATED = 1;
// Feature engineering / offline data generation is complete.
// The feature view is ready to be materialized.
GENERATED = 2;
// Materialization is currently in progress.
MATERIALIZING = 3;
// Materialization completed. Features are available in the online store.
AVAILABLE_ONLINE = 4;
}
message FeatureView {
// User-specified specifications of this feature view.
FeatureViewSpec spec = 1;
// System-populated metadata for this feature view.
FeatureViewMeta meta = 2;
}
// Next available id: 20
// TODO(adchia): refactor common fields from this and ODFV into separate metadata proto
message FeatureViewSpec {
// Name of the feature view. Must be unique. Not updated.
string name = 1;
// Name of Feast project that this feature view belongs to.
string project = 2;
// List of names of entities associated with this feature view.
repeated string entities = 3;
// List of specifications for each feature defined as part of this feature view.
repeated FeatureSpecV2 features = 4;
// User defined metadata
map<string,string> tags = 5;
// Features in this feature view can only be retrieved from online serving
// younger than ttl. Ttl is measured as the duration of time between
// the feature's event timestamp and when the feature is retrieved
// Feature values outside ttl will be returned as unset values and indicated to end user
google.protobuf.Duration ttl = 6;
// Batch/Offline DataSource where this view can retrieve offline feature data.
// Optional: if not set, the feature view has no associated batch data source (e.g. purely derived views).
DataSource batch_source = 7;
// Whether these features should be served online or not
// This is also used to determine whether the features should be written to the online store
bool online = 8;
// Streaming DataSource from where this view can consume "online" feature data.
// Optional: only required for streaming feature views.
DataSource stream_source = 9;
// Description of the feature view.
string description = 10;
// Owner of the feature view.
string owner = 11;
// List of specifications for each entity defined as part of this feature view.
repeated FeatureSpecV2 entity_columns = 12;
// Whether these features should be written to the offline store
bool offline = 13;
repeated FeatureViewSpec source_views = 14;
// Feature transformation for batch feature views
FeatureTransformationV2 feature_transformation = 15;
// The transformation mode (e.g., "python", "pandas", "spark", "sql", "ray")
string mode = 16;
// Whether schema validation is enabled during materialization
bool enable_validation = 17;
// User-specified version pin (e.g. "latest", "v2", "version2")
string version = 18;
// Organizational unit that owns this feature view (e.g. "ads", "search").
string org = 19;
// Whether this feature view is disabled for serving and materialization.
// When true, the feature view will not serve online features or be materialized.
// Defaults to false (enabled) for backward compatibility.
bool disabled = 20;
}
message FeatureViewMeta {
// Time where this Feature View is created
google.protobuf.Timestamp created_timestamp = 1;
// Time where this Feature View is last updated
google.protobuf.Timestamp last_updated_timestamp = 2;
// List of pairs (start_time, end_time) for which this feature view has been materialized.
repeated MaterializationInterval materialization_intervals = 3;
// The current version number of this feature view in the version history.
int32 current_version_number = 4;
// Auto-generated UUID identifying this specific version.
string version_id = 5;
// Lifecycle state of this feature view.
FeatureViewState state = 6;
}
message MaterializationInterval {
google.protobuf.Timestamp start_time = 1;
google.protobuf.Timestamp end_time = 2;
}
message FeatureViewList {
repeated FeatureView featureviews = 1;
}