FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Model (#769) · feathr-ai/feathr@be6fa17 · GitHub

Commit be6fa17

Browse files
authored
Model (#769)
* Add Data Models in Feathr This RB is to create data models based on proposal: https://microsoft-my.sharepoint.com/:w:/g/personal/djkim_linkedin_biz/EZspGt7jJlRAqHTICZg3UbcBgQQ_VncOgM48hKW--T8qkg?e=T4N3zw * Update models.py * Update models.py * Update models.py * Update models.py * Update models.py * Add attributes to data models Add data attributes to data models * Added _scproxy necessary for MacOS (#651) * Added _scproxy necessary for MacOS Signed-off-by: changyonglik <theeahlag@gmail.com> * Changed to conditional import Signed-off-by: changyonglik <theeahlag@gmail.com> * Added comments Signed-off-by: changyonglik <theeahlag@gmail.com> Signed-off-by: changyonglik <theeahlag@gmail.com> * Add docs for consuming features in online environment (#609) * Create consume-features.md * Update consume-features.md * rename docs * Update model-inference-with-feathr.md * Update README.md * update docs per feedback * Update streaming-source-ingestion.md * update docs * update docs * Update azure-deployment-arm.md * Update model-inference-with-feathr.md * add sign off message Signed-off-by: Xiaoyong Zhu xiaoyzhu@outlook.com * fix comments * Delete deploy-feathr-api-as-webapp.md * Update model-inference-with-feathr.md Signed-off-by: Xiaoyong Zhu xiaoyzhu@outlook.com * Clean up after moving to LFAI (#665) * Clean up after moving to LFAI Clean up after moving to LFAI * Update README.md * Updating docker version in ARM template to use latest release tagged image (#668) * Adding DevSkim linter to Github actions * Fix in ARM template to pull latest tagged release image from dockerhub * Removing dev skim file from this branch * Fixing linkedin org reference * Added prettier documentation (#672) * Added prettier documentation Signed-off-by: changyonglik <theeahlag@gmail.com> * Fixed prettier documentation Signed-off-by: changyonglik <theeahlag@gmail.com> Signed-off-by: changyonglik <theeahlag@gmail.com> * UI: Add data source detail page (#620) UI: Add data source detail page * Add aerospike sink (#632) * squash commit and avoid conflict * Revert legacy purview client issue * Fix typo * Remove auth from assink * Update aerospike guidance document * Chaneg port param to int * Remove reference to aerospike in sbt (#680) * Extend RBAC to support project id as input (#673) * extend rbac to support project id as input Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * update registry docs and interface Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * user name case sensitive hot fix Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Local Spark Provider which supports to submit feature join job in local spark (#644) * local spark feature join job with local file * update local spark with udf support * add feature gen support in local spark * update test case * remove unused feature conf, update doc * expose master as input and refine local spark provider Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Fixing issue with docker image on demo apps not getting updated (#686) Fixes #685 Look at the screenshot in the issue with the fixes. Basically it seems for dockerhub images, we don't need to pass in the full URL (domain name) for the image name while publishing them to webapps. * Lock python dependency versions (#690) * Update setup.py * Update setup.py * Update setup.py * Apply 'aggregation_features' parameter to merge dataframes (#667) * Apply 'aggregation_features' parameter to merge dataframes * modify test cases * modify test case filter rule to keep same results as before * add typekey check and improve previous changes * merge to main and quick change * revert change by mistake * Apply this parameter to HDSF sink and add comments * quick fix * quick improve Co-authored-by: Enya-Yx <enya@v-ellinlu-2.fareast.corp.microsoft.com> Co-authored-by: enya-yx <enya@7633599-06281.northamerica.corp.microsoft.com> Co-authored-by: enya-yx <enya@LAPTOP-NBH6175C.redmond.corp.microsoft.com> * Fix data source detail page in rbac registry (#698) Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Fix multi-keyed feature in anchor (direct purview) (#676) When using old purview client (not registry client), if features inside an anchor has a same SET of keys , when calling get_feature_from_registry, only the first key will be used. This PR handles the situation where each feature has multiple keys, and the collection of keys are identical among features inside an anchor. * Fix path with #LATEST (#684) * Fix Feature value adaptor and UDF adaptor on Spark executors (#660) * Fix Feature value adaptor and UDF adaptor on Spark executors * Fix path with #LATEST * Add comments * Defer version bump * Enhance SQL Registry Error Messages (#674) Right now the SQL registry returns all errors as 500 Internal Error, this PR improves the error handling and returns 400/404/409 on corresponding criteria. Also it introduces an environment variable REGISTRY_DEBUGGING, the returned HTTP error will include the detailed track back info when it's set to non-empty string. This variable should only be used for debugging purposes. * bump version to 0.8.0 (#694) Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Fix feature type bug where inferred feature type might not be honored when all the feature types are not provided (#701) * Update setup.py (#702) * fix rbac+purview web app issue (#700) Resolves #699 Root cause: Purview Registry starts too slow (than SQL registry) while RBAC layer add a dependency to its API in RBAC init which causes the web app crash Trials and Fix Trial: Add a sleep(60) command in start.sh will make the deployment successful Fix: Move the registry api dependency outside of RBAC init; Log the failure as Runtime Exception * Remove hard coded resources in docs (#696) Remove hard coded resources, such as synapse, app endpoint, redis and so on in docs to avoid causing confusion. * Add e2e test for purview registry and rbac registry (#689) * Add e2e test for purview registry and rbac registry * Add purview and rbac env e2e to registry tests * Fix merge issue * Update test use runtime jar from maven for spark submission to cover databricks (#706) * Enhance databricks submission error message (#710) Enhance databricks submission error message * Enhance purview registry error messages (#709) * Enhance purview registry error messages * Update doc for REGISTRY_DEBUGGING * hot fix databricks es dependency issue (#713) Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Fix materialize to sql e2e test failure (#717) * Fix materialize to sql e2e test failure * Update sql server name * Add Data Models in Feathr (#659) * Add Data Models in Feathr This RB is to create data models based on proposal: https://microsoft-my.sharepoint.com/:w:/g/personal/djkim_linkedin_biz/EZspGt7jJlRAqHTICZg3UbcBgQQ_VncOgM48hKW--T8qkg?e=T4N3zw * Update models.py * Update models.py * Update models.py * Update models.py * Update models.py * Revert "Enhance purview registry error messages (#709)" (#720) This reverts commit 059f2b4. * Improve Avro GenericRecord and SpecificRecord based row-level extractor performance (#723) * 1. In SparkRowExtractor.scala, add new extractor method which can be extended to do batch preprocess source dataframe into RDD[IndexRecord]. 2. In FeatureTransformation.scala, add logic to extract features from RDD[IndexedRecord]. 3. Improve some error messages. * Save lookup feature definition to HOCON files (#732) * Fix function string parsing (#725) * Add version. Fix function string parsing Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> * Add unit test Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> * Add comments Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> * Apply a same credential within each sample (#718) Co-authored-by: enya-yx <enya@v-ellinlu-2.fareast.corp.microsoft.com> * Enable incremental for HDFS sink (#695) * Enable incremental for HDFS sink * Add docstring * Add docs * minor fix * minor changes * quick fix Co-authored-by: enya-yx <enya@v-ellinlu-2.fareast.corp.microsoft.com> * #492 fix, fail only if different sources have same name (#733) * Remove unused credentials and deprecated purview settings (#708) * Remove unused credentials and deprecated purview settings * Revoke token submitted by mistaken (#730) * Update product_recommendation_demo.ipynb * Fix synapse errors not print out issue (#734) Co-authored-by: enya-yx <enya@v-ellinlu-2.fareast.corp.microsoft.com> * Spark config passing bug fix for local spark submission (#729) * Fix local spark output file-format bug Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> * Add dev dependencies. Add unit-test for local spark job launcher Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> * Fix local spark submission unused param error Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> * Fix direct purview client missing transformation (#736) * Revert "Derived feature bugfix (#121)" (#731) This reverts commit fa645f3. * Support SWA with groupBy to 1d tensor conversion (#748) * Support SWA with groupby to 1d tensor conversion * Rijai/armfix (#742) * Adding DevSkim linter to Github actions * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Making ARM instructions for Owner role and AAD App more clear * Removing devskim file * Reverting the changes to docker file to match with feathr/main * bump version to 0.8.2 (#722) Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Added latest deltalake version (#735) * Added latest deltalake version * Changed == to <= for deltalake installation * Changed <= to >= * #474 Disable local mode (#738) * Allow recreating entities for PurView registry (#691) * Allow recreating entities for PurView registry * Use constants * Adding DevSkim linter to Github actions (#657) * Adding DevSkim linter to Github actions * Ignoring .git and test folder * Fix icons in UI cannot auto scale (#737) (#744) * Fix icons in UI cannot auto scale (#737) * Fix home.css code style issue * Expose 'timePartitionPattern' in Python API [ WIP ] (#714) * Expose 'timePartitionPattern' * add test case * Add test cases and docstring * delete local files * quick fix Co-authored-by: enya-yx <enya@LAPTOP-NBH6175C.redmond.corp.microsoft.com> Co-authored-by: enya-yx <enya@v-ellinlu-2.fareast.corp.microsoft.com> * Setting up component governance pipeline (#655) [skip ci] * Add docs to explain on feature materialization behavior (#688) * Update materializing-features.md * Update materializing-features.md * Fix protobuf version (#711) * Fix protobuf version * quick fix Co-authored-by: enya-yx <enya@v-ellinlu-2.fareast.corp.microsoft.com> * Add some notes based on on-call issues (#753) * Add some notes based on on-call issues * quick fix Co-authored-by: enya-yx <enya@v-ellinlu-2.fareast.corp.microsoft.com> * Refine spark runtime error message (#755) Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Serialization bug due to version incompatibility between azure-core and msrest (#763) * Adding DevSkim linter to Github actions * Fix in ARM template to pull latest tagged release image from dockerhub * Removing dev skim file from this branch * Fixing linkedin org reference * Removing the docker index url from dockerhub image name as it seems to cause problem with the update * Adding to the right file, had a dockerhub workflow file with different name * Adding debug statements to test udf issue on Synapse * Adding more print statements * Pinning msrest version to work with pinned version of azure-core * Removing debug code from previous branch * Unify Python SDK Build Version and decouple Feathr Maven Version (#746) * unify python package version and enable env setting for scala version Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * update docs and decouple maven version Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * change version back to 0.8.0 to avoid conflicts Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * fix typo Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * replace hard code string in notebook and align with others (#765) Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Add flag to enable generation non-agg features (#719) * Add flag to enable generation non-agg features * Typo * Resolve comments * rollback 0.8.2 version bump PR (#771) Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> * Refactor Product Recommendation sample notebook (#743) * Adding DevSkim linter to Github actions * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Update docker-publish.yml * Removing devskim file * Restructuring the Prod Reco sample * Adjusting headings * Minor changes * Removing changes to docker publish file * Addressing PR comments, moving Product recommendation notebook sample to Synapse folder since it is strongly tied to Synapse * Addressing PR comments * Fixing images * Removing the need to pass email id as we could directly compute object Id using az command, also making CLI instructions clearer that it is for advance users * Update role-management page in UI (#751) (#764) * Update role-management page in UI (#751) * fix home.css LF file * fix RoleForm eslint warning * remove import dayjs Signed-off-by: Boli Guan <ifendoe@gmail.com> * Change components to arrow function. Signed-off-by: Boli Guan <ifendoe@gmail.com> Signed-off-by: Boli Guan <ifendoe@gmail.com> * Create Feature less module in UI code and import alias (#768) * Add craco devDependencies Signed-off-by: Boli Guan <ifendoe@gmail.com> * Add classnames, @ant-design/icons,eslint-plugin.. dependencies. Signed-off-by: Boli Guan <ifendoe@gmail.com> * Update .editorconfig and .eslintrc * Update .editorconfig Signed-off-by: Boli Guan <ifendoe@gmail.com> Signed-off-by: Boli Guan <ifendoe@gmail.com> * Add dev and notebook dependencies. Add extra dependency installation to the test pipeline yml (#773) Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> * Fix Windows compatibility issues (#776) * Update _databricks_submission.py * Update feathr-configuration-and-env.md * Update feathr-configuration-and-env.md * Update _databricks_submission.py * Update models.py * Update models.py * Address comments * Remove sourceRef * Add functionType Signed-off-by: changyonglik <theeahlag@gmail.com> Signed-off-by: Xiaoyong Zhu xiaoyzhu@outlook.com Signed-off-by: Yuqing Wei <weiyuqing021@outlook.com> Signed-off-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> Signed-off-by: Boli Guan <ifendoe@gmail.com> Co-authored-by: Chang Yong Lik <51813538+ahlag@users.noreply.github.com> Co-authored-by: Xiaoyong Zhu <xiaoyongzhu@users.noreply.github.com> Co-authored-by: Richin Jain <rijai@microsoft.com> Co-authored-by: Yihui Guo <yihgu@microsoft.com> Co-authored-by: Yuqing Wei <weiyuqing021@outlook.com> Co-authored-by: Enya-Yx <108409954+enya-yx@users.noreply.github.com> Co-authored-by: Enya-Yx <enya@v-ellinlu-2.fareast.corp.microsoft.com> Co-authored-by: enya-yx <enya@7633599-06281.northamerica.corp.microsoft.com> Co-authored-by: enya-yx <enya@LAPTOP-NBH6175C.redmond.corp.microsoft.com> Co-authored-by: Jinghui Mo <jmo@linkedin.com> Co-authored-by: 徐辰 <windoze@0d0a.com> Co-authored-by: Blair Chen <blrchen@users.noreply.github.com> Co-authored-by: Jun Ki Min <42475935+loomlike@users.noreply.github.com> Co-authored-by: Hangfei Lin <hnlin@linkedin.com> Co-authored-by: Boli Guan <ifendoe@gmail.com>
1 parent 07f473a commit be6fa17

6 files changed

Lines changed: 406 additions & 25 deletions

File tree

‎registry/data-models/common/__init__.py‎

Whitespace-only changes.
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
from pydantic import BaseModel
2+
from typing import Dict, Optional, List, Union
3+
import json
4+
from enum import Enum
5+
6+
7+
class ValueType(Enum):
8+
"""
9+
Type of the feature.
10+
"""
11+
INT = "int"
12+
LONG = "long"
13+
FLOAT = "float"
14+
DOUBLE = "double"
15+
STRING = "string"
16+
BOOLEAN = "boolean"
17+
BYTES = "bytes"
18+
19+
20+
class DimensionType(Enum):
21+
"""
22+
Supported dimension types for tensors in Feathr.
23+
"""
24+
INT = "int"
25+
LONG = "long"
26+
STRING = "string"
27+
BOOLEAN = "boolean"
28+
BYTES = "bytes"
29+
30+
31+
class TensorCategory(Enum):
32+
"""
33+
Supported Tensor categories in Feathr.
34+
"""
35+
DENSE = "dense" # Dense tensors store values in a contiguous sequential block of memory where all values are represented.
36+
SPARSE = "sparse" # Sparse tensor represents a dataset in which most of the entries are zero.
37+
RAGGED = "ragged" # Ragged tensors (also known as nested tensors) are similar to dense tensors but have variable-length dimensions.
38+
39+
40+
class FeatureValueType(Enum):
41+
"""
42+
The high level types associated with a feature.
43+
This represents the high level semantic types supported by early versions of Frame.
44+
"""
45+
BOOLEAN = "boolean" # Boolean valued feature
46+
NUMERIC = "numeric" # Numerically valued feature
47+
CATEGORICAL = "categorical" # Represent a feature that consists of a single category
48+
CATEGORICAL_SET = "categorical_set" # Represent a feature that consists of multiple categories
49+
DENSE_VECTOR = "dense_vector" # Represent a feature in vector format where the majority of the elements are non-zero
50+
TERM_VECTOR = "term_vector" # Represent features that has string terms and numeric value
51+
TENSOR = "tensor" # Represent tensor based features.
52+
UNSPECIFIED = "unspecified" # Placeholder for when no types are specified
53+
54+
55+
class Dimension(BaseModel):
56+
"""
57+
Tensor is used to represent feature data. A tensor is a generalization of vectors and matrices to potentially higher dimensions.
58+
"""
59+
type: DimensionType # Type of the dimension in the tensor. Each dimension can have a different type.
60+
shape: Optional[int] # Size of the dimension in the tensor. If unset, it means the size is unknown and actual size will be determined at runtime.
61+
62+
63+
class TensorFeatureFormat(BaseModel):
64+
"""
65+
Defines the format of feature data. Feature data is produced by applying transformation on source, in a Feature.
66+
Tensor is used to represent feature data. A tensor is a generalization of vectors and matrices to potentially
67+
higher dimensions.
68+
"""
69+
tensorCategory: TensorCategory # Type of the tensor.
70+
valueType: ValueType # Type of the value column.
71+
dimensions: List[Dimension] # A feature data can have zero or more dimensions (columns that represent keys).
72+
73+
74+
class FeatureType(BaseModel):
75+
"""
76+
Information about a featureName. It defines the type, format and default value.
77+
Tensor is the next generation representation of the features, so using
78+
Tensor type w TensorFeatureFormat would be preferable FeatureType.
79+
"""
80+
type: FeatureValueType # Defines the high level semantic type of feature.
81+
format: Optional[TensorFeatureFormat] # Defines the format of feature data.
82+
defaultValue: Union[bool, int, float, str, bytes]
83+
84+
85+
class Clazz(BaseModel):
86+
"""
87+
Reference to a class by fully-qualified name
88+
"""
89+
fullyQualifiedName: str # A fully-qualified class name including paths.
90+
91+
92+
class Function(BaseModel):
93+
"""
94+
Base model for all functions
95+
"""
96+
expression: str # Expression in str format
97+
functionType: str # Type of function in str format, will be used in UI
98+
99+
100+
class MvelExpression(Function):
101+
"""
102+
An expression in MVEL language.
103+
"""
104+
mvel: str # The MVEL expression
105+
106+
107+
class UserDefinedFunction(Function):
108+
"""
109+
User defined function that can be used in feature extraction or derivation.
110+
"""
111+
clazz: Clazz # Reference to the class that implements the user defined function.
112+
parameters: Dict[str, json] = {} # This field defines the custom parameters of the user defined function
113+
114+
115+
class SparkSqlExpression(Function):
116+
"""
117+
An expression in Spark SQL.
118+
"""
119+
sql: str # Spark SQl expression
120+
121+
122+
class SemanticVersion(BaseModel):
123+
"""
124+
A representation of a semantic version (see https://semver.org/)
125+
"""
126+
majorVersion: int # The major version of this version. This is the x in x.y.z.
127+
minorVersion: int # The minor version of this version. This is the y in x.y.z
128+
patchVersion: int # The patch version of this version. This is the z in x.y.z
129+
metadata: Optional[str] # Optional build metadata attached to this version.
130+
131+
132+
class FeathrModel(BaseModel):
133+
"""
134+
Base model for feathr entity which will be displayed in Feathr UI
135+
"""
136+
displayName: str # name of the entity showed on UI
137+
typeName: str # type of entity in str format, will be displayed in UI

‎registry/data-models/data-model-diagram.md‎

Lines changed: 169 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,194 @@ This file defines abstract backend data models diagram for feature registry.
66

77
```mermaid
88
classDiagram
9-
Project "1" --> "n" FeatureName : contains
10-
Project "1" --> "n" Anchor : contains
11-
FeatureName "1" --> "n" Feature : contains
12-
Anchor "1" --> "n" Feature : contains
13-
Feature <|-- AnchorFeature : extends
9+
Project "1" --> "n" FeatureName: contains
10+
Project "1" --> "n" Anchor: contains
11+
FeatureName "1" --> "n" Feature: contains
12+
FeatureName --> "Optional" SemanticVersion: contains
13+
FeatureName --> "Optional" FeatureType: contains
14+
Anchor "1" --> "n" AnchorFeature: contains
15+
Anchor --> DataSource: contains
16+
Feature <|-- AnchorFeature: extends
1417
Feature <|-- DerivedFeature: extends
15-
Feature --> Transformation
16-
Feature --> Transformation : contains
18+
Feature --> Transformation: contains
19+
Feature --> Source: contains
20+
Transformation --> Function: contains
1721
Source <|-- DataSource: extends
22+
DataSource --> "Optional" Clazz: contains
23+
DataSource --> "Optional" Function: contains
1824
Source <|-- MultiFeatureSource: extends
1925
MultiFeatureSource "1" --> "1..n" FeatureSource: contains
20-
AnchorFeature --> DataSource : contains
26+
AnchorFeature --> DataSource: contains
2127
DerivedFeature --> MultiFeatureSource: contains
22-
28+
FeathrModel <|-- Project: extends
29+
FeathrModel <|-- FeatureName: extends
30+
FeathrModel <|-- Anchor: extends
31+
FeathrModel <|-- Feature: extends
32+
FeathrModel <|-- Source: extends
33+
Dimension --> DimensionType: contains
34+
TensorFeatureFormat --> TensorCategory: contains
35+
TensorFeatureFormat --> ValueType: contains
36+
TensorFeatureFormat "1" --> "1..n" Dimension: contains
37+
FeatureType --> FeatureValueType: contains
38+
FeatureType --> "Optional" TensorFeatureFormat: contains
39+
Window --> WindowTimeUnit: contains
40+
Function <|-- MvelExpression: extends
41+
Function <|-- UserDefinedFunction: extends
42+
Function <|-- SparkSqlExpression: extends
43+
SlidingWindowAggregation --> SparkSqlExpression: contains
44+
SlidingWindowAggregation --> SlidingWindowAggregationType: contains
45+
SlidingWindowAggregation --> Window: contains
46+
SlidingWindowEmbeddingAggregation --> SparkSqlExpression: contains
47+
SlidingWindowEmbeddingAggregation --> SlidingWindowEmbeddingAggregationType: contains
48+
SlidingWindowEmbeddingAggregation --> Window: contains
49+
SlidingWindowLatestAvailable --> SparkSqlExpression: contains
50+
SlidingWindowLatestAvailable --> Window: contains
51+
Function <|-- SlidingWindowAggregation: extends
52+
Function <|-- SlidingWindowEmbeddingAggregation: extends
53+
Function <|-- SlidingWindowLatestAvailable: extends
54+
55+
class ValueType{
56+
<<enumeration>>
57+
INT
58+
LONG
59+
FLOAT
60+
DOUBLE
61+
STRING
62+
BOOLEAN
63+
BYTES
64+
}
65+
class DimensionType{
66+
<<enumeration>>
67+
INT
68+
LONG
69+
STRING
70+
BOOLEAN
71+
BYTES
72+
}
73+
class TensorCategory{
74+
<<enumeration>>
75+
DENSE
76+
SPARSE
77+
RAGGED
78+
}
79+
class FeatureValueType{
80+
<<enumeration>>
81+
BOOLEAN
82+
NUMERIC
83+
CATEGORICAL
84+
CATEGORICAL_SET
85+
DENSE_VECTOR
86+
TERM_VECTOR
87+
TENSOR
88+
UNSPECIFIED
89+
}
90+
class Dimension{
91+
+DimensionType type
92+
+Optional[str] shape
93+
}
94+
class TensorFeatureFormat{
95+
+TensorCategory tensorCategory
96+
+ValueType valueType
97+
+List[Dimension] dimensions
98+
}
99+
class FeatureType{
100+
+FeatureValueType type
101+
+Optional[TensorFeatureFormat] format
102+
+Union[bool, int, float, str, types] defaultValue
103+
}
104+
class Clazz{
105+
+str fullyQualifiedName
106+
}
107+
class Function{
108+
+str expression
109+
}
110+
class MvelExpression{
111+
+str mvel
112+
}
113+
class UserDefinedFunction{
114+
+str sql
115+
}
116+
class SemanticVersion{
117+
+int majorVersion
118+
+int minorVersion
119+
+int patchVersion
120+
+Optional[str] metadata
121+
}
122+
class FeathrModel{
123+
+str displayName
124+
+str typeName
125+
}
126+
class SlidingWindowAggregationType{
127+
<<enumeration>>
128+
SUM
129+
COUNT
130+
MAX
131+
MIN
132+
AVG
133+
}
134+
class SlidingWindowEmbeddingAggregationType{
135+
<<enumeration>>
136+
MAX_POOLING
137+
MIN_POOLING
138+
AVG_POOLING
139+
}
140+
class WindowTimeUnit{
141+
<<enumeration>>
142+
DAY
143+
HOUR
144+
MINUTE
145+
SECOND
146+
}
147+
class Window{
148+
+int size
149+
+WindowTimeUnit unit
150+
}
151+
class SlidingWindowAggregation{
152+
+SlidingWindowAggregationType aggregationType
153+
+Window window
154+
+SparkSqlExpression targetColumn
155+
+Optional[SparkSqlExpression] filter
156+
+Optional[SparkSqlExpression] groupBy
157+
+Optional[int] limit
158+
}
159+
class SlidingWindowEmbeddingAggregation{
160+
+SlidingWindowEmbeddingAggregationType aggregationType
161+
+Window window
162+
+SparkSqlExpression targetColumn
163+
+Optional[SparkSqlExpression] filter
164+
+Optional[SparkSqlExpression] groupBy
165+
}
166+
class SlidingWindowLatestAvailable{
167+
+Optional[Window] window
168+
+SparkSqlExpression targetColumn
169+
+Optional[SparkSqlExpression] filter
170+
+Optional[SparkSqlExpression] groupBy
171+
+Optional[int] limit
172+
}
23173
class Source{
24174
}
25175
class DataSource{
176+
+Optional[Clazz] clazz
177+
+Optional[Function] keyFunction
26178
}
27179
class FeatureSource{
28-
+FeatureNameId feature_name_id
180+
+FeatureNameId input_feature_name_id
181+
+Optional[str] alias
29182
}
30183
class MultiFeatureSource{
31184
+List[FeatureSource] sources
32185
}
186+
class Transformation{
187+
+Function transformationFunction
188+
}
33189
class Feature{
34190
+FeatureId id
35191
+FeatureNameId feature_namme_id
36192
+Source source
37193
+Transformation transformation
38194
}
39195
class AnchorFeature{
196+
+AnchorId anchor_id
40197
+DataSource source
41198
}
42199
class DerivedFeature{
@@ -46,6 +203,8 @@ classDiagram
46203
+FeatureNameId id
47204
+ProjectId project_id
48205
+List[FeatureId] feature_ids
206+
+Optional[SemanticVersion] semanticVersion
207+
+Optional[FeatureType] featureType
49208
}
50209
class Project{
51210
+ProjectId id

0 commit comments

Comments
 (0)

Back | FazBrowse Home | New Git URL