From 95f214cbad717a7c9866a3f6377ccca462e414c3 Mon Sep 17 00:00:00 2001 From: Xiaoyong Zhu Date: Wed, 8 Jun 2022 08:38:10 +0800 Subject: [PATCH 01/18] Update databricks quick start experience (#217) --- README.md | 2 ++ docs/README.md | 2 +- docs/concepts/concepts.md | 1 - docs/concepts/feathr-concepts-for-beginners.md | 2 +- docs/dev_guide/dev-guide.md | 1 - docs/how-to-guides/how-to-guides.md | 1 - docs/images/databricks_quickstart1.png | Bin 0 -> 231426 bytes docs/images/databricks_quickstart2.png | Bin 0 -> 263004 bytes docs/quickstart_databricks.md | 13 ++++++++++++- docs/{quickstart.md => quickstart_synapse.md} | 0 ...databricks_quickstart_nyc_taxi_driver.ipynb | 2 +- 11 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 docs/images/databricks_quickstart1.png create mode 100644 docs/images/databricks_quickstart2.png rename docs/{quickstart.md => quickstart_synapse.md} (100%) diff --git a/README.md b/README.md index 27f65096a..4cc3da58b 100644 --- a/README.md +++ b/README.md @@ -44,6 +44,8 @@ pip install git+https://github.com/linkedin/feathr.git#subdirectory=feathr_proje ## ☁️ Running Feathr on Cloud +Feathr has native integrations with Databricks and Azure Synapse: + - Please read the [Quick Start Guide for Feathr on Databricks](./docs/quickstart_databricks.md) to run Feathr with Databricks. - Please read the [Quick Start Guide for Feathr on Azure Synapse](./docs/quickstart.md) to run Feathr with Azure Synapse. diff --git a/docs/README.md b/docs/README.md index 09379a868..1e80d55bf 100644 --- a/docs/README.md +++ b/docs/README.md @@ -141,7 +141,7 @@ Feathr has native integration with Azure and other cloud services, and here's th ## Quickstart -- [Quickstart](quickstart.md) +- [Quickstart for Azure Synapse](quickstart_synapse.md) ## Concepts diff --git a/docs/concepts/concepts.md b/docs/concepts/concepts.md index 8d5713e13..d91f4291c 100644 --- a/docs/concepts/concepts.md +++ b/docs/concepts/concepts.md @@ -1,7 +1,6 @@ --- layout: default title: Feathr Concepts -nav_order: 3 has_children: true permalink: docs/concepts --- diff --git a/docs/concepts/feathr-concepts-for-beginners.md b/docs/concepts/feathr-concepts-for-beginners.md index 918b45c14..7bb2f0530 100644 --- a/docs/concepts/feathr-concepts-for-beginners.md +++ b/docs/concepts/feathr-concepts-for-beginners.md @@ -141,4 +141,4 @@ For more details on how to utilize Feathr to perform point-in-time joins, refer ## Next Steps -After you are familar with the above concepts, please check out the [quick start guide](../quickstart.md) to get your hands dirty. Enjoy! \ No newline at end of file +After you are familar with the above concepts, please check out the [quick start guide](../quickstart_synapse.md) to get your hands dirty. Enjoy! \ No newline at end of file diff --git a/docs/dev_guide/dev-guide.md b/docs/dev_guide/dev-guide.md index 60d03e109..6c1dffb37 100644 --- a/docs/dev_guide/dev-guide.md +++ b/docs/dev_guide/dev-guide.md @@ -1,7 +1,6 @@ --- layout: default title: Feathr Developer Guides -nav_order: 5 has_children: true permalink: docs/dev_guide --- diff --git a/docs/how-to-guides/how-to-guides.md b/docs/how-to-guides/how-to-guides.md index a68e27077..40a959c72 100644 --- a/docs/how-to-guides/how-to-guides.md +++ b/docs/how-to-guides/how-to-guides.md @@ -1,7 +1,6 @@ --- layout: default title: Feathr How-to Guides -nav_order: 4 has_children: true permalink: docs/how-to-guides --- diff --git a/docs/images/databricks_quickstart1.png b/docs/images/databricks_quickstart1.png new file mode 100644 index 0000000000000000000000000000000000000000..135e59e8f648bc9fd5045318a0b8bd7ddca853f7 GIT binary patch literal 231426 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≻z9HM!MX`2T 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 H_u>Bo5Cfsh literal 0 HcmV?d00001 diff --git a/docs/quickstart_databricks.md b/docs/quickstart_databricks.md index 6fd38e3f8..96bf6d508 100644 --- a/docs/quickstart_databricks.md +++ b/docs/quickstart_databricks.md @@ -6,4 +6,15 @@ nav_order: 3 # Feathr Quickstart Guide for Databricks -For Databricks, you can simply upload [this notebook](./samples/databricks/databricks_quickstart_nyc_taxi_driver.ipynb) to your Databricks cluster and just run it in the databricks cluster. It has been pre-configured to use the current databricks cluster to submit jobs. \ No newline at end of file +For Databricks, you can simply upload [this notebook](./samples/databricks/databricks_quickstart_nyc_taxi_driver.ipynb) to your Databricks cluster and just run it in the databricks cluster. It has been pre-configured to use the current databricks cluster to submit jobs. + +1. Import Notebooks in your databricks cluster: + +![Import Notebooks](./images/databricks_quickstart1.png) + + +2. Paste the [link to databricks getting started notebook](./samples/databricks/databricks_quickstart_nyc_taxi_driver.ipynb): + +![Import Notebooks](./images/databricks_quickstart2.png) + +3. Run the whole notebook. It will automatically install Feathr in your cluster and run the feature ingestion jobs. \ No newline at end of file diff --git a/docs/quickstart.md b/docs/quickstart_synapse.md similarity index 100% rename from docs/quickstart.md rename to docs/quickstart_synapse.md diff --git a/docs/samples/databricks/databricks_quickstart_nyc_taxi_driver.ipynb b/docs/samples/databricks/databricks_quickstart_nyc_taxi_driver.ipynb index 49e0c1897..8a35fa42f 100644 --- a/docs/samples/databricks/databricks_quickstart_nyc_taxi_driver.ipynb +++ b/docs/samples/databricks/databricks_quickstart_nyc_taxi_driver.ipynb @@ -1 +1 @@ -{"cells":[{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"384e5e16-7213-4186-9d04-09d03b155534","showTitle":false,"title":""}},"source":["# Feathr Feature Store on Databricks Demo Notebook\n","\n","This notebook illustrates the use of Feature Store to create a model that predicts NYC Taxi fares. This is a notebook that's specially designed for databricks clusters and is relying on some of the databricks packages such as dbutils.\n","\n","The intent of this notebook is like \"one click run\" without configuring anything, so it has relatively limited capability. \n","\n","- For example, in this notebook there's no feature registry available since that requires running Azure Purview. \n","- Also for online store (Redis), you need to configure the Redis endpoint, otherwise that part will not work. \n","\n","However, the core part of Feathr, especially defining features, get offline features, point-in-time joins etc., should \"just work\". The full-fledged notebook is [located here](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/nyc_driver_demo.ipynb)."]},{"cell_type":"markdown","metadata":{},"source":["\n","# Notebook Steps\n","\n","This tutorial demonstrates the key capabilities of Feathr, including:\n","\n","1. Install and set up Feathr with Azure\n","2. Create shareable features with Feathr feature definition configs.\n","3. Create a training dataset via point-in-time feature join.\n","4. Compute and write features.\n","5. Train a model using these features to predict fares.\n","6. Materialize feature value to online store.\n","7. Fetch feature value in real-time from online store for online scoring.\n","\n","In this tutorial, we use Feathr Feature Store to create a model that predicts NYC Taxi fares. The dataset comes from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). The feature flow is as below:\n","\n","![Feature Flow](https://github.com/linkedin/feathr/blob/main/docs/images/feature_flow.png?raw=true)"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"f00b9d0b-94d1-418f-89b9-25bbacb8b068","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["! pip install feathr pandavro scikit-learn"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"80223a02-631c-40c8-91b3-a037249ffff9","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["import glob\n","import os\n","import tempfile\n","from datetime import datetime, timedelta\n","from math import sqrt\n","\n","import pandas as pd\n","import pandavro as pdx\n","from feathr import FeathrClient\n","from feathr import BOOLEAN, FLOAT, INT32, ValueType\n","from feathr import Feature, DerivedFeature, FeatureAnchor\n","from feathr import BackfillTime, MaterializationSettings\n","from feathr import FeatureQuery, ObservationSettings\n","from feathr import RedisSink\n","from feathr import INPUT_CONTEXT, HdfsSource\n","from feathr import WindowAggTransformation\n","from feathr import TypedKey\n","from sklearn.metrics import mean_squared_error\n","from sklearn.model_selection import train_test_split\n","from azure.identity import DefaultAzureCredential\n","from azure.keyvault.secrets import SecretClient\n","import json\n","import requests"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"41d3648a-9bc9-40dc-90da-bc82b21ef9b3","showTitle":false,"title":""}},"source":["Get the required databricks credentials automatically:"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"331753d6-1850-47b5-ad97-84b7c01d79d1","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["# Get current databricks notebook context\n","ctx = dbutils.notebook.entry_point.getDbutils().notebook().getContext()\n","host_name = ctx.tags().get(\"browserHostName\").get()\n","host_token = ctx.apiToken().get()\n","cluster_id = ctx.tags().get(\"clusterId\").get()\n","\n","\n","feathr_runtime_location = \"https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar\"\n","\n","databricks_config = {'run_name':'FEATHR_FILL_IN','existing_cluster_id':cluster_id,'libraries':[{'jar':'FEATHR_FILL_IN'}],'spark_jar_task':{'main_class_name':'FEATHR_FILL_IN','parameters':['FEATHR_FILL_IN']}}\n","os.environ['spark_config__databricks__workspace_instance_url'] = \"https://\" + host_name\n","# os.environ['spark_config__databricks__config_template']='{\"run_name\":\"FEATHR_FILL_IN\",\"new_cluster\":{\"spark_version\":\"10.4.x-scala2.12\",\"node_type_id\":\"Standard_D3_v2\",\"num_workers\":2,\"spark_conf\":{\"FEATHR_FILL_IN\":\"FEATHR_FILL_IN\"}},\"libraries\":[{\"jar\":\"FEATHR_FILL_IN\"}],\"spark_jar_task\":{\"main_class_name\":\"FEATHR_FILL_IN\",\"parameters\":[\"FEATHR_FILL_IN\"]}}'\n","os.environ['spark_config__databricks__config_template']=json.dumps(databricks_config)\n","os.environ['spark_config__databricks__work_dir']='dbfs:/feathr_getting_started'\n","os.environ['spark_config__databricks__feathr_runtime_location']=feathr_runtime_location\n","os.environ['project_config__project_name']='feathr_getting_started'\n","os.environ['DATABRICKS_WORKSPACE_TOKEN_VALUE'] = host_token"]},{"cell_type":"markdown","metadata":{},"source":["You need to setup the Redis credentials below in order to push features to online store. You can skip this part if you don't have Redis, but there will be failures for `client.materialize_features(settings)` API."]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["# Get redis credentials; This is to parse Redis connection string.\n","redis_port=\"\"\n","redis_host=\"\"\n","redis_password=\"\"\n","redis_ssl=\"\"\n","\n","# Set the resource link\n","os.environ['online_store__redis__host'] = redis_host\n","os.environ['online_store__redis__port'] = redis_port\n","os.environ['online_store__redis__ssl_enabled'] = redis_ssl\n","os.environ['REDIS_PASSWORD']=redis_password"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"08bc3b7e-bbf5-4e3a-9978-fe1aef8c1aee","showTitle":false,"title":""}},"source":["Configure required credentials (skip if you don't use those):"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"8cd64e3a-376c-48e6-ba41-5197f3591d48","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["import tempfile\n","yaml_config = \"\"\"\n","# Please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml for explanations on the meaning of each field.\n","api_version: 1\n","project_config:\n"," project_name: 'feathr_getting_started2'\n"," required_environment_variables:\n"," - 'REDIS_PASSWORD'\n"," - 'AZURE_CLIENT_ID'\n"," - 'AZURE_TENANT_ID'\n"," - 'AZURE_CLIENT_SECRET'\n","offline_store:\n"," adls:\n"," adls_enabled: true\n"," wasb:\n"," wasb_enabled: true\n"," s3:\n"," s3_enabled: false\n"," s3_endpoint: 's3.amazonaws.com'\n"," jdbc:\n"," jdbc_enabled: false\n"," jdbc_database: 'feathrtestdb'\n"," jdbc_table: 'feathrtesttable'\n"," snowflake:\n"," url: \"dqllago-ol19457.snowflakecomputing.com\"\n"," user: \"feathrintegration\"\n"," role: \"ACCOUNTADMIN\"\n","spark_config:\n"," # choice for spark runtime. Currently support: azure_synapse, databricks\n"," # The `databricks` configs will be ignored if `azure_synapse` is set and vice versa.\n"," spark_cluster: \"databricks\"\n"," spark_result_output_parts: \"1\"\n","\n","online_store:\n"," redis:\n"," host: 'feathrazuretest3redis.redis.cache.windows.net'\n"," port: 6380\n"," ssl_enabled: True\n","feature_registry:\n"," purview:\n"," type_system_initialization: true\n"," purview_name: 'feathrazuretest3-purview1'\n"," delimiter: '__'\n","\"\"\"\n","tmp = tempfile.NamedTemporaryFile(mode='w', delete=False)\n","with open(tmp.name, \"w\") as text_file:\n"," text_file.write(yaml_config)\n"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"3fef7f2f-df19-4f53-90a5-ff7999ed983d","showTitle":false,"title":""}},"source":["# Initialize Feathr Client"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"9713a2df-c7b2-4562-88b0-b7acce3cc43a","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["client = FeathrClient(config_path=tmp.name)"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"c3b64bda-d42c-4a64-b976-0fb604cf38c5","showTitle":false,"title":""}},"source":["## View the data\n","\n","In this tutorial, we use Feathr Feature Store to create a model that predicts NYC Taxi fares. The dataset comes from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). The data is as below"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"c4ccd7b3-298a-4e5a-8eec-b7e309db393e","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["import pandas as pd\n","pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/green_tripdata_2020-04_with_index.csv\")"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"7430c942-64e5-4b70-b823-16ce1d1b3cee","showTitle":false,"title":""}},"source":["## Defining Features with Feathr\n","\n","In Feathr, a feature is viewed as a function, mapping from entity id or key, and timestamp to a feature value. For more details on feature definition, please refer to the [Feathr Feature Definition Guide](https://github.com/linkedin/feathr/blob/main/docs/concepts/feature-definition.md)\n","\n","\n","1. The typed key (a.k.a. entity id) identifies the subject of feature, e.g. a user id, 123.\n","2. The feature name is the aspect of the entity that the feature is indicating, e.g. the age of the user.\n","3. The feature value is the actual value of that aspect at a particular time, e.g. the value is 30 at year 2022."]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"16420730-582e-4e11-a343-efc0ddd35108","showTitle":false,"title":""}},"source":["Note that, in some cases, such as features defined on top of request data, may have no entity key or timestamp.\n","It is merely a function/transformation executing against request data at runtime.\n","For example, the day of week of the request, which is calculated by converting the request UNIX timestamp."]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"728d2d5f-c11f-4941-bdc5-48507f5749f1","showTitle":false,"title":""}},"source":["### Define Sources Section with UDFs\n","A feature source is needed for anchored features that describes the raw data in which the feature values are computed from. See the python documentation to get the details on each input column."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"3cc59a0e-a41b-480e-a84e-ca5443d63143","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["batch_source = HdfsSource(name=\"nycTaxiBatchSource\",\n"," path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04_with_index.csv\",\n"," event_timestamp_column=\"lpep_dropoff_datetime\",\n"," timestamp_format=\"yyyy-MM-dd HH:mm:ss\")"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"46f863c4-bb81-434a-a448-6b585031a221","showTitle":false,"title":""}},"source":["### Define Anchors and Features\n","A feature is called an anchored feature when the feature is directly extracted from the source data, rather than computed on top of other features. The latter case is called derived feature."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"a373ecbe-a040-4cd3-9d87-0d5f4c5ba553","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["f_trip_distance = Feature(name=\"f_trip_distance\",\n"," feature_type=FLOAT, transform=\"trip_distance\")\n","\n","features = [\n"," f_trip_distance,\n"," Feature(name=\"f_is_long_trip_distance\",\n"," feature_type=BOOLEAN,\n"," transform=\"cast_float(trip_distance)>30\"),\n"," Feature(name=\"f_day_of_week\",\n"," feature_type=INT32,\n"," transform=\"dayofweek(lpep_dropoff_datetime)\"),\n","]\n","\n","request_anchor = FeatureAnchor(name=\"request_features\",\n"," source=INPUT_CONTEXT,\n"," features=features)"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"149f85e2-fa3c-4895-b0c5-de5543ca9b6d","showTitle":false,"title":""}},"source":["### Window aggregation features\n","\n","For window aggregation features, see the supported fields below:\n","\n","Note that the `agg_func` should be any of these:\n","\n","| Aggregation Type | Input Type | Description |\n","| --- | --- | --- |\n","|SUM, COUNT, MAX, MIN, AVG\t|Numeric|Applies the the numerical operation on the numeric inputs. |\n","|MAX_POOLING, MIN_POOLING, AVG_POOLING\t| Numeric Vector | Applies the max/min/avg operation on a per entry bassis for a given a collection of numbers.|\n","|LATEST| Any |Returns the latest not-null values from within the defined time window |\n","\n","\n","After you have defined features and sources, bring them together to build an anchor:\n","\n","\n","Note that if the data source is from the observation data, the `source` section should be `INPUT_CONTEXT` to indicate the source of those defined anchors."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"05633bc3-9118-449b-9562-45fc437576c2","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["location_id = TypedKey(key_column=\"DOLocationID\",\n"," key_column_type=ValueType.INT32,\n"," description=\"location id in NYC\",\n"," full_name=\"nyc_taxi.location_id\")\n","agg_features = [Feature(name=\"f_location_avg_fare\",\n"," key=location_id,\n"," feature_type=FLOAT,\n"," transform=WindowAggTransformation(agg_expr=\"cast_float(fare_amount)\",\n"," agg_func=\"AVG\",\n"," window=\"90d\")),\n"," Feature(name=\"f_location_max_fare\",\n"," key=location_id,\n"," feature_type=FLOAT,\n"," transform=WindowAggTransformation(agg_expr=\"cast_float(fare_amount)\",\n"," agg_func=\"MAX\",\n"," window=\"90d\")),\n"," ]\n","\n","agg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n"," source=batch_source,\n"," features=agg_features)"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"d2ecaca9-057e-4b36-811f-320f66f753ed","showTitle":false,"title":""}},"source":["### Derived Features Section\n","Derived features are the features that are computed from other features. They could be computed from anchored features, or other derived features."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"270fb11e-8a71-404f-9639-ad29d8e6a2c1","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["\n","f_trip_distance_rounded = DerivedFeature(name=\"f_trip_distance_rounded\",\n"," feature_type=INT32,\n"," input_features=[f_trip_distance],\n"," transform=\"f_trip_distance * 10\")\n"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"ad102c45-586d-468c-85f0-9454401ef10b","showTitle":false,"title":""}},"source":["And then we need to build those features so that it can be consumed later. Note that we have to build both the \"anchor\" and the \"derived\" features (which is not anchored to a source)."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"91bb5ebb-87e4-470b-b8eb-1c89b351740e","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["client.build_features(anchor_list=[agg_anchor, request_anchor], derived_feature_list=[\n"," f_trip_distance_rounded])"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"632d5f46-f9e2-41a8-aab7-34f75206e2aa","showTitle":false,"title":""}},"source":["## Create training data using point-in-time correct feature join\n","\n","A training dataset usually contains entity id columns, multiple feature columns, event timestamp column and label/target column. \n","\n","To create a training dataset using Feathr, one needs to provide a feature join configuration file to specify\n","what features and how these features should be joined to the observation data. \n","\n","To learn more on this topic, please refer to [Point-in-time Correctness](https://github.com/linkedin/feathr/blob/main/docs/concepts/point-in-time-join.md)"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"e438e6d8-162e-4aa3-b3b3-9d1f3b0d2b7f","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["\n","output_path = 'dbfs:/feathrazure_test.avro'\n","\n","\n","feature_query = FeatureQuery(\n"," feature_list=[\"f_location_avg_fare\", \"f_trip_distance_rounded\", \"f_is_long_trip_distance\"], key=location_id)\n","settings = ObservationSettings(\n"," observation_path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04_with_index.csv\",\n"," event_timestamp_column=\"lpep_dropoff_datetime\",\n"," timestamp_format=\"yyyy-MM-dd HH:mm:ss\")\n","client.get_offline_features(observation_settings=settings,\n"," feature_query=feature_query,\n"," output_path=output_path\n"," )\n","client.wait_job_to_finish(timeout_sec=500)"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"51f078e3-3f8f-4f10-b7f1-499ac8a9ff07","showTitle":false,"title":""}},"source":["## Download the result and show the result\n","\n","Let's use the helper function `get_result_df` to download the result and view it:"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"23c797b2-ac1a-4cf3-b0ed-c05216de3f37","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["from feathr.job_utils import get_result_df\n","df_res = get_result_df(client, format=\"avro\", res_url = output_path)"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"b9be042e-eb12-46b9-9d91-a0e5dd0c704f","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["df_res"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"dcbf17fc-7f79-4a65-a3af-9cffbd0b5d1f","showTitle":false,"title":""}},"source":["## Train a machine learning model\n","After getting all the features, let's train a machine learning model with the converted feature by Feathr:"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"84745f36-5bac-49c0-903b-38828b923c7c","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["# remove columns\n","from sklearn.ensemble import GradientBoostingRegressor\n","final_df = df_res\n","final_df.drop([\"lpep_pickup_datetime\", \"lpep_dropoff_datetime\",\n"," \"store_and_fwd_flag\"], axis=1, inplace=True, errors='ignore')\n","final_df.fillna(0, inplace=True)\n","final_df['fare_amount'] = final_df['fare_amount'].astype(\"float64\")\n","\n","\n","train_x, test_x, train_y, test_y = train_test_split(final_df.drop([\"fare_amount\"], axis=1),\n"," final_df[\"fare_amount\"],\n"," test_size=0.2,\n"," random_state=42)\n","model = GradientBoostingRegressor()\n","model.fit(train_x, train_y)\n","\n","y_predict = model.predict(test_x)\n","\n","y_actual = test_y.values.flatten().tolist()\n","rmse = sqrt(mean_squared_error(y_actual, y_predict))\n","\n","sum_actuals = sum_errors = 0\n","\n","for actual_val, predict_val in zip(y_actual, y_predict):\n"," abs_error = actual_val - predict_val\n"," if abs_error < 0:\n"," abs_error = abs_error * -1\n","\n"," sum_errors = sum_errors + abs_error\n"," sum_actuals = sum_actuals + actual_val\n","\n","mean_abs_percent_error = sum_errors / sum_actuals\n","print(\"Model MAPE:\")\n","print(mean_abs_percent_error)\n","print()\n","print(\"Model Accuracy:\")\n","print(1 - mean_abs_percent_error)\n"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"5a226026-1c7b-48db-8f91-88d5c2ddf023","showTitle":false,"title":""}},"source":["## Materialize feature value into offline/online storage\n","\n","While Feathr can compute the feature value from the feature definition on-the-fly at request time, it can also pre-compute\n","and materialize the feature value to offline and/or online storage. \n","\n","We can push the generated features to the online store like below:"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"3b924c66-8634-42fe-90f3-c844487d3f75","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["backfill_time = BackfillTime(start=datetime(\n"," 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1))\n","redisSink = RedisSink(table_name=\"nycTaxiDemoFeature\")\n","settings = MaterializationSettings(\"nycTaxiTable\",\n"," backfill_time=backfill_time,\n"," sinks=[redisSink],\n"," feature_names=[\"f_location_avg_fare\", \"f_location_max_fare\"])\n","\n","client.materialize_features(settings)\n","client.wait_job_to_finish(timeout_sec=500)\n"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"6a3e2ab1-5c66-4d27-a737-c5e2af03b1dd","showTitle":false,"title":""}},"source":["We can then get the features from the online store (Redis):"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"bef93538-9591-4247-97b6-289d2055b7b1","showTitle":false,"title":""}},"source":["## Fetching feature value for online inference\n","\n","For features that are already materialized by the previous step, their latest value can be queried via the client's\n","`get_online_features` or `multi_get_online_features` API."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"0c3d5f35-11a3-4644-9992-5860169d8302","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["res = client.get_online_features('nycTaxiDemoFeature', '265', [\n"," 'f_location_avg_fare', 'f_location_max_fare'])"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"4d4699ed-42e6-408f-903d-2f799284f4b6","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["client.multi_get_online_features(\"nycTaxiDemoFeature\", [\"239\", \"265\"], [\n"," 'f_location_avg_fare', 'f_location_max_fare'])"]}],"metadata":{"application/vnd.databricks.v1+notebook":{"dashboards":[],"language":"python","notebookMetadata":{"pythonIndentUnit":4},"notebookName":"nyc_driver_demo","notebookOrigID":930353059183053,"widgets":{}},"interpreter":{"hash":"830c16c5b424e7ff512f67d4056b67cea1a756a7ad6a92c98b9e2b95c5e484ae"},"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.5"}},"nbformat":4,"nbformat_minor":0} +{"cells":[{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"384e5e16-7213-4186-9d04-09d03b155534","showTitle":false,"title":""}},"source":["# Feathr Feature Store on Databricks Demo Notebook\n","\n","This notebook illustrates the use of Feature Store to create a model that predicts NYC Taxi fares. This is a notebook that's specially designed for databricks clusters and is relying on some of the databricks packages such as dbutils.\n","\n","The intent of this notebook is like \"one click run\" without configuring anything, so it has relatively limited capability. \n","\n","- For example, in this notebook there's no feature registry available since that requires running Azure Purview. \n","- Also for online store (Redis), you need to configure the Redis endpoint, otherwise that part will not work. \n","\n","However, the core part of Feathr, especially defining features, get offline features, point-in-time joins etc., should \"just work\". The full-fledged notebook is [located here](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/nyc_driver_demo.ipynb)."]},{"cell_type":"markdown","metadata":{},"source":["\n","# Notebook Steps\n","\n","This tutorial demonstrates the key capabilities of Feathr, including:\n","\n","1. Install and set up Feathr with Azure\n","2. Create shareable features with Feathr feature definition configs.\n","3. Create a training dataset via point-in-time feature join.\n","4. Compute and write features.\n","5. Train a model using these features to predict fares.\n","6. Materialize feature value to online store.\n","7. Fetch feature value in real-time from online store for online scoring.\n","\n","In this tutorial, we use Feathr Feature Store to create a model that predicts NYC Taxi fares. The dataset comes from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). The feature flow is as below:\n","\n","![Feature Flow](https://github.com/linkedin/feathr/blob/main/docs/images/feature_flow.png?raw=true)"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"f00b9d0b-94d1-418f-89b9-25bbacb8b068","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["! pip install feathr pandavro scikit-learn"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"80223a02-631c-40c8-91b3-a037249ffff9","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["import glob\n","import os\n","import tempfile\n","from datetime import datetime, timedelta\n","from math import sqrt\n","\n","import pandas as pd\n","import pandavro as pdx\n","from feathr import FeathrClient\n","from feathr import BOOLEAN, FLOAT, INT32, ValueType\n","from feathr import Feature, DerivedFeature, FeatureAnchor\n","from feathr import BackfillTime, MaterializationSettings\n","from feathr import FeatureQuery, ObservationSettings\n","from feathr import RedisSink\n","from feathr import INPUT_CONTEXT, HdfsSource\n","from feathr import WindowAggTransformation\n","from feathr import TypedKey\n","from sklearn.metrics import mean_squared_error\n","from sklearn.model_selection import train_test_split\n","from azure.identity import DefaultAzureCredential\n","from azure.keyvault.secrets import SecretClient\n","import json\n","import requests"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"41d3648a-9bc9-40dc-90da-bc82b21ef9b3","showTitle":false,"title":""}},"source":["Get the required databricks credentials automatically:"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"331753d6-1850-47b5-ad97-84b7c01d79d1","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["# Get current databricks notebook context\n","ctx = dbutils.notebook.entry_point.getDbutils().notebook().getContext()\n","host_name = ctx.tags().get(\"browserHostName\").get()\n","host_token = ctx.apiToken().get()\n","cluster_id = ctx.tags().get(\"clusterId\").get()\n","\n","\n","feathr_runtime_location = \"https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar\"\n","\n","# databricks_config = {'run_name':'FEATHR_FILL_IN','existing_cluster_id':cluster_id,'libraries':[{'jar':'FEATHR_FILL_IN'}],'spark_jar_task':{'main_class_name':'FEATHR_FILL_IN','parameters':['FEATHR_FILL_IN']}}\n","os.environ['spark_config__databricks__workspace_instance_url'] = \"https://\" + host_name\n","os.environ['spark_config__databricks__config_template']='{\"run_name\":\"FEATHR_FILL_IN\",\"new_cluster\":{\"spark_version\":\"10.4.x-scala2.12\",\"node_type_id\":\"Standard_D3_v2\",\"num_workers\":2,\"spark_conf\":{\"FEATHR_FILL_IN\":\"FEATHR_FILL_IN\"}},\"libraries\":[{\"jar\":\"FEATHR_FILL_IN\"}],\"spark_jar_task\":{\"main_class_name\":\"FEATHR_FILL_IN\",\"parameters\":[\"FEATHR_FILL_IN\"]}}'\n","# os.environ['spark_config__databricks__config_template']=json.dumps(databricks_config)\n","os.environ['spark_config__databricks__work_dir']='dbfs:/feathr_getting_started'\n","os.environ['spark_config__databricks__feathr_runtime_location']=feathr_runtime_location\n","os.environ['project_config__project_name']='feathr_getting_started'\n","os.environ['DATABRICKS_WORKSPACE_TOKEN_VALUE'] = host_token"]},{"cell_type":"markdown","metadata":{},"source":["You need to setup the Redis credentials below in order to push features to online store. You can skip this part if you don't have Redis, but there will be failures for `client.materialize_features(settings)` API."]},{"cell_type":"code","execution_count":null,"metadata":{},"outputs":[],"source":["# Get redis credentials; This is to parse Redis connection string.\n","redis_port=\"\"\n","redis_host=\"\"\n","redis_password=\"\"\n","redis_ssl=\"\"\n","\n","# Set the resource link\n","os.environ['online_store__redis__host'] = redis_host\n","os.environ['online_store__redis__port'] = redis_port\n","os.environ['online_store__redis__ssl_enabled'] = redis_ssl\n","os.environ['REDIS_PASSWORD']=redis_password"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"08bc3b7e-bbf5-4e3a-9978-fe1aef8c1aee","showTitle":false,"title":""}},"source":["Configure required credentials (skip if you don't use those):"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"8cd64e3a-376c-48e6-ba41-5197f3591d48","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["import tempfile\n","yaml_config = \"\"\"\n","# Please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml for explanations on the meaning of each field.\n","api_version: 1\n","project_config:\n"," project_name: 'feathr_getting_started2'\n"," required_environment_variables:\n"," - 'REDIS_PASSWORD'\n"," - 'AZURE_CLIENT_ID'\n"," - 'AZURE_TENANT_ID'\n"," - 'AZURE_CLIENT_SECRET'\n","offline_store:\n"," adls:\n"," adls_enabled: true\n"," wasb:\n"," wasb_enabled: true\n"," s3:\n"," s3_enabled: false\n"," s3_endpoint: 's3.amazonaws.com'\n"," jdbc:\n"," jdbc_enabled: false\n"," jdbc_database: 'feathrtestdb'\n"," jdbc_table: 'feathrtesttable'\n"," snowflake:\n"," url: \"dqllago-ol19457.snowflakecomputing.com\"\n"," user: \"feathrintegration\"\n"," role: \"ACCOUNTADMIN\"\n","spark_config:\n"," # choice for spark runtime. Currently support: azure_synapse, databricks\n"," # The `databricks` configs will be ignored if `azure_synapse` is set and vice versa.\n"," spark_cluster: \"databricks\"\n"," spark_result_output_parts: \"1\"\n","\n","online_store:\n"," redis:\n"," host: 'feathrazuretest3redis.redis.cache.windows.net'\n"," port: 6380\n"," ssl_enabled: True\n","feature_registry:\n"," purview:\n"," type_system_initialization: true\n"," purview_name: 'feathrazuretest3-purview1'\n"," delimiter: '__'\n","\"\"\"\n","tmp = tempfile.NamedTemporaryFile(mode='w', delete=False)\n","with open(tmp.name, \"w\") as text_file:\n"," text_file.write(yaml_config)\n"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"3fef7f2f-df19-4f53-90a5-ff7999ed983d","showTitle":false,"title":""}},"source":["# Initialize Feathr Client"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"9713a2df-c7b2-4562-88b0-b7acce3cc43a","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["client = FeathrClient(config_path=tmp.name)"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"c3b64bda-d42c-4a64-b976-0fb604cf38c5","showTitle":false,"title":""}},"source":["## View the data\n","\n","In this tutorial, we use Feathr Feature Store to create a model that predicts NYC Taxi fares. The dataset comes from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). The data is as below"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"c4ccd7b3-298a-4e5a-8eec-b7e309db393e","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["import pandas as pd\n","pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/green_tripdata_2020-04_with_index.csv\")"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"7430c942-64e5-4b70-b823-16ce1d1b3cee","showTitle":false,"title":""}},"source":["## Defining Features with Feathr\n","\n","In Feathr, a feature is viewed as a function, mapping from entity id or key, and timestamp to a feature value. For more details on feature definition, please refer to the [Feathr Feature Definition Guide](https://github.com/linkedin/feathr/blob/main/docs/concepts/feature-definition.md)\n","\n","\n","1. The typed key (a.k.a. entity id) identifies the subject of feature, e.g. a user id, 123.\n","2. The feature name is the aspect of the entity that the feature is indicating, e.g. the age of the user.\n","3. The feature value is the actual value of that aspect at a particular time, e.g. the value is 30 at year 2022."]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"16420730-582e-4e11-a343-efc0ddd35108","showTitle":false,"title":""}},"source":["Note that, in some cases, such as features defined on top of request data, may have no entity key or timestamp.\n","It is merely a function/transformation executing against request data at runtime.\n","For example, the day of week of the request, which is calculated by converting the request UNIX timestamp."]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"728d2d5f-c11f-4941-bdc5-48507f5749f1","showTitle":false,"title":""}},"source":["### Define Sources Section with UDFs\n","A feature source is needed for anchored features that describes the raw data in which the feature values are computed from. See the python documentation to get the details on each input column."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"3cc59a0e-a41b-480e-a84e-ca5443d63143","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["batch_source = HdfsSource(name=\"nycTaxiBatchSource\",\n"," path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04_with_index.csv\",\n"," event_timestamp_column=\"lpep_dropoff_datetime\",\n"," timestamp_format=\"yyyy-MM-dd HH:mm:ss\")"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"46f863c4-bb81-434a-a448-6b585031a221","showTitle":false,"title":""}},"source":["### Define Anchors and Features\n","A feature is called an anchored feature when the feature is directly extracted from the source data, rather than computed on top of other features. The latter case is called derived feature."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"a373ecbe-a040-4cd3-9d87-0d5f4c5ba553","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["f_trip_distance = Feature(name=\"f_trip_distance\",\n"," feature_type=FLOAT, transform=\"trip_distance\")\n","\n","features = [\n"," f_trip_distance,\n"," Feature(name=\"f_is_long_trip_distance\",\n"," feature_type=BOOLEAN,\n"," transform=\"cast_float(trip_distance)>30\"),\n"," Feature(name=\"f_day_of_week\",\n"," feature_type=INT32,\n"," transform=\"dayofweek(lpep_dropoff_datetime)\"),\n","]\n","\n","request_anchor = FeatureAnchor(name=\"request_features\",\n"," source=INPUT_CONTEXT,\n"," features=features)"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"149f85e2-fa3c-4895-b0c5-de5543ca9b6d","showTitle":false,"title":""}},"source":["### Window aggregation features\n","\n","For window aggregation features, see the supported fields below:\n","\n","Note that the `agg_func` should be any of these:\n","\n","| Aggregation Type | Input Type | Description |\n","| --- | --- | --- |\n","|SUM, COUNT, MAX, MIN, AVG\t|Numeric|Applies the the numerical operation on the numeric inputs. |\n","|MAX_POOLING, MIN_POOLING, AVG_POOLING\t| Numeric Vector | Applies the max/min/avg operation on a per entry bassis for a given a collection of numbers.|\n","|LATEST| Any |Returns the latest not-null values from within the defined time window |\n","\n","\n","After you have defined features and sources, bring them together to build an anchor:\n","\n","\n","Note that if the data source is from the observation data, the `source` section should be `INPUT_CONTEXT` to indicate the source of those defined anchors."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"05633bc3-9118-449b-9562-45fc437576c2","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["location_id = TypedKey(key_column=\"DOLocationID\",\n"," key_column_type=ValueType.INT32,\n"," description=\"location id in NYC\",\n"," full_name=\"nyc_taxi.location_id\")\n","agg_features = [Feature(name=\"f_location_avg_fare\",\n"," key=location_id,\n"," feature_type=FLOAT,\n"," transform=WindowAggTransformation(agg_expr=\"cast_float(fare_amount)\",\n"," agg_func=\"AVG\",\n"," window=\"90d\")),\n"," Feature(name=\"f_location_max_fare\",\n"," key=location_id,\n"," feature_type=FLOAT,\n"," transform=WindowAggTransformation(agg_expr=\"cast_float(fare_amount)\",\n"," agg_func=\"MAX\",\n"," window=\"90d\")),\n"," ]\n","\n","agg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n"," source=batch_source,\n"," features=agg_features)"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"d2ecaca9-057e-4b36-811f-320f66f753ed","showTitle":false,"title":""}},"source":["### Derived Features Section\n","Derived features are the features that are computed from other features. They could be computed from anchored features, or other derived features."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"270fb11e-8a71-404f-9639-ad29d8e6a2c1","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["\n","f_trip_distance_rounded = DerivedFeature(name=\"f_trip_distance_rounded\",\n"," feature_type=INT32,\n"," input_features=[f_trip_distance],\n"," transform=\"f_trip_distance * 10\")\n"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"ad102c45-586d-468c-85f0-9454401ef10b","showTitle":false,"title":""}},"source":["And then we need to build those features so that it can be consumed later. Note that we have to build both the \"anchor\" and the \"derived\" features (which is not anchored to a source)."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"91bb5ebb-87e4-470b-b8eb-1c89b351740e","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["client.build_features(anchor_list=[agg_anchor, request_anchor], derived_feature_list=[\n"," f_trip_distance_rounded])"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"632d5f46-f9e2-41a8-aab7-34f75206e2aa","showTitle":false,"title":""}},"source":["## Create training data using point-in-time correct feature join\n","\n","A training dataset usually contains entity id columns, multiple feature columns, event timestamp column and label/target column. \n","\n","To create a training dataset using Feathr, one needs to provide a feature join configuration file to specify\n","what features and how these features should be joined to the observation data. \n","\n","To learn more on this topic, please refer to [Point-in-time Correctness](https://github.com/linkedin/feathr/blob/main/docs/concepts/point-in-time-join.md)"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"e438e6d8-162e-4aa3-b3b3-9d1f3b0d2b7f","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["\n","output_path = 'dbfs:/feathrazure_test.avro'\n","\n","\n","feature_query = FeatureQuery(\n"," feature_list=[\"f_location_avg_fare\", \"f_trip_distance_rounded\", \"f_is_long_trip_distance\"], key=location_id)\n","settings = ObservationSettings(\n"," observation_path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04_with_index.csv\",\n"," event_timestamp_column=\"lpep_dropoff_datetime\",\n"," timestamp_format=\"yyyy-MM-dd HH:mm:ss\")\n","client.get_offline_features(observation_settings=settings,\n"," feature_query=feature_query,\n"," output_path=output_path\n"," )\n","client.wait_job_to_finish(timeout_sec=500)"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"51f078e3-3f8f-4f10-b7f1-499ac8a9ff07","showTitle":false,"title":""}},"source":["## Download the result and show the result\n","\n","Let's use the helper function `get_result_df` to download the result and view it:"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"23c797b2-ac1a-4cf3-b0ed-c05216de3f37","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["from feathr.job_utils import get_result_df\n","df_res = get_result_df(client, format=\"avro\", res_url = output_path)"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"b9be042e-eb12-46b9-9d91-a0e5dd0c704f","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["df_res"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"dcbf17fc-7f79-4a65-a3af-9cffbd0b5d1f","showTitle":false,"title":""}},"source":["## Train a machine learning model\n","After getting all the features, let's train a machine learning model with the converted feature by Feathr:"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"84745f36-5bac-49c0-903b-38828b923c7c","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["# remove columns\n","from sklearn.ensemble import GradientBoostingRegressor\n","final_df = df_res\n","final_df.drop([\"lpep_pickup_datetime\", \"lpep_dropoff_datetime\",\n"," \"store_and_fwd_flag\"], axis=1, inplace=True, errors='ignore')\n","final_df.fillna(0, inplace=True)\n","final_df['fare_amount'] = final_df['fare_amount'].astype(\"float64\")\n","\n","\n","train_x, test_x, train_y, test_y = train_test_split(final_df.drop([\"fare_amount\"], axis=1),\n"," final_df[\"fare_amount\"],\n"," test_size=0.2,\n"," random_state=42)\n","model = GradientBoostingRegressor()\n","model.fit(train_x, train_y)\n","\n","y_predict = model.predict(test_x)\n","\n","y_actual = test_y.values.flatten().tolist()\n","rmse = sqrt(mean_squared_error(y_actual, y_predict))\n","\n","sum_actuals = sum_errors = 0\n","\n","for actual_val, predict_val in zip(y_actual, y_predict):\n"," abs_error = actual_val - predict_val\n"," if abs_error < 0:\n"," abs_error = abs_error * -1\n","\n"," sum_errors = sum_errors + abs_error\n"," sum_actuals = sum_actuals + actual_val\n","\n","mean_abs_percent_error = sum_errors / sum_actuals\n","print(\"Model MAPE:\")\n","print(mean_abs_percent_error)\n","print()\n","print(\"Model Accuracy:\")\n","print(1 - mean_abs_percent_error)\n"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"5a226026-1c7b-48db-8f91-88d5c2ddf023","showTitle":false,"title":""}},"source":["## Materialize feature value into offline/online storage\n","\n","While Feathr can compute the feature value from the feature definition on-the-fly at request time, it can also pre-compute\n","and materialize the feature value to offline and/or online storage. \n","\n","We can push the generated features to the online store like below:"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"3b924c66-8634-42fe-90f3-c844487d3f75","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["backfill_time = BackfillTime(start=datetime(\n"," 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1))\n","redisSink = RedisSink(table_name=\"nycTaxiDemoFeature\")\n","settings = MaterializationSettings(\"nycTaxiTable\",\n"," backfill_time=backfill_time,\n"," sinks=[redisSink],\n"," feature_names=[\"f_location_avg_fare\", \"f_location_max_fare\"])\n","\n","client.materialize_features(settings)\n","client.wait_job_to_finish(timeout_sec=500)\n"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"6a3e2ab1-5c66-4d27-a737-c5e2af03b1dd","showTitle":false,"title":""}},"source":["We can then get the features from the online store (Redis):"]},{"cell_type":"markdown","metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"bef93538-9591-4247-97b6-289d2055b7b1","showTitle":false,"title":""}},"source":["## Fetching feature value for online inference\n","\n","For features that are already materialized by the previous step, their latest value can be queried via the client's\n","`get_online_features` or `multi_get_online_features` API."]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"0c3d5f35-11a3-4644-9992-5860169d8302","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["res = client.get_online_features('nycTaxiDemoFeature', '265', [\n"," 'f_location_avg_fare', 'f_location_max_fare'])"]},{"cell_type":"code","execution_count":null,"metadata":{"application/vnd.databricks.v1+cell":{"inputWidgets":{},"nuid":"4d4699ed-42e6-408f-903d-2f799284f4b6","showTitle":false,"title":""}},"outputs":[{"data":{"text/html":[""]},"metadata":{"application/vnd.databricks.v1+output":{"arguments":{},"data":"","errorSummary":"","errorTraceType":null,"metadata":{},"type":"ipynbError"}},"output_type":"display_data"}],"source":["client.multi_get_online_features(\"nycTaxiDemoFeature\", [\"239\", \"265\"], [\n"," 'f_location_avg_fare', 'f_location_max_fare'])"]}],"metadata":{"application/vnd.databricks.v1+notebook":{"dashboards":[],"language":"python","notebookMetadata":{"pythonIndentUnit":4},"notebookName":"nyc_driver_demo","notebookOrigID":930353059183053,"widgets":{}},"interpreter":{"hash":"830c16c5b424e7ff512f67d4056b67cea1a756a7ad6a92c98b9e2b95c5e484ae"},"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"codemirror_mode":{"name":"ipython","version":3},"file_extension":".py","mimetype":"text/x-python","name":"python","nbconvert_exporter":"python","pygments_lexer":"ipython3","version":"3.9.5"}},"nbformat":4,"nbformat_minor":0} From fd91375d7e9c1629bc366fb159c98910c865a0bc Mon Sep 17 00:00:00 2001 From: Blair Chen Date: Thu, 9 Jun 2022 23:12:46 +0800 Subject: [PATCH 02/18] Update UI README for how to create overrides for local development (#335) * Update UI README * Clean up --- ui/README.md | 48 ++++++++++++++++++++++++++++++++++-------------- 1 file changed, 34 insertions(+), 14 deletions(-) diff --git a/ui/README.md b/ui/README.md index 0dea719f5..cd6106c71 100644 --- a/ui/README.md +++ b/ui/README.md @@ -1,40 +1,60 @@ # Feathr Feature Store UI -This directory hosts Feathr Feature Store UI code. Visit [demo site](https://aka.ms/feathrdemo) to try Feathr Feature Store UI, +This directory hosts Feathr Feature Store UI code. -## Prerequisites -Install the latest version of [NodeJS](https://nodejs.org/en/) LTS v14.x or v16.x. Make sure to use npm no later than 6.x. Run `node --version` and `npm --version` to verify installed versions. +## Live Demo -## Build and run locally +Check out the latest Feathr Feature Store UI live demo [here](https://aka.ms/feathrdemo), use one of following accounts when you are prompted to login: +- A work or school organization account, includes Office 365 subscribers. +- Microsoft personal account, this means an account can access to Skype, Outlook.com, OneDrive, and Xbox LIVE. + +## Development Getting Started + +### Prerequisites + +1. Install latest [Node](https://nodejs.org/en/) v16.x. Run `node --version` to verify installed Node versions. + +### Build and run locally Each command in this section should be run from the root directory of the repository. Open terminal, go to root of this repository and run following commands. -```bash +``` cd ui npm install npm start ``` -This should launch [http://localhost:3000/](http://localhost:3000/) on your web browser. The page will reload when you make code changes and save. +This should launch [http://localhost:3000](http://localhost:3000) on your web browser. The page will reload when you make code changes and save. -## Deploying +#### [Optional] Override configurations for local development +- **Point to a different backend endpoint**: by default, UI talks to live backend API at (https://feathr-registry.azurewebsites.net/docs). To point to a custom backend API (e.g. running locally), create a .env.local in this directory and set REACT_APP_API_ENDPOINT, for example: +``` +REACT_APP_API_ENDPOINT=http://localhost:8080 +``` +- **Use different authentication settings**: by default, UI authenticates with an Azure AD application with multiple tenants authentication enabled. To change to use a different Azure AD application, create a .env.local in this directory and set REACT_APP_AAD_APP_CLIENT_ID and REACT_APP_AAD_APP_AUTHORITY, for example: +``` +REACT_APP_AAD_APP_CLIENT_ID=> +REACT_APP_AAD_APP_AUTHORITY=https://login.microsoftonline.com/<>REPLACE_WITH_YOUR_TENANT_ID> +``` -- For static file based deployment, run `npm run build` and upload `build/` to your server. +### Deploying + +- For static file based deployment, run `npm run build` and upload `build/` to your server. - For docker image based deployment, run `docker -t .` to build image and push to your container registry. -## Lint +### Lint -To lint typescript code files, sim run: -```bash +To lint ts and tsx code, run: +``` npm run lint:fix ``` -This command will Automatically fix all problems that can be fixed, and list the rest problems requires manual fix. -Linting rules are configured in [.eslintrc](.eslintrc) file. +This command will Automatically fix all problems that can be fixed, and list the rest problems requires manual fix. +Linting rules are configured in [.eslintrc](.eslintrc) file. [Read More](https://eslint.org/docs/rules/). -## Project Structure +### Project Structure ``` src/ From 05c6dd0871b13a9b2f5392f059fdd815eb5ce551 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Thu, 9 Jun 2022 18:18:33 -0700 Subject: [PATCH 03/18] Update pull_request_push_test.yml --- .github/workflows/pull_request_push_test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pull_request_push_test.yml b/.github/workflows/pull_request_push_test.yml index 546cb8635..b5c1ca257 100644 --- a/.github/workflows/pull_request_push_test.yml +++ b/.github/workflows/pull_request_push_test.yml @@ -111,6 +111,7 @@ jobs: BLOB_KEY: ${{secrets.BLOB_KEY}} JDBC_SF_PASSWORD: ${{secrets.JDBC_SF_PASSWORD}} KAFKA_SASL_JAAS_CONFIG: ${{secrets.KAFKA_SASL_JAAS_CONFIG}} + MONITORING_DATABASE_SQL_PASSWORD: ${{secrets.MONITORING_DATABASE_SQL_PASSWORD}} SPARK_CONFIG__DATABRICKS__FEATHR_RUNTIME_LOCATION: dbfs:/${{ env.CI_SPARK_REMOTE_JAR_FOLDER}}/${{ env.FEATHR_LOCAL_JAR_NAME}} run: | @@ -177,6 +178,7 @@ jobs: JDBC_DRIVER: ${{secrets.JDBC_DRIVER}} JDBC_SF_PASSWORD: ${{secrets.JDBC_SF_PASSWORD}} KAFKA_SASL_JAAS_CONFIG: ${{secrets.KAFKA_SASL_JAAS_CONFIG}} + MONITORING_DATABASE_SQL_PASSWORD: ${{secrets.MONITORING_DATABASE_SQL_PASSWORD}} SPARK_CONFIG__AZURE_SYNAPSE__FEATHR_RUNTIME_LOCATION: "abfss://${{secrets.SPARK_JAR_BLOB_CONTAINER}}@feathrazuretest3storage.dfs.core.windows.net/${{ env.CI_SPARK_REMOTE_JAR_FOLDER}}/${{ env.FEATHR_LOCAL_JAR_NAME}}" run: | # skip databricks related test as we just ran the test; also seperate databricks and synapse test to make sure there's no write conflict From 4a90a5e454109d842355802bb637bba476df5498 Mon Sep 17 00:00:00 2001 From: Blair Chen Date: Fri, 10 Jun 2022 11:39:28 +0800 Subject: [PATCH 04/18] Show feature details when click feature in lineage graph (#339) This PR update project lineage page, when a feature node is click in lineage graph, show details information, e.g., Transformation, Type, Key --- ui/src/components/graph/graph.tsx | 2 +- ui/src/components/graph/graphNodeDetails.tsx | 87 ++++++++++++++++++++ ui/src/pages/feature/lineageGraph.tsx | 21 ++++- 3 files changed, 105 insertions(+), 5 deletions(-) create mode 100644 ui/src/components/graph/graphNodeDetails.tsx diff --git a/ui/src/components/graph/graph.tsx b/ui/src/components/graph/graph.tsx index 166cf19ae..64e9a7922 100644 --- a/ui/src/components/graph/graph.tsx +++ b/ui/src/components/graph/graph.tsx @@ -150,7 +150,7 @@ const Graph: React.FC = ({ data, nodeId }) => { if (isNode(element)) { resetHighlight(); highlightPath(element, false); - setURLSearchParams({ nodeId: element.data.id }); + setURLSearchParams({ nodeId: element.data.id, featureType: element.data.subtitle }); } } } onNodeDragStop={ onNodeDragStop } diff --git a/ui/src/components/graph/graphNodeDetails.tsx b/ui/src/components/graph/graphNodeDetails.tsx new file mode 100644 index 000000000..56e848fe6 --- /dev/null +++ b/ui/src/components/graph/graphNodeDetails.tsx @@ -0,0 +1,87 @@ +import React, { useEffect, useState } from 'react'; +import { useParams, useSearchParams } from "react-router-dom"; +import { fetchFeature } from '../../api'; +import { Feature } from "../../models/model"; +import { LoadingOutlined } from "@ant-design/icons"; +import { Card, Spin } from "antd"; + +type Params = { + project: string; + featureId: string; +} + +const GraphNodeDetails: React.FC = () => { + const [searchParams] = useSearchParams(); + const { project } = useParams() as Params; + const nodeId = searchParams.get('nodeId') as string; + const featureType = searchParams.get('featureType') as string; + const [feature, setFeature] = useState(); + const [loading, setLoading] = useState(false); + + const isFeature = (featureType:string) => { + return featureType === 'feathr_anchor_feature_v1' || featureType === 'feathr_derived_feature_v1' + } + + useEffect(() => { + const fetchFeatureData = async () => { + setFeature(undefined); + if (nodeId && isFeature(featureType)) { + setLoading(true); + const data = await fetchFeature(project, nodeId); + setFeature(data); + setLoading(false); + } + }; + + fetchFeatureData(); + }, [nodeId]); + + return ( + <> + { + loading + ? ( } />) + : (
+ { feature?.attributes.transformation && + + { feature.attributes.transformation.transform_expr && +

transform_expr: { feature.attributes.transformation.transform_expr }

} + { feature.attributes.transformation.filter && +

filter: { feature.attributes.transformation.filter }

} + { feature.attributes.transformation.agg_func && +

agg_func: { feature.attributes.transformation.agg_func }

} + { feature.attributes.transformation.limit && +

limit: { feature.attributes.transformation.limit }

} + { feature.attributes.transformation.group_by && +

group_by: { feature.attributes.transformation.group_by }

} + { feature.attributes.transformation.window && +

window: { feature.attributes.transformation.window }

} + { feature.attributes.transformation.def_expr && +

def_expr: { feature.attributes.transformation.def_expr }

} +
+ } + { feature?.attributes.key && feature.attributes.key.length > 0 && + +

full_name: { feature.attributes.key[0].full_name }

+

key_column: { feature.attributes.key[0].key_column }

+

description: { feature.attributes.key[0].description }

+

key_column_alias: { feature.attributes.key[0].key_column_alias }

+

key_column_type: { feature.attributes.key[0].key_column_type }

+
+ } + { feature?.attributes.type && + +

dimension_type: { feature.attributes.type.dimension_type }

+

tensor_category: { feature.attributes.type.tensor_category }

+

type: { feature.attributes.type.type }

+

val_type: { feature.attributes.type.val_type }

+
+ } +
) + } + + ) +} + + +export default GraphNodeDetails; diff --git a/ui/src/pages/feature/lineageGraph.tsx b/ui/src/pages/feature/lineageGraph.tsx index 3cfcf5452..5035a7fa9 100644 --- a/ui/src/pages/feature/lineageGraph.tsx +++ b/ui/src/pages/feature/lineageGraph.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { Card, Radio, Spin } from 'antd'; +import { Card, Col, Radio, Row, Spin } from 'antd'; import { useParams, useSearchParams } from "react-router-dom"; import { Elements } from 'react-flow-renderer'; import Graph from "../../components/graph/graph"; @@ -7,6 +7,7 @@ import { generateEdge, generateNode } from "../../components/graph/utils"; import { fetchProjectLineages } from "../../api"; import { FeatureLineage } from "../../models/model"; import { LoadingOutlined } from "@ant-design/icons"; +import GraphNodeDetails from "../../components/graph/graphNodeDetails"; type Params = { project: string; @@ -24,6 +25,7 @@ const LineageGraph: React.FC = () => { // Fetch lineage data from server side, invoked immediately after component is mounted useEffect(() => { const fetchLineageData = async () => { + setLoading(true); const data = await fetchProjectLineages(project); setLineageData(data); setLoading(false); @@ -105,9 +107,20 @@ const LineageGraph: React.FC = () => {
- { loading - ? } /> - : } + { + loading + ? ( } />) + : ( + + + + + + + + + ) + }
); From adfdda4e09fd8a8c9841bd76de9d900a9da26672 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isma=C3=ABl=20Mej=C3=ADa?= Date: Sat, 11 Jun 2022 06:15:35 +0200 Subject: [PATCH 05/18] Fix Synapse quickstart link (#346) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4cc3da58b..875b75b54 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ pip install git+https://github.com/linkedin/feathr.git#subdirectory=feathr_proje Feathr has native integrations with Databricks and Azure Synapse: - Please read the [Quick Start Guide for Feathr on Databricks](./docs/quickstart_databricks.md) to run Feathr with Databricks. -- Please read the [Quick Start Guide for Feathr on Azure Synapse](./docs/quickstart.md) to run Feathr with Azure Synapse. +- Please read the [Quick Start Guide for Feathr on Azure Synapse](./docs/quickstart_synapse.md) to run Feathr with Azure Synapse. ## 🔡 Feathr Examples From 088fbe95a99b98834ee8a189b98a8077aa04d115 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E8=BE=B0?= Date: Mon, 13 Jun 2022 22:30:48 +0800 Subject: [PATCH 06/18] Windoze/211 maven submission (#334) * #211 Enable using maven package * #211 Enable using maven package * Print Maven package artifact id when using it * Add e2e test for Maven job submission --- feathr_project/feathr/constants.py | 1 + .../feathr/spark_provider/.gitignore | 1 + .../spark_provider/_databricks_submission.py | 6 +- .../spark_provider/_synapse_submission.py | 86 +++++++++---- .../feathr/spark_provider/noop-1.0.jar | Bin 0 -> 2605 bytes .../test/test_azure_spark_maven_e2e.py | 63 ++++++++++ .../feathr_config_maven.yaml | 118 ++++++++++++++++++ 7 files changed, 252 insertions(+), 23 deletions(-) create mode 100644 feathr_project/feathr/spark_provider/.gitignore create mode 100644 feathr_project/feathr/spark_provider/noop-1.0.jar create mode 100644 feathr_project/test/test_azure_spark_maven_e2e.py create mode 100644 feathr_project/test/test_user_workspace/feathr_config_maven.yaml diff --git a/feathr_project/feathr/constants.py b/feathr_project/feathr/constants.py index 13adb785b..8884753f5 100644 --- a/feathr_project/feathr/constants.py +++ b/feathr_project/feathr/constants.py @@ -24,3 +24,4 @@ TYPEDEF_ARRAY_DERIVED_FEATURE=f"array" TYPEDEF_ARRAY_ANCHOR_FEATURE=f"array" +FEATHR_MAVEN_ARTIFACT="com.linkedin.feathr:feathr_2.12:0.4.0" \ No newline at end of file diff --git a/feathr_project/feathr/spark_provider/.gitignore b/feathr_project/feathr/spark_provider/.gitignore new file mode 100644 index 000000000..ba64b52e6 --- /dev/null +++ b/feathr_project/feathr/spark_provider/.gitignore @@ -0,0 +1 @@ +!noop-1.0.jar \ No newline at end of file diff --git a/feathr_project/feathr/spark_provider/_databricks_submission.py b/feathr_project/feathr/spark_provider/_databricks_submission.py index 3eca8a3a1..b5368c4f3 100644 --- a/feathr_project/feathr/spark_provider/_databricks_submission.py +++ b/feathr_project/feathr/spark_provider/_databricks_submission.py @@ -143,7 +143,11 @@ def submit_feathr_job(self, job_name: str, main_jar_path: str, main_class_name: submission_params['new_cluster']['spark_conf'] = configuration submission_params['new_cluster']['custom_tags'] = job_tags # the feathr main jar file is anyway needed regardless it's pyspark or scala spark - submission_params['libraries'][0]['jar'] = self.upload_or_get_cloud_path(main_jar_path) + if not main_jar_path: + logger.info(f"Main JAR file is not set, using default package '{FEATHR_MAVEN_ARTIFACT}' from Maven") + submission_params['libraries'][0]['maven'] = { "coordinates": FEATHR_MAVEN_ARTIFACT } + else: + submission_params['libraries'][0]['jar'] = self.upload_or_get_cloud_path(main_jar_path) # see here for the submission parameter definition https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/2.0/jobs#--request-structure-6 if python_files: # this is a pyspark job. definition here: https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/2.0/jobs#--sparkpythontask diff --git a/feathr_project/feathr/spark_provider/_synapse_submission.py b/feathr_project/feathr/spark_provider/_synapse_submission.py index adfa8e973..98d4d05fd 100644 --- a/feathr_project/feathr/spark_provider/_synapse_submission.py +++ b/feathr_project/feathr/spark_provider/_synapse_submission.py @@ -1,4 +1,6 @@ +from copy import deepcopy import os +import pathlib import re import time import urllib.request @@ -43,7 +45,8 @@ class _FeathrSynapseJobLauncher(SparkJobLauncher): """ Submits spark jobs to a Synapse spark cluster. """ - def __init__(self, synapse_dev_url: str, pool_name: str, datalake_dir: str, executor_size: str, executors: int, credential = None): + + def __init__(self, synapse_dev_url: str, pool_name: str, datalake_dir: str, executor_size: str, executors: int, credential=None): # use DeviceCodeCredential if EnvironmentCredential is not available self.credential = credential # use the same credential for authentication to avoid further login. @@ -60,9 +63,11 @@ def upload_or_get_cloud_path(self, local_path_or_http_path: str): Supports transferring file from an http path to cloud working storage, or upload directly from a local storage. """ logger.info('Uploading {} to cloud..', local_path_or_http_path) - res_path = self._datalake.upload_file_to_workdir(local_path_or_http_path) + res_path = self._datalake.upload_file_to_workdir( + local_path_or_http_path) - logger.info('{} is uploaded to location: {}', local_path_or_http_path, res_path) + logger.info('{} is uploaded to location: {}', + local_path_or_http_path, res_path) return res_path def download_result(self, result_path: str, local_folder: str): @@ -73,7 +78,7 @@ def download_result(self, result_path: str, local_folder: str): return self._datalake.download_file(result_path, local_folder) def submit_feathr_job(self, job_name: str, main_jar_path: str = None, main_class_name: str = None, arguments: List[str] = None, - python_files: List[str]= None, reference_files_path: List[str] = None, job_tags: Dict[str, str] = None, + python_files: List[str] = None, reference_files_path: List[str] = None, job_tags: Dict[str, str] = None, configuration: Dict[str, str] = None): """ Submits the feathr job @@ -92,21 +97,53 @@ def submit_feathr_job(self, job_name: str, main_jar_path: str = None, main_clas job_name (str): name of the job main_jar_path (str): main file paths, usually your main jar file main_class_name (str): name of your main class - arguments (str): all the arugments you want to pass into the spark job - job_tags (str): tags of the job, for exmaple you might want to put your user ID, or a tag with a certain information + arguments (str): all the arguments you want to pass into the spark job + job_tags (str): tags of the job, for example you might want to put your user ID, or a tag with a certain information configuration (Dict[str, str]): Additional configs for the spark job """ - assert main_jar_path, 'main_jar_path should not be none or empty but it is none or empty.' - if main_jar_path.startswith('abfs'): - main_jar_cloud_path = main_jar_path - logger.info( - 'Cloud path {} is used for running the job: {}', main_jar_path, job_name) + + if configuration: + cfg = configuration.copy() # We don't want to mess up input parameters + else: + cfg = {} + if not main_jar_path: + # We don't have the main jar, use Maven + # Add Maven dependency to the job configuration + if "spark.jars.packages" in cfg: + cfg["spark.jars.packages"] = ",".join( + [cfg["spark.jars.packages"], FEATHR_MAVEN_ARTIFACT]) + else: + cfg["spark.jars.packages"] = FEATHR_MAVEN_ARTIFACT + + if not python_files: + # This is a JAR job + # Azure Synapse/Livy doesn't allow JAR job starts from Maven directly, we must have a jar file uploaded. + # so we have to use a dummy jar as the main file. + logger.info(f"Main JAR file is not set, using default package '{FEATHR_MAVEN_ARTIFACT}' from Maven") + # Use the no-op jar as the main file + # This is a dummy jar which contains only one `org.example.Noop` class with one empty `main` function which does nothing + current_dir = pathlib.Path(__file__).parent.resolve() + main_jar_path = os.path.join(current_dir, "noop-1.0.jar") + else: + # This is a PySpark job, no more things to do + pass + main_jar_cloud_path = None + if main_jar_path: + # Now we have a main jar, either feathr or noop + if main_jar_path.startswith('abfs'): + main_jar_cloud_path = main_jar_path + logger.info( + 'Cloud path {} is used for running the job: {}', main_jar_path, job_name) + else: + logger.info('Uploading jar from {} to cloud for running job: {}', + main_jar_path, job_name) + main_jar_cloud_path = self._datalake.upload_file_to_workdir(main_jar_path) + logger.info('{} is uploaded to {} for running job: {}', + main_jar_path, main_jar_cloud_path, job_name) else: - logger.info('Uploading jar from {} to cloud for running job: {}', - main_jar_path, job_name) - main_jar_cloud_path = self._datalake.upload_file_to_workdir(main_jar_path) - logger.info('{} is uploaded to {} for running job: {}', - main_jar_path, main_jar_cloud_path, job_name) + # We don't have the main Jar, and this is a PySpark job so we don't use `noop.jar` either + # Keep `main_jar_cloud_path` as `None` as we already added maven package into cfg + pass reference_file_paths = [] for file_path in reference_files_path: @@ -120,7 +157,7 @@ def submit_feathr_job(self, job_name: str, main_jar_path: str = None, main_clas arguments=arguments, reference_files=reference_files_path, tags=job_tags, - configuration=configuration) + configuration=cfg) logger.info('See submitted job here: https://web.azuresynapse.net/en-us/monitoring/sparkapplication') return self.current_job_info @@ -247,8 +284,13 @@ def create_spark_batch_job(self, job_name, main_file, class_name=None, executor_cores = self.EXECUTOR_SIZE[self._executor_size]['Cores'] executor_memory = self.EXECUTOR_SIZE[self._executor_size]['Memory'] - # need to put the jar in as dependencies for pyspark job - jars = jars + [main_file] + # If we have a main jar, it needs to be added as dependencies for pyspark job + # Otherwise it's a PySpark job with Feathr JAR from Maven + if main_file: + jars = jars + [main_file] + elif not python_files: + # These 2 parameters should not be empty at the same time + raise ValueError("Main JAR is not set for the Spark job") # If file=main_file, then it's using only Scala Spark # If file=python_files[0], then it's using Pyspark @@ -319,7 +361,7 @@ def __init__(self, datalake_dir, credential=None): self.dir_client = self.file_system_client.get_directory_client('/') self.datalake_dir = datalake_dir + \ - '/' if datalake_dir[-1] != '/' else datalake_dir + '/' if datalake_dir[-1] != '/' else datalake_dir def upload_file_to_workdir(self, src_file_path: str) -> str: """ @@ -394,7 +436,7 @@ def download_file(self, target_adls_directory: str, local_dir_cache: str): for folder in result_folders: folder_name = basename(folder) file_in_folder = [os.path.join(folder_name, basename(file_path.name)) for file_path in self.file_system_client.get_paths( - path=folder, recursive=False) if not file_path.is_directory] + path=folder, recursive=False) if not file_path.is_directory] local_paths = [os.path.join(local_dir_cache, file_name) for file_name in file_in_folder] self._download_file_list(local_paths, file_in_folder, directory_client) @@ -405,7 +447,7 @@ def download_file(self, target_adls_directory: str, local_dir_cache: str): self._download_file_list(local_paths, result_paths, directory_client) logger.info('Finish downloading files from {} to {}.', - target_adls_directory,local_dir_cache) + target_adls_directory, local_dir_cache) def _download_file_list(self, local_paths: List[str], result_paths, directory_client): ''' diff --git a/feathr_project/feathr/spark_provider/noop-1.0.jar b/feathr_project/feathr/spark_provider/noop-1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..6b3b9ba56a34bf49524765c2fac4f4e21115f793 GIT binary patch literal 2605 zcmWIWW@h1H00GzhlObRRl;8x?zOEsTx}JV+`T1_v-PFnF>uFo+;4 z^L6y|baM?3(ergH4e`x?WFWBD{Z#z}{u^AJUz($LZ=V|Rb<6dvSv&`?Y}CEIaKrw( z^f?TSQBMV4?)~`r$=TCu4zA#B)A+ZD|J1CjIeOhT)gQlxy}cO!z`VEJ?u?(yyuIJN z+&@;uoPDJ`%XxnKev=l3dkT5soB6(F9O2tjuq%J6;8dNLiU~{HB<3h}y|W3fG&5eb znfDcEVy*VZYo}PJIJU;^y3(hiV*gqwDD>_Ml^K2$`5bpYIGtMPDA{Byv&6`HjdCN; zR@=m+b5YC=$5$nJ=BRo;w@j>ApHUt9_`(c>Z?bE=W%fE|v$ma(uTq=)ujF;>DY=J^UZ3`8-8>w&dey<&MG&TS1YPsMAj|i#(a+Q)aK9joealx z51zZdSE}-oq_>;VgzK#}e)1MaL!W=y&a#C0hp`ALRLJ<`n7y*z(oHg#w&vAWpBH$o&M<| z*Q0B;YH+UDI*>W>+|;a-->^^3NxCfAAE09~%1Xrc_4sQr_)S|K2bM z%nSUt@!HeKd4JhqDUg9dJP$RYvH(+Heo;C+jbbKc9;k}cip1Q4oK(0<4sfF94s0*` z3RF?e$iN_mrqVAzzd$cJC$YFV*WcEg*-@Z&^6yXQGLn?Ol?5KmeIt~^vRYYeqDffw z^P;>RyLn%`{)rB2YPCNguX=7>(;~eyHqUC$Y{-AFznD|S3@d-$ zl2EiorA7Q%m>}EEysI^rMNY+?UX+$LWp>at@64^U_n+9X`||g=%~J#VH$`6eI@25J zADO)*kCT1!>>5@1B`Z>+J6+RDqkaFXW@?}7`#+KM=AoRNm3muuPukVH{M=Rdjt+xA zwS6n!tA-!-nkvh8@p1jG>&!c4zRyrU=+SfWqw$NAr#Zjhn9R6s$9H>PkBNrMZhY(E zo?l@3*5BZlpvs$s>yHoYZj(m@I(q5A4-6=H>5!XPmYN3-Rm||0##9W9Fg^6>z|^RK zUt=CHcHq`>FvtLlrYW74_csG0(i&JasS}~QAU{{HA~$Dg$mzUC1|oMqiw1tX;jnwf zghFxU-jJ336MqG4UsuezPU!X~*@S=lj`;<#b4*RU@$^pdyT^C3PrTi?Zj-Kr_LP{X z#U`hXC&Y+4O(lRF)b=kGUex=G<(<*_X=PLM=Un#g$==4=IU}ux*<+^A|H`TZ z*E61N_Sy7KT;=p$(Y-m_Z!f$XDxj0L*|M&FNBuX+EHlwdR%(_@inOPhxx5!m*W20dw2CZgVwfzMPZ(tMq4V6z`i=}GA1LpG`oOg8>Qb_gmTY8N92dJ?6Bmj_T&(*|f?~<^}J;=gf)F72M6BSJa|_o61@3z3!~3d!yf?2%3f|oi5g6|K@_Wsb$o1Z9y1IX*q)C}BxBIs0 z+#&5P4&6sC&THtG_MMP&s^2ZdGw+gFb%^dF=MVL5|Gpn=o}|4~EH(MiYm46PH-Eb2 zJghM>$Wl8hwMKgR5f|5wtCOx}Ju|y9^O*d9hFxpc&79CU+fM$AgxtyUoIRd3J5M(U zDi;gY98|0S;I92v;C8HcwdBK0nSWd_#bIfagMmfiWQhK`ip9ym_)Y?1JtE`1peVl} zwWuUBwK%xU|E#yJmyV}zpvS6^5579yXCDXgozw{ZpmjFbU_*$3!A2v44Mqmx1$=yg z21W)(kF>mXwa%S6zuEMP@dGdYQ~J6ed^Vod_qy)A*5i!s3D2iqI$9@vynXZ-xt>3L zE?&UM5a7+oB*Kilss*|k2m~13I)Z3;)5Nic*A*(@-6VoD9>6y=aB$UDEg!O(&wDMRqT?QU_-H|NnBpk{=#Wurdhd z0L;P!R0<(9dt+)wEt7B?qyRGq7+wGWx8OGjT1LT4!(K|k3|!K9hzQf5Wfmf!ux9~; kp}W{H0t(r$U?+kMMP!HoZ&sil1_mx5TnCJ*Om+|t0Ff`7#Q*>R literal 0 HcmV?d00001 diff --git a/feathr_project/test/test_azure_spark_maven_e2e.py b/feathr_project/test/test_azure_spark_maven_e2e.py new file mode 100644 index 000000000..5aa51b4ab --- /dev/null +++ b/feathr_project/test/test_azure_spark_maven_e2e.py @@ -0,0 +1,63 @@ +import os +from datetime import datetime, timedelta +from pathlib import Path + +from click.testing import CliRunner +from feathr import BOOLEAN, FLOAT, INT32, ValueType +from feathr import FeathrClient +from feathr import ValueType +from feathr.utils.job_utils import get_result_df +from feathr import (BackfillTime, MaterializationSettings) +from feathr import FeatureQuery +from feathr import ObservationSettings +from feathr import RedisSink, HdfsSink +from feathr import TypedKey +from feathrcli.cli import init +import pytest + +from test_fixture import (basic_test_setup, get_online_test_table_name) + +def test_feathr_online_store_agg_features(): + """ + Test FeathrClient() get_online_features and batch_get can get data correctly. + """ + + online_test_table = get_online_test_table_name("nycTaxiCITable") + test_workspace_dir = Path( + __file__).parent.resolve() / "test_user_workspace" + # os.chdir(test_workspace_dir) + + # The `feathr_runtime_location` was commented out in this config file, so feathr should use + # Maven package as the dependency and `noop.jar` as the main file + client = basic_test_setup(os.path.join(test_workspace_dir, "feathr_config_maven.yaml")) + + backfill_time = BackfillTime(start=datetime( + 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1)) + redisSink = RedisSink(table_name=online_test_table) + settings = MaterializationSettings("nycTaxiTable", + sinks=[redisSink], + feature_names=[ + "f_location_avg_fare", "f_location_max_fare"], + backfill_time=backfill_time) + client.materialize_features(settings) + # just assume the job is successful without validating the actual result in Redis. Might need to consolidate + # this part with the test_feathr_online_store test case + client.wait_job_to_finish(timeout_sec=900) + + res = client.get_online_features(online_test_table, '265', [ + 'f_location_avg_fare', 'f_location_max_fare']) + # just assme there are values. We don't hard code the values for now for testing + # the correctness of the feature generation should be garunteed by feathr runtime. + # ID 239 and 265 are available in the `DOLocationID` column in this file: + # https://s3.amazonaws.com/nyc-tlc/trip+data/green_tripdata_2020-04.csv + # View more detials on this dataset: https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page + assert len(res) == 2 + assert res[0] != None + assert res[1] != None + res = client.multi_get_online_features(online_test_table, + ['239', '265'], + ['f_location_avg_fare', 'f_location_max_fare']) + assert res['239'][0] != None + assert res['239'][1] != None + assert res['265'][0] != None + assert res['265'][1] != None \ No newline at end of file diff --git a/feathr_project/test/test_user_workspace/feathr_config_maven.yaml b/feathr_project/test/test_user_workspace/feathr_config_maven.yaml new file mode 100644 index 000000000..ed3af5826 --- /dev/null +++ b/feathr_project/test/test_user_workspace/feathr_config_maven.yaml @@ -0,0 +1,118 @@ +# DO NOT MOVE OR DELETE THIS FILE + +# This file contains the configurations that are used by Feathr +# All the configurations can be overwritten by environment variables with concatenation of `__` for different layers of this config file. +# For example, `feathr_runtime_location` for databricks can be overwritten by setting this environment variable: +# SPARK_CONFIG__DATABRICKS__FEATHR_RUNTIME_LOCATION +# Another example would be overwriting Redis host with this config: `ONLINE_STORE__REDIS__HOST` +# For example if you want to override this setting in a shell environment: +# export ONLINE_STORE__REDIS__HOST=feathrazure.redis.cache.windows.net + +# version of API settings +api_version: 1 +project_config: + project_name: 'project_feathr_integration_test' + # Information that are required to be set via environment variables. + required_environment_variables: + # the environemnt variables are required to run Feathr + # Redis password for your online store + - 'REDIS_PASSWORD' + # client IDs and client Secret for the service principal. Read the getting started docs on how to get those information. + - 'AZURE_CLIENT_ID' + - 'AZURE_TENANT_ID' + - 'AZURE_CLIENT_SECRET' + optional_environment_variables: + # the environemnt variables are optional, however you will need them if you want to use some of the services: + - ADLS_ACCOUNT + - ADLS_KEY + - WASB_ACCOUNT + - WASB_KEY + - S3_ACCESS_KEY + - S3_SECRET_KEY + - JDBC_TABLE + - JDBC_USER + - JDBC_PASSWORD + - KAFKA_SASL_JAAS_CONFIG + +offline_store: + # paths starts with abfss:// or abfs:// + # ADLS_ACCOUNT and ADLS_KEY should be set in environment variable if this is set to true + adls: + adls_enabled: true + + # paths starts with wasb:// or wasbs:// + # WASB_ACCOUNT and WASB_KEY should be set in environment variable + wasb: + wasb_enabled: true + + # paths starts with s3a:// + # S3_ACCESS_KEY and S3_SECRET_KEY should be set in environment variable + s3: + s3_enabled: true + # S3 endpoint. If you use S3 endpoint, then you need to provide access key and secret key in the environment variable as well. + s3_endpoint: 's3.amazonaws.com' + + # jdbc endpoint + jdbc: + jdbc_enabled: true + jdbc_database: 'feathrtestdb' + jdbc_table: 'feathrtesttable' + + # snowflake endpoint + snowflake: + url: "dqllago-ol19457.snowflakecomputing.com" + user: "feathrintegration" + role: "ACCOUNTADMIN" + +spark_config: + # choice for spark runtime. Currently support: azure_synapse, databricks + # The `databricks` configs will be ignored if `azure_synapse` is set and vice versa. + spark_cluster: 'azure_synapse' + # configure number of parts for the spark output for feature generation job + spark_result_output_parts: '1' + + azure_synapse: + dev_url: 'https://feathrazuretest3synapse.dev.azuresynapse.net' + pool_name: 'spark3' + # workspace dir for storing all the required configuration files and the jar resources + workspace_dir: 'abfss://feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/feathr_test_workspace' + executor_size: 'Small' + executor_num: 4 + + # Feathr Job configuration. Support local paths, path start with http(s)://, and paths start with abfs(s):// + # this is the default location so end users don't have to compile the runtime again. + # feathr_runtime_location: wasbs://public@azurefeathrstorage.blob.core.windows.net/feathr-assembly-0.5.0-SNAPSHOT.jar + # Unset this value will use default package on Maven + # feathr_runtime_location: "../../target/scala-2.12/feathr-assembly-0.5.0.jar" + databricks: + # workspace instance + workspace_instance_url: 'https://adb-5638037984879289.9.azuredatabricks.net/' + workspace_token_value: '' + # config string including run time information, spark version, machine size, etc. + # the config follows the format in the databricks documentation: https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/2.0/jobs + config_template: {'run_name':'','new_cluster':{'spark_version':'9.1.x-scala2.12','node_type_id':'Standard_F4s','num_workers':2,'spark_conf':{}},'libraries':[{'jar':''}],'spark_jar_task':{'main_class_name':'','parameters':['']}} + # Feathr Job location. Support local paths, path start with http(s)://, and paths start with dbfs:/ + work_dir: 'dbfs:/feathr_getting_started' + + # this is the default location so end users don't have to compile the runtime again. + # Unset this value will use default package on Maven + # feathr_runtime_location: "../../target/scala-2.12/feathr-assembly-0.5.0.jar" + +online_store: + redis: + # Redis configs to access Redis cluster + host: 'feathrazuretest3redis.redis.cache.windows.net' + port: 6380 + ssl_enabled: True + +feature_registry: + purview: + # Registry configs + # register type system in purview during feathr client initialization. This is only required to be executed once. + type_system_initialization: true + # configure the name of the purview endpoint + purview_name: 'feathrazuretest3-purview1' + # delimiter indicates that how the project/workspace name, feature names etc. are delimited. By default it will be '__' + # this is for global reference (mainly for feature sharing). For exmaple, when we setup a project called foo, and we have an anchor called 'taxi_driver' and the feature name is called 'f_daily_trips' + # the feature will have a globally unique name called 'foo__taxi_driver__f_daily_trips' + delimiter: '__' \ No newline at end of file From b3ec56540fbb464b99f2237f84a371022e7d8203 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E8=BE=B0?= Date: Mon, 13 Jun 2022 22:31:40 +0800 Subject: [PATCH 07/18] Windoze/211 maven submission (#334) * #211 Enable using maven package * #211 Enable using maven package * Print Maven package artifact id when using it * Add e2e test for Maven job submission From 7f105d5666ddc962d86de382a7d2d780e374dc70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E8=BE=B0?= Date: Mon, 13 Jun 2022 22:32:35 +0800 Subject: [PATCH 08/18] Windoze/211 maven submission (#334) * #211 Enable using maven package * #211 Enable using maven package * Print Maven package artifact id when using it * Add e2e test for Maven job submission From d18294caa746175538b00a0bb7c1900e56e96e02 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Mon, 13 Jun 2022 10:05:26 -0700 Subject: [PATCH 09/18] Feature Monitoring (#330) --- feathr_project/feathr/__init__.py | 79 +++++------ feathr_project/feathr/client.py | 65 ++++++--- .../feathr/definition/monitoring_settings.py | 8 ++ feathr_project/feathr/definition/sink.py | 21 +++ feathr_project/feathr/spark_provider/_abc.py | 4 +- .../spark_provider/_databricks_submission.py | 12 +- .../spark_provider/_synapse_submission.py | 4 +- .../test/test_azure_feature_monitoring_e2e.py | 25 ++++ .../test_user_workspace/feathr_config.yaml | 12 +- feathr_project/test/test_utils/query_sql.py | 43 ++++++ .../datasource/DataSourceConfigUtils.scala | 2 + .../config/datasource/DataSourceConfigs.scala | 2 + .../MonitoringResourceInfoSetter.scala | 26 ++++ .../FeatureMonitoringProcessor.scala | 34 +++++ .../FeatureMonitoringUtils.scala | 126 ++++++++++++++++++ .../feathr/offline/job/FeatureGenJob.scala | 5 +- .../feathr/offline/job/FeatureGenSpec.scala | 6 +- .../feathr/offline/util/FeatureGenUtils.scala | 1 + .../feature_monitoring_data.csv | 11 ++ .../offline/FeatureMonitoringIntegTest.scala | 105 +++++++++++++++ 20 files changed, 522 insertions(+), 69 deletions(-) create mode 100644 feathr_project/feathr/definition/monitoring_settings.py create mode 100644 feathr_project/test/test_azure_feature_monitoring_e2e.py create mode 100644 feathr_project/test/test_utils/query_sql.py create mode 100644 src/main/scala/com/linkedin/feathr/offline/config/datasource/MonitoringResourceInfoSetter.scala create mode 100644 src/main/scala/com/linkedin/feathr/offline/generation/outputProcessor/FeatureMonitoringProcessor.scala create mode 100644 src/main/scala/com/linkedin/feathr/offline/generation/outputProcessor/FeatureMonitoringUtils.scala create mode 100644 src/test/resources/mockdata/feature_monitoring_mock_data/feature_monitoring_data.csv create mode 100644 src/test/scala/com/linkedin/feathr/offline/FeatureMonitoringIntegTest.scala diff --git a/feathr_project/feathr/__init__.py b/feathr_project/feathr/__init__.py index b62529dd5..bfa4b0895 100644 --- a/feathr_project/feathr/__init__.py +++ b/feathr_project/feathr/__init__.py @@ -9,6 +9,7 @@ from .definition.source import * from .definition.typed_key import * from .definition.materialization_settings import * +from .definition.monitoring_settings import * from .definition.sink import * from .definition.query_feature_list import * from .definition.lookup_feature import * @@ -19,7 +20,7 @@ from .api.app.core.feathr_api_exception import * # skipped class as they are internal methods: -# RepoDefinitions, HoconConvertible, +# RepoDefinitions, HoconConvertible, # expose the modules so docs can build # referencee: https://stackoverflow.com/questions/15115514/how-do-i-document-classes-without-the-module-name/31594545#31594545 @@ -30,45 +31,45 @@ __all__ = [ - 'FeatureJoinJobParams', - 'FeatureGenerationJobParams', - 'FeathrClient', - 'DerivedFeature', - 'FeatureAnchor', - 'Feature', - 'ValueType', - 'WindowAggTransformation', - 'TypedKey', - 'DUMMYKEY', - 'BackfillTime', - 'MaterializationSettings', - 'RedisSink', - 'FeatureQuery', - 'LookupFeature', - 'Aggregation', - 'get_result_df', - 'AvroJsonSchema', - 'Source', - 'InputContext', - 'HdfsSource', + 'FeatureJoinJobParams', + 'FeatureGenerationJobParams', + 'FeathrClient', + 'DerivedFeature', + 'FeatureAnchor', + 'Feature', + 'ValueType', + 'WindowAggTransformation', + 'TypedKey', + 'DUMMYKEY', + 'BackfillTime', + 'MaterializationSettings', + 'MonitoringSettings', + 'RedisSink', + 'MonitoringSqlSink', + 'FeatureQuery', + 'LookupFeature', + 'Aggregation', + 'get_result_df', + 'AvroJsonSchema', + 'Source', + 'InputContext', + 'HdfsSource', 'KafkaConfig', - 'KafKaSource', - 'ValueType', - 'BooleanFeatureType', - 'Int32FeatureType', - 'Int64FeatureType', - 'FloatFeatureType', - 'DoubleFeatureType', - 'StringFeatureType', + 'KafKaSource', + 'ValueType', + 'BooleanFeatureType', + 'Int32FeatureType', + 'Int64FeatureType', + 'FloatFeatureType', + 'DoubleFeatureType', + 'StringFeatureType', 'BytesFeatureType', - 'FloatVectorFeatureType', - 'Int32VectorFeatureType', - 'Int64VectorFeatureType', - 'DoubleVectorFeatureType', - 'FeatureNameValidationError', - 'ObservationSettings', - 'FeaturePrinter', + 'FloatVectorFeatureType', + 'Int32VectorFeatureType', + 'Int64VectorFeatureType', + 'DoubleVectorFeatureType', + 'FeatureNameValidationError', + 'ObservationSettings', + 'FeaturePrinter', 'SparkExecutionConfiguration', ] - - diff --git a/feathr_project/feathr/client.py b/feathr_project/feathr/client.py index 8314bdba2..0ebe3ffa0 100644 --- a/feathr_project/feathr/client.py +++ b/feathr_project/feathr/client.py @@ -22,6 +22,7 @@ from feathr.spark_provider.feathr_configurations import SparkExecutionConfiguration from feathr.definition.feature_derivations import DerivedFeature from feathr.definition.materialization_settings import MaterializationSettings +from feathr.definition.monitoring_settings import MonitoringSettings from feathr.protobuf.featureValue_pb2 import FeatureValue from feathr.definition.query_feature_list import FeatureQuery from feathr.definition.settings import ObservationSettings @@ -237,7 +238,7 @@ def build_features(self, anchor_list: List[FeatureAnchor] = [], derived_feature_ self.registry.save_to_feature_config_from_context(anchor_list, derived_feature_list, self.local_workspace_dir) self.anchor_list = anchor_list self.derived_feature_list = derived_feature_list - + # Pretty print anchor_list if verbose and self.anchor_list: FeaturePrinter.pretty_print_anchors(self.anchor_list) @@ -400,7 +401,7 @@ def get_offline_features(self, observation_settings: ObservationSettings, feature_query: Union[FeatureQuery, List[FeatureQuery]], output_path: str, - execution_configuratons: Union[SparkExecutionConfiguration ,Dict[str,str]] = None, + execution_configuratons: Union[SparkExecutionConfiguration ,Dict[str,str]] = {}, udf_files = None, verbose: bool = False ): @@ -441,7 +442,7 @@ def get_offline_features(self, _FeatureRegistry.save_to_feature_config_from_context(self.anchor_list, self.derived_feature_list, self.local_workspace_dir) else: raise RuntimeError("Please call FeathrClient.build_features() first in order to get offline features") - + # Pretty print feature_query if verbose and feature_query: FeaturePrinter.pretty_print_feature_query(feature_query) @@ -449,7 +450,7 @@ def get_offline_features(self, write_to_file(content=config, full_file_name=config_file_path) return self._get_offline_features_with_config(config_file_path, execution_configuratons, udf_files=udf_files) - def _get_offline_features_with_config(self, feature_join_conf_path='feature_join_conf/feature_join.conf', execution_configuratons: Dict[str,str] = None, udf_files=[]): + def _get_offline_features_with_config(self, feature_join_conf_path='feature_join_conf/feature_join.conf', execution_configuratons: Dict[str,str] = {}, udf_files=[]): """Joins the features to your offline observation dataset based on the join config. Args: @@ -523,7 +524,16 @@ def wait_job_to_finish(self, timeout_sec: int = 300): else: raise RuntimeError('Spark job failed.') - def materialize_features(self, settings: MaterializationSettings, execution_configuratons: Union[SparkExecutionConfiguration ,Dict[str,str]] = None, verbose: bool = False): + def monitor_features(self, settings: MonitoringSettings, execution_configuratons: Union[SparkExecutionConfiguration ,Dict[str,str]] = {}, verbose: bool = False): + """Create a offline job to generate statistics to monitor feature data + + Args: + settings: Feature monitoring settings + execution_configuratons: a dict that will be passed to spark job when the job starts up, i.e. the "spark configurations". Note that not all of the configuration will be honored since some of the configurations are managed by the Spark platform, such as Databricks or Azure Synapse. Refer to the [spark documentation](https://spark.apache.org/docs/latest/configuration.html) for a complete list of spark configurations. + """ + self.materialize_features(settings, execution_configuratons, verbose) + + def materialize_features(self, settings: MaterializationSettings, execution_configuratons: Union[SparkExecutionConfiguration ,Dict[str,str]] = {}, verbose: bool = False): """Materialize feature data Args: @@ -551,12 +561,12 @@ def materialize_features(self, settings: MaterializationSettings, execution_conf self._materialize_features_with_config(config_file_path, execution_configuratons, udf_files) if os.path.exists(config_file_path): os.remove(config_file_path) - + # Pretty print feature_names of materialized features if verbose and settings: FeaturePrinter.pretty_print_materialize_features(settings) - def _materialize_features_with_config(self, feature_gen_conf_path: str = 'feature_gen_conf/feature_gen.conf',execution_configuratons: Dict[str,str] = None, udf_files=[]): + def _materialize_features_with_config(self, feature_gen_conf_path: str = 'feature_gen_conf/feature_gen.conf',execution_configuratons: Dict[str,str] = {}, udf_files=[]): """Materializes feature data based on the feature generation config. The feature data will be materialized to the destination specified in the feature generation config. @@ -578,24 +588,29 @@ def _materialize_features_with_config(self, feature_gen_conf_path: str = 'featur optional_params = [] if _EnvVaraibleUtil.get_environment_variable('KAFKA_SASL_JAAS_CONFIG'): optional_params = optional_params + ['--kafka-config', self._get_kafka_config_str()] - return self.feathr_spark_laucher.submit_feathr_job( - job_name=self.project_name + '_feathr_feature_materialization_job', - main_jar_path=self._FEATHR_JOB_JAR_PATH, - python_files=cloud_udf_paths, - main_class_name='com.linkedin.feathr.offline.job.FeatureGenJob', - arguments=[ + arguments = [ '--generation-config', self.feathr_spark_laucher.upload_or_get_cloud_path( - generation_config.generation_config_path), + generation_config.generation_config_path), # Local Config, comma seperated file names '--feature-config', self.feathr_spark_laucher.upload_or_get_cloud_path( - generation_config.feature_config), + generation_config.feature_config), '--redis-config', self._getRedisConfigStr(), '--s3-config', self._get_s3_config_str(), '--adls-config', self._get_adls_config_str(), '--blob-config', self._get_blob_config_str(), '--sql-config', self._get_sql_config_str(), - '--snowflake-config', self._get_snowflake_config_str() - ] + optional_params, + '--snowflake-config', self._get_snowflake_config_str(), + ] + optional_params + monitoring_config_str = self._get_monitoring_config_str() + if monitoring_config_str: + arguments.append('--monitoring-config') + arguments.append(monitoring_config_str) + return self.feathr_spark_laucher.submit_feathr_job( + job_name=self.project_name + '_feathr_feature_materialization_job', + main_jar_path=self._FEATHR_JOB_JAR_PATH, + python_files=cloud_udf_paths, + main_class_name='com.linkedin.feathr.offline.job.FeatureGenJob', + arguments=arguments, reference_files_path=[], configuration=execution_configuratons, ) @@ -688,6 +703,22 @@ def _get_sql_config_str(self): """.format(JDBC_TABLE=table, JDBC_USER=user, JDBC_PASSWORD=password, JDBC_DRIVER = driver, JDBC_AUTH_FLAG = auth_flag, JDBC_TOKEN = token) return config_str + def _get_monitoring_config_str(self): + """Construct monitoring-related config string.""" + url = self.envutils.get_environment_variable_with_default('monitoring', 'database', 'sql', 'url') + user = self.envutils.get_environment_variable_with_default('monitoring', 'database', 'sql', 'user') + password = self.envutils.get_environment_variable('MONITORING_DATABASE_SQL_PASSWORD') + if url: + # HOCCON format will be parsed by the Feathr job + config_str = """ + MONITORING_DATABASE_SQL_URL: "{url}" + MONITORING_DATABASE_SQL_USER: {user} + MONITORING_DATABASE_SQL_PASSWORD: {password} + """.format(url=url, user=user, password=password) + return config_str + else: + "" + def _get_snowflake_config_str(self): """Construct the Snowflake config string for jdbc. The url, user, role and other parameters can be set via yaml config. Password can be set via environment variables.""" diff --git a/feathr_project/feathr/definition/monitoring_settings.py b/feathr_project/feathr/definition/monitoring_settings.py new file mode 100644 index 000000000..ee39f84d5 --- /dev/null +++ b/feathr_project/feathr/definition/monitoring_settings.py @@ -0,0 +1,8 @@ +from feathr.definition.materialization_settings import MaterializationSettings + + +# it's completely the same as MaterializationSettings. But we renamed it to improve usability. +# In the future, we may want to rely a separate system other than MaterializationSettings to generate stats. +class MonitoringSettings(MaterializationSettings): + """Settings about monitoring features. + """ diff --git a/feathr_project/feathr/definition/sink.py b/feathr_project/feathr/definition/sink.py index 54088c3af..73542fa3b 100644 --- a/feathr_project/feathr/definition/sink.py +++ b/feathr_project/feathr/definition/sink.py @@ -8,6 +8,27 @@ class Sink(HoconConvertible): """ pass +class MonitoringSqlSink(Sink): + """SQL-based sink that stores feature monitoring results. + + Attributes: + table_name: output table name + """ + def __init__(self, table_name: str) -> None: + self.table_name = table_name + + def to_feature_config(self) -> str: + """Produce the config used in feature monitoring""" + tm = Template(""" + { + name: MONITORING + params: { + table_name: "{{source.table_name}}" + } + } + """) + msg = tm.render(source=self) + return msg class RedisSink(Sink): """Redis-based sink use to store online feature data, can be used in batch job or streaming job. diff --git a/feathr_project/feathr/spark_provider/_abc.py b/feathr_project/feathr/spark_provider/_abc.py index b7ecc907d..998b9e88d 100644 --- a/feathr_project/feathr/spark_provider/_abc.py +++ b/feathr_project/feathr/spark_provider/_abc.py @@ -9,7 +9,7 @@ class SparkJobLauncher(ABC): @abstractmethod def upload_or_get_cloud_path(self, local_path_or_http_path: str): """upload a file from local path or an http path to the current work directory. Should support transferring file from an http path to cloud working storage, or upload directly from a local storage. - + Args: local_path_or_http_path (str): local path or http path """ @@ -19,7 +19,7 @@ def upload_or_get_cloud_path(self, local_path_or_http_path: str): @abstractmethod def submit_feathr_job(self, job_name: str, main_jar_path: str, main_class_name: str, arguments: List[str], reference_files_path: List[str], job_tags: Dict[str, str] = None, - configuration: Dict[str, str] = None): + configuration: Dict[str, str] = {}): """ Submits the feathr job diff --git a/feathr_project/feathr/spark_provider/_databricks_submission.py b/feathr_project/feathr/spark_provider/_databricks_submission.py index b5368c4f3..4ef48cb48 100644 --- a/feathr_project/feathr/spark_provider/_databricks_submission.py +++ b/feathr_project/feathr/spark_provider/_databricks_submission.py @@ -111,12 +111,12 @@ def upload_local_file(self, local_path: str) -> str: file_name = os.path.basename(local_path) # returned paths for the uploaded file returned_path = os.path.join(self.databricks_work_dir, file_name) - # `local_path_or_http_path` will be either string or PathLib object, so normalize it to string + # `local_path_or_http_path` will be either string or PathLib object, so normalize it to string local_path = str(local_path) DbfsApi(self.api_client).cp(recursive=True, overwrite=True, src=local_path, dst=returned_path) return returned_path - def submit_feathr_job(self, job_name: str, main_jar_path: str, main_class_name: str, arguments: List[str], python_files: List[str], reference_files_path: List[str] = [], job_tags: Dict[str, str] = None, configuration: Dict[str, str] = None): + def submit_feathr_job(self, job_name: str, main_jar_path: str, main_class_name: str, arguments: List[str], python_files: List[str], reference_files_path: List[str] = [], job_tags: Dict[str, str] = None, configuration: Dict[str, str] = {}): """ submit the feathr job to databricks Refer to the databricks doc for more details on the meaning of the parameters: @@ -140,6 +140,10 @@ def submit_feathr_job(self, job_name: str, main_jar_path: str, main_class_name: submission_params['run_name'] = job_name if 'existing_cluster_id' not in submission_params: # if users don't specify existing_cluster_id + # Solving this issue: Handshake fails trying to connect from Azure Databricks to Azure PostgreSQL with SSL + # https://docs.microsoft.com/en-us/answers/questions/170730/handshake-fails-trying-to-connect-from-azure-datab.html + configuration['spark.executor.extraJavaOptions'] = '-Djava.security.properties=' + configuration['spark.driver.extraJavaOptions'] = '-Djava.security.properties=' submission_params['new_cluster']['spark_conf'] = configuration submission_params['new_cluster']['custom_tags'] = job_tags # the feathr main jar file is anyway needed regardless it's pyspark or scala spark @@ -231,7 +235,7 @@ def get_job_tags(self) -> Dict[str, str]: assert self.res_job_id is not None # For result structure, see https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/2.0/jobs#--response-structure-6 result = RunsApi(self.api_client).get_run(self.res_job_id) - + if 'new_cluster' in result['cluster_spec']: custom_tags = result['cluster_spec']['new_cluster']['custom_tags'] return custom_tags @@ -239,7 +243,7 @@ def get_job_tags(self) -> Dict[str, str]: # this is not a new cluster; it's an existing cluster. logger.warning("Job tags are not available since you are using an existing Databricks cluster. Consider using 'new_cluster' in databricks configuration.") return None - + def download_result(self, result_path: str, local_folder: str): """ diff --git a/feathr_project/feathr/spark_provider/_synapse_submission.py b/feathr_project/feathr/spark_provider/_synapse_submission.py index 98d4d05fd..3bf681275 100644 --- a/feathr_project/feathr/spark_provider/_synapse_submission.py +++ b/feathr_project/feathr/spark_provider/_synapse_submission.py @@ -78,8 +78,8 @@ def download_result(self, result_path: str, local_folder: str): return self._datalake.download_file(result_path, local_folder) def submit_feathr_job(self, job_name: str, main_jar_path: str = None, main_class_name: str = None, arguments: List[str] = None, - python_files: List[str] = None, reference_files_path: List[str] = None, job_tags: Dict[str, str] = None, - configuration: Dict[str, str] = None): + python_files: List[str]= None, reference_files_path: List[str] = None, job_tags: Dict[str, str] = None, + configuration: Dict[str, str] = {}): """ Submits the feathr job Refer to the Apache Livy doc for more details on the meaning of the parameters: diff --git a/feathr_project/test/test_azure_feature_monitoring_e2e.py b/feathr_project/test/test_azure_feature_monitoring_e2e.py new file mode 100644 index 000000000..ed2cbebd2 --- /dev/null +++ b/feathr_project/test/test_azure_feature_monitoring_e2e.py @@ -0,0 +1,25 @@ +import os +from pathlib import Path + +from feathr import MonitoringSettings +from feathr import RedisSink, MonitoringSqlSink + +from test_fixture import (basic_test_setup, get_online_test_table_name) + + +def test_feature_monitoring(): + online_test_table = get_online_test_table_name("nycTaxiCITable") + test_workspace_dir = Path( + __file__).parent.resolve() / "test_user_workspace" + + client = basic_test_setup(os.path.join(test_workspace_dir, "feathr_config.yaml")) + + monitor_sink = MonitoringSqlSink(table_name=online_test_table) + settings = MonitoringSettings("monitoringSetting", + sinks=[monitor_sink], + feature_names=[ + "f_location_avg_fare", "f_location_max_fare"]) + client.monitor_features(settings) + # just assume the job is successful without validating the actual result in Redis. Might need to consolidate + # this part with the test_feathr_online_store test case + client.wait_job_to_finish(timeout_sec=900) diff --git a/feathr_project/test/test_user_workspace/feathr_config.yaml b/feathr_project/test/test_user_workspace/feathr_config.yaml index 9269b85cb..f92dcb492 100644 --- a/feathr_project/test/test_user_workspace/feathr_config.yaml +++ b/feathr_project/test/test_user_workspace/feathr_config.yaml @@ -84,11 +84,11 @@ spark_config: feathr_runtime_location: "../../target/scala-2.12/feathr-assembly-0.5.0.jar" databricks: # workspace instance - workspace_instance_url: 'https://adb-5638037984879289.9.azuredatabricks.net/' + workspace_instance_url: 'https://adb-2474129336842816.16.azuredatabricks.net/' workspace_token_value: '' # config string including run time information, spark version, machine size, etc. # the config follows the format in the databricks documentation: https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/2.0/jobs - config_template: {'run_name':'','new_cluster':{'spark_version':'9.1.x-scala2.12','node_type_id':'Standard_F4s','num_workers':2,'spark_conf':{}},'libraries':[{'jar':''}],'spark_jar_task':{'main_class_name':'','parameters':['']}} + config_template: {"run_name":"FEATHR_FILL_IN","new_cluster":{"spark_version":"9.1.x-scala2.12","num_workers":2,"spark_conf":{"FEATHR_FILL_IN":"FEATHR_FILL_IN"},"instance_pool_id":"0403-214809-inlet434-pool-l9dj3kwz"},"libraries":[{"jar":"FEATHR_FILL_IN"}],"spark_jar_task":{"main_class_name":"FEATHR_FILL_IN","parameters":["FEATHR_FILL_IN"]}} # Feathr Job location. Support local paths, path start with http(s)://, and paths start with dbfs:/ work_dir: 'dbfs:/feathr_getting_started' # this is the default location so end users don't have to compile the runtime again. @@ -111,4 +111,10 @@ feature_registry: # delimiter indicates that how the project/workspace name, feature names etc. are delimited. By default it will be '__' # this is for global reference (mainly for feature sharing). For exmaple, when we setup a project called foo, and we have an anchor called 'taxi_driver' and the feature name is called 'f_daily_trips' # the feature will have a globally unique name called 'foo__taxi_driver__f_daily_trips' - delimiter: '__' \ No newline at end of file + delimiter: '__' + +monitoring: + database: + sql: + url: 'jdbc:postgresql://featuremonitoring.postgres.database.azure.com:5432/postgres' + user: "demo" diff --git a/feathr_project/test/test_utils/query_sql.py b/feathr_project/test/test_utils/query_sql.py new file mode 100644 index 000000000..8e14b8cda --- /dev/null +++ b/feathr_project/test/test_utils/query_sql.py @@ -0,0 +1,43 @@ +import psycopg2 +from feathr._envvariableutil import _EnvVaraibleUtil + +# script to query SQL database for debugging purpose + +def show_table(cursor, table_name): + cursor.execute("select * from " + table_name + ";") + print(cursor.fetchall()) + + q = """ + SELECT column_name, data_type, is_nullable + FROM information_schema.columns + WHERE table_name = %s; + """ + + cur = conn.cursor() + cur.execute(q, (table_name,)) # (table_name,) passed as tuple + print(cur.fetchall()) + + +# Update connection string information +host = "featuremonitoring.postgres.database.azure.com" +dbname = "postgres" +user = "demo" +password = _EnvVaraibleUtil.get_environment_variable('SQL_TEST_PASSWORD') +sslmode = "require" + +# Construct connection string +conn_string = "host={0} user={1} dbname={2} password={3} sslmode={4}".format(host, user, dbname, password, sslmode) +conn = psycopg2.connect(conn_string) +print("Connection established") + +cursor = conn.cursor() + +show_table(cursor, "f_int") +cursor.execute("select * from f_location_avg_fare;") +print(cursor.fetchall()) + + +# Clean up +conn.commit() +cursor.close() +conn.close() \ No newline at end of file diff --git a/src/main/scala/com/linkedin/feathr/offline/config/datasource/DataSourceConfigUtils.scala b/src/main/scala/com/linkedin/feathr/offline/config/datasource/DataSourceConfigUtils.scala index 0c8993e58..a97100e30 100644 --- a/src/main/scala/com/linkedin/feathr/offline/config/datasource/DataSourceConfigUtils.scala +++ b/src/main/scala/com/linkedin/feathr/offline/config/datasource/DataSourceConfigUtils.scala @@ -35,6 +35,7 @@ object DataSourceConfigUtils { blobConfigStr = cmdParser.extractOptionalValue("blob-config"), sqlConfigStr = cmdParser.extractOptionalValue("sql-config"), snowflakeConfigStr = cmdParser.extractOptionalValue("snowflake-config"), + monitoringConfigStr = cmdParser.extractOptionalValue("monitoring-config"), kafkaConfigStr = cmdParser.extractOptionalValue("kafka-config") ) } @@ -45,6 +46,7 @@ object DataSourceConfigUtils { BlobResourceInfoSetter.setup(ss, configs.blobConfig, resource) S3ResourceInfoSetter.setup(ss, configs.s3Config, resource) SnowflakeResourceInfoSetter.setup(ss, configs.snowflakeConfig, resource) + MonitoringResourceInfoSetter.setup(ss, configs.monitoringConfig, resource) KafkaResourceInfoSetter.setup(ss, configs.kafkaConfig, resource) } diff --git a/src/main/scala/com/linkedin/feathr/offline/config/datasource/DataSourceConfigs.scala b/src/main/scala/com/linkedin/feathr/offline/config/datasource/DataSourceConfigs.scala index a57e84da0..b8156d991 100644 --- a/src/main/scala/com/linkedin/feathr/offline/config/datasource/DataSourceConfigs.scala +++ b/src/main/scala/com/linkedin/feathr/offline/config/datasource/DataSourceConfigs.scala @@ -17,6 +17,7 @@ class DataSourceConfigs( val blobConfigStr: Option[String] = None, val sqlConfigStr: Option[String] = None, val snowflakeConfigStr: Option[String] = None, + val monitoringConfigStr: Option[String] = None, val kafkaConfigStr: Option[String] = None ) { val redisConfig: DataSourceConfig = parseConfigStr(redisConfigStr) @@ -25,6 +26,7 @@ class DataSourceConfigs( val blobConfig: DataSourceConfig = parseConfigStr(blobConfigStr) val sqlConfig: DataSourceConfig = parseConfigStr(sqlConfigStr) val snowflakeConfig: DataSourceConfig = parseConfigStr(snowflakeConfigStr) + val monitoringConfig: DataSourceConfig = parseConfigStr(monitoringConfigStr) val kafkaConfig: DataSourceConfig = parseConfigStr(kafkaConfigStr) def parseConfigStr(configStr: Option[String] = None): DataSourceConfig = { diff --git a/src/main/scala/com/linkedin/feathr/offline/config/datasource/MonitoringResourceInfoSetter.scala b/src/main/scala/com/linkedin/feathr/offline/config/datasource/MonitoringResourceInfoSetter.scala new file mode 100644 index 000000000..bdb36f3e6 --- /dev/null +++ b/src/main/scala/com/linkedin/feathr/offline/config/datasource/MonitoringResourceInfoSetter.scala @@ -0,0 +1,26 @@ +package com.linkedin.feathr.offline.config.datasource + +import org.apache.spark.sql.SparkSession + +private[feathr] class MonitoringResourceInfoSetter extends ResourceInfoSetter() { + override val params: List[String] = List() + + override def setupHadoopConfig(ss: SparkSession, context: Option[DataSourceConfig], resource: Option[Resource]): Unit = { + context.foreach(dataSourceConfig => { + ss.conf.set("monitoring_database_url", getAuthFromContext("MONITORING_DATABASE_SQL_URL", dataSourceConfig)) + ss.conf.set("monitoring_database_user", getAuthFromContext("MONITORING_DATABASE_SQL_USER", dataSourceConfig)) + ss.conf.set("monitoring_database_password", getAuthFromContext("MONITORING_DATABASE_SQL_PASSWORD", dataSourceConfig)) + }) + } + + override def getAuthFromConfig(str: String, resource: Resource): String = ??? +} + + +private[feathr] object MonitoringResourceInfoSetter{ + val monitoringSetter = new MonitoringResourceInfoSetter() + + def setup(ss: SparkSession, config: DataSourceConfig, resource: Resource): Unit ={ + monitoringSetter.setup(ss, config, resource) + } +} \ No newline at end of file diff --git a/src/main/scala/com/linkedin/feathr/offline/generation/outputProcessor/FeatureMonitoringProcessor.scala b/src/main/scala/com/linkedin/feathr/offline/generation/outputProcessor/FeatureMonitoringProcessor.scala new file mode 100644 index 000000000..47d08c544 --- /dev/null +++ b/src/main/scala/com/linkedin/feathr/offline/generation/outputProcessor/FeatureMonitoringProcessor.scala @@ -0,0 +1,34 @@ +package com.linkedin.feathr.offline.generation.outputProcessor + +import com.linkedin.feathr.common.Header +import com.linkedin.feathr.common.configObj.generation.OutputProcessorConfig +import com.linkedin.feathr.offline.generation.FeatureGenUtils +import com.linkedin.feathr.offline.generation.outputProcessor.PushToRedisOutputProcessor.TABLE_PARAM_CONFIG_NAME +import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession} + +/** + * feature generation output processor used to generate feature monitoring stats and pushed to sink + * @param config config object of output processor, built from the feature generation config + */ + +private[offline] class FeatureMonitoringProcessor(config: OutputProcessorConfig, endTimeOpt: Option[String] = None) extends WriteToHDFSOutputProcessor(config, endTimeOpt, dataLoaderHandlers=List()) { + /** + * process single dataframe, e.g, convert feature data schema + * + * @param ss spark session + * @param df feature dataframe + * @param header meta info of the input dataframe + * @param parentPath path to save feature data + * @return processed dataframe and header + */ + override def processSingle(ss: SparkSession, df: DataFrame, header: Header, parentPath: String): (DataFrame, Header) = { + val keyColumns = FeatureGenUtils.getKeyColumnsFromHeader(header) + + val tableName = config.getParams.getString(TABLE_PARAM_CONFIG_NAME) + val allFeatureCols = header.featureInfoMap.map(x => (x._2.columnName)).toSet + + FeatureMonitoringUtils.writeToRedis(ss, df, tableName, keyColumns, allFeatureCols, SaveMode.Overwrite) + (df, header) + } +} + diff --git a/src/main/scala/com/linkedin/feathr/offline/generation/outputProcessor/FeatureMonitoringUtils.scala b/src/main/scala/com/linkedin/feathr/offline/generation/outputProcessor/FeatureMonitoringUtils.scala new file mode 100644 index 000000000..95675e8a4 --- /dev/null +++ b/src/main/scala/com/linkedin/feathr/offline/generation/outputProcessor/FeatureMonitoringUtils.scala @@ -0,0 +1,126 @@ +package com.linkedin.feathr.offline.generation.outputProcessor + +import org.apache.spark.sql.functions._ +import org.apache.spark.sql.types._ +import org.apache.spark.sql.{DataFrame, SaveMode, SparkSession} + +object FeatureMonitoringUtils { + def writeToRedis(ss: SparkSession, df: DataFrame, tableName: String, keyColumns: Seq[String], allFeatureCols: Set[String], saveMode: SaveMode): Unit = { + df.show(10) + + val dfSchema = df.schema + dfSchema.indices.foreach(index => { + val field = dfSchema.fields(index) + val fieldName = field.name + if (allFeatureCols.contains(fieldName)) { + field.dataType match { + case DoubleType | FloatType | IntegerType | LongType => + val missing = df.filter(col(fieldName).isNull).count() + val total = df.count() +// +------------+------------+----------+----+---+---+---+--------+ +// |feature_name|feature_type| date|mean|avg|min|max|coverage| +// +------------+------------+----------+----+---+---+---+--------+ +// | f_int| integer|2022-06-09| 0.5|0.5| 0| 1| 1.0| +// +------------+------------+----------+----+---+---+---+--------+ +// +// +------------+------------+----------+------------------+------------------+-------------------+------------------+--------+ +// |feature_name|feature_type| date| mean| avg| min| max|coverage| +// +------------+------------+----------+------------------+------------------+-------------------+------------------+--------+ +// | f_double| double|2022-06-09|0.6061345296768118|0.6061345296768118|0.13751738103840128|0.9651418273038033| 1.0| +// +------------+------------+----------+------------------+------------------+-------------------+------------------+--------+ + val stats_df = df.select( + lit(fieldName).name("feature_name"), + lit(field.dataType.typeName).name("feature_type"), + current_date().name("date"), + mean(df(fieldName)).name("mean"), + avg(df(fieldName)).name("avg"), + min(df(fieldName)).name("min"), + max(df(fieldName)).name("max"), + lit((total - missing) * 1.0 / total).name("coverage") + ) + + stats_df.show() + writeToSql(ss, stats_df, fieldName, saveMode) + case StringType | BooleanType => + // Will add support for more stats as we have more user requirements + // The difficulty with term frequency is that it requires a different table other than the scalar stats. +// val frequencyDf = df +// .select( +// lit(fieldName).name("feature_name"), +// lit(field.dataType.typeName).name("feature_type"), +// current_date(), +// col(fieldName), +// ) +// .groupBy(fieldName) +// .count() +// .select( +// col("*"), +// lit(fieldName).name("feature_name"), +// lit(field.dataType.typeName).name("feature_type"), +// current_date() +// ) +// writeToSql(frequencyDf, fieldName + "_frequency") + + val missing = df.filter(col(fieldName).isNull).count() + val total = df.count() + // cardinality is defined as the number of elements in a set or other grouping, as a property of that grouping. + val cardinality = df.groupBy(fieldName).count().count() + +// +------------+------------+----------+-----+------+--------+-----------+ +// |feature_name|feature_type| date| min| max|coverage|cardinality| +// +------------+------------+----------+-----+------+--------+-----------+ +// | f_string| string|2022-06-09|apple|orange| 0.9| 3| +// +------------+------------+----------+-----+------+--------+-----------+ +// +------------+------------+----------+-----+----+--------+-----------+ +// |feature_name|feature_type| date| min| max|coverage|cardinality| +// +------------+------------+----------+-----+----+--------+-----------+ +// | f_boolean| boolean|2022-06-09|false|true| 1.0| 2| +// +------------+------------+----------+-----+----+--------+-----------+ + val stats_df = df.select( + lit(fieldName).name("feature_name"), + lit(field.dataType.typeName).name("feature_type"), + current_date().name("date"), + min(df(fieldName)).name("min"), + max(df(fieldName)).name("max"), + lit((total - missing) * 1.0 / total).name("coverage"), + lit(cardinality).name("cardinality") + ) + + writeToSql(ss, stats_df, fieldName, saveMode) + case _ => + (rowData: Any) => { + throw new RuntimeException(f"The data type(${field.dataType}) and data (${rowData}) is not supported in monitoring yet.") + } + } + } + }) + } + + /** + * Write the feature monitoring results(usually stats) to SQL database. + */ + private def writeToSql(ss: SparkSession, stats_df: DataFrame, tableName: String, saveMode: SaveMode): Unit = { + if (!ss.sparkContext.isLocal) { + val url = ss.conf.get("monitoring_database_url") + val username = ss.conf.get("monitoring_database_user") + val password = ss.conf.get("monitoring_database_password") + + println("monitoring output:") + println("url: " + url) + println("username: " + username) + + stats_df.write + .format("jdbc") + .option("url", url) + .option("dbtable", tableName) + .option("user", username) + .option("password", password) + .option("ssl", true) + .option("sslmode", "require") + .mode(saveMode) + .save() + } else { + stats_df.show(10) + } + } +} diff --git a/src/main/scala/com/linkedin/feathr/offline/job/FeatureGenJob.scala b/src/main/scala/com/linkedin/feathr/offline/job/FeatureGenJob.scala index 394bd66b3..cb9dda05d 100644 --- a/src/main/scala/com/linkedin/feathr/offline/job/FeatureGenJob.scala +++ b/src/main/scala/com/linkedin/feathr/offline/job/FeatureGenJob.scala @@ -47,6 +47,7 @@ object FeatureGenJob { "blob-config" -> OptionParam("bc", "Authentication config for Azure Blob Storage (wasb)", "BLOB_CONFIG", ""), "sql-config" -> OptionParam("sqlc", "Authentication config for Azure SQL Database (jdbc)", "SQL_CONFIG", ""), "snowflake-config" -> OptionParam("sfc", "Authentication config for Snowflake Database (jdbc)", "SNOWFLAKE_CONFIG", ""), + "monitoring-config" -> OptionParam("mc", "Feature monitoring related configs", "MONITORING_CONFIG", ""), "kafka-config" -> OptionParam("kc", "Authentication config for Kafka", "KAFKA_CONFIG", "") ) val extraOptions = List(new CmdOption("LOCALMODE", "local-mode", false, "Run in local mode")) @@ -65,6 +66,8 @@ object FeatureGenJob { val dataSourceConfigs = DataSourceConfigUtils.getConfigs(cmdParser) val featureGenJobContext = new FeatureGenJobContext(workDir, paramsOverride, featureConfOverride) + println("dataSourceConfigs: ") + println(dataSourceConfigs) (applicationConfigPath, featureDefinitionsInput, featureGenJobContext, dataSourceConfigs) } @@ -208,7 +211,7 @@ object FeatureGenJob { val feathrClient = FeathrClient.builder(sparkSession) .addFeatureDef(featureConfig) - .addLocalOverrideDef(localFeatureConfigWithOverride) + .addLocalOverrideDef(localFeatureConfigWithOverride) .build() val allAnchoredFeatures = feathrClient.allAnchoredFeatures diff --git a/src/main/scala/com/linkedin/feathr/offline/job/FeatureGenSpec.scala b/src/main/scala/com/linkedin/feathr/offline/job/FeatureGenSpec.scala index f974c0aa1..caf6e0e28 100644 --- a/src/main/scala/com/linkedin/feathr/offline/job/FeatureGenSpec.scala +++ b/src/main/scala/com/linkedin/feathr/offline/job/FeatureGenSpec.scala @@ -5,7 +5,7 @@ import com.linkedin.feathr.common.configObj.configbuilder.{FeatureGenConfigBuild import com.linkedin.feathr.common.configObj.generation.{FeatureGenConfig, OfflineOperationalConfig, OutputProcessorConfig} import com.linkedin.feathr.common.exception.{ErrorLabel, FeathrDataOutputException} import com.linkedin.feathr.common.{DateParam, DateTimeParam, DateTimeUtils, RichConfig} -import com.linkedin.feathr.offline.generation.outputProcessor.{PushToRedisOutputProcessor, WriteToHDFSOutputProcessor} +import com.linkedin.feathr.offline.generation.outputProcessor.{FeatureMonitoringProcessor, PushToRedisOutputProcessor, WriteToHDFSOutputProcessor} import com.linkedin.feathr.offline.util.{FeatureGenConstants, IncrementalAggUtils} import com.linkedin.feathr.offline.source.dataloader.DataLoaderHandler import com.linkedin.feathr.sparkcommon.OutputProcessor @@ -55,6 +55,10 @@ class FeatureGenSpec(private val featureGenConfig: FeatureGenConfig, dataLoaderH val params = config.getParams val decoratedConfig = OutputProcessorBuilder.build(config.getName, params) new PushToRedisOutputProcessor(decoratedConfig, None) + case FeatureGenConstants.MONITORING_OUTPUT_PROCESSOR_NAME => + val params = config.getParams + val decoratedConfig = OutputProcessorBuilder.build(config.getName, params) + new FeatureMonitoringProcessor(decoratedConfig, None) case _ => throw new FeathrDataOutputException(ErrorLabel.FEATHR_USER_ERROR, "Custom output processor is not yet supported.") } diff --git a/src/main/scala/com/linkedin/feathr/offline/util/FeatureGenUtils.scala b/src/main/scala/com/linkedin/feathr/offline/util/FeatureGenUtils.scala index 3ccbe57f7..26339a94f 100644 --- a/src/main/scala/com/linkedin/feathr/offline/util/FeatureGenUtils.scala +++ b/src/main/scala/com/linkedin/feathr/offline/util/FeatureGenUtils.scala @@ -16,6 +16,7 @@ import java.util.TimeZone private[offline] object FeatureGenConstants { val HDFS_OUTPUT_PROCESSOR_NAME = "HDFS" val REDIS_OUTPUT_PROCESSOR_NAME = "REDIS" + val MONITORING_OUTPUT_PROCESSOR_NAME = "MONITORING" val OUTPUT_TIME_PATH = "outputTimePath" val SAVE_SCHEMA_META = "saveSchemaMeta" val WORK_DIR = "workDir" diff --git a/src/test/resources/mockdata/feature_monitoring_mock_data/feature_monitoring_data.csv b/src/test/resources/mockdata/feature_monitoring_mock_data/feature_monitoring_data.csv new file mode 100644 index 000000000..faf4f804f --- /dev/null +++ b/src/test/resources/mockdata/feature_monitoring_mock_data/feature_monitoring_data.csv @@ -0,0 +1,11 @@ +user_id,value1,value2,value3,value4,value_string,value_boolean +1,1,2,3,4,apple,true +2,1,2,3,4,apple,false +3,1,2,3,4,,false +4,1,2,3,4,orange,false +5,1,2,3,4,orange,false +6,1,2,3,4,orange,false +7,1,2,3,4,orange,false +8,1,2,3,4,orange,false +9,1,2,3,4,orange,false +10,1,2,3,4,orange,true \ No newline at end of file diff --git a/src/test/scala/com/linkedin/feathr/offline/FeatureMonitoringIntegTest.scala b/src/test/scala/com/linkedin/feathr/offline/FeatureMonitoringIntegTest.scala new file mode 100644 index 000000000..d901665f2 --- /dev/null +++ b/src/test/scala/com/linkedin/feathr/offline/FeatureMonitoringIntegTest.scala @@ -0,0 +1,105 @@ +package com.linkedin.feathr.offline + +import org.testng.annotations.Test + +/** + * Integration tests to test feature monitoring APIs in feathr offline. + */ +class FeatureMonitoringIntegTest extends FeathrIntegTest { + /** + * Test scalar features + */ + @Test(enabled = true) + def testFeatureGenWithApplicationConfig(): Unit = { + val applicationConfig = + s""" + | operational: { + | name: generateWithDefaultParams + | endTime: 2021-01-02 + | endTimeFormat: "yyyy-MM-dd" + | resolution: DAILY + | output:[ + | { + | name: MONITORING + | params: { + | table_name: "monitoringFeatures" + | } + | } + | ] + |} + |features: [f_string, f_int, f_null, f_double, f_null, f_boolean + |] + """.stripMargin + val featureDefConfig = + """ + |anchors: { + | anchor: { + | source: featureMonitoringSource + | key: user_id + | features: { + | f_string: { + | def: "value_string" + | type : { + | type: TENSOR + | tensorCategory: DENSE + | dimensionType: [] + | valType: STRING + | } + | } + | f_int: { + | def: "import java.util.Random; Random random = new Random(); random.nextInt(2)" + | type : { + | type: TENSOR + | tensorCategory: DENSE + | dimensionType: [] + | valType: INT + | } + | } + | f_null: { + | def: "null" + | type : { + | type: TENSOR + | tensorCategory: DENSE + | dimensionType: [] + | valType: DOUBLE + | } + | } + | f_double: { + | def: "import java.util.Random; Random random = new Random(); random.nextDouble()" + | type : { + | type: TENSOR + | tensorCategory: DENSE + | dimensionType: [] + | valType: DOUBLE + | } + | } + | f_boolean: { + | def: "Boolean.valueOf(value_boolean)" + | type : { + | type: TENSOR + | tensorCategory: DENSE + | dimensionType: [] + | valType: BOOLEAN + | } + | } + | } + | } + |} + | + |derivations: { + | f_derived: { + | definition: "f_double * f_double" + | type: NUMERIC + | } + |} + |sources: { + | featureMonitoringSource: { + | location: { path: "/feature_monitoring_mock_data/feature_monitoring_data.csv" } + | } + |} + |""".stripMargin + + val res = localFeatureGenerate(applicationConfig, featureDefConfig) + res.head._2.data.show(100) + } +} From dde96da9d4e6b20a15caf824a9dc0261d084f79e Mon Sep 17 00:00:00 2001 From: Richin Jain Date: Mon, 13 Jun 2022 10:10:31 -0700 Subject: [PATCH 10/18] Adding better warning message to let user know that config file is missing and they need to set env parameters. (#347) * Adding EventHub creation to the deployment script * Upgrading API versions and fixing the if clause of KV property creation for EH * Making the warning message more clear * Minor edit --- feathr_project/feathr/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feathr_project/feathr/client.py b/feathr_project/feathr/client.py index 0ebe3ffa0..f1c387409 100644 --- a/feathr_project/feathr/client.py +++ b/feathr_project/feathr/client.py @@ -102,7 +102,7 @@ def __init__(self, config_path:str = "./feathr_config.yaml", local_workspace_dir self.envutils = envutils if not os.path.exists(config_path): - self.logger.warning('Configuration path does not exist, you need to set the environment variables explicitly. For all the environment variables, please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml') + self.logger.warning('No Configuration file exist at the user provided config_path or the default config_path (./feathr_config.yaml), you need to set the environment variables explicitly. For all the environment variables that you need to set, please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml') # Load all configs from yaml at initialization # DO NOT load any configs from yaml during runtime. From 41e7496b38c43af6d7f8f1de842f657b27840f6d Mon Sep 17 00:00:00 2001 From: Xiaoyong Zhu Date: Mon, 13 Jun 2022 21:22:56 -0700 Subject: [PATCH 11/18] Optimize environment variable behavior (#333) --- .../concepts/feathr-concepts-for-beginners.md | 4 +- .../feathr-configuration-and-env.md | 114 ++++++++++++++++++ feathr_project/feathr/client.py | 76 ++++++------ feathr_project/feathr/secrets/akv_client.py | 17 ++- .../spark_provider/_databricks_submission.py | 2 +- .../spark_provider/_synapse_submission.py | 2 +- .../feathr/utils/_envvariableutil.py | 84 +++++++------ .../feathr_user_workspace/feathr_config.yaml | 5 +- .../test/prep_azure_kafka_test_data.py | 3 +- feathr_project/test/test_secrets_read.py | 61 ++++++++++ 10 files changed, 283 insertions(+), 85 deletions(-) create mode 100644 docs/how-to-guides/feathr-configuration-and-env.md create mode 100644 feathr_project/test/test_secrets_read.py diff --git a/docs/concepts/feathr-concepts-for-beginners.md b/docs/concepts/feathr-concepts-for-beginners.md index 7bb2f0530..d095b259b 100644 --- a/docs/concepts/feathr-concepts-for-beginners.md +++ b/docs/concepts/feathr-concepts-for-beginners.md @@ -107,9 +107,9 @@ client.get_offline_features(observation_settings=settings, ## What is "materialization" in Feathr? -You are very likely to train a machine learning model with the features that you just queried (with `get_offline_features()`). After you have trained a machine learning model, say a fraud detection model, you are likely to put the machine learning model into an online envrionment and do online inference. +You are very likely to train a machine learning model with the features that you just queried (with `get_offline_features()`). After you have trained a machine learning model, say a fraud detection model, you are likely to put the machine learning model into an online environment and do online inference. -In that case, you will need to retrieve the features (for example the user historical spending) in real time, since the fraud detection model is very time sensitive. Usually some key-value store is used for that scenario (for example Redis), and Feathr will help you to materialize features in the online environment for faster inference. That is why you will see something like below, where you specify Redis as the online storage you want to use, and retrieve features from online envrionment using `get_online_features()` from there: +In that case, you will need to retrieve the features (for example the user historical spending) in real time, since the fraud detection model is very time sensitive. Usually some key-value store is used for that scenario (for example Redis), and Feathr will help you to materialize features in the online environment for faster inference. That is why you will see something like below, where you specify Redis as the online storage you want to use, and retrieve features from online environment using `get_online_features()` from there: ```python redisSink = RedisSink(table_name="nycTaxiDemoFeature") diff --git a/docs/how-to-guides/feathr-configuration-and-env.md b/docs/how-to-guides/feathr-configuration-and-env.md new file mode 100644 index 000000000..382932ea1 --- /dev/null +++ b/docs/how-to-guides/feathr-configuration-and-env.md @@ -0,0 +1,114 @@ +--- +layout: default +title: Configuration, environment variables, and store secrets in a secure way +parent: Feathr How-to Guides +--- + +# Configuration and environment variables in Feathr + +Feathr uses a YAML file and a few environment variables to allow end users to have more flexibility. See the example of the following configurations in [this file](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml). + +In that YAML file, it contains the configurations that are used by Feathr. All the configurations can be overwritten by environment variables with concatenation of `__` for different layers of this config file. For example, `feathr_runtime_location` for databricks can be overwritten by setting this environment variable: `SPARK_CONFIG__DATABRICKS__FEATHR_RUNTIME_LOCATION`. For example, you can set it in python: + +```python +os.environ['SPARK_CONFIG__DATABRICKS__FEATHR_RUNTIME_LOCATION'] = "https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar" +``` + +or in shell environment: + +```bash +export SPARK_CONFIG__DATABRICKS__FEATHR_RUNTIME_LOCATION=https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar +``` + +This allows end users to store the configuration in a secure way, say in Kubernetes secrets, key vault, etc. All the configurations available for end users to configure are listed below. + + +# Default behaviors + +Feathr will get the configurations in the following order: + +1. If the key is set in the environment variable, Feathr will use the value of that environment variable +2. If it's not set in the environment, then a value is retrieved from the feathr_config.yaml file with the same config key. +3. If it's not available in the feathr_config.yaml file, Feathr will try to reterive the value from a key vault service. Currently only Azure Key Vault is supported. + +# A list of environment variables that Feathr uses +| Environment Variable | Description | Required? | +| -------------- | -------------- | -------------- | +| SECRETS__AZURE_KEY_VAULT__NAME | Name of the Azure Key Vault service so that Feathr can get credentials from that service. | Optional | +| AZURE_CLIENT_ID | Client ID for authentication into Azure Services. Read [here](https://docs.microsoft.com/en-us/python/api/azure-identity/azure.identity.environmentcredential?view=azure-python) for more details. | This is required if you are using Service Principal to login with Feathr. | +| AZURE_TENANT_ID |Client ID for authentication into Azure Services. Read [here](https://docs.microsoft.com/en-us/python/api/azure-identity/azure.identity.environmentcredential?view=azure-python) for more details. |This is required if you are using Service Principal to login with Feathr. | +| AZURE_CLIENT_SECRET | Client ID for authentication into Azure Services. Read [here](https://docs.microsoft.com/en-us/python/api/azure-identity/azure.identity.environmentcredential?view=azure-python) for more details. |This is required if you are using Service Principal to login with Feathr. | +| OFFLINE_STORE__ADLS__ADLS_ENABLED | Whether to enable ADLS as offline store or not. |Optional | +| ADLS_ACCOUNT | ADLS account that you connect to. |Required if using ADLS as an offline store. | +| ADLS_KEY | ADLS key that you connect to. |Required if using ADLS as an offline store. | +| OFFLINE_STORE__WASB__WASB_ENABLED | Whether to enable Azure BLOB storage as offline store or not. | +| WASB_ACCOUNT | Azure BLOB Storage account that you connect to.| Required if using Azure BLOB Storage as an offline store. | +| WASB_KEY | Azure BLOB Storage key that you connect to. |Required if using Azure BLOB Storage as an offline store. | +| S3_ACCESS_KEY | AWS S3 access key for the S3 account. |Required if using AWS S3 Storage as an offline store. | +| S3_SECRET_KEY | AWS S3 secret key for the S3 account. |Required if using AWS S3 Storage as an offline store. | +| OFFLINE_STORE__S3__S3_ENABLED | Whether to enable S3 as offline store or not. |Optional | +| OFFLINE_STORE__S3__S3_ENDPOINT | S3 endpoint. If you use S3 endpoint, then you need to provide access key and secret key in the environment variable as well. |Required if using AWS S3 Storage as an offline store. | +| OFFLINE_STORE__JDBC__JDBC_ENABLED | Whether to enable JDBC as offline store or not. |Optional | +| OFFLINE_STORE__JDBC__JDBC_DATABASE | If using JDBC endpoint as offline store, this config specifies the JDBC database to read from. | Required if using JDBC sources as offline store | +| OFFLINE_STORE__JDBC__JDBC_TABLE | If using JDBC endpoint as offline store, this config specifies the JDBC table to read from. Same as `JDBC_TABLE`. |Required if using JDBC sources as offline store | +| JDBC_TABLE | If using JDBC endpoint as offline store, this config specifies the JDBC table to read from |Required if using JDBC sources as offline store | +| JDBC_USER | If using JDBC endpoint as offline store, this config specifies the JDBC user |Required if using JDBC sources as offline store | +| JDBC_PASSWORD | If using JDBC endpoint as offline store, this config specifies the JDBC password |Required if using JDBC sources as offline store | +| KAFKA_SASL_JAAS_CONFIG | If using EventHub as a streaming input source, this configures the KAFKA stream. If using EventHub, read [here](https://github.com/Azure/azure-event-hubs-for-kafka#updating-your-kafka-client-configuration) for how to get this string from the existing string in Azure Portal. | Required if using Kafka/EventHub as streaming source input.| +| PROJECT_CONFIG__PROJECT_NAME | Configures the project name. | Required| +| OFFLINE_STORE__SNOWFLAKE__URL | Configures the Snowflake URL. Usually it's something like `dqllago-ol19457.snowflakecomputing.com`. |Required if using Snowflake as an offline store. | +| OFFLINE_STORE__SNOWFLAKE__USER | Configures the Snowflake user. |Required if using Snowflake as an offline store. | +| OFFLINE_STORE__SNOWFLAKE__ROLE | Configures the Snowflake role. Usually it's something like `ACCOUNTADMIN`. |Required if using Snowflake as an offline store. | +|JDBC_SF_PASSWORD| Configurations for Snowflake password|Required if using Snowflake as an offline store. | +| SPARK_CONFIG__SPARK_CLUSTER | Choice for spark runtime. Currently support: `azure_synapse`, `databricks`. The `databricks` configs will be ignored if `azure_synapse` is set and vice versa. | Required| +| SPARK_CONFIG__SPARK_RESULT_OUTPUT_PARTS | Configure number of parts for the spark output for feature generation job | Required| +| SPARK_CONFIG__AZURE_SYNAPSE__DEV_URL | Dev URL to the synapse cluster. Usually it's something like `https://yourclustername.dev.azuresynapse.net` | Required if using Azure Synapse| +| SPARK_CONFIG__AZURE_SYNAPSE__POOL_NAME | name of the sparkpool that you are going to use |Required if using Azure Synapse| +| SPARK_CONFIG__AZURE_SYNAPSE__WORKSPACE_DIR | A location that Synapse has access to. This workspace dir stores all the required configuration files and the jar resources. All the feature definitions will be uploaded here |Required if using Azure Synapse| +| SPARK_CONFIG__AZURE_SYNAPSE__EXECUTOR_SIZE | Specifies the executor size for the Azure Synapse cluster. Currently the options are `Small`, `Medium`, `Large`. |Required if using Azure Synapse| +| SPARK_CONFIG__AZURE_SYNAPSE__EXECUTOR_NUM | Sepcifies the number of executors for the Azure Synapse cluster |Required if using Azure Synapse| +| SPARK_CONFIG__AZURE_SYNAPSE__FEATHR_RUNTIME_LOCATION | Specifies the Feathr runtime location. Support local paths, path start with `http(s)://`, and paths start with `abfss:/`. If not set, will use the [Feathr package published in Maven](https://search.maven.org/artifact/com.linkedin.feathr/feathr_2.12). |Required if using Azure Synapse| +| SPARK_CONFIG__DATABRICKS__WORKSPACE_INSTANCE_URL | Workspace instance URL for your databricks cluster. Will be something like this: `https://adb-6885802458123232.12.azuredatabricks.net/` |Required if using Databricks| +| SPARK_CONFIG__DATABRICKS__CONFIG_TEMPLATE | Config string including run time information, spark version, machine size, etc. See [below](#sparkconfigdatabricksconfigtemplate) for more details. |Required if using Databricks| +| SPARK_CONFIG__DATABRICKS__WORK_DIR | Workspace dir for storing all the required configuration files and the jar resources. All the feature definitions will be uploaded here. |Required if using Databricks| +| SPARK_CONFIG__DATABRICKS__FEATHR_RUNTIME_LOCATION | Feathr runtime location. Support local paths, path start with `http(s)://`, and paths start with `dbfs:/`. If not set, will use the [Feathr package published in Maven](https://search.maven.org/artifact/com.linkedin.feathr/feathr_2.12). |Required if using Databricks| +| ONLINE_STORE__REDIS__HOST | Redis host name to access Redis cluster. |Required if using Redis as online store. | +| ONLINE_STORE__REDIS__PORT | Redis port number to access Redis cluster. |Required if using Redis as online store. | +| ONLINE_STORE__REDIS__SSL_ENABLED | Whether SSL is enabled to access Redis cluster. |Required if using Redis as online store. | +| REDIS_PASSWORD | Password for the Redis cluster. |Required if using Redis as online store. | +| FEATURE_REGISTRY__PURVIEW__PURVIEW_NAME | Configure the name of the purview endpoint. |Required if using Purview as the endpoint. | +| FEATURE_REGISTRY__PURVIEW__DELIMITER | See [here](#featureregistrypurviewdelimiter) for more details. | Required| +| FEATURE_REGISTRY__PURVIEW__TYPE_SYSTEM_INITIALIZATION | Controls whether the type system (think this as the "schema" for the registry) will be initialized or not. Usually this is only required to be set to `True` to initialize schema, and then you can set it to `False` to shorten the initialization time. | Required| + +# Explanation for selected configurations +## SPARK_CONFIG__DATABRICKS__CONFIG_TEMPLATE + +Essentially it's a compact JSON string represents the important configurations that you can configure for the databricks cluster that you use. There are parts that marked as "FEATHR_FILL_IN" that Feathr will fill in, but all the other parts are customizable. + +Essentially, the config template represents what is going to be submitted to a databricks cluster, and you can see the structure of this configuration template by visiting the [Databricks job runs API](https://docs.microsoft.com/en-us/azure/databricks/dev-tools/api/2.0/jobs#--runs-submit): + +The most important and useful part would be the `new_cluster` section. For example, you can change`spark_version`, `node_type_id`, `num_workers`, etc. based on your environment. + +```json +{"run_name":"FEATHR_FILL_IN","new_cluster":{"spark_version":"9.1.x-scala2.12","node_type_id":"Standard_D3_v2","num_workers":2,"spark_conf":{"FEATHR_FILL_IN":"FEATHR_FILL_IN"}},"libraries":[{"jar":"FEATHR_FILL_IN"}],"spark_jar_task":{"main_class_name":"FEATHR_FILL_IN","parameters":["FEATHR_FILL_IN"]}} +``` + +Another use case is to use `instance_pool_id`, where instead of creating the Spark cluster from scratch every time, you can reuse a pool to run the job to make the run time shorter: + +```json +{"run_name":"FEATHR_FILL_IN","new_cluster":{"spark_version":"9.1.x-scala2.12","num_workers":2,"spark_conf":{"FEATHR_FILL_IN":"FEATHR_FILL_IN"},"instance_pool_id":"0403-214809-inlet434-pool-l9dj3kwz"},"libraries":[{"jar":"FEATHR_FILL_IN"}],"spark_jar_task":{"main_class_name":"FEATHR_FILL_IN","parameters":["FEATHR_FILL_IN"]}} + +``` + +Other advanced settings includes `idempotency_token` to guarantee the idempotency of job run requests, etc. + + +## FEATURE_REGISTRY__PURVIEW__DELIMITER +Delimiter indicates that how the project name, feature names etc. are delimited. By default it will be '__'. this is for global reference (mainly for feature sharing). For exmaple, when we setup a project called foo, and we have an anchor called 'taxi_driver' and the feature name is called 'f_daily_trips'. the feature will have a global unique name called 'foo__taxi_driver__f_daily_trips' + + +# A note on using Azure Key Vault to store credentials + +Feathr has native integrations with Azure Key Vault to make it more secure to access resources. However, Azure Key Vault doesn't support the secret name to have underscore `_` in the secret name. Feathr will automatically convert underscore `_` to dash `-`. For example, Feathr will look for `ONLINE-STORE--REDIS--HOST` in Azure Key Vault if the actual environment variable is `ONLINE_STORE__REDIS__HOST`. + +Azure Key Vault is not case sensitive, so `online_store__redis__host` and `ONLINE_STORE__REDIS__HOST` will result in the same request to Azure Key Vault and yield the same result. \ No newline at end of file diff --git a/feathr_project/feathr/client.py b/feathr_project/feathr/client.py index f1c387409..e3ba9d068 100644 --- a/feathr_project/feathr/client.py +++ b/feathr_project/feathr/client.py @@ -91,7 +91,7 @@ def __init__(self, config_path:str = "./feathr_config.yaml", local_workspace_dir self.logger = logging.getLogger(__name__) # Redis key separator self._KEY_SEPARATOR = ':' - envutils = _EnvVaraibleUtil(config_path) + self.envutils = _EnvVaraibleUtil(config_path) if local_workspace_dir: self.local_workspace_dir = local_workspace_dir else: @@ -99,32 +99,30 @@ def __init__(self, config_path:str = "./feathr_config.yaml", local_workspace_dir tem_dir_obj = tempfile.TemporaryDirectory() self.local_workspace_dir = tem_dir_obj.name - self.envutils = envutils - if not os.path.exists(config_path): self.logger.warning('No Configuration file exist at the user provided config_path or the default config_path (./feathr_config.yaml), you need to set the environment variables explicitly. For all the environment variables that you need to set, please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml') # Load all configs from yaml at initialization # DO NOT load any configs from yaml during runtime. - self.project_name = envutils.get_environment_variable_with_default( + self.project_name = self.envutils.get_environment_variable_with_default( 'project_config', 'project_name') # Redis configs - self.redis_host = envutils.get_environment_variable_with_default( + self.redis_host = self.envutils.get_environment_variable_with_default( 'online_store', 'redis', 'host') - self.redis_port = envutils.get_environment_variable_with_default( + self.redis_port = self.envutils.get_environment_variable_with_default( 'online_store', 'redis', 'port') - self.redis_ssl_enabled = envutils.get_environment_variable_with_default( + self.redis_ssl_enabled = self.envutils.get_environment_variable_with_default( 'online_store', 'redis', 'ssl_enabled') # S3 configs - self.s3_endpoint = envutils.get_environment_variable_with_default( + self.s3_endpoint = self.envutils.get_environment_variable_with_default( 'offline_store', 's3', 's3_endpoint') # spark configs - self.output_num_parts = envutils.get_environment_variable_with_default( + self.output_num_parts = self.envutils.get_environment_variable_with_default( 'spark_config', 'spark_result_output_parts') - self.spark_runtime = envutils.get_environment_variable_with_default( + self.spark_runtime = self.envutils.get_environment_variable_with_default( 'spark_config', 'spark_cluster') self.credential = credential @@ -136,22 +134,22 @@ def __init__(self, config_path:str = "./feathr_config.yaml", local_workspace_dir # Spark job submission. The feathr jar hosted in cloud saves the time users needed to upload the jar from # their local env. self._FEATHR_JOB_JAR_PATH = \ - envutils.get_environment_variable_with_default( + self.envutils.get_environment_variable_with_default( 'spark_config', 'azure_synapse', 'feathr_runtime_location') if self.credential is None: self.credential = DefaultAzureCredential(exclude_interactive_browser_credential=False) self.feathr_spark_laucher = _FeathrSynapseJobLauncher( - synapse_dev_url=envutils.get_environment_variable_with_default( + synapse_dev_url=self.envutils.get_environment_variable_with_default( 'spark_config', 'azure_synapse', 'dev_url'), - pool_name=envutils.get_environment_variable_with_default( + pool_name=self.envutils.get_environment_variable_with_default( 'spark_config', 'azure_synapse', 'pool_name'), - datalake_dir=envutils.get_environment_variable_with_default( + datalake_dir=self.envutils.get_environment_variable_with_default( 'spark_config', 'azure_synapse', 'workspace_dir'), - executor_size=envutils.get_environment_variable_with_default( + executor_size=self.envutils.get_environment_variable_with_default( 'spark_config', 'azure_synapse', 'executor_size'), - executors=envutils.get_environment_variable_with_default( + executors=self.envutils.get_environment_variable_with_default( 'spark_config', 'azure_synapse', 'executor_num'), credential=self.credential ) @@ -160,17 +158,17 @@ def __init__(self, config_path:str = "./feathr_config.yaml", local_workspace_dir # Spark job submission. The feathr jar hosted in cloud saves the time users needed to upload the jar from # their local env. self._FEATHR_JOB_JAR_PATH = \ - envutils.get_environment_variable_with_default( + self.envutils.get_environment_variable_with_default( 'spark_config', 'databricks', 'feathr_runtime_location') self.feathr_spark_laucher = _FeathrDatabricksJobLauncher( - workspace_instance_url=envutils.get_environment_variable_with_default( + workspace_instance_url=self.envutils.get_environment_variable_with_default( 'spark_config', 'databricks', 'workspace_instance_url'), - token_value=_EnvVaraibleUtil.get_environment_variable( + token_value=self.envutils.get_environment_variable( 'DATABRICKS_WORKSPACE_TOKEN_VALUE'), - config_template=envutils.get_environment_variable_with_default( + config_template=self.envutils.get_environment_variable_with_default( 'spark_config', 'databricks', 'config_template'), - databricks_work_dir=envutils.get_environment_variable_with_default( + databricks_work_dir=self.envutils.get_environment_variable_with_default( 'spark_config', 'databricks', 'work_dir') ) @@ -178,9 +176,9 @@ def __init__(self, config_path:str = "./feathr_config.yaml", local_workspace_dir # initialize registry - self.registry_delimiter = envutils.get_environment_variable_with_default( + self.registry_delimiter = self.envutils.get_environment_variable_with_default( 'feature_registry', 'purview', 'delimiter') - self.azure_purview_name = envutils.get_environment_variable_with_default( + self.azure_purview_name = self.envutils.get_environment_variable_with_default( 'feature_registry', 'purview', 'purview_name') # initialize the registry no matter whether we set purview name or not, given some of the methods are used there. self.registry = _FeatureRegistry(self.project_name, self.azure_purview_name, self.registry_delimiter, project_registry_tag, config_path = config_path, credential=self.credential) @@ -383,7 +381,7 @@ def _construct_redis_client(self): """Constructs the Redis client. The host, port, credential and other parameters can be set via environment parameters. """ - password = _EnvVaraibleUtil.get_environment_variable(REDIS_PASSWORD) + password = self.envutils.get_environment_variable(REDIS_PASSWORD) host = self.redis_host port = self.redis_port ssl_enabled = self.redis_ssl_enabled @@ -586,7 +584,7 @@ def _materialize_features_with_config(self, feature_gen_conf_path: str = 'featur Job configurations and job arguments (or sometimes called job parameters) have quite some overlaps (i.e. you can achieve the same goal by either using the job arguments/parameters vs. job configurations). But the job tags should just be used for metadata purpose. ''' optional_params = [] - if _EnvVaraibleUtil.get_environment_variable('KAFKA_SASL_JAAS_CONFIG'): + if self.envutils.get_environment_variable('KAFKA_SASL_JAAS_CONFIG'): optional_params = optional_params + ['--kafka-config', self._get_kafka_config_str()] arguments = [ '--generation-config', self.feathr_spark_laucher.upload_or_get_cloud_path( @@ -627,7 +625,7 @@ def wait_job_to_finish(self, timeout_sec: int = 300): def _getRedisConfigStr(self): """Construct the Redis config string. The host, port, credential and other parameters can be set via environment variables.""" - password = _EnvVaraibleUtil.get_environment_variable(REDIS_PASSWORD) + password = self.envutils.get_environment_variable(REDIS_PASSWORD) host = self.redis_host port = self.redis_port ssl_enabled = self.redis_ssl_enabled @@ -645,8 +643,8 @@ def _get_s3_config_str(self): endpoint = self.s3_endpoint # if s3 endpoint is set in the feathr_config, then we need other environment variables # keys can't be only accessed through environment - access_key = _EnvVaraibleUtil.get_environment_variable('S3_ACCESS_KEY') - secret_key = _EnvVaraibleUtil.get_environment_variable('S3_SECRET_KEY') + access_key = self.envutils.get_environment_variable('S3_ACCESS_KEY') + secret_key = self.envutils.get_environment_variable('S3_SECRET_KEY') # HOCCON format will be parsed by the Feathr job config_str = """ S3_ENDPOINT: {S3_ENDPOINT} @@ -658,10 +656,10 @@ def _get_s3_config_str(self): def _get_adls_config_str(self): """Construct the ADLS config string for abfs(s). The Account, access key and other parameters can be set via environment variables.""" - account = _EnvVaraibleUtil.get_environment_variable('ADLS_ACCOUNT') + account = self.envutils.get_environment_variable('ADLS_ACCOUNT') # if ADLS Account is set in the feathr_config, then we need other environment variables # keys can't be only accessed through environment - key = _EnvVaraibleUtil.get_environment_variable('ADLS_KEY') + key = self.envutils.get_environment_variable('ADLS_KEY') # HOCCON format will be parsed by the Feathr job config_str = """ ADLS_ACCOUNT: {ADLS_ACCOUNT} @@ -672,10 +670,10 @@ def _get_adls_config_str(self): def _get_blob_config_str(self): """Construct the Blob config string for wasb(s). The Account, access key and other parameters can be set via environment variables.""" - account = _EnvVaraibleUtil.get_environment_variable('BLOB_ACCOUNT') + account = self.envutils.get_environment_variable('BLOB_ACCOUNT') # if BLOB Account is set in the feathr_config, then we need other environment variables # keys can't be only accessed through environment - key = _EnvVaraibleUtil.get_environment_variable('BLOB_KEY') + key = self.envutils.get_environment_variable('BLOB_KEY') # HOCCON format will be parsed by the Feathr job config_str = """ BLOB_ACCOUNT: {BLOB_ACCOUNT} @@ -686,12 +684,12 @@ def _get_blob_config_str(self): def _get_sql_config_str(self): """Construct the SQL config string for jdbc. The dbtable (query), user, password and other parameters can be set via environment variables.""" - table = _EnvVaraibleUtil.get_environment_variable('JDBC_TABLE') - user = _EnvVaraibleUtil.get_environment_variable('JDBC_USER') - password = _EnvVaraibleUtil.get_environment_variable('JDBC_PASSWORD') - driver = _EnvVaraibleUtil.get_environment_variable('JDBC_DRIVER') - auth_flag = _EnvVaraibleUtil.get_environment_variable('JDBC_AUTH_FLAG') - token = _EnvVaraibleUtil.get_environment_variable('JDBC_TOKEN') + table = self.envutils.get_environment_variable('JDBC_TABLE') + user = self.envutils.get_environment_variable('JDBC_USER') + password = self.envutils.get_environment_variable('JDBC_PASSWORD') + driver = self.envutils.get_environment_variable('JDBC_DRIVER') + auth_flag = self.envutils.get_environment_variable('JDBC_AUTH_FLAG') + token = self.envutils.get_environment_variable('JDBC_TOKEN') # HOCCON format will be parsed by the Feathr job config_str = """ JDBC_TABLE: {JDBC_TABLE} @@ -738,7 +736,7 @@ def _get_snowflake_config_str(self): def _get_kafka_config_str(self): """Construct the Kafka config string. The endpoint, access key, secret key, and other parameters can be set via environment variables.""" - sasl = _EnvVaraibleUtil.get_environment_variable('KAFKA_SASL_JAAS_CONFIG') + sasl = self.envutils.get_environment_variable('KAFKA_SASL_JAAS_CONFIG') # HOCCON format will be parsed by the Feathr job config_str = """ KAFKA_SASL_JAAS_CONFIG: "{sasl}" diff --git a/feathr_project/feathr/secrets/akv_client.py b/feathr_project/feathr/secrets/akv_client.py index 84c0ff379..cdec01e12 100644 --- a/feathr_project/feathr/secrets/akv_client.py +++ b/feathr_project/feathr/secrets/akv_client.py @@ -8,15 +8,24 @@ def __init__(self, akv_name: str): self.akv_name = akv_name self.secret_client = None - def get_akv_secret(self, secret_name: str): + def get_feathr_akv_secret(self, secret_name: str): + """Get Feathr Secrets from Azure Key Vault. Note that this function will replace '_' in `secret_name` with '-' since Azure Key Vault doesn't support it + + Returns: + _type_: _description_ + """ if self.secret_client is None: self.secret_client = SecretClient( vault_url = f"https://{self.akv_name}.vault.azure.net", credential=DefaultAzureCredential() ) try: - secret = self.secret_client.get_secret(secret_name) - logger.debug(f"Secret: {secret_name} is retrieved from Key Vault {self.akv_name}.") + # replace '_' with '-' since Azure Key Vault doesn't support it + variable_replaced = secret_name.replace('_','-') #.upper() + logger.info('Fetching the secret {} from Key Vault {}.', variable_replaced, self.akv_name) + secret = self.secret_client.get_secret(variable_replaced) + logger.info('Secret {} fetched from Key Vault {}.', variable_replaced, self.akv_name) return secret.value except ResourceNotFoundError as e: - logger.error(f"Secret: {secret_name} cannot be found in Key Vault {self.akv_name}.") \ No newline at end of file + logger.error(f"Secret {secret_name} cannot be found in Key Vault {self.akv_name}.") + raise \ No newline at end of file diff --git a/feathr_project/feathr/spark_provider/_databricks_submission.py b/feathr_project/feathr/spark_provider/_databricks_submission.py index 4ef48cb48..26d2bbe86 100644 --- a/feathr_project/feathr/spark_provider/_databricks_submission.py +++ b/feathr_project/feathr/spark_provider/_databricks_submission.py @@ -85,7 +85,7 @@ def upload_or_get_cloud_path(self, local_path_or_http_path: str): elif src_parse_result.scheme.startswith('dbfs'): # passed a cloud path logger.info( - 'Skipping file {} as the file starts with dbfs:/', local_path_or_http_path) + 'Skip uploading file {} as the file starts with dbfs:/', local_path_or_http_path) returned_path = local_path_or_http_path elif src_parse_result.scheme.startswith(('wasb','s3','gs')): # if the path starts with a location that's not a local path diff --git a/feathr_project/feathr/spark_provider/_synapse_submission.py b/feathr_project/feathr/spark_provider/_synapse_submission.py index 3bf681275..ba2d975f8 100644 --- a/feathr_project/feathr/spark_provider/_synapse_submission.py +++ b/feathr_project/feathr/spark_provider/_synapse_submission.py @@ -382,7 +382,7 @@ def upload_file_to_workdir(self, src_file_path: str) -> str: logger.info("{} is downloaded and then uploaded to location: {}", src_file_path, returned_path) elif src_parse_result.scheme.startswith('abfs') or src_parse_result.scheme.startswith('wasb'): # passed a cloud path - logger.info("Skipping file {} as it's already in the cloud", src_file_path) + logger.info("Skip uploading file {} as it's already in the cloud", src_file_path) returned_path = src_file_path else: # else it should be a local file path or dir diff --git a/feathr_project/feathr/utils/_envvariableutil.py b/feathr_project/feathr/utils/_envvariableutil.py index c4038736b..4f93c6249 100644 --- a/feathr_project/feathr/utils/_envvariableutil.py +++ b/feathr_project/feathr/utils/_envvariableutil.py @@ -2,20 +2,25 @@ import yaml from loguru import logger from feathr.secrets.akv_client import AzureKeyVaultClient - +from azure.core.exceptions import ResourceNotFoundError class _EnvVaraibleUtil(object): def __init__(self, config_path): self.config_path = config_path - self.akv_client = None + # Set to none first to avoid invalid reference + self.akv_name = None + self.akv_name = self.get_environment_variable_with_default( 'secrets', 'azure_key_vault', 'name') + self.akv_client = AzureKeyVaultClient(self.akv_name) if self.akv_name else None def get_environment_variable_with_default(self, *args): """Gets the environment variable for the variable key. Args: *args: list of keys in feathr_config.yaml file Return: - A environment variable for the variable key. If it's not set in the environment, then a default is retrieved - from the feathr_config.yaml file with the same config key. + A environment variable for the variable key. It will retrieve the value of the environment variables in the following order: + If the key is set in the environment variable, Feathr will use the value of that environment variable + If it's not set in the environment, then a default is retrieved from the feathr_config.yaml file with the same config key. + If it's not available in the feathr_config.yaml file, Feathr will try to reterive the value from key vault """ # if envs exist, just return the existing env variable without reading the file @@ -24,51 +29,58 @@ def get_environment_variable_with_default(self, *args): # make it work for lower case and upper case. env_variable = os.environ.get( env_keyword, os.environ.get(upper_env_keyword)) + + # If the key is set in the environment variable, Feathr will use the value of that environment variable if env_variable: return env_variable - # if the config path doesn't exist, just return - try: - assert os.path.exists(os.path.abspath(self.config_path)) - except: - logger.info("{} is not set and configuration file {} cannot be found. One of those should be set." , env_keyword, self.config_path) + # If it's not set in the environment, then a default is retrieved from the feathr_config.yaml file with the same config key. + if os.path.exists(os.path.abspath(self.config_path)): + with open(os.path.abspath(self.config_path), 'r') as stream: + try: + yaml_config = yaml.safe_load(stream) + # concat all layers and check in environment variable + yaml_layer = yaml_config - with open(os.path.abspath(self.config_path), 'r') as stream: + # resolve one layer after another + for arg in args: + yaml_layer = yaml_layer[arg] + return yaml_layer + except KeyError as exc: + logger.info("{} not found in the config file.", env_keyword) + except yaml.YAMLError as exc: + logger.warning(exc) + + # If it's not available in the feathr_config.yaml file, Feathr will try to reterive the value from key vault + if self.akv_name: try: - yaml_config = yaml.safe_load(stream) - # concat all layers - # check in environment variable - yaml_layer = yaml_config - - # resolve one layer after another - for arg in args: - yaml_layer = yaml_layer[arg] - return yaml_layer - except KeyError as exc: - logger.info(exc) + return self.akv_client.get_feathr_akv_secret(env_keyword) + except ResourceNotFoundError: + # print out warning message if cannot find the env variable in all the resources + logger.warning('Environment variable {} not found in environment variable, default YAML config file, or key vault service.', env_keyword) return "" - except yaml.YAMLError as exc: - logger.info(exc) - @staticmethod - def get_environment_variable(variable_key): + def get_environment_variable(self, variable_key): """Gets the environment variable for the variable key. + Args: variable_key: environment variable key that is used to retrieve the environment variable Return: - A environment variable for the variable key. + A environment variable for the variable key. It will retrieve the value of the environment variables in the following order: + If the key is set in the environment variable, Feathr will use the value of that environment variable + If it's not available in the environment variable file, Feathr will try to reterive the value from key vault Raises: ValueError: If the environment variable is not set for this key, an exception is thrown. """ - password = os.environ.get(variable_key) - if not password: - logger.info(variable_key + - ' is not set in the environment variables.') - akv_name = os.environ.get("KEY_VAULT_NAME") - if akv_name: - logger.info('Fetching the value {} from Key Vault.', variable_key) - akv_client = AzureKeyVaultClient(akv_name) - password = akv_client.get_akv_secret(variable_key) - return password + env_var_value = os.environ.get(variable_key) + + if env_var_value: + return env_var_value + # If it's not available in the environment variable file, Feathr will try to reterive the value from key vault + logger.info(variable_key + ' is not set in the environment variables.') + + if self.akv_name: + return self.akv_client.get_feathr_akv_secret(variable_key) + \ No newline at end of file diff --git a/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml b/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml index ad26efe4e..c307d268a 100644 --- a/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml +++ b/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml @@ -117,4 +117,7 @@ feature_registry: # controls whether the type system will be initialized or not. Usually this is only required to be executed once. type_system_initialization: false - \ No newline at end of file + +secrets: + azure_key_vault: + name: feathrazuretest3-kv \ No newline at end of file diff --git a/feathr_project/test/prep_azure_kafka_test_data.py b/feathr_project/test/prep_azure_kafka_test_data.py index 7d4a195d3..674040be8 100644 --- a/feathr_project/test/prep_azure_kafka_test_data.py +++ b/feathr_project/test/prep_azure_kafka_test_data.py @@ -40,7 +40,8 @@ def send_avro_record_to_kafka(topic, record): bytes_writer = io.BytesIO() encoder = BinaryEncoder(bytes_writer) writer.write(record, encoder) - sasl = _EnvVaraibleUtil.get_environment_variable('KAFKA_SASL_JAAS_CONFIG') + envutils = _EnvVaraibleUtil() + sasl = envutils.get_environment_variable('KAFKA_SASL_JAAS_CONFIG') conf = { 'bootstrap.servers': KAFKA_BROKER, 'security.protocol': 'SASL_SSL', diff --git a/feathr_project/test/test_secrets_read.py b/feathr_project/test/test_secrets_read.py new file mode 100644 index 000000000..e1d14dcc6 --- /dev/null +++ b/feathr_project/test/test_secrets_read.py @@ -0,0 +1,61 @@ +import os +from datetime import datetime +from pathlib import Path +from unittest import result + +from click.testing import CliRunner +from feathr import (BOOLEAN, FLOAT, INT32, FeatureQuery, ObservationSettings, + SparkExecutionConfiguration, TypedKey, ValueType) +from feathr.client import FeathrClient +from feathr.utils.job_utils import get_result_df + +from test_fixture import basic_test_setup +from feathr.constants import OUTPUT_FORMAT + +# test parquet file read/write without an extension name +def test_feathr_get_secrets_from_key_vault(): + """ + Test if the program can read the key vault secrets as expected + """ + # TODO: need to test get_environment_variable() as well + os.environ['SECRETS__AZURE_KEY_VAULT__NAME'] = 'feathrazuretest3-kv' + + # the config below doesn't have `ONLINE_STORE__REDIS__HOST` for testing purpose + yaml_config = """ + project_config: + project_name: 'project_feathr_integration_test' + offline_store: + s3: + s3_enabled: true + s3_endpoint: 's3.amazonaws.com' + snowflake: + url: "dqllago-ol19457.snowflakecomputing.com" + user: "feathrintegration" + role: "ACCOUNTADMIN" + spark_config: + spark_cluster: 'databricks' + spark_result_output_parts: '1' + databricks: + workspace_instance_url: 'https://adb-2474129336842816.16.azuredatabricks.net/' + workspace_token_value: '' + config_template: '{"run_name":"FEATHR_FILL_IN","new_cluster":{"spark_version":"9.1.x-scala2.12","num_workers":2,"spark_conf":{"FEATHR_FILL_IN":"FEATHR_FILL_IN"},"instance_pool_id":"0403-214809-inlet434-pool-l9dj3kwz"},"libraries":[{"jar":"FEATHR_FILL_IN"}],"spark_jar_task":{"main_class_name":"FEATHR_FILL_IN","parameters":["FEATHR_FILL_IN"]}}' + work_dir: 'dbfs:/feathr_getting_started' + feathr_runtime_location: '' + online_store: + redis: + port: 6380 + ssl_enabled: True + feature_registry: + purview: + type_system_initialization: false + purview_name: 'feathrazuretest3-purview1' + delimiter: '__' + """ + + with open("/tmp/feathr_config.yaml", "w") as text_file: + text_file.write(yaml_config) + + client = FeathrClient(config_path="/tmp/feathr_config.yaml") + # `redis_host` should be there since it's not available in the environment variable, and not in the config file, we expect we get it from azure key_vault + assert client.redis_host is not None + From dff6a0d8b8137d2c7511f4ccea4a98100c852ab4 Mon Sep 17 00:00:00 2001 From: Yuqing Wei Date: Tue, 14 Jun 2022 13:53:39 +0800 Subject: [PATCH 12/18] enable JWT token param in frontend API calls (#337) * Enable JWT token param in frontend API calls * Use id token and remove mock token --- ui/src/api/api.tsx | 46 ++++++++++++++++++++++++++++++++++++------ ui/src/app.tsx | 12 +++-------- ui/src/utils/utils.tsx | 12 +++++++++++ 3 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 ui/src/utils/utils.tsx diff --git a/ui/src/api/api.tsx b/ui/src/api/api.tsx index 653a2677a..ee509411f 100644 --- a/ui/src/api/api.tsx +++ b/ui/src/api/api.tsx @@ -1,11 +1,14 @@ import Axios from "axios"; import { DataSource, Feature, FeatureLineage, UserRole, Role } from "../models/model"; +import { InteractionRequiredAuthError, PublicClientApplication } from "@azure/msal-browser"; import mockUserRole from "./mock/userrole.json"; +import { getMsalConfig } from "../utils/utils"; const API_ENDPOINT = process.env.REACT_APP_API_ENDPOINT + "/api/v1"; -const token = "mockAppServiceKey"; +const msalInstance = getMsalConfig(); export const fetchDataSources = async (project: string) => { + const token = await getIdToken(msalInstance); return Axios .get(`${ API_ENDPOINT }/projects/${ project }/datasources?code=${ token }`, { headers: {} }) @@ -15,6 +18,7 @@ export const fetchDataSources = async (project: string) => { }; export const fetchProjects = async () => { + const token = await getIdToken(msalInstance); return Axios .get<[]>(`${ API_ENDPOINT }/projects?code=${ token }`, { @@ -26,6 +30,7 @@ export const fetchProjects = async () => { }; export const fetchFeatures = async (project: string, page: number, limit: number, keyword: string) => { + const token = await getIdToken(msalInstance); return Axios .get(`${ API_ENDPOINT }/projects/${ project }/features?code=${ token }`, { @@ -38,6 +43,7 @@ export const fetchFeatures = async (project: string, page: number, limit: number }; export const fetchFeature = async (project: string, featureId: string) => { + const token = await getIdToken(msalInstance); return Axios .get(`${ API_ENDPOINT }/features/${ featureId }?code=${ token }`, {}) .then((response) => { @@ -46,6 +52,7 @@ export const fetchFeature = async (project: string, featureId: string) => { }; export const fetchProjectLineages = async (project: string) => { + const token = await getIdToken(msalInstance); return Axios .get(`${ API_ENDPOINT }/projects/${ project }?code=${ token }`, {}) .then((response) => { @@ -54,6 +61,7 @@ export const fetchProjectLineages = async (project: string) => { }; export const fetchFeatureLineages = async (project: string) => { + const token = await getIdToken(msalInstance); return Axios .get(`${ API_ENDPOINT }/features/lineage/${ project }?code=${ token }`, {}) .then((response) => { @@ -63,8 +71,9 @@ export const fetchFeatureLineages = async (project: string) => { // Following are place-holder code export const createFeature = async (feature: Feature) => { + const token = await getIdToken(msalInstance); return Axios - .post(`${ API_ENDPOINT }/features`, feature, + .post(`${ API_ENDPOINT }/features?code=${ token }`, feature, { headers: { "Content-Type": "application/json;" }, params: {}, @@ -76,8 +85,9 @@ export const createFeature = async (feature: Feature) => { } export const updateFeature = async (feature: Feature, id: string) => { + const token = await getIdToken(msalInstance); feature.guid = id; - return await Axios.put(`${ API_ENDPOINT }/features/${ id }`, feature, + return await Axios.put(`${ API_ENDPOINT }/features/${ id }?code=${ token }`, feature, { headers: { "Content-Type": "application/json;" }, params: {}, @@ -89,8 +99,9 @@ export const updateFeature = async (feature: Feature, id: string) => { }; export const deleteFeature = async (qualifiedName: string) => { + const token = await getIdToken(msalInstance); return await Axios - .delete(`${ API_ENDPOINT }/features/${ qualifiedName }`, + .delete(`${ API_ENDPOINT }/features/${ qualifiedName }?code=${ token }`, { headers: { "Content-Type": "application/json;" }, params: {}, @@ -107,6 +118,7 @@ export const listUserRole = async () => { }; export const getUserRole = async (userName: string) => { + const token = await getIdToken(msalInstance); return await Axios .get(`${ API_ENDPOINT }/user/${userName}/userroles?code=${ token }`, {}) .then((response) => { @@ -115,8 +127,9 @@ export const getUserRole = async (userName: string) => { } export const addUserRole = async (role: Role) => { + const token = await getIdToken(msalInstance); return await Axios - .post(`${ API_ENDPOINT }/user/${role.userName}/userroles/new`, role, + .post(`${ API_ENDPOINT }/user/${role.userName}/userroles/new?code=${ token }`, role, { headers: { "Content-Type": "application/json;" }, params: {}, @@ -128,8 +141,9 @@ export const addUserRole = async (role: Role) => { } export const deleteUserRole = async (role: Role) => { + const token = await getIdToken(msalInstance); return await Axios - .post(`${ API_ENDPOINT }/user/${role.userName}/userroles/delete`, role, + .post(`${ API_ENDPOINT }/user/${role.userName}/userroles/delete?code=${ token }`, role, { headers: { "Content-Type": "application/json;" }, params: {}, @@ -139,3 +153,23 @@ export const deleteUserRole = async (role: Role) => { return error.response; }); } + +export const getIdToken = async( msalInstance: PublicClientApplication ): Promise => { + const activeAccount = msalInstance.getActiveAccount(); // This will only return a non-null value if you have logic somewhere else that calls the setActiveAccount API + const accounts = msalInstance.getAllAccounts(); + const request = { + scopes: ["User.Read"], + account: activeAccount || accounts[0] + }; + // Silently acquire an token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token. + await msalInstance.acquireTokenSilent(request).then(response => { + return response.idToken + }).catch(error => { + if (error instanceof InteractionRequiredAuthError) { + msalInstance.acquireTokenPopup(request).then(response => { + return response.idToken + }); + } + }) + return "" +} \ No newline at end of file diff --git a/ui/src/app.tsx b/ui/src/app.tsx index 2a21eb373..3abae7935 100644 --- a/ui/src/app.tsx +++ b/ui/src/app.tsx @@ -2,7 +2,7 @@ import React from "react"; import { BrowserRouter, Route, Routes } from "react-router-dom"; import { Layout } from "antd"; import { QueryClient, QueryClientProvider } from "react-query"; -import { Configuration, InteractionType, PublicClientApplication, } from "@azure/msal-browser"; +import { InteractionType } from "@azure/msal-browser"; import { MsalAuthenticationTemplate, MsalProvider } from "@azure/msal-react"; import Header from "./components/header/header"; import SideMenu from "./components/sidemenu/siteMenu"; @@ -15,17 +15,11 @@ import Monitoring from "./pages/monitoring/monitoring"; import LineageGraph from "./pages/feature/lineageGraph"; import Management from "./pages/management/management"; import RoleManagement from "./pages/management/roleManagement"; +import { getMsalConfig } from "./utils/utils"; const queryClient = new QueryClient(); -const msalConfig: Configuration = { - auth: { - clientId: process.env.REACT_APP_AAD_APP_CLIENT_ID, - authority: process.env.REACT_APP_AAD_APP_AUTHORITY, - redirectUri: window.location.origin, - }, -}; -const msalClient = new PublicClientApplication(msalConfig); +const msalClient = getMsalConfig(); const App: React.FC = () => { return ( diff --git a/ui/src/utils/utils.tsx b/ui/src/utils/utils.tsx new file mode 100644 index 000000000..8ae041e27 --- /dev/null +++ b/ui/src/utils/utils.tsx @@ -0,0 +1,12 @@ +import { Configuration, PublicClientApplication } from "@azure/msal-browser"; + +export const getMsalConfig = () => { + const msalConfig: Configuration = { + auth: { + clientId: process.env.REACT_APP_AAD_APP_CLIENT_ID, + authority: process.env.REACT_APP_AAD_APP_AUTHORITY, + redirectUri: window.location.origin, + }, + }; + return new PublicClientApplication(msalConfig); +} \ No newline at end of file From a2832d7cf29d2f25f3ff2ff2cd5e50e70def4533 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E8=BE=B0?= Date: Tue, 14 Jun 2022 23:22:57 +0800 Subject: [PATCH 13/18] Python SQL Registry (#311) * Python SQL Registry * Clean up * Rename to sql-registry * Move registry out of feathr client directory * Add comments * Add more input check Co-authored-by: Blair Chen --- registry/sql-registry/.dockerignore | 3 + registry/sql-registry/.gitignore | 4 + registry/sql-registry/Dockerfile | 9 + registry/sql-registry/README.md | 5 + registry/sql-registry/api-spec.md | 366 +++++++++ registry/sql-registry/main.py | 77 ++ registry/sql-registry/registry/__init__.py | 6 + registry/sql-registry/registry/database.py | 85 ++ registry/sql-registry/registry/db_registry.py | 194 +++++ registry/sql-registry/registry/interface.py | 69 ++ registry/sql-registry/registry/models.py | 728 ++++++++++++++++++ registry/sql-registry/requirements.txt | 3 + registry/sql-registry/scripts/schema.sql | 15 + registry/sql-registry/scripts/test_data.sql | 92 +++ registry/sql-registry/test/test_basic.py | 17 + 15 files changed, 1673 insertions(+) create mode 100644 registry/sql-registry/.dockerignore create mode 100644 registry/sql-registry/.gitignore create mode 100644 registry/sql-registry/Dockerfile create mode 100644 registry/sql-registry/README.md create mode 100644 registry/sql-registry/api-spec.md create mode 100644 registry/sql-registry/main.py create mode 100644 registry/sql-registry/registry/__init__.py create mode 100644 registry/sql-registry/registry/database.py create mode 100644 registry/sql-registry/registry/db_registry.py create mode 100644 registry/sql-registry/registry/interface.py create mode 100644 registry/sql-registry/registry/models.py create mode 100644 registry/sql-registry/requirements.txt create mode 100644 registry/sql-registry/scripts/schema.sql create mode 100644 registry/sql-registry/scripts/test_data.sql create mode 100644 registry/sql-registry/test/test_basic.py diff --git a/registry/sql-registry/.dockerignore b/registry/sql-registry/.dockerignore new file mode 100644 index 000000000..bc0ed1f7a --- /dev/null +++ b/registry/sql-registry/.dockerignore @@ -0,0 +1,3 @@ +__pycache__ +.env +.vscode diff --git a/registry/sql-registry/.gitignore b/registry/sql-registry/.gitignore new file mode 100644 index 000000000..ed2a6faed --- /dev/null +++ b/registry/sql-registry/.gitignore @@ -0,0 +1,4 @@ +__pycache__ +.env +.vscode +.idea diff --git a/registry/sql-registry/Dockerfile b/registry/sql-registry/Dockerfile new file mode 100644 index 000000000..d2647021d --- /dev/null +++ b/registry/sql-registry/Dockerfile @@ -0,0 +1,9 @@ +FROM python:3.9 + +COPY ./ /usr/src + +WORKDIR /usr/src +RUN pip install -r requirements.txt + +# Start web server +CMD [ "uvicorn","main:app","--host", "0.0.0.0", "--port", "80" ] diff --git a/registry/sql-registry/README.md b/registry/sql-registry/README.md new file mode 100644 index 000000000..f06ca7def --- /dev/null +++ b/registry/sql-registry/README.md @@ -0,0 +1,5 @@ +# SQL-Based Registry for Feathr + +This is the reference implementation of [the Feathr API spec](./api-spec.md), base on SQL databases instead of PurView. + +Please note that this implementation uses iterations of `select` to retrieve graph lineages, this approach is very inefficient and should **not** be considered as production-ready. We only suggest to use this implementation for testing/researching purposes. \ No newline at end of file diff --git a/registry/sql-registry/api-spec.md b/registry/sql-registry/api-spec.md new file mode 100644 index 000000000..1b14cae8b --- /dev/null +++ b/registry/sql-registry/api-spec.md @@ -0,0 +1,366 @@ +# Feathr Registry API Specifications + +## Data Models + +### EntityType +Type: Enum + +| Value | +|-----------------------------| +| `feathr_workspace_v1` | +| `feathr_source_v1` | +| `feathr_anchor_v1` | +| `feathr_anchor_feature_v1` | +| `feathr_derived_feature_v1` | + +### ValueType +Type: Enum + +| Value | +|---------------| +| `UNSPECIFIED` | +| `BOOL` | +| `INT32` | +| `INT64` | +| `FLOAT` | +| `DOUBLE` | +| `STRING` | +| `BYTES` | + +### VectorType +Type: Enum + +| Value | +|----------| +| `TENSOR` | + +### TensorCategory +Type: Enum + +| Value | +|----------| +| `DENSE` | +| `SPARSE` | + +### FeatureType +Type: Object + +| Field | Type | +|----------------|-------------------------------------| +| type | [`VectorType`](#valuetype) | +| tensorCategory | [`TensorCategory`](#tensorcategory) | +| dimensionType | [`array`](#valuetype) | +| valType | [`ValueType`](#valuetype) | + +### TypedKey +Type: Object + +| Field | Type | +|------------------|-----------------------------| +| key_column | `string` | +| key_column_type | [`ValueType`](#valuetype) | +| full_name | `string`, optional | +| description | `string`, optional | +| key_column_alias | `string`, optional | + +### ExpressionTransformation +Type: Object + +| Field | Type | +|----------------|----------| +| transform_expr | `string` | + +### WindowAggregationTransformation +Type: Object + +| Field | Type | +|----------|--------------------| +| def_expr | `string` | +| agg_func | `string`, optional | +| window | `string`, optional | +| group_by | `string`, optional | +| filter | `string`, optional | +| limit | `number`, optional | + +### UdfTransformation +Type: Object + +| Field | Type | +|-------|----------| +| name | `string` | + +### EntityReference +Type: Object + +| Field | Type | Comments | +|------------------|-----------------------------|--------------------------------------| +| guid | `Guid` | | +| typeName | [`EntityType`](#entitytype) | | +| uniqueAttributes | `map` | Contains `qualifiedName` only so far | + +### ProjectAttributes +Type: Object + +| Field | Type | +|------------------|----------------------------------------------| +| qualifiedName | `string` | +| name | `string` | +| anchors | [`array`](#entityreference) | +| sources | [`array`](#entityreference) | +| anchor_features | [`array`](#entityreference) | +| derived_features | [`array`](#entityreference) | +| tags | `map` | + +### SourceAttributes +Type: Object + +| Field | Type | +|----------------------|-----------------------| +| qualifiedName | `string` | +| name | `string` | +| path | `string` | +| preprocessing | `string`, optional | +| eventTimestampColumn | `string`, optional | +| timestampFormat | `string`, optional | +| type | `string` | +| tags | `map` | + +### AnchorAttributes +Type: Object + +| Field | Type | +|---------------|----------------------------------------------| +| qualifiedName | `string` | +| name | `string` | +| features | [`array`](#entityreference) | +| source | [`EntityReference`](#entityreference) | +| tags | `map` | + +### AnchorFeatureAttributes +Type: Object + +| Field | Type | +|----------------|--------------------------------| +| qualifiedName | `string` | +| name | `string` | +| type | [`FeatureType`](#featuretype) | +| transformation | [`ExpressionTransformation`](#expressiontransformation)
`or` [`WindowAggregationTransformation`](#windowaggregationtransformation)
`or` [`UdfTransformation`](#udftransformation) | +| key | [`array`](#typedkey) | +| tags | `map` | + +### DerivedFeatureAttributes +Type: Object + +| Field | Type | +|------------------------|--------------------------------| +| qualifiedName | `string` | +| name | `string` | +| type | [`FeatureType`](#featuretype) | +| transformation | [`ExpressionTransformation`](#expressiontransformation)
`or` [`WindowAggregationTransformation`](#windowaggregationtransformation)
`or` [`UdfTransformation`](#udftransformation) | +| key | [`array`](#typedkey) | +| input_anchor_features | [`array`](#entityreference) | +| input_derived_features | [`array`](#entityreference) | +| tags | `map` | + +### EntityStatus +Type: Enum + +| Value | +|----------| +| `ACTIVE` | + +### Entity +Type: Object + +| Field | Type | +|----------------|---------------------------------| +| guid | `Guid` | +| lastModifiedTS | `string` | +| status | [`EntityStatus`](#entitystatus) | +| displayText | `string` | +| typeName | [`EntityType`](#entitytype) | +| attributes | [`ProjectAttributes`](#projectattributes)
`or` [`SourceAttributes`](#sourceattributes)
`or` [`AnchorAttributes`](#anchorattributes)
`or` [`AnchorFeatureAttributes`](#anchorfeatureattributes)
`or` [`DerivedFeatureAttributes`](#derivedfeatureattributes) | + +### RelationshipType +Type: Enum + +| Value | +|-------------| +| `BelongsTo` | +| `Contains` | +| `Produces` | +| `Consumes` | + +### Relationship +Type: Object + +| Field | Type | +|------------------|-----------------------------------------| +| relationshipId | `Guid` | +| relationshipType | [`RelationshipType`](#relationshiptype) | +| fromEntityId | `Guid` | +| toEntityId | `Guid` | + +### ProjectDefinition +Type: Object + +| Field | Type | +|----------------------|-----------------------| +| qualifiedName | `string` | +| tags | `map` | + + +### SourceDefinition +Type: Object + +| Field | Type | +|----------------------|-----------------------| +| qualifiedName | `string` | +| name | `string` | +| path | `string` | +| preprocessing | `string`, optional | +| eventTimestampColumn | `string`, optional | +| timestampFormat | `string`, optional | +| type | `string` | +| tags | `map` | + +### AnchorDefinition +Type: Object + +| Field | Type | +|----------------------|-----------------------| +| qualifiedName | `string` | +| name | `string` | +| source_id | `Guid` | +| tags | `map` | + +### AnchorFeatureDefinition +Type: Object + +| Field | Type | +|----------------|--------------------------------| +| qualifiedName | `string` | +| name | `string` | +| featureType | [`FeatureType`](#featuretype) | +| transformation | [`ExpressionTransformation`](#expressiontransformation)
`or` [`WindowAggregationTransformation`](#windowaggregationtransformation)
`or` [`UdfTransformation`](#udftransformation) | +| key | [`array`](#typedkey) | +| tags | `map` | + +### DerivedFeatureDefinition +Type: Object + +| Field | Type | +|------------------------|--------------------------------| +| qualifiedName | `string` | +| name | `string` | +| featureType | [`FeatureType`](#featuretype) | +| transformation | [`ExpressionTransformation`](#expressiontransformation)
`or` [`WindowAggregationTransformation`](#windowaggregationtransformation)
`or` [`UdfTransformation`](#udftransformation) | +| key | [`array`](#typedkey) | +| input_anchor_features | `array` | +| input_derived_features | `array` | +| tags | `map` | + + +### EntitiesAndRelationships +Type: Object + +| Field | Type | +|---------------|----------------------------------------| +| guidEntityMap | [`map`](#entity) | +| relations | [`array`](#relationship) | + + +## Feathr Registry API + +### `GET /projects` +List **names** of all projects. + +Response Type: `array` + +### `GET /projects/{project}` +Get everything defined in the project + +Response Type: [`EntitiesAndRelationships`](#entitiesandrelationships) + +### `GET /projects/{project}/datasources` +Get all sources defined in the project. + +Response Type: [`array`](#entity) + +### `GET /projects/{project}/features` +Get all anchor features and derived features in the project, or only features meet the search criteria in the project. + +Query Parameters: + +| Field | Type | +|---------|--------| +| keyword | string | +| size | number | +| offset | number | + + +Response Type: Object + +| Field | Type | +|----------|----------------------------| +| features | [`array`](#entity) | + +### `GET /features/:feature` +Get feature details. + +Response Type: Object + +| Field | Type | Comments | +|-----------------|-----------------------|-----------------------------| +| entity | [`Entity`](#entity) | | +| referredEntities| `map` | For compatibility, not used | + +### `POST /projects` +Create new project + ++ Request Type: [`ProjectDefinition`](#projectdefinition) ++ Response Type: Object + +| Field | Type | +|-------|------| +| guid | Guid | + +### `POST /projects/{project}/datasources` +Create new source in the project + ++ Request Type: [`SourceDefinition`](#sourcedefinition) ++ Response Type: Object + +| Field | Type | +|-------|------| +| guid | Guid | + +### `POST /projects/{project}/anchors` +Create new anchor in the project + ++ Request Type: [`AnchorDefinition`](#anchordefinition) ++ Response Type: Object + +| Field | Type | +|-------|------| +| guid | Guid | + +### `POST /projects/{project}/anchors/{anchor}/features` +Create new anchor feature in the project under specified anchor + ++ Request Type: [`AnchorFeatureDefinition`](#anchorfeaturedefinition) ++ Response Type: Object + +| Field | Type | +|-------|------| +| guid | Guid | + +### `POST /projects/{project}/derivedfeatures` +Create new derived feature in the project + ++ Request Type: [`DerivedFeatureDefinition`](#derivedfeaturedefinition) ++ Response Type: Object + +| Field | Type | +|-------|------| +| guid | Guid | diff --git a/registry/sql-registry/main.py b/registry/sql-registry/main.py new file mode 100644 index 000000000..a40fae89c --- /dev/null +++ b/registry/sql-registry/main.py @@ -0,0 +1,77 @@ +import os +from typing import Optional +from fastapi import APIRouter, FastAPI, HTTPException +from starlette.middleware.cors import CORSMiddleware +from registry import * +from registry.db_registry import DbRegistry +from registry.models import EntityType + +rp = "/" +try: + rp = os.environ["API_BASE"] + if rp[0] != '/': + rp = '/' + rp +except: + pass +print("Using API BASE: ", rp) + +registry = DbRegistry() +app = FastAPI() +router = APIRouter() + +# Enables CORS +app.add_middleware(CORSMiddleware, + allow_origins=["*"], + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +@router.get("/projects") +def get_projects() -> list[str]: + return registry.get_projects() + + +@router.get("/projects/{project}") +def get_projects(project: str) -> dict: + return registry.get_project(project).to_dict() + + +@router.get("/projects/{project}/datasources") +def get_project_datasources(project: str) -> list: + p = registry.get_entity(project) + source_ids = [s.id for s in p.attributes.sources] + sources = registry.get_entities(source_ids) + return list([e.to_dict() for e in sources]) + + +@router.get("/projects/{project}/features") +def get_project_features(project: str, keyword: Optional[str] = None) -> list: + if keyword is None: + p = registry.get_entity(project) + feature_ids = [s.id for s in p.attributes.anchor_features] + \ + [s.id for s in p.attributes.derived_features] + features = registry.get_entities(feature_ids) + return list([e.to_dict() for e in features]) + else: + efs = registry.search_entity(keyword, [EntityType.AnchorFeature, EntityType.DerivedFeature]) + feature_ids = [ef.id for ef in efs] + features = registry.get_entities(feature_ids) + return list([e.to_dict() for e in features]) + + +@router.get("/features/{feature}") +def get_feature(feature: str) -> dict: + e = registry.get_entity(feature) + if e.entity_type not in [EntityType.DerivedFeature, EntityType.AnchorFeature]: + raise HTTPException(status_code=404, detail=f"Feature {feature} not found") + return e + + +@router.get("/features/{feature}/lineage") +def get_feature_lineage(feature: str) -> dict: + lineage = registry.get_lineage(feature) + return lineage.to_dict() + + +app.include_router(prefix = rp, router=router) diff --git a/registry/sql-registry/registry/__init__.py b/registry/sql-registry/registry/__init__.py new file mode 100644 index 000000000..5ce157408 --- /dev/null +++ b/registry/sql-registry/registry/__init__.py @@ -0,0 +1,6 @@ +__all__ = ["interface", "models", "database", "db_registry"] + +from registry.models import * +from registry.interface import Registry +from registry.database import DbConnection, connect +from registry.db_registry import DbRegistry \ No newline at end of file diff --git a/registry/sql-registry/registry/database.py b/registry/sql-registry/registry/database.py new file mode 100644 index 000000000..d82568972 --- /dev/null +++ b/registry/sql-registry/registry/database.py @@ -0,0 +1,85 @@ +from abc import ABC, abstractmethod +import threading +from distutils.log import debug, warn +import os +import pymssql + + +providers = [] + +class DbConnection(ABC): + @abstractmethod + def execute(self, sql: str, *args, **kwargs) -> list[dict]: + pass + +def quote(id): + if isinstance(id, str): + return f"'{id}'" + else: + return ",".join([f"'{i}'" for i in id]) + + +def parse_conn_str(s: str) -> dict: + """ + TODO: Not a sound and safe implementation, but useful enough in this case + as the connection string is provided by users themselves. + """ + parts = dict([p.strip().split("=", 1) + for p in s.split(";") if len(p.strip()) > 0]) + server = parts["Server"].split(":")[1].split(",")[0] + return { + "host": server, + "database": parts["Initial Catalog"], + "user": parts["User ID"], + "password": parts["Password"], + # "charset": "utf-8", ## For unknown reason this causes connection failure + } + + +class MssqlConnection(DbConnection): + @staticmethod + def connect(*args, **kwargs): + conn_str = os.environ["CONNECTION_STR"] + if "Server=" not in conn_str: + debug("`CONNECTION_STR` is not in ADO connection string format") + return None + return MssqlConnection(parse_conn_str(conn_str)) + + def __init__(self, params): + self.params = params + self.make_connection() + self.mutex = threading.Lock() + + def make_connection(self): + self.conn = pymssql.connect(**self.params) + + def execute(self, sql: str, *args, **kwargs) -> list[dict]: + debug(f"SQL: `{sql}`") + # NOTE: Only one cursor is allowed at the same time + retry = 0 + while True: + try: + with self.mutex: + c = self.conn.cursor(as_dict=True) + c.execute(sql, *args, **kwargs) + return c.fetchall() + except pymssql.OperationalError: + warn("Database error, retrying...") + # Reconnect + self.make_connection() + retry += 1 + if retry >= 3: + # Stop retrying + raise + pass + + +providers.append(MssqlConnection) + + +def connect(): + for p in providers: + ret = p.connect() + if ret is not None: + return ret + raise RuntimeError("Cannot connect to database") \ No newline at end of file diff --git a/registry/sql-registry/registry/db_registry.py b/registry/sql-registry/registry/db_registry.py new file mode 100644 index 000000000..f5456c5e5 --- /dev/null +++ b/registry/sql-registry/registry/db_registry.py @@ -0,0 +1,194 @@ +from typing import Optional, Tuple, Union +from uuid import UUID +from registry import Registry +from registry import connect +from registry.models import Edge, EntitiesAndRelations, Entity, EntityRef, EntityType, RelationshipType, _to_type, _to_uuid +import json + + +def quote(id): + if isinstance(id, str): + return f"'{id}'" + else: + return ",".join([f"'{i}'" for i in id]) + + +class DbRegistry(Registry): + def __init__(self): + self.conn = connect() + + def get_projects(self) -> list[str]: + ret = self.conn.execute( + f"select qualified_name from entities where entity_type='{EntityType.Project}'") + return list([r["qualified_name"] for r in ret]) + + def get_entity(self, id_or_name: Union[str, UUID]) -> Entity: + return self._fill_entity(self._get_entity(id_or_name)) + + def get_entities(self, ids: list[UUID]) -> list[Entity]: + return list([self._fill_entity(e) for e in self._get_entities(ids)]) + + def get_entity_id(self, id_or_name: Union[str, UUID]) -> UUID: + try: + id = _to_uuid(id_or_name) + return id + except ValueError: + pass + # It is a name + ret = self.conn.execute( + f"select entity_id from entities where qualified_name='{id_or_name}'") + return ret[0]["entity_id"] + + def get_neighbors(self, id_or_name: Union[str, UUID], relationship: RelationshipType) -> list[Edge]: + rows = self.conn.execute(fr''' + select edge_id, from_id, to_id, conn_type + from edges + where from_id = '{self.get_entity_id(id_or_name)}' + and conn_type = '{relationship.name}' + ''') + return list([Edge(**row) for row in rows]) + + def get_lineage(self, id_or_name: Union[str, UUID]) -> EntitiesAndRelations: + """ + Get feature lineage on both upstream and downstream + Returns [entity_id:entity] map and list of edges have been traversed. + """ + id = self.get_entity_id(id_or_name) + upstream_entities, upstream_edges = self._bfs( + id, RelationshipType.Consumes) + downstream_entities, downstream_edges = self._bfs( + id, RelationshipType.Produces) + return EntitiesAndRelations( + upstream_entities + downstream_entities, + upstream_edges + downstream_edges) + + def get_project(self, id_or_name: Union[str, UUID]) -> EntitiesAndRelations: + """ + This function returns not only the project itself, but also everything in the project + """ + project = self._get_entity(id_or_name) + edges = set(self.get_neighbors(id_or_name, RelationshipType.Contains)) + ids = list([e.to_id for e in edges]) + children = self._get_entities(ids) + child_map = dict([(e.id, e) for e in children]) + project.attributes.children = children + for anchor in project.attributes.anchors: + conn = self.get_neighbors(anchor.id, RelationshipType.Contains) + feature_ids = [e.to_id for e in conn] + edges = edges.union(conn) + features = list([child_map[id] for id in feature_ids]) + anchor.attributes.features = features + source_id = self.get_neighbors(anchor.id, RelationshipType.Consumes)[0].to_id + anchor.attributes.source = child_map[source_id] + for df in project.attributes.derived_features: + conn = self.get_neighbors(anchor.id, RelationshipType.Consumes) + input_ids = [e.to_id for e in conn] + edges = edges.union(conn) + features = list([child_map[id] for id in input_ids]) + df.attributes.input_features = features + all_edges = self._get_edges(ids) + return EntitiesAndRelations([project] + children, list(edges.union(all_edges))) + + def _fill_entity(self, e: Entity) -> Entity: + """ + Entities in the DB contains only attributes belong to itself, but the returned + data model contains connections/contents, so we need to fill this gap + """ + if e.entity_type == EntityType.Project: + edges = self.get_neighbors(e.id, RelationshipType.Contains) + ids = list([e.to_id for e in edges]) + children = self._get_entities(ids) + e.attributes.children = children + return e + if e.entity_type == EntityType.Anchor: + conn = self.get_neighbors(e.id, RelationshipType.Contains) + feature_ids = [e.to_id for e in conn] + features = self._get_entities(feature_ids) + e.attributes.features = features + source_id = self.get_neighbors(e.id, RelationshipType.Consumes)[0].to_id + source = self.get_entity(source_id) + e.attributes.source = source + return e + if e.entity_type == EntityType.DerivedFeature: + conn = self.get_neighbors(e.id, RelationshipType.Consumes) + feature_ids = [e.to_id for e in conn] + features = self._get_entities(feature_ids) + e.attributes.input_features = features + return e + return e + + def _get_edges(self, ids: list[UUID], types: list[RelationshipType] = []) -> list[Edge]: + sql = fr"""select edge_id, from_id, to_id, conn_type from edges + where from_id in ({quote(ids)}) + and to_id in ({quote(ids)})""" + if len(types)>0: + sql = fr"""select edge_id, from_id, to_id, conn_type from edges + where conn_type in ({quote(types)}) + and from_id in ({quote(ids)}) + and to_id in ({quote(ids)})""" + rows = self.conn.execute(sql) + return list([_to_type(row, Edge) for row in rows]) + + def _get_entity(self, id_or_name: Union[str, UUID]) -> Entity: + row = self.conn.execute(fr''' + select entity_id, qualified_name, entity_type, attributes + from entities + where entity_id = '{self.get_entity_id(id_or_name)}' + ''')[0] + row["attributes"] = json.loads(row["attributes"]) + return _to_type(row, Entity) + + def _get_entities(self, ids: list[UUID]) -> list[Entity]: + rows = self.conn.execute(fr''' + select entity_id, qualified_name, entity_type, attributes + from entities + where entity_id in ({quote(ids)}) + ''') + ret = [] + for row in rows: + row["attributes"] = json.loads(row["attributes"]) + ret.append(Entity(**row)) + return ret + + def _bfs(self, id: UUID, conn_type: RelationshipType) -> Tuple[list[Entity], list[Edge]]: + """ + Breadth first traversal + Starts from `id`, follow edges with `conn_type` only. + + WARN: There is no depth limit. + """ + connections = [] + to_ids = [{ + "to_id": id, + }] + # BFS over SQL + while len(to_ids) != 0: + to_ids = self._bfs_step(to_ids, conn_type) + connections.extend(to_ids) + ids = set([id]) + for r in connections: + ids.add(r["from_id"]) + ids.add(r["to_id"]) + entities = self.get_entities(ids) + edges = list([Edge(**c) for c in connections]) + return (entities, edges) + + def _bfs_step(self, ids: list[UUID], conn_type: RelationshipType) -> set[dict]: + """ + One step of the BFS process + Returns all edges that connect to node ids the next step + """ + ids = list([id["to_id"] for id in ids]) + sql = fr"""select edge_id, from_id, to_id, conn_type from edges where conn_type = '{conn_type.name}' and from_id in ({quote(ids)})""" + return self.conn.execute(sql) + + def search_entity(self, + keyword: str, + type: list[EntityType]) -> list[EntityRef]: + """ + WARN: This search function is implemented via `like` operator, which could be extremely slow. + """ + types = ",".join([quote(str(t)) for t in type]) + sql = fr'''select entity_id as id, qualified_name, entity_type as type from entities where qualified_name like %s and entity_type in ({types})''' + rows = self.conn.execute(sql, ('%' + keyword + '%', )) + return list([EntityRef(**row) for row in rows]) diff --git a/registry/sql-registry/registry/interface.py b/registry/sql-registry/registry/interface.py new file mode 100644 index 000000000..406c52ace --- /dev/null +++ b/registry/sql-registry/registry/interface.py @@ -0,0 +1,69 @@ +from abc import ABC, abstractmethod +from typing import Union +from uuid import UUID +from registry.database import DbConnection + +from registry.models import * + +class Registry(ABC): + @abstractmethod + def get_projects(self) -> list[str]: + """ + Returns the names of all projects + """ + pass + + @abstractmethod + def get_entity(self, id_or_name: Union[str, UUID]) -> Entity: + """ + Get one entity by its id or qualified name + """ + pass + + @abstractmethod + def get_entities(self, ids: list[UUID]) -> list[Entity]: + """ + Get list of entities by their ids + """ + pass + + @abstractmethod + def get_entity_id(self, id_or_name: Union[str, UUID]) -> UUID: + """ + Get entity id by its name + """ + pass + + @abstractmethod + def get_neighbors(self, id_or_name: Union[str, UUID], relationship: RelationshipType) -> list[Edge]: + """ + Get list of edges with specified type that connect to this entity. + The edge contains fromId and toId so we can follow to the entity it connects to + """ + pass + + @abstractmethod + def get_lineage(self, id_or_name: Union[str, UUID]) -> EntitiesAndRelations: + """ + Get all the upstream and downstream entities of an entity, along with all edges connect them. + Only meaningful to features and data sources. + """ + pass + + @abstractmethod + def get_project(self, id_or_name: Union[str, UUID]) -> EntitiesAndRelations: + """ + Get a project and everything inside of it, both entities and edges + """ + pass + + @abstractmethod + def search_entity(self, + keyword: str, + type: list[EntityType], + project: Optional[Union[str, UUID]] = None) -> list[EntityRef]: + """ + Search entities with specified type that also match the keyword in a project + """ + pass + diff --git a/registry/sql-registry/registry/models.py b/registry/sql-registry/registry/models.py new file mode 100644 index 000000000..3c08d2692 --- /dev/null +++ b/registry/sql-registry/registry/models.py @@ -0,0 +1,728 @@ +from abc import ABC, abstractmethod +from enum import Enum +from typing import Optional, Union +from uuid import UUID +import json +import re + + +def _to_snake(d, level: int = 0): + """ + Convert `string`, `list[string]`, or all keys in a `dict` into snake case + The maximum length of input string or list is 100, or it will be truncated before being processed, for dict, the exception will be thrown if it has more than 100 keys. + the maximum nested level is 10, otherwise the exception will be thrown + """ + if level >= 10: + raise ValueError("Too many nested levels") + if isinstance(d, str): + d = d[:100] + return re.sub(r'([A-Z]\w+$)', r'_\1', d).lower() + if isinstance(d, list): + d = d[:100] + return [_to_snake(i, level + 1) if isinstance(i, (dict, list)) else i for i in d] + if len(d) > 100: + raise ValueError("Dict has too many keys") + return {_to_snake(a, level + 1): _to_snake(b, level + 1) if isinstance(b, (dict, list)) else b for a, b in d.items()} + + +def _to_type(value, type): + """ + Convert `value` into `type`, + or `list[type]` if `value` is a list + NOTE: This is **not** a generic implementation, only for objects in this module + """ + if isinstance(value, type): + return value + if isinstance(value, list): + return list([_to_type(v, type) for v in value]) + if isinstance(value, dict): + if hasattr(type, "new"): + try: + # The convention is to use `new` method to create the object from a dict + return type.new(**_to_snake(value)) + except TypeError: + pass + return type(**_to_snake(value)) + if issubclass(type, Enum): + try: + n = int(value) + return type(n) + except ValueError: + pass + if hasattr(type, "new"): + try: + # As well as Enum types, some of them have alias that cannot be handled by default Enum constructor + return type.new(value) + except KeyError: + pass + return type[value] + return type(value) + + +def _to_uuid(value): + return _to_type(value, UUID) + + +class ValueType(Enum): + UNSPECIFIED = 0 + BOOLEAN = 1 + INT = 2 + LONG = 3 + FLOAT = 4 + DOUBLE = 5 + STRING = 6 + BYTES = 7 + + +class VectorType(Enum): + TENSOR = 0 + + +class TensorCategory(Enum): + DENSE = 0 + SPARSE = 1 + + +class EntityType(Enum): + Project = 1 + Source = 2 + Anchor = 3 + AnchorFeature = 4 + DerivedFeature = 5 + + @staticmethod + def new(v): + return { + "feathr_workspace_v1": EntityType.Project, + "feathr_source_v1": EntityType.Source, + "feathr_anchor_v1": EntityType.Anchor, + "feathr_anchor_feature_v1": EntityType.AnchorFeature, + "feathr_derived_feature_v1": EntityType.DerivedFeature, + }[v] + + def __str__(self): + return { + EntityType.Project: "feathr_workspace_v1", + EntityType.Source: "feathr_source_v1", + EntityType.Anchor: "feathr_anchor_v1", + EntityType.AnchorFeature: "feathr_anchor_feature_v1", + EntityType.DerivedFeature: "feathr_derived_feature_v1", + }[self] + + +class RelationshipType(Enum): + Contains = 1 + BelongsTo = 2 + Consumes = 3 + Produces = 4 + + +class ToDict(ABC): + """ + This ABC is used to convert object to dict, then JSON. + """ + @abstractmethod + def to_dict(self) -> dict: + pass + + def to_json(self, indent=None) -> str: + return json.dumps(self.to_dict(), indent=indent) + + +class FeatureType(ToDict): + def __init__(self, + type: Union[str, VectorType], + tensor_category: Union[str, TensorCategory], + dimension_type: list[Union[str, ValueType]], + val_type: Union[str, ValueType]): + self.type = _to_type(type, VectorType) + self.tensor_category = _to_type(tensor_category, TensorCategory) + self.dimension_type = _to_type(dimension_type, ValueType) + self.val_type = _to_type(val_type, ValueType) + + def to_dict(self) -> dict: + return { + "type": self.type.name, + "tensorCategory": self.tensor_category.name, + "dimensionType": [t.name for t in self.dimension_type], + "valType": self.val_type.name, + } + + +class TypedKey(ToDict): + def __init__(self, + key_column: str, + key_column_type: ValueType, + full_name: Optional[str] = None, + description: Optional[str] = None, + key_column_alias: Optional[str] = None): + self.key_column = key_column + self.key_column_type = _to_type(key_column_type, ValueType) + self.full_name = full_name + self.description = description + self.key_column_alias = key_column_alias + + def to_dict(self) -> dict: + ret = { + "key_column": self.key_column, + "key_column_type": self.key_column_type.name, + } + if self.full_name is not None: + ret["full_name"] = self.full_name + if self.description is not None: + ret["description"] = self.full_name + if self.key_column_alias is not None: + ret["key_column_alias"] = self.key_column_alias + return ret + + +class Transformation(ToDict): + @staticmethod + def new(**kwargs): + if "transform_expr" in kwargs: + return ExpressionTransformation(**kwargs) + elif "def_expr" in kwargs: + return WindowAggregationTransformation(**kwargs) + elif "name" in kwargs: + return UdfTransformation(**kwargs) + else: + raise ValueError(kwargs) + + +class ExpressionTransformation(Transformation): + def __init__(self, transform_expr: str): + self.transform_expr = transform_expr + + def to_dict(self) -> dict: + return { + "transform_expr": self.transform_expr + } + + +class WindowAggregationTransformation(Transformation): + def __init__(self, + def_expr: str, + agg_func: Optional[str] = None, + window: Optional[str] = None, + group_by: Optional[str] = None, + filter: Optional[str] = None, + limit: Optional[int] = None): + self.def_expr = def_expr + self.agg_func = agg_func + self.window = window + self.group_by = group_by + self.filter = filter + self.limit = limit + + def to_dict(self) -> dict: + ret = { + "def_expr": self.def_expr, + } + if self.agg_func is not None: + ret["agg_func"] = self.agg_func + if self.window is not None: + ret["window"] = self.window + if self.group_by is not None: + ret["group_by"] = self.group_by + if self.filter is not None: + ret["filter"] = self.filter + if self.limit is not None: + ret["limit"] = self.limit + return ret + + +class UdfTransformation(Transformation): + def __init__(self, name: str): + self.name = name + + def to_dict(self) -> dict: + return { + "name": self.name + } + + +class EntityRef(ToDict): + def __init__(self, + id: UUID, + type: Union[str, EntityType], + qualified_name: Optional[str] = None, + uniq_attr: dict = {}): + self.id = id + self.type = _to_type(type, EntityType) + if qualified_name is not None: + self.uniq_attr = {"qualifiedName": qualified_name} + else: + self.uniq_attr = uniq_attr + + @property + def entity_type(self) -> EntityType: + return self.type + + @property + def qualified_name(self) -> EntityType: + return self.uniq_attr['qualifiedName'] + + def get_ref(self): + return self + + def to_dict(self) -> dict: + return { + "guid": str(self.id), + "typeName": str(self.type), + "uniqueAttributes": self.uniq_attr, + } + + +class Attributes(ToDict): + @staticmethod + def new(entity_type: Union[str, EntityType], **kwargs): + return { + EntityType.Project: ProjectAttributes, + EntityType.Source: SourceAttributes, + EntityType.Anchor: AnchorAttributes, + EntityType.AnchorFeature: AnchorFeatureAttributes, + EntityType.DerivedFeature: DerivedFeatureAttributes, + }[_to_type(entity_type, EntityType)](**kwargs) + + +class Entity(ToDict): + def __init__(self, + entity_id: Union[str, UUID], + qualified_name: str, + entity_type: Union[str, EntityType], + attributes: Union[dict, Attributes], + **kwargs): + self.id = _to_uuid(entity_id) + self.qualified_name = qualified_name + self.entity_type = _to_type(entity_type, EntityType) + if isinstance(attributes, Attributes): + self.attributes = attributes + else: + self.attributes = Attributes.new( + entity_type, **_to_snake(attributes)) + + def get_ref(self) -> EntityRef: + return EntityRef(self.id, + self.attributes.entity_type, + self.qualified_name) + + def to_dict(self) -> dict: + return { + "guid": str(self.id), + "lastModifiedTS": "1", + "status": "ACTIVE", + "displayText": self.attributes.name, + "typeName": str(self.attributes.entity_type), + "attributes": self.attributes.to_dict(), + } + + +class ProjectAttributes(Attributes): + def __init__(self, + name: str, + children: list[Union[dict, Entity]] = [], + tags: dict = {}, + **kwargs): + self.name = name + self.tags = tags + self._children = [] + if len(children) > 0: + self.children = children + + @property + def entity_type(self) -> EntityType: + return EntityType.Project + + @property + def children(self): + return self._children + + @children.setter + def children(self, v: list[Union[dict, Entity]]): + for f in v: + if isinstance(f, Entity): + self._children.append(f) + elif isinstance(f, dict): + self._children.append(_to_type(f, Entity)) + else: + raise TypeError(f) + + @property + def sources(self): + return [ + e for e in self.children if e.entity_type == EntityType.Source] + + @property + def anchors(self): + return [ + e for e in self.children if e.entity_type == EntityType.Anchor] + + @property + def anchor_features(self): + return [ + e for e in self.children if e.entity_type == EntityType.AnchorFeature] + + @property + def derived_features(self): + return [ + e for e in self.children if e.entity_type == EntityType.DerivedFeature] + + def to_dict(self) -> dict: + return { + "qualifiedName": self.name, + "name": self.name, + "sources": list([e.get_ref().to_dict() for e in self.sources]), + "anchors": list([e.get_ref().to_dict() for e in self.anchors]), + "anchor_features": list([e.get_ref().to_dict() for e in self.anchor_features]), + "derived_features": list([e.get_ref().to_dict() for e in self.derived_features]), + "tags": self.tags, + } + + +class SourceAttributes(Attributes): + def __init__(self, + qualified_name: str, + name: str, + type: str, + path: str, + preprocessing: Optional[str] = None, + event_timestamp_column: Optional[str] = None, + timestamp_format: Optional[str] = None, + tags: dict = {}): + self.qualified_name = qualified_name + self.name = name + self.type = type + self.path = path + self.preprocessing = preprocessing + self.event_timestamp_column = event_timestamp_column + self.timestamp_format = timestamp_format + self.tags = tags + + @property + def entity_type(self) -> EntityType: + return EntityType.Source + + def to_dict(self) -> dict: + ret = { + "qualifiedName": self.qualified_name, + "name": self.name, + "type": self.type, + "path": self.path, + "tags": self.tags, + } + if self.preprocessing is not None: + ret["preprocessing"] = self.preprocessing + if self.event_timestamp_column is not None: + ret["eventTimestampColumn"] = self.event_timestamp_column + if self.timestamp_format is not None: + ret["timestampFormat"] = self.timestamp_format + return ret + + +class AnchorAttributes(Attributes): + def __init__(self, + qualified_name: str, + name: str, + # source: Optional[Union[dict, EntityRef, Entity]] = None, + # features: list[Union[dict, EntityRef, Entity]] = [], + tags: dict = {}, + **kwargs): + self.qualified_name = qualified_name + self.name = name + self._source = None + self._features = [] + # if source is not None: + # self._source = source.get_ref() + # if len(features)>0: + # self._set_feature(features) + self.tags = tags + + @property + def entity_type(self) -> EntityType: + return EntityType.Anchor + + @property + def source(self) -> EntityRef: + return self._source + + @source.setter + def source(self, s): + if isinstance(s, Entity): + self._source = s.get_ref() + elif isinstance(s, EntityRef): + self._source = s + elif isinstance(s, dict): + self._source = _to_type(s, Entity).get_ref() + else: + raise TypeError(s) + + @property + def features(self): + return self._features + + @features.setter + def features(self, features): + self._features = [] + for f in features: + if isinstance(f, Entity): + self._features.append(f.get_ref()) + elif isinstance(f, EntityRef): + self._features.append(f) + elif isinstance(f, dict): + self._features.append(_to_type(f, Entity).get_ref()) + else: + raise TypeError(f) + + def to_dict(self) -> dict: + ret = { + "qualifiedName": self.qualified_name, + "name": self.name, + "features": list([e.get_ref().to_dict() for e in self.features]), + "tags": self.tags, + } + if self.source is not None: + ret["source"] = self.source.get_ref().to_dict() + return ret + + +class AnchorFeatureAttributes(Attributes): + def __init__(self, + qualified_name: str, + name: str, + type: Union[dict, FeatureType], + transformation: Union[dict, Transformation], + key: list[Union[dict, TypedKey]], + tags: dict = {}): + self.qualified_name = qualified_name + self.name = name + self.type = _to_type(type, FeatureType) + self.transformation = _to_type(transformation, Transformation) + self.key = _to_type(key, TypedKey) + self.tags = tags + + @property + def entity_type(self) -> EntityType: + return EntityType.AnchorFeature + + def to_dict(self) -> dict: + return { + "qualifiedName": self.qualified_name, + "name": self.name, + "type": self.type.to_dict(), + "transformation": self.transformation.to_dict(), + "key": list([k.to_dict() for k in self.key]), + "tags": self.tags, + } + + +class DerivedFeatureAttributes(Attributes): + def __init__(self, + qualified_name: str, + name: str, + type: Union[dict, FeatureType], + transformation: Union[dict, Transformation], + key: list[Union[dict, TypedKey]], + # input_anchor_features: list[Union[dict, EntityRef, Entity]] = [], + # input_derived_features: list[Union[dict, EntityRef, Entity]] = [], + tags: dict = {}, + **kwargs): + self.qualified_name = qualified_name + self.name = name + self.type = _to_type(type, FeatureType) + self.transformation = _to_type(transformation, Transformation) + self.key = _to_type(key, TypedKey) + self._input_anchor_features = [] + self._input_derived_features = [] + self.tags = tags + # self._set_input_anchor_features(input_anchor_features) + # self._set_input_derived_features(input_derived_features) + + @property + def entity_type(self) -> EntityType: + return EntityType.DerivedFeature + + @property + def input_features(self): + return self._input_anchor_features + self._input_derived_features + + @input_features.setter + def input_features(self, v: Union[dict, Entity]): + self._input_anchor_features = [] + self._input_derived_features = [] + for f in v: + e = None + if isinstance(f, Entity): + e = f + elif isinstance(f, dict): + e = _to_type(f, Entity) + else: + raise TypeError(f) + + if e.entity_type == EntityType.AnchorFeature: + self._input_anchor_features.append(e) + elif e.entity_type == EntityType.DerivedFeature: + self._input_derived_features.append(e) + else: + pass + + @property + def input_anchor_features(self): + return self._input_anchor_features + + # @input_anchor_features.setter + # def input_anchor_features(self, v): + # self._input_anchor_features = [] + # for f in v: + # if isinstance(f, Entity): + # self._input_anchor_features.append(f.get_ref()) + # elif isinstance(f, EntityRef): + # self._input_anchor_features.append(f) + # elif isinstance(f, dict): + # self._input_anchor_features.append( + # to_type(f, Entity).get_ref()) + # else: + # raise TypeError(f) + + @property + def input_derived_features(self): + return self._input_derived_features + + # @input_derived_features.setter + # def input_derived_features(self, v): + # self._input_derived_features = [] + # for f in v: + # if isinstance(f, Entity): + # self._input_derived_features.append(f.get_ref()) + # elif isinstance(f, EntityRef): + # self._input_derived_features.append(f) + # elif isinstance(f, dict): + # self._input_derived_features.append( + # to_type(f, Entity).get_ref()) + # else: + # raise TypeError(f) + + def to_dict(self) -> dict: + return { + "qualifiedName": self.qualified_name, + "name": self.name, + "type": self.type.to_dict(), + "transformation": self.transformation.to_dict(), + "key": list([k.to_dict() for k in self.key]), + "input_anchor_features": [e.get_ref().to_dict() for e in self.input_anchor_features], + "input_derived_features": [e.get_ref().to_dict() for e in self.input_derived_features], + "tags": self.tags, + } + + +class Edge(ToDict): + def __init__(self, + edge_id: Union[str, UUID], + from_id: Union[str, UUID], + to_id: Union[str, UUID], + conn_type: Union[str, RelationshipType]): + self.id = _to_uuid(edge_id) + self.from_id = _to_uuid(from_id) + self.to_id = _to_uuid(to_id) + self.conn_type = _to_type(conn_type, RelationshipType) + + def __eq__(self, o: object) -> bool: + # Edge ID is kinda useless + return self.from_id == o.from_id and self.to_id == o.to_id and self.conn_type == o.conn_type + + def __hash__(self) -> int: + return hash((self.from_id, self.to_id, self.conn_type)) + + def to_dict(self) -> dict: + return { + "relationshipId": str(self.id), + "fromEntityId": str(self.from_id), + "toEntityId": str(self.to_id), + "relationshipType": self.conn_type.name, + } + + +class EntitiesAndRelations(ToDict): + def __init__(self, entities: list[Entity], edges: list[Edge]): + self.entities = dict([(e.id, e) for e in entities]) + self.edges = set(edges) + + def to_dict(self) -> dict: + return { + "guidEntityMap": dict([(str(id), self.entities[id].to_dict()) for id in self.entities]), + "relations": list([e.to_dict() for e in self.edges]), + } + + +class ProjectDef: + def __init__(self, qualified_name: str, tags: dict = {}): + self.qualified_name = qualified_name + self.name = qualified_name + self.tags = tags + + +class SourceDef: + def __init__(self, + qualified_name: str, + name: str, + path: str, + type: str, + preprocessing: Optional[str] = None, + event_timestamp_column: Optional[str] = None, + timestamp_format: Optional[str] = None, + tags: dict = {}): + self.qualified_name = qualified_name + self.name = name + self.path = path + self.type = type + self.preprocessing = preprocessing + self.event_timestamp_column = event_timestamp_column + self.timestamp_format = timestamp_format + self.tags = tags + + +class AnchorDef: + def __init__(self, + qualified_name: str, + name: str, + source_id: Union[str, UUID], + tags: dict = {}): + self.qualified_name = qualified_name + self.name = name + self.source_id = _to_uuid(source_id) + self.tags = tags + + +class AnchorFeatureDef: + def __init__(self, + qualified_name: str, + name: str, + feature_type: Union[dict, FeatureType], + transformation: Union[dict, Transformation], + key: list[Union[dict, TypedKey]], + tags: dict = {}): + self.qualified_name = qualified_name + self.name = name + self.feature_type = _to_type(feature_type, FeatureType) + self.transformation = _to_type(transformation, Transformation) + self.key = _to_type(key, TypedKey) + self.tags = tags + + +class DerivedFeatureDef: + def __init__(self, + qualified_name: str, + name: str, + feature_type: Union[dict, FeatureType], + transformation: Union[dict, Transformation], + key: list[Union[dict, TypedKey]], + input_anchor_features: list[Union[str, UUID]], + input_derived_features: list[Union[str, UUID]], + tags: dict = {}): + self.qualified_name = qualified_name + self.name = name + self.feature_type = _to_type(feature_type, FeatureType) + self.transformation = _to_type(transformation, Transformation) + self.key = _to_type(key, TypedKey) + self.input_anchor_features = _to_uuid(input_anchor_features) + self.input_derived_features = _to_uuid(input_derived_features) + self.tags = tags diff --git a/registry/sql-registry/requirements.txt b/registry/sql-registry/requirements.txt new file mode 100644 index 000000000..c6d61de98 --- /dev/null +++ b/registry/sql-registry/requirements.txt @@ -0,0 +1,3 @@ +pymssql +fastapi +uvicorn \ No newline at end of file diff --git a/registry/sql-registry/scripts/schema.sql b/registry/sql-registry/scripts/schema.sql new file mode 100644 index 000000000..d7258d577 --- /dev/null +++ b/registry/sql-registry/scripts/schema.sql @@ -0,0 +1,15 @@ +create table entities +( + entity_id varchar(50) not null primary key, + qualified_name varchar(200) not null, + entity_type varchar(100) not null, + attributes NVARCHAR(MAX) not null, +) + +create table edges +( + edge_id varchar(50) not null primary key, + from_id varchar(50) not null, + to_id varchar(50) not null, + conn_type varchar(20) not null, +) \ No newline at end of file diff --git a/registry/sql-registry/scripts/test_data.sql b/registry/sql-registry/scripts/test_data.sql new file mode 100644 index 000000000..a248d56fe --- /dev/null +++ b/registry/sql-registry/scripts/test_data.sql @@ -0,0 +1,92 @@ +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'feathr_ci_registry_12_33_182947__PASSTHROUGH', 'feathr_source_v1', '{"path": "PASSTHROUGH", "qualifiedName": "feathr_ci_registry_12_33_182947__PASSTHROUGH", "name": "PASSTHROUGH", "type": "PASSTHROUGH"}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('dc24b1d5-206d-40db-b10a-606dd16a0297', 'feathr_ci_registry_12_33_182947__request_features__f_is_long_trip_distance', 'feathr_anchor_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_is_long_trip_distance", "name": "f_is_long_trip_distance", "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "BOOLEAN"}, "transformation": {"transform_expr": "cast_float(trip_distance)>30"}, "key": [{"full_name": "feathr.dummy_typedkey", "key_column": "NOT_NEEDED", "description": "A dummy typed key for passthrough/request feature.", "key_column_alias": "NOT_NEEDED", "key_column_type": "UNSPECIFIED"}]}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('c626c41c-d6c2-4b16-a267-6cdeea497c52', 'feathr_ci_registry_12_33_182947__f_trip_time_rounded', 'feathr_derived_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__f_trip_time_rounded", "name": "f_trip_time_rounded", "input_derived_features": [], "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "INT"}, "transformation": {"transform_expr": "f_trip_time_duration % 10"}, "input_anchor_features": [{"guid": "103baca1-377a-4ddf-8429-5da91026c269", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_trip_time_duration"}}], "key": [{"full_name": "feathr.dummy_typedkey", "key_column": "NOT_NEEDED", "description": "A dummy typed key for passthrough/request feature.", "key_column_alias": "NOT_NEEDED", "key_column_type": "UNSPECIFIED"}]}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('537bc481-aa15-4a3b-be4e-2042da6f5a09', 'feathr_ci_registry_12_33_182947__aggregationFeatures__f_location_max_fare', 'feathr_anchor_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__aggregationFeatures__f_location_max_fare", "name": "f_location_max_fare", "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "FLOAT"}, "transformation": {"filter": null, "agg_func": "MAX", "limit": null, "group_by": null, "window": "90d", "def_expr": "cast_float(fare_amount)"}, "key": [{"full_name": "nyc_taxi.location_id", "key_column": "DOLocationID", "description": "location id in NYC", "key_column_alias": "DOLocationID", "key_column_type": "2"}]}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('479c6306-5fdb-4e06-9008-c18f68db52a4', 'feathr_ci_registry_12_33_182947__f_trip_time_rounded_plus', 'feathr_derived_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__f_trip_time_rounded_plus", "name": "f_trip_time_rounded_plus", "input_derived_features": [{"guid": "c626c41c-d6c2-4b16-a267-6cdeea497c52", "typeName": "feathr_derived_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__f_trip_time_rounded"}}], "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "INT"}, "transformation": {"transform_expr": "f_trip_time_rounded + 100"}, "input_anchor_features": [], "key": [{"full_name": "feathr.dummy_typedkey", "key_column": "NOT_NEEDED", "description": "A dummy typed key for passthrough/request feature.", "key_column_alias": "NOT_NEEDED", "key_column_type": "UNSPECIFIED"}]}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', 'feathr_ci_registry_12_33_182947__nycTaxiBatchSource', 'feathr_source_v1', '{"timestamp_format": "yyyy-MM-dd HH:mm:ss", "path": "wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04.csv", "event_timestamp_column": "lpep_dropoff_datetime", "preprocessing": " def add_new_dropoff_and_fare_amount_column(df: DataFrame):\n df = df.withColumn(\"new_lpep_dropoff_datetime\", col(\"lpep_dropoff_datetime\"))\n df = df.withColumn(\"new_fare_amount\", col(\"fare_amount\") + 1000000)\n return df\n", "qualifiedName": "feathr_ci_registry_12_33_182947__nycTaxiBatchSource", "name": "nycTaxiBatchSource", "type": "wasbs", "tags": {"for_test_purpose": "true"}}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('2a052ccd-3e31-46a7-bffb-2ab1302b1b00', 'feathr_ci_registry_12_33_182947__aggregationFeatures__f_location_avg_fare', 'feathr_anchor_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__aggregationFeatures__f_location_avg_fare", "name": "f_location_avg_fare", "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "FLOAT"}, "transformation": {"filter": null, "agg_func": "AVG", "limit": null, "group_by": null, "window": "90d", "def_expr": "cast_float(fare_amount)"}, "key": [{"full_name": "nyc_taxi.location_id", "key_column": "DOLocationID", "description": "location id in NYC", "key_column_alias": "DOLocationID", "key_column_type": "2"}]}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('cd7306a7-c458-45e8-a00b-44a2f2117135', 'feathr_ci_registry_12_33_182947', 'feathr_workspace_v1', '{"anchor_features": [{"guid": "a5c47bd8-3729-45fa-8701-b8b76ada150a", "typeName": "feathr_anchor_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__aggregationFeatures"}}, {"guid": "260325a5-27f9-40d1-8697-c727feb1dbdc", "typeName": "feathr_anchor_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__request_features"}}], "derived_features": [{"guid": "226b42ee-0c34-4329-b935-744aecc63fb4", "typeName": "feathr_derived_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__f_trip_time_distance"}}, {"guid": "c626c41c-d6c2-4b16-a267-6cdeea497c52", "typeName": "feathr_derived_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__f_trip_time_rounded"}}, {"guid": "479c6306-5fdb-4e06-9008-c18f68db52a4", "typeName": "feathr_derived_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__f_trip_time_rounded_plus"}}], "qualifiedName": "feathr_ci_registry_12_33_182947", "name": "feathr_ci_registry_12_33_182947", "tags": {"for_test_purpose": "true"}}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('5316c516-77f9-4be4-a7ec-8bf6e893e2aa', 'feathr_ci_registry_12_33_182947__request_features__f_trip_distance', 'feathr_anchor_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_trip_distance", "name": "f_trip_distance", "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "FLOAT"}, "transformation": {"transform_expr": "trip_distance"}, "key": [{"full_name": "feathr.dummy_typedkey", "key_column": "NOT_NEEDED", "description": "A dummy typed key for passthrough/request feature.", "key_column_alias": "NOT_NEEDED", "key_column_type": "UNSPECIFIED"}], "tags": {"for_test_purpose": "true"}}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('103baca1-377a-4ddf-8429-5da91026c269', 'feathr_ci_registry_12_33_182947__request_features__f_trip_time_duration', 'feathr_anchor_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_trip_time_duration", "name": "f_trip_time_duration", "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "INT"}, "transformation": {"transform_expr": "(to_unix_timestamp(lpep_dropoff_datetime) - to_unix_timestamp(lpep_pickup_datetime))/60"}, "key": [{"full_name": "feathr.dummy_typedkey", "key_column": "NOT_NEEDED", "description": "A dummy typed key for passthrough/request feature.", "key_column_alias": "NOT_NEEDED", "key_column_type": "UNSPECIFIED"}]}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('a5c47bd8-3729-45fa-8701-b8b76ada150a', 'feathr_ci_registry_12_33_182947__aggregationFeatures', 'feathr_anchor_v1', '{"features": [{"guid": "2a052ccd-3e31-46a7-bffb-2ab1302b1b00", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__aggregationFeatures__f_location_avg_fare"}}, {"guid": "537bc481-aa15-4a3b-be4e-2042da6f5a09", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__aggregationFeatures__f_location_max_fare"}}], "qualifiedName": "feathr_ci_registry_12_33_182947__aggregationFeatures", "name": "aggregationFeatures", "source": {"guid": "c4a0ae0f-09cc-43bf-94e9-21ff178fbda6", "typeName": "feathr_source_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__nycTaxiBatchSource"}}}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('260325a5-27f9-40d1-8697-c727feb1dbdc', 'feathr_ci_registry_12_33_182947__request_features', 'feathr_anchor_v1', '{"features": [{"guid": "5316c516-77f9-4be4-a7ec-8bf6e893e2aa", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_trip_distance"}}, {"guid": "103baca1-377a-4ddf-8429-5da91026c269", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_trip_time_duration"}}, {"guid": "dc24b1d5-206d-40db-b10a-606dd16a0297", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_is_long_trip_distance"}}, {"guid": "2380fe5b-ce2a-401e-98bf-af8b98460f67", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_day_of_week"}}], "qualifiedName": "feathr_ci_registry_12_33_182947__request_features", "name": "request_features", "source": {"guid": "a4cfbc03-c65d-4f32-be3d-1d11247c9cdd", "typeName": "feathr_source_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__PASSTHROUGH"}}, "tags": {"for_test_purpose": "true"}}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('2380fe5b-ce2a-401e-98bf-af8b98460f67', 'feathr_ci_registry_12_33_182947__request_features__f_day_of_week', 'feathr_anchor_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_day_of_week", "name": "f_day_of_week", "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "INT"}, "transformation": {"transform_expr": "dayofweek(lpep_dropoff_datetime)"}, "key": [{"full_name": "feathr.dummy_typedkey", "key_column": "NOT_NEEDED", "description": "A dummy typed key for passthrough/request feature.", "key_column_alias": "NOT_NEEDED", "key_column_type": "UNSPECIFIED"}]}'); +insert into entities (entity_id, qualified_name, entity_type, attributes) +values('226b42ee-0c34-4329-b935-744aecc63fb4', 'feathr_ci_registry_12_33_182947__f_trip_time_distance', 'feathr_derived_feature_v1', '{"qualifiedName": "feathr_ci_registry_12_33_182947__f_trip_time_distance", "name": "f_trip_time_distance", "input_derived_features": [], "type": {"type": "TENSOR", "tensorCategory": "DENSE", "dimensionType": [], "valType": "FLOAT"}, "transformation": {"transform_expr": "f_trip_distance * f_trip_time_duration"}, "input_anchor_features": [{"guid": "5316c516-77f9-4be4-a7ec-8bf6e893e2aa", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_trip_distance"}}, {"guid": "103baca1-377a-4ddf-8429-5da91026c269", "typeName": "feathr_anchor_feature_v1", "uniqueAttributes": {"qualifiedName": "feathr_ci_registry_12_33_182947__request_features__f_trip_time_duration"}}], "key": [{"full_name": "feathr.dummy_typedkey", "key_column": "NOT_NEEDED", "description": "A dummy typed key for passthrough/request feature.", "key_column_alias": "NOT_NEEDED", "key_column_type": "UNSPECIFIED"}]}'); + +insert into edges (edge_id, from_id, to_id, conn_type) values ('455f7195-8463-4c60-9cf0-65bd9db0ae0a', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('a2777fd2-1136-40d0-8686-47b5b5fed1ef', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('ca88290d-03d1-4641-bf36-cbf3280b3e9d', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('1da26ec9-6608-4971-ac04-8ed170543325', 'c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('9ae3a7c0-0163-4170-b0cf-81705e5b6aca', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'a5c47bd8-3729-45fa-8701-b8b76ada150a', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('50068cf8-7f5e-482a-a018-68bf27f89f6d', 'a5c47bd8-3729-45fa-8701-b8b76ada150a', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('898a10fd-0315-4fcb-9803-0144047033c7', 'cd7306a7-c458-45e8-a00b-44a2f2117135', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('08540367-3d1f-4d57-8af1-36b3a11762ed', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('d05ca3c6-2610-4352-9be7-c4d8dd6ab6b6', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'dc24b1d5-206d-40db-b10a-606dd16a0297', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('ed6ca745-ee85-403c-b1bf-a3f1a0463132', 'dc24b1d5-206d-40db-b10a-606dd16a0297', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('55d85311-8e42-4273-a538-ef4dc33b1570', 'cd7306a7-c458-45e8-a00b-44a2f2117135', '537bc481-aa15-4a3b-be4e-2042da6f5a09', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('215cdc37-678a-4c56-a390-76d6471fa629', '537bc481-aa15-4a3b-be4e-2042da6f5a09', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('4166aca1-e0f4-4883-b2ff-0051ee80a830', 'cd7306a7-c458-45e8-a00b-44a2f2117135', '2a052ccd-3e31-46a7-bffb-2ab1302b1b00', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('e1174ff1-0b1a-4b03-a1f5-b8b923a131ba', '2a052ccd-3e31-46a7-bffb-2ab1302b1b00', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('b314c95b-e4ea-4a39-9584-9b7eb0a6b8d2', 'cd7306a7-c458-45e8-a00b-44a2f2117135', '5316c516-77f9-4be4-a7ec-8bf6e893e2aa', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('7a37d438-8c33-4cc8-a0bb-9db3963f073a', '5316c516-77f9-4be4-a7ec-8bf6e893e2aa', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('31265953-4820-470f-8cfc-38efefec9fa7', 'cd7306a7-c458-45e8-a00b-44a2f2117135', '2380fe5b-ce2a-401e-98bf-af8b98460f67', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('58c448cf-87bd-4f36-92d5-e6f6de48569d', '2380fe5b-ce2a-401e-98bf-af8b98460f67', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('c86e4e49-88c9-4ac8-a1b8-ff473e1dc588', 'cd7306a7-c458-45e8-a00b-44a2f2117135', '103baca1-377a-4ddf-8429-5da91026c269', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('3fddedcf-c590-43b9-aaf4-4c4ce6600f2e', '103baca1-377a-4ddf-8429-5da91026c269', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('be429eb2-758d-4783-b166-cfcc7d2fb4f2', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'c626c41c-d6c2-4b16-a267-6cdeea497c52', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('bd66f19f-3508-4b13-ba40-598dd4abbd0d', 'c626c41c-d6c2-4b16-a267-6cdeea497c52', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('178c7c56-0f25-4048-be18-435ab5a169f4', 'cd7306a7-c458-45e8-a00b-44a2f2117135', '479c6306-5fdb-4e06-9008-c18f68db52a4', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('c8dc4c34-7950-4a04-a4bd-829a4c20ab4e', '479c6306-5fdb-4e06-9008-c18f68db52a4', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('92f143c0-59a8-461b-b9cc-179f3403dd38', 'cd7306a7-c458-45e8-a00b-44a2f2117135', '226b42ee-0c34-4329-b935-744aecc63fb4', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('e9a6f066-f4cc-4de4-bb26-2bc9522760a4', '226b42ee-0c34-4329-b935-744aecc63fb4', 'cd7306a7-c458-45e8-a00b-44a2f2117135', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('805b2c95-fc22-48b1-81cc-f86e3f2c2956', 'a5c47bd8-3729-45fa-8701-b8b76ada150a', '2a052ccd-3e31-46a7-bffb-2ab1302b1b00', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('e54835e6-b399-4d49-8ab8-6b452cbc00ca', '2a052ccd-3e31-46a7-bffb-2ab1302b1b00', 'a5c47bd8-3729-45fa-8701-b8b76ada150a', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('02a774bb-0a1c-4874-b9e2-bbd4806c2f3e', 'a5c47bd8-3729-45fa-8701-b8b76ada150a', '537bc481-aa15-4a3b-be4e-2042da6f5a09', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('17c74f58-18bc-4c4a-974b-2732a84576c3', '537bc481-aa15-4a3b-be4e-2042da6f5a09', 'a5c47bd8-3729-45fa-8701-b8b76ada150a', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('c8dded57-22f8-46d0-a29c-3e7c072ebee4', '260325a5-27f9-40d1-8697-c727feb1dbdc', '5316c516-77f9-4be4-a7ec-8bf6e893e2aa', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('7e2995b8-2a4f-49c1-b72c-80c8c6d1e060', '5316c516-77f9-4be4-a7ec-8bf6e893e2aa', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('3ba9b460-5878-43c1-bb00-c88916bf5e6b', '260325a5-27f9-40d1-8697-c727feb1dbdc', '103baca1-377a-4ddf-8429-5da91026c269', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('a4bea335-611d-49cc-9e94-b18896103d40', '103baca1-377a-4ddf-8429-5da91026c269', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('f0d65e5b-9762-4c65-9333-83aa6c1beb75', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'dc24b1d5-206d-40db-b10a-606dd16a0297', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('cd72ee26-b867-4321-8566-7daa488f7a61', 'dc24b1d5-206d-40db-b10a-606dd16a0297', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('bc211906-6d48-4649-8e49-518cd89c61f8', '260325a5-27f9-40d1-8697-c727feb1dbdc', '2380fe5b-ce2a-401e-98bf-af8b98460f67', 'Contains'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('aeafba5d-b352-4c36-8fd5-d135cea70605', '2380fe5b-ce2a-401e-98bf-af8b98460f67', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'BelongsTo'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('2b6126be-63fd-4140-8891-e0b5db880573', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('89a348be-ae8d-40ad-a1cd-12d00b981b2a', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', '260325a5-27f9-40d1-8697-c727feb1dbdc', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('7e6219a9-e433-4706-9145-f791a58ef7c3', '5316c516-77f9-4be4-a7ec-8bf6e893e2aa', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('a447062c-c75e-48b2-bbe3-5d9eab770c26', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', '5316c516-77f9-4be4-a7ec-8bf6e893e2aa', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('faf70a4b-2358-4881-952b-aae3cec55053', '103baca1-377a-4ddf-8429-5da91026c269', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('b6647b84-5043-4ac2-8b31-3db7c2d6cf32', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', '103baca1-377a-4ddf-8429-5da91026c269', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('b63cb71d-71c1-49a1-93bd-ea63cb4ab4e7', 'dc24b1d5-206d-40db-b10a-606dd16a0297', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('c582313e-9840-4ae6-827c-d2a01363ee6b', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'dc24b1d5-206d-40db-b10a-606dd16a0297', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('a2d2ca10-11eb-4e6f-9a5c-b8196a56d10a', '2380fe5b-ce2a-401e-98bf-af8b98460f67', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('50701b58-58ef-4b6e-ac00-5f69d8ceebf6', 'a4cfbc03-c65d-4f32-be3d-1d11247c9cdd', '2380fe5b-ce2a-401e-98bf-af8b98460f67', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('6d010032-02fb-4e94-aef7-85e56d5cf99c', 'a5c47bd8-3729-45fa-8701-b8b76ada150a', 'c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('421b8c1f-01b9-49c3-8820-ee05313d103a', 'c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', 'a5c47bd8-3729-45fa-8701-b8b76ada150a', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('b6b8af3a-2531-46bc-9b1e-acf3a4c51396', '2a052ccd-3e31-46a7-bffb-2ab1302b1b00', 'c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('323d044f-bbbd-45fc-a93c-40ee0f17ab87', 'c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', '2a052ccd-3e31-46a7-bffb-2ab1302b1b00', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('cbe5c0d4-621b-4e6b-a6c1-76c8ca6105f2', '537bc481-aa15-4a3b-be4e-2042da6f5a09', 'c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('bedbe18b-a7c3-40d3-b230-22f9ac5c6c76', 'c4a0ae0f-09cc-43bf-94e9-21ff178fbda6', '537bc481-aa15-4a3b-be4e-2042da6f5a09', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('84902105-164c-4fc3-9690-e638f16c3075', 'c626c41c-d6c2-4b16-a267-6cdeea497c52', '103baca1-377a-4ddf-8429-5da91026c269', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('44668672-1520-4371-98d2-3ed48bddf9ea', '103baca1-377a-4ddf-8429-5da91026c269', 'c626c41c-d6c2-4b16-a267-6cdeea497c52', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('e8fe5609-53e7-4793-a39d-2ce75c630cd9', '479c6306-5fdb-4e06-9008-c18f68db52a4', 'c626c41c-d6c2-4b16-a267-6cdeea497c52', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('591285ff-53dd-4e27-a30d-754fe97ea3be', 'c626c41c-d6c2-4b16-a267-6cdeea497c52', '479c6306-5fdb-4e06-9008-c18f68db52a4', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('df901204-59c1-4f3e-87f0-8ac07e90bc39', '226b42ee-0c34-4329-b935-744aecc63fb4', '5316c516-77f9-4be4-a7ec-8bf6e893e2aa', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('23a05c64-b204-4c48-b906-9fabb6ea298b', '5316c516-77f9-4be4-a7ec-8bf6e893e2aa', '226b42ee-0c34-4329-b935-744aecc63fb4', 'Produces'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('3721c600-6423-4a38-a9b2-d85b426b6eaa', '226b42ee-0c34-4329-b935-744aecc63fb4', '103baca1-377a-4ddf-8429-5da91026c269', 'Consumes'); +insert into edges (edge_id, from_id, to_id, conn_type) values ('5f9b86fe-bdc9-4a76-b07c-876b9d7c1ee1', '103baca1-377a-4ddf-8429-5da91026c269', '226b42ee-0c34-4329-b935-744aecc63fb4', 'Produces'); + diff --git a/registry/sql-registry/test/test_basic.py b/registry/sql-registry/test/test_basic.py new file mode 100644 index 000000000..22e343aba --- /dev/null +++ b/registry/sql-registry/test/test_basic.py @@ -0,0 +1,17 @@ +import registry +r=registry.DbRegistry() + +l=r.get_lineage('226b42ee-0c34-4329-b935-744aecc63fb4').to_dict() +assert(len(l["guidEntityMap"]) == 4) + +af1=r.get_entity('2380fe5b-ce2a-401e-98bf-af8b98460f67') +af2=r.get_entity('feathr_ci_registry_12_33_182947__request_features__f_day_of_week') +assert(af1.to_dict()==af2.to_dict()) +df1=r.get_entity('226b42ee-0c34-4329-b935-744aecc63fb4') +df2=r.get_entity('feathr_ci_registry_12_33_182947__f_trip_time_distance') +assert(df1.to_dict()==df2.to_dict()) + +p=r.get_project('feathr_ci_registry_12_33_182947') +assert(len(p.to_dict()['guidEntityMap'])==14) + +es=r.search_entity("time", [registry.EntityType.DerivedFeature]) From 991376b924b365410d4fb083d39f836994a94de1 Mon Sep 17 00:00:00 2001 From: Yuqing Wei Date: Wed, 15 Jun 2022 00:17:36 +0800 Subject: [PATCH 14/18] quick fix the 404 not found in read me link (#355) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 875b75b54..b35a56624 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ Read [Point-in-time Correctness and Point-in-time Join in Feathr](https://linked ### Running Feathr Examples -Follow the [quick start Jupyter Notebook](./feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo.ipynb) to try it out. There is also a companion [quick start guide](https://linkedin.github.io/feathr/quickstart.html) containing a bit more explanation on the notebook. +Follow the [quick start Jupyter Notebook](./feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo.ipynb) to try it out. There is also a companion [quick start guide](https://linkedin.github.io/feathr/quickstart_synapse.html) containing a bit more explanation on the notebook. ## 🗣️ Tech Talks on Feathr From d2bb61ada529d2a68f1f9095754a69ad3a56a3e7 Mon Sep 17 00:00:00 2001 From: Yuqing Wei Date: Wed, 15 Jun 2022 00:18:45 +0800 Subject: [PATCH 15/18] add license, release, docs, python api ref badges with shields img (#357) --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index b35a56624..1ff4d80f6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,10 @@ # Feathr – An Enterprise-Grade, High Performance Feature Store +[![License](https://img.shields.io/badge/License-Apache%202.0-blue)](https://github.com/linkedin/feathr/blob/main/LICENSE) +[![GitHub Release](https://img.shields.io/github/v/release/linkedin/feathr.svg?style=flat&sort=semver&color=blue)](https://github.com/linkedin/feathr/releases) +[![Docs Latest](https://img.shields.io/badge/docs-latest-blue.svg)](https://linkedin.github.io/feathr/) +[![Python API](https://img.shields.io/readthedocs/feathr?label=Python%20API)](https://feathr.readthedocs.io/en/latest/) + ## What is Feathr? Feathr is the feature store that is used in production in LinkedIn for many years and was open sourced in April 2022. Read our announcement on [Open Sourcing Feathr](https://engineering.linkedin.com/blog/2022/open-sourcing-feathr---linkedin-s-feature-store-for-productive-m) and [Feathr on Azure](https://azure.microsoft.com/en-us/blog/feathr-linkedin-s-feature-store-is-now-available-on-azure/). From ac204bb5fe1096d869bebfdc55c201b8cfcedc4f Mon Sep 17 00:00:00 2001 From: Yuqing Wei Date: Wed, 15 Jun 2022 00:25:08 +0800 Subject: [PATCH 16/18] obejectId query cmd update (#360) * upgrade object id query cmd * fix all occurance of object id query --- docs/README.md | 2 +- docs/how-to-guides/azure-deployment.md | 2 +- .../azure_resource_provision.json | 636 ++++--- docs/how-to-guides/deployment/deploy.json | 9 +- docs/how-to-guides/deployment/main.bicep | 2 +- docs/quickstart_synapse.md | 2 +- .../nyc_driver_demo.ipynb | 1468 ++++++++-------- .../product_recommendation_demo.ipynb | 1506 ++++++++--------- 8 files changed, 1794 insertions(+), 1833 deletions(-) diff --git a/docs/README.md b/docs/README.md index 1e80d55bf..6e26207b7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -33,7 +33,7 @@ Feathr automatically computes your feature values and joins them to your trainin Feathr has native cloud integration. To use Feathr on Azure, you only need three steps: -1. Get the `Principal ID` of your account by running `az ad signed-in-user show --query objectId -o tsv` in the link below (Select "Bash" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI. +1. Get the `Principal ID` of your account by running `az ad signed-in-user show --query id -o tsv` in the link below (Select "Bash" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI. [Launch Cloud Shell](https://shell.azure.com/bash) diff --git a/docs/how-to-guides/azure-deployment.md b/docs/how-to-guides/azure-deployment.md index adf5e2a48..4df308cdb 100644 --- a/docs/how-to-guides/azure-deployment.md +++ b/docs/how-to-guides/azure-deployment.md @@ -13,7 +13,7 @@ Due to the complexity of the possible cloud environment, it is almost impossible Feathr has native cloud integration and getting started with Feathr is very straightforward. You only need three steps: -1. Get the principal ID of your account by running `az ad signed-in-user show --query objectId -o tsv` in the link below (Select "Bash" if you are asked to choose one), and write down that value (will be something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`) +1. Get the principal ID of your account by running `az ad signed-in-user show --query id -o tsv` in the link below (Select "Bash" if you are asked to choose one), and write down that value (will be something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`) [Launch Cloud Shell](https://shell.azure.com/bash) diff --git a/docs/how-to-guides/azure_resource_provision.json b/docs/how-to-guides/azure_resource_provision.json index 33117f60d..ea7c0ad0e 100644 --- a/docs/how-to-guides/azure_resource_provision.json +++ b/docs/how-to-guides/azure_resource_provision.json @@ -1,355 +1,319 @@ { - "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", - "contentVersion": "1.0.0.0", - "parameters": { - "resourcePrefix": { - "minLength": 3, - "maxLength": 15, - "type": "String", - "metadata": { - "description": "Resource prefix for all the resource provisioned. This should be an alphanumeric string." - } - }, - "principalId": { - "type": "String", - "metadata": { - "description": "Specifies the principal ID assigned to the role. You can find it by logging into 'https://shell.azure.com/bash' and run 'az ad signed-in-user show --query objectId -o tsv'" - } - }, - "allowAllConnections": { - "defaultValue": "true", - "allowedValues": [ - "true", - "false" - ], - "type": "String", - "metadata": { - "description": "Specifies whether to allow client IPs to connect to Synapse" - } - }, - "provisionPurview": { - "defaultValue": "true", - "allowedValues": [ - "true", - "false" - ], - "type": "String", - "metadata": { - "description": "Whether or not put purview in the provision script" - } - }, - "provisionEventHub": { - "defaultValue": "true", - "allowedValues": [ - "true", - "false" - ], - "type": "String", - "metadata": { - "description": "Whether or not to deploy eventhub provision script" - } - } + "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourcePrefix": { + "minLength": 3, + "maxLength": 15, + "type": "String", + "metadata": { + "description": "Resource prefix for all the resource provisioned. This should be an alphanumeric string." + } }, - "variables": { - "location": "[resourceGroup().location]", - "tenantId": "[subscription().tenantId]", - "redisCacheName": "[concat(parameters('resourcePrefix'),'redis' )]", - "keyVaultName": "[concat(parameters('resourcePrefix'),'kv')]", - "eventhubNameSpaceName": "[concat(parameters('resourcePrefix'),'ehns')]", - "eventhubName": "[concat(parameters('resourcePrefix'),'eh')]", - "eventhubSku": "Standard", - "eventhubSkuCapacity": 1, - "keyVault": "[resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName'))]", - "redisCache": "[resourceId('Microsoft.Cache/redis', variables('redisCacheName'))]", - "eventhubNameSpace": "[resourceId('Microsoft.EventHub/namespaces/', variables('eventhubNameSpaceName'))]", - "sparkPoolName": "spark31", - "workspaceName": "[toLower(concat(parameters('resourcePrefix'),'syws'))]", - "dlsName": "[toLower(concat(parameters('resourcePrefix'), 'dls'))]", - "dlsFsName": "[toLower(concat(parameters('resourcePrefix'),'fs'))]", - "dlsAccount": "[resourceId('Microsoft.Storage/storageAccounts', variables('dlsName'))]", - "purviewName": "[concat(parameters('resourcePrefix'),'purview' )]", - "roleDefinitionIdForBlobContributor": "ba92f5b4-2d11-453d-a403-e96b0029c9fe", - "roleDefinitionIdForKeyVaultSecretsUser": "4633458b-17de-408a-b874-0445c86b69e6", - "roleAssignmentNameForBlobContributor": "[guid(parameters('principalId'), variables('roleDefinitionIdForBlobContributor'), resourceGroup().id)]", - "roleAssignmentNameForKeyVaultSecretsUser": "[guid(parameters('principalId'), variables('roleDefinitionIdForKeyVaultSecretsUser'), resourceGroup().id)]" + "principalId": { + "type": "String", + "metadata": { + "description": "Specifies the principal ID assigned to the role. You can find it by logging into 'https://shell.azure.com/bash' and run 'az ad signed-in-user show --query id -o tsv'" + } }, - "functions": [], - "resources": [ - { - "type": "Microsoft.KeyVault/vaults", - "apiVersion": "2021-10-01", - "name": "[variables('keyVaultName')]", - "location": "[variables('location')]", - "properties": { - "tenantId": "[variables('tenantId')]", - "sku": { - "name": "standard", - "family": "A" - }, - "accessPolicies": [], - "enableSoftDelete": true, - "enableRbacAuthorization": true - }, - "resources": [ - { - "type": "Microsoft.KeyVault/vaults/secrets", - "apiVersion": "2021-10-01", - "name": "[concat(variables('keyVaultName'), '/FEATHR-PREFIX')]", - "location": "[resourceGroup().location]", - "dependsOn": [ - "[variables('keyVault')]" - ], - "properties": { - "value": "[parameters('resourcePrefix')]" - } - } - ] + "allowAllConnections": { + "defaultValue": "true", + "allowedValues": ["true", "false"], + "type": "String", + "metadata": { + "description": "Specifies whether to allow client IPs to connect to Synapse" + } + }, + "provisionPurview": { + "defaultValue": "true", + "allowedValues": ["true", "false"], + "type": "String", + "metadata": { + "description": "Whether or not put purview in the provision script" + } + }, + "provisionEventHub": { + "defaultValue": "true", + "allowedValues": ["true", "false"], + "type": "String", + "metadata": { + "description": "Whether or not to deploy eventhub provision script" + } + } + }, + "variables": { + "location": "[resourceGroup().location]", + "tenantId": "[subscription().tenantId]", + "redisCacheName": "[concat(parameters('resourcePrefix'),'redis' )]", + "keyVaultName": "[concat(parameters('resourcePrefix'),'kv')]", + "eventhubNameSpaceName": "[concat(parameters('resourcePrefix'),'ehns')]", + "eventhubName": "[concat(parameters('resourcePrefix'),'eh')]", + "eventhubSku": "Standard", + "eventhubSkuCapacity": 1, + "keyVault": "[resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName'))]", + "redisCache": "[resourceId('Microsoft.Cache/redis', variables('redisCacheName'))]", + "eventhubNameSpace": "[resourceId('Microsoft.EventHub/namespaces/', variables('eventhubNameSpaceName'))]", + "sparkPoolName": "spark31", + "workspaceName": "[toLower(concat(parameters('resourcePrefix'),'syws'))]", + "dlsName": "[toLower(concat(parameters('resourcePrefix'), 'dls'))]", + "dlsFsName": "[toLower(concat(parameters('resourcePrefix'),'fs'))]", + "dlsAccount": "[resourceId('Microsoft.Storage/storageAccounts', variables('dlsName'))]", + "purviewName": "[concat(parameters('resourcePrefix'),'purview' )]", + "roleDefinitionIdForBlobContributor": "ba92f5b4-2d11-453d-a403-e96b0029c9fe", + "roleDefinitionIdForKeyVaultSecretsUser": "4633458b-17de-408a-b874-0445c86b69e6", + "roleAssignmentNameForBlobContributor": "[guid(parameters('principalId'), variables('roleDefinitionIdForBlobContributor'), resourceGroup().id)]", + "roleAssignmentNameForKeyVaultSecretsUser": "[guid(parameters('principalId'), variables('roleDefinitionIdForKeyVaultSecretsUser'), resourceGroup().id)]" + }, + "functions": [], + "resources": [ + { + "type": "Microsoft.KeyVault/vaults", + "apiVersion": "2021-10-01", + "name": "[variables('keyVaultName')]", + "location": "[variables('location')]", + "properties": { + "tenantId": "[variables('tenantId')]", + "sku": { + "name": "standard", + "family": "A" }, + "accessPolicies": [], + "enableSoftDelete": true, + "enableRbacAuthorization": true + }, + "resources": [ { - "type": "Microsoft.Cache/redis", - "apiVersion": "2021-06-01", - "name": "[variables('redisCacheName')]", - "location": "[resourceGroup().location]", - "tags": { - "displayName": "Feathr Online Store" - }, - "properties": { - "redisVersion": "6", - "sku": { - "name": "Basic", - "family": "C", - "capacity": 2 - } - }, - "resources": [ - { - "type": "Microsoft.KeyVault/vaults/secrets", - "apiVersion": "2021-10-01", - "name": "[concat(variables('keyVaultName'), '/FEATHR-ONLINE-STORE-CONN')]", - "location": "[resourceGroup().location]", - "dependsOn": [ - "[variables('keyVault')]", - "[variables('redisCache')]" - ], - "properties": { - "value": "[concat(variables('redisCacheName'),'.redis.cache.windows.net:6380,password=', listKeys(concat('Microsoft.Cache/redis/', variables('redisCacheName')), '2021-06-01').primaryKey, ',ssl=True')]" - } - }, - { - "type": "Microsoft.KeyVault/vaults/secrets", - "apiVersion": "2021-10-01", - "name": "[concat(variables('keyVaultName'), '/REDIS-PASSWORD')]", - "location": "[resourceGroup().location]", - "dependsOn": [ - "[variables('keyVault')]", - "[variables('redisCache')]" - ], - "properties": { - "value": "[listKeys(concat('Microsoft.Cache/redis/', variables('redisCacheName')), '2021-06-01').primaryKey]" - } - } - ] - }, + "type": "Microsoft.KeyVault/vaults/secrets", + "apiVersion": "2021-10-01", + "name": "[concat(variables('keyVaultName'), '/FEATHR-PREFIX')]", + "location": "[resourceGroup().location]", + "dependsOn": ["[variables('keyVault')]"], + "properties": { + "value": "[parameters('resourcePrefix')]" + } + } + ] + }, + { + "type": "Microsoft.Cache/redis", + "apiVersion": "2021-06-01", + "name": "[variables('redisCacheName')]", + "location": "[resourceGroup().location]", + "tags": { + "displayName": "Feathr Online Store" + }, + "properties": { + "redisVersion": "6", + "sku": { + "name": "Basic", + "family": "C", + "capacity": 2 + } + }, + "resources": [ { - "type": "Microsoft.Storage/storageAccounts", - "apiVersion": "2021-08-01", - "name": "[variables('dlsName')]", - "location": "[variables('location')]", - "sku": { - "name": "Standard_LRS", - "tier": "Standard" - }, - "kind": "StorageV2", - "properties": { - "accessTier": "Hot", - "supportsHttpsTrafficOnly": true, - "isHnsEnabled": true - }, - "resources": [ - { - "type": "blobServices/containers", - "apiVersion": "2021-08-01", - "name": "[concat('default/', variables('dlsFsName'))]", - "dependsOn": [ - "[variables('dlsName')]" - ], - "properties": { - "publicAccess": "None" - } - } - ] + "type": "Microsoft.KeyVault/vaults/secrets", + "apiVersion": "2021-10-01", + "name": "[concat(variables('keyVaultName'), '/FEATHR-ONLINE-STORE-CONN')]", + "location": "[resourceGroup().location]", + "dependsOn": ["[variables('keyVault')]", "[variables('redisCache')]"], + "properties": { + "value": "[concat(variables('redisCacheName'),'.redis.cache.windows.net:6380,password=', listKeys(concat('Microsoft.Cache/redis/', variables('redisCacheName')), '2021-06-01').primaryKey, ',ssl=True')]" + } }, { - "condition": "[equals(parameters('provisionPurview'),'true')]", - "type": "Microsoft.Purview/accounts", - "apiVersion": "2021-07-01", - "name": "[variables('purviewName')]", - "location": "[variables('location')]", - "sku": { - "name": "Standard", - "capacity": 1 - }, - "identity": { - "type": "SystemAssigned" - }, - "properties": { - "cloudConnectors": {}, - "publicNetworkAccess": "Enabled" - } - }, + "type": "Microsoft.KeyVault/vaults/secrets", + "apiVersion": "2021-10-01", + "name": "[concat(variables('keyVaultName'), '/REDIS-PASSWORD')]", + "location": "[resourceGroup().location]", + "dependsOn": ["[variables('keyVault')]", "[variables('redisCache')]"], + "properties": { + "value": "[listKeys(concat('Microsoft.Cache/redis/', variables('redisCacheName')), '2021-06-01').primaryKey]" + } + } + ] + }, + { + "type": "Microsoft.Storage/storageAccounts", + "apiVersion": "2021-08-01", + "name": "[variables('dlsName')]", + "location": "[variables('location')]", + "sku": { + "name": "Standard_LRS", + "tier": "Standard" + }, + "kind": "StorageV2", + "properties": { + "accessTier": "Hot", + "supportsHttpsTrafficOnly": true, + "isHnsEnabled": true + }, + "resources": [ { - "condition": "[equals(parameters('provisionEventHub'),'true')]", - "type": "Microsoft.EventHub/namespaces", - "apiVersion": "2021-11-01", - "name": "[variables('eventhubNameSpaceName')]", - "location": "[variables('location')]", - "sku": { - "name": "[variables('eventhubSku')]", - "tier": "[variables('eventhubSku')]", - "capacity": "[variables('eventhubSkuCapacity')]" - }, - "properties": {}, - "resources": [ - { - "condition": "[equals(parameters('provisionEventHub'),'true')]", - "type": "eventhubs", - "apiVersion": "2021-11-01", - "name": "[variables('eventhubName')]", - "dependsOn": [ - "[variables('eventhubNameSpace')]" - ], - "properties": {} - }, - { - "condition": "[equals(parameters('provisionEventHub'),'true')]", - "type": "Microsoft.KeyVault/vaults/secrets", - "apiVersion": "2021-10-01", - "name": "[concat(variables('keyVaultName'), '/EVENTHUB-POLICY-KEY')]", - "condition": "[equals(parameters('provisionEventHub'),'true')]", - "location": "[resourceGroup().location]", - "dependsOn": [ - "[variables('keyVault')]", - "[variables('eventhubNameSpace')]" - ], - "properties": { - "value": "[if(equals(parameters('provisionEventHub'),'true'),listKeys(resourceId('Microsoft.EventHub/namespaces/AuthorizationRules',variables('eventhubNameSpaceName'),'RootManageSharedAccessKey'),'2021-11-01').primaryConnectionString,'null' )]" - } - } - ] + "type": "blobServices/containers", + "apiVersion": "2021-08-01", + "name": "[concat('default/', variables('dlsFsName'))]", + "dependsOn": ["[variables('dlsName')]"], + "properties": { + "publicAccess": "None" + } + } + ] + }, + { + "condition": "[equals(parameters('provisionPurview'),'true')]", + "type": "Microsoft.Purview/accounts", + "apiVersion": "2021-07-01", + "name": "[variables('purviewName')]", + "location": "[variables('location')]", + "sku": { + "name": "Standard", + "capacity": 1 + }, + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "cloudConnectors": {}, + "publicNetworkAccess": "Enabled" + } + }, + { + "condition": "[equals(parameters('provisionEventHub'),'true')]", + "type": "Microsoft.EventHub/namespaces", + "apiVersion": "2021-11-01", + "name": "[variables('eventhubNameSpaceName')]", + "location": "[variables('location')]", + "sku": { + "name": "[variables('eventhubSku')]", + "tier": "[variables('eventhubSku')]", + "capacity": "[variables('eventhubSkuCapacity')]" + }, + "properties": {}, + "resources": [ + { + "condition": "[equals(parameters('provisionEventHub'),'true')]", + "type": "eventhubs", + "apiVersion": "2021-11-01", + "name": "[variables('eventhubName')]", + "dependsOn": ["[variables('eventhubNameSpace')]"], + "properties": {} }, { - "type": "Microsoft.Synapse/workspaces", - "apiVersion": "2021-06-01", - "name": "[variables('workspaceName')]", - "location": "[variables('location')]", - "dependsOn": [ - "[variables('dlsName')]", - "[variables('dlsFsName')]" - ], - "identity": { - "type": "SystemAssigned" - }, - "properties": { - "defaultDataLakeStorage": { - "accountUrl": "[reference(variables('dlsName')).primaryEndpoints.dfs]", - "filesystem": "[variables('dlsFsName')]" - }, - "managedVirtualNetwork": "default" - }, - "resources": [ - { - "type": "firewallrules", - "apiVersion": "2021-06-01", - "name": "allowAll", - "location": "[variables('location')]", - "dependsOn": [ - "[variables('workspaceName')]" - ], - "properties": { - "startIpAddress": "0.0.0.0", - "endIpAddress": "255.255.255.255" - }, - "condition": "[equals(parameters('allowAllConnections'),'true')]" - }, - { - "type": "firewallrules", - "apiVersion": "2021-06-01", - "name": "AllowAllWindowsAzureIps", - "location": "[variables('location')]", - "dependsOn": [ - "[variables('workspaceName')]" - ], - "properties": { - "startIpAddress": "0.0.0.0", - "endIpAddress": "0.0.0.0" - } - }, - { - "type": "managedIdentitySqlControlSettings", - "apiVersion": "2021-06-01", - "name": "default", - "location": "[variables('location')]", - "dependsOn": [ - "[variables('workspaceName')]" - ], - "properties": { - "grantSqlControlToManagedIdentity": { - "desiredState": "Enabled" - } - } - } - ] + "condition": "[equals(parameters('provisionEventHub'),'true')]", + "type": "Microsoft.KeyVault/vaults/secrets", + "apiVersion": "2021-10-01", + "name": "[concat(variables('keyVaultName'), '/EVENTHUB-POLICY-KEY')]", + "condition": "[equals(parameters('provisionEventHub'),'true')]", + "location": "[resourceGroup().location]", + "dependsOn": [ + "[variables('keyVault')]", + "[variables('eventhubNameSpace')]" + ], + "properties": { + "value": "[if(equals(parameters('provisionEventHub'),'true'),listKeys(resourceId('Microsoft.EventHub/namespaces/AuthorizationRules',variables('eventhubNameSpaceName'),'RootManageSharedAccessKey'),'2021-11-01').primaryConnectionString,'null' )]" + } + } + ] + }, + { + "type": "Microsoft.Synapse/workspaces", + "apiVersion": "2021-06-01", + "name": "[variables('workspaceName')]", + "location": "[variables('location')]", + "dependsOn": ["[variables('dlsName')]", "[variables('dlsFsName')]"], + "identity": { + "type": "SystemAssigned" + }, + "properties": { + "defaultDataLakeStorage": { + "accountUrl": "[reference(variables('dlsName')).primaryEndpoints.dfs]", + "filesystem": "[variables('dlsFsName')]" }, + "managedVirtualNetwork": "default" + }, + "resources": [ { - "type": "Microsoft.Synapse/workspaces/bigDataPools", - "apiVersion": "2021-06-01", - "name": "[concat(variables('workspaceName'), '/', variables('sparkPoolName'))]", - "location": "[variables('location')]", - "dependsOn": [ - "[variables('workspaceName')]" - ], - "properties": { - "autoPause": { - "delayInMinutes": 30, - "enabled": true - }, - "autoScale": { - "enabled": true, - "minNodeCount": 1, - "maxNodeCount": 3 - }, - "sparkVersion": "3.1", - "nodeCount": 3, - "nodeSizeFamily": "MemoryOptimized", - "nodeSize": "Medium" - } + "type": "firewallrules", + "apiVersion": "2021-06-01", + "name": "allowAll", + "location": "[variables('location')]", + "dependsOn": ["[variables('workspaceName')]"], + "properties": { + "startIpAddress": "0.0.0.0", + "endIpAddress": "255.255.255.255" + }, + "condition": "[equals(parameters('allowAllConnections'),'true')]" }, { - "type": "Microsoft.Authorization/roleAssignments", - "apiVersion": "2020-10-01-preview", - "name": "[variables('roleAssignmentNameForBlobContributor')]", - "dependsOn": [ - "[variables('dlsAccount')]" - ], - "properties": { - "roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', variables('roleDefinitionIdForBlobContributor'))]", - "principalId": "[parameters('principalId')]", - "scope": "[resourceGroup().id]" - } + "type": "firewallrules", + "apiVersion": "2021-06-01", + "name": "AllowAllWindowsAzureIps", + "location": "[variables('location')]", + "dependsOn": ["[variables('workspaceName')]"], + "properties": { + "startIpAddress": "0.0.0.0", + "endIpAddress": "0.0.0.0" + } }, { - "type": "Microsoft.Authorization/roleAssignments", - "apiVersion": "2020-10-01-preview", - "name": "[variables('roleAssignmentNameForKeyVaultSecretsUser')]", - "dependsOn": [ - "[variables('keyVault')]" - ], - "properties": { - "roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', variables('roleDefinitionIdForKeyVaultSecretsUser'))]", - "principalId": "[parameters('principalId')]", - "scope": "[resourceGroup().id]" + "type": "managedIdentitySqlControlSettings", + "apiVersion": "2021-06-01", + "name": "default", + "location": "[variables('location')]", + "dependsOn": ["[variables('workspaceName')]"], + "properties": { + "grantSqlControlToManagedIdentity": { + "desiredState": "Enabled" } + } } - ], - "outputs": {} -} \ No newline at end of file + ] + }, + { + "type": "Microsoft.Synapse/workspaces/bigDataPools", + "apiVersion": "2021-06-01", + "name": "[concat(variables('workspaceName'), '/', variables('sparkPoolName'))]", + "location": "[variables('location')]", + "dependsOn": ["[variables('workspaceName')]"], + "properties": { + "autoPause": { + "delayInMinutes": 30, + "enabled": true + }, + "autoScale": { + "enabled": true, + "minNodeCount": 1, + "maxNodeCount": 3 + }, + "sparkVersion": "3.1", + "nodeCount": 3, + "nodeSizeFamily": "MemoryOptimized", + "nodeSize": "Medium" + } + }, + { + "type": "Microsoft.Authorization/roleAssignments", + "apiVersion": "2020-10-01-preview", + "name": "[variables('roleAssignmentNameForBlobContributor')]", + "dependsOn": ["[variables('dlsAccount')]"], + "properties": { + "roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', variables('roleDefinitionIdForBlobContributor'))]", + "principalId": "[parameters('principalId')]", + "scope": "[resourceGroup().id]" + } + }, + { + "type": "Microsoft.Authorization/roleAssignments", + "apiVersion": "2020-10-01-preview", + "name": "[variables('roleAssignmentNameForKeyVaultSecretsUser')]", + "dependsOn": ["[variables('keyVault')]"], + "properties": { + "roleDefinitionId": "[resourceId('Microsoft.Authorization/roleDefinitions', variables('roleDefinitionIdForKeyVaultSecretsUser'))]", + "principalId": "[parameters('principalId')]", + "scope": "[resourceGroup().id]" + } + } + ], + "outputs": {} +} diff --git a/docs/how-to-guides/deployment/deploy.json b/docs/how-to-guides/deployment/deploy.json index 0c8241eef..3e3dd40f5 100644 --- a/docs/how-to-guides/deployment/deploy.json +++ b/docs/how-to-guides/deployment/deploy.json @@ -21,16 +21,13 @@ "principalId": { "type": "string", "metadata": { - "description": "Specifies the principal ID assigned to the role. You can find it by logging into 'https://shell.azure.com/bash' and run 'az ad signed-in-user show --query objectId -o tsv' " + "description": "Specifies the principal ID assigned to the role. You can find it by logging into 'https://shell.azure.com/bash' and run 'az ad signed-in-user show --query id -o tsv' " } }, "allowAllConnections": { "type": "string", "defaultValue": "true", - "allowedValues": [ - "true", - "false" - ], + "allowedValues": ["true", "false"], "metadata": { "description": "Specifies whether to allow client IPs to connect to Synapse" } @@ -635,4 +632,4 @@ "value": "[parameters('resourcePrefix')]" } } -} \ No newline at end of file +} diff --git a/docs/how-to-guides/deployment/main.bicep b/docs/how-to-guides/deployment/main.bicep index aef63e2b4..566ff6668 100644 --- a/docs/how-to-guides/deployment/main.bicep +++ b/docs/how-to-guides/deployment/main.bicep @@ -8,7 +8,7 @@ targetScope = 'subscription' @minLength(3) param resourcePrefix string = 'feathr${take(newGuid(),5)}' -@description('Specifies the principal ID assigned to the role. You can find it by logging into \'https://shell.azure.com/bash\' and run \'az ad signed-in-user show --query objectId -o tsv\' ') +@description('Specifies the principal ID assigned to the role. You can find it by logging into \'https://shell.azure.com/bash\' and run \'az ad signed-in-user show --query id -o tsv\' ') param principalId string @description('Specifies whether to allow client IPs to connect to Synapse') diff --git a/docs/quickstart_synapse.md b/docs/quickstart_synapse.md index 20a75492f..e3aad375f 100644 --- a/docs/quickstart_synapse.md +++ b/docs/quickstart_synapse.md @@ -23,7 +23,7 @@ First step is to provision required cloud resources if you want to use Feathr. F Feathr has native cloud integration. To use Feathr on Azure, you only need three steps: -1. Get the `Principal ID` of your account by running `az ad signed-in-user show --query objectId -o tsv` in the link below (Select "Bash" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI. +1. Get the `Principal ID` of your account by running `az ad signed-in-user show --query id -o tsv` in the link below (Select "Bash" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI. [Launch Cloud Shell](https://shell.azure.com/bash) diff --git a/feathr_project/feathrcli/data/feathr_user_workspace/nyc_driver_demo.ipynb b/feathr_project/feathrcli/data/feathr_user_workspace/nyc_driver_demo.ipynb index 3ccd51814..0ed133169 100644 --- a/feathr_project/feathrcli/data/feathr_user_workspace/nyc_driver_demo.ipynb +++ b/feathr_project/feathrcli/data/feathr_user_workspace/nyc_driver_demo.ipynb @@ -1,736 +1,736 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Feathr Feature Store on Azure Demo Notebook\n", - "\n", - "This notebook illustrates the use of Feature Store to create a model that predicts NYC Taxi fares. It includes these steps:\n", - "\n", - "\n", - "This tutorial demonstrates the key capabilities of Feathr, including:\n", - "\n", - "1. Install and set up Feathr with Azure\n", - "2. Create shareable features with Feathr feature definition configs.\n", - "3. Create a training dataset via point-in-time feature join.\n", - "4. Compute and write features.\n", - "5. Train a model using these features to predict fares.\n", - "6. Materialize feature value to online store.\n", - "7. Fetch feature value in real-time from online store for online scoring.\n", - "\n", - "In this tutorial, we use Feathr Feature Store to create a model that predicts NYC Taxi fares. The dataset comes from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). The feature flow is as below:\n", - "\n", - "![Feature Flow](https://github.com/linkedin/feathr/blob/main/docs/images/feature_flow.png?raw=true)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisite: Use Quick Start Template to Provision Azure Resources\n", - "\n", - "Feathr has native cloud integration. To use Feathr on Azure, you only need three steps:\n", - "\n", - "- Get the `Principal ID` of your account by running `az ad signed-in-user show --query objectId -o tsv` in the link below (Select \"Bash\" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI.\n", - "\n", - "[Launch Cloud Shell](https://shell.azure.com/bash)\n", - "\n", - "- Click the button below to deploy a minimal set of Feathr resources for demo purpose. You will need to fill in the `Principal ID` and `Resource Prefix`. You will need \"Owner\" permission of the selected subscription.\n", - "\n", - "[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Flinkedin%2Ffeathr%2Fmain%2Fdocs%2Fhow-to-guides%2Fazure_resource_provision.json)\n", - "\n", - "- Run the cells below.\n", - "\n", - "And the architecture is as below. In the above template, we are using Synapse as Spark provider, use Azure Data Lake Gen2 as offline store, and use Redis as online store, Azure Purview (Apache Atlas compatible) as feature reigstry. \n", - "\n", - "\n", - "![Architecture](https://github.com/linkedin/feathr/blob/main/docs/images/architecture.png?raw=true)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisite: Install Feathr \n", - "\n", - "Install Feathr using pip:\n", - "\n", - "`pip install -U feathr pandavro scikit-learn`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisite: Configure the required environment with Feathr Quick Start Template\n", - "\n", - "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. Run the code below to install Feathr, login to Azure to get the required credentials to access more cloud resources." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**REQUIRED STEP: Fill in the resource prefix when provisioning the resources**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "resource_prefix = \"feathr_resource_prefix\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "! pip install feathr azure-cli pandavro scikit-learn" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Login to Azure with a device code (You will see instructions in the output):" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "! az login --use-device-code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import glob\n", - "import os\n", - "import tempfile\n", - "from datetime import datetime, timedelta\n", - "from math import sqrt\n", - "\n", - "import pandas as pd\n", - "import pandavro as pdx\n", - "from feathr import FeathrClient\n", - "from feathr import BOOLEAN, FLOAT, INT32, ValueType\n", - "from feathr import Feature, DerivedFeature, FeatureAnchor\n", - "from feathr import BackfillTime, MaterializationSettings\n", - "from feathr import FeatureQuery, ObservationSettings\n", - "from feathr import RedisSink\n", - "from feathr import INPUT_CONTEXT, HdfsSource\n", - "from feathr import WindowAggTransformation\n", - "from feathr import TypedKey\n", - "from sklearn.metrics import mean_squared_error\n", - "from sklearn.model_selection import train_test_split\n", - "from azure.identity import DefaultAzureCredential\n", - "from azure.keyvault.secrets import SecretClient\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Get all the required credentials from Azure KeyVault" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Get all the required credentials from Azure Key Vault\n", - "key_vault_name=resource_prefix+\"kv\"\n", - "synapse_workspace_url=resource_prefix+\"syws\"\n", - "adls_account=resource_prefix+\"dls\"\n", - "adls_fs_name=resource_prefix+\"fs\"\n", - "purview_name=resource_prefix+\"purview\"\n", - "key_vault_uri = f\"https://{key_vault_name}.vault.azure.net\"\n", - "credential = DefaultAzureCredential(exclude_interactive_browser_credential=False)\n", - "client = SecretClient(vault_url=key_vault_uri, credential=credential)\n", - "secretName = \"FEATHR-ONLINE-STORE-CONN\"\n", - "retrieved_secret = client.get_secret(secretName).value\n", - "\n", - "# Get redis credentials; This is to parse Redis connection string.\n", - "redis_port=retrieved_secret.split(',')[0].split(\":\")[1]\n", - "redis_host=retrieved_secret.split(',')[0].split(\":\")[0]\n", - "redis_password=retrieved_secret.split(',')[1].split(\"password=\",1)[1]\n", - "redis_ssl=retrieved_secret.split(',')[2].split(\"ssl=\",1)[1]\n", - "\n", - "# Set the resource link\n", - "os.environ['spark_config__azure_synapse__dev_url'] = f'https://{synapse_workspace_url}.dev.azuresynapse.net'\n", - "os.environ['spark_config__azure_synapse__pool_name'] = 'spark31'\n", - "os.environ['spark_config__azure_synapse__workspace_dir'] = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_project'\n", - "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", - "os.environ['online_store__redis__host'] = redis_host\n", - "os.environ['online_store__redis__port'] = redis_port\n", - "os.environ['online_store__redis__ssl_enabled'] = redis_ssl\n", - "os.environ['REDIS_PASSWORD']=redis_password\n", - "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", - "feathr_output_path = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_output'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisite: Configure the required environment (Don't need to update if using the above Quick Start Template)\n", - "\n", - "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. If you use Feathr CLI to create a workspace, you should have a folder with a file called `feathr_config.yaml` in it with all the required configurations. Otherwise, update the configuration below.\n", - "\n", - "The code below will write this configuration string to a temporary location and load it to Feathr. Please still refer to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It should also have more explanations on the meaning of each variable." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import tempfile\n", - "yaml_config = \"\"\"\n", - "# Please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml for explanations on the meaning of each field.\n", - "api_version: 1\n", - "project_config:\n", - " project_name: 'feathr_getting_started'\n", - " required_environment_variables:\n", - " - 'REDIS_PASSWORD'\n", - " - 'AZURE_CLIENT_ID'\n", - " - 'AZURE_TENANT_ID'\n", - " - 'AZURE_CLIENT_SECRET'\n", - "offline_store:\n", - " adls:\n", - " adls_enabled: true\n", - " wasb:\n", - " wasb_enabled: true\n", - " s3:\n", - " s3_enabled: false\n", - " s3_endpoint: 's3.amazonaws.com'\n", - " jdbc:\n", - " jdbc_enabled: false\n", - " jdbc_database: 'feathrtestdb'\n", - " jdbc_table: 'feathrtesttable'\n", - " snowflake:\n", - " url: \"dqllago-ol19457.snowflakecomputing.com\"\n", - " user: \"feathrintegration\"\n", - " role: \"ACCOUNTADMIN\"\n", - "spark_config:\n", - " spark_cluster: 'azure_synapse'\n", - " spark_result_output_parts: '1'\n", - " azure_synapse:\n", - " dev_url: 'https://feathrazuretest3synapse.dev.azuresynapse.net'\n", - " pool_name: 'spark3'\n", - " workspace_dir: 'abfss://feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/feathr_getting_started'\n", - " executor_size: 'Small'\n", - " executor_num: 4\n", - " feathr_runtime_location: wasbs://public@azurefeathrstorage.blob.core.windows.net/feathr-assembly-LATEST.jar\n", - " databricks:\n", - " workspace_instance_url: 'https://adb-2474129336842816.16.azuredatabricks.net'\n", - " config_template: {'run_name':'','new_cluster':{'spark_version':'9.1.x-scala2.12','node_type_id':'Standard_D3_v2','num_workers':2,'spark_conf':{}},'libraries':[{'jar':''}],'spark_jar_task':{'main_class_name':'','parameters':['']}}\n", - " work_dir: 'dbfs:/feathr_getting_started'\n", - " feathr_runtime_location: https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar\n", - "online_store:\n", - " redis:\n", - " host: 'feathrazuretest3redis.redis.cache.windows.net'\n", - " port: 6380\n", - " ssl_enabled: True\n", - "feature_registry:\n", - " purview:\n", - " type_system_initialization: true\n", - " purview_name: 'feathrazuretest3-purview1'\n", - " delimiter: '__'\n", - "\"\"\"\n", - "tmp = tempfile.NamedTemporaryFile(mode='w', delete=False)\n", - "with open(tmp.name, \"w\") as text_file:\n", - " text_file.write(yaml_config)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setup necessary environment variables (Skip if using the above Quick Start Template)\n", - "\n", - "You should setup the environment variables in order to run this sample. More environment variables can be set by referring to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It also has more explanations on the meaning of each variable.\n", - "\n", - "To run this notebook, for Azure users, you need AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET and REDIS_PASSWORD.\n", - "To run this notebook, for Databricks useres, you need DATABRICKS_WORKSPACE_TOKEN_VALUE and REDIS_PASSWORD." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Initialize Feathr Client" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client = FeathrClient(config_path=tmp.name)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## View the data\n", - "\n", - "In this tutorial, we use Feathr Feature Store to create a model that predicts NYC Taxi fares. The dataset comes from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). The data is as below" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pandas as pd\n", - "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/green_tripdata_2020-04_with_index.csv\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Defining Features with Feathr\n", - "\n", - "In Feathr, a feature is viewed as a function, mapping from entity id or key, and timestamp to a feature value. For more details on feature definition, please refer to the [Feathr Feature Definition Guide](https://github.com/linkedin/feathr/blob/main/docs/concepts/feature-definition.md)\n", - "\n", - "\n", - "1. The typed key (a.k.a. entity id) identifies the subject of feature, e.g. a user id, 123.\n", - "2. The feature name is the aspect of the entity that the feature is indicating, e.g. the age of the user.\n", - "3. The feature value is the actual value of that aspect at a particular time, e.g. the value is 30 at year 2022.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that, in some cases, such as features defined on top of request data, may have no entity key or timestamp.\n", - "It is merely a function/transformation executing against request data at runtime.\n", - "For example, the day of week of the request, which is calculated by converting the request UNIX timestamp.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define Sources Section with UDFs\n", - "A feature source is needed for anchored features that describes the raw data in which the feature values are computed from. See the python documentation to get the details on each input column.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from pyspark.sql import SparkSession, DataFrame\n", - "def feathr_udf_day_calc(df: DataFrame) -> DataFrame:\n", - " from pyspark.sql.functions import dayofweek, dayofyear, col\n", - " df = df.withColumn(\"fare_amount_cents\", col(\"fare_amount\")*100)\n", - " return df\n", - "\n", - "batch_source = HdfsSource(name=\"nycTaxiBatchSource\",\n", - " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04_with_index.csv\",\n", - " event_timestamp_column=\"lpep_dropoff_datetime\",\n", - " preprocessing=feathr_udf_day_calc,\n", - " timestamp_format=\"yyyy-MM-dd HH:mm:ss\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define Anchors and Features\n", - "A feature is called an anchored feature when the feature is directly extracted from the source data, rather than computed on top of other features. The latter case is called derived feature." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "f_trip_distance = Feature(name=\"f_trip_distance\",\n", - " feature_type=FLOAT, transform=\"trip_distance\")\n", - "f_trip_time_duration = Feature(name=\"f_trip_time_duration\",\n", - " feature_type=INT32,\n", - " transform=\"(to_unix_timestamp(lpep_dropoff_datetime) - to_unix_timestamp(lpep_pickup_datetime))/60\")\n", - "\n", - "features = [\n", - " f_trip_distance,\n", - " f_trip_time_duration,\n", - " Feature(name=\"f_is_long_trip_distance\",\n", - " feature_type=BOOLEAN,\n", - " transform=\"cast_float(trip_distance)>30\"),\n", - " Feature(name=\"f_day_of_week\",\n", - " feature_type=INT32,\n", - " transform=\"dayofweek(lpep_dropoff_datetime)\"),\n", - "]\n", - "\n", - "request_anchor = FeatureAnchor(name=\"request_features\",\n", - " source=INPUT_CONTEXT,\n", - " features=features)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Window aggregation features\n", - "\n", - "For window aggregation features, see the supported fields below:\n", - "\n", - "Note that the `agg_func` should be any of these:\n", - "\n", - "| Aggregation Type | Input Type | Description |\n", - "| --- | --- | --- |\n", - "|SUM, COUNT, MAX, MIN, AVG\t|Numeric|Applies the the numerical operation on the numeric inputs. |\n", - "|MAX_POOLING, MIN_POOLING, AVG_POOLING\t| Numeric Vector | Applies the max/min/avg operation on a per entry bassis for a given a collection of numbers.|\n", - "|LATEST| Any |Returns the latest not-null values from within the defined time window |\n", - "\n", - "\n", - "After you have defined features and sources, bring them together to build an anchor:\n", - "\n", - "\n", - "Note that if the data source is from the observation data, the `source` section should be `INPUT_CONTEXT` to indicate the source of those defined anchors." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "location_id = TypedKey(key_column=\"DOLocationID\",\n", - " key_column_type=ValueType.INT32,\n", - " description=\"location id in NYC\",\n", - " full_name=\"nyc_taxi.location_id\")\n", - "agg_features = [Feature(name=\"f_location_avg_fare\",\n", - " key=location_id,\n", - " feature_type=FLOAT,\n", - " transform=WindowAggTransformation(agg_expr=\"cast_float(fare_amount)\",\n", - " agg_func=\"AVG\",\n", - " window=\"90d\")),\n", - " Feature(name=\"f_location_max_fare\",\n", - " key=location_id,\n", - " feature_type=FLOAT,\n", - " transform=WindowAggTransformation(agg_expr=\"cast_float(fare_amount)\",\n", - " agg_func=\"MAX\",\n", - " window=\"90d\")),\n", - " Feature(name=\"f_location_total_fare_cents\",\n", - " key=location_id,\n", - " feature_type=FLOAT,\n", - " transform=WindowAggTransformation(agg_expr=\"fare_amount_cents\",\n", - " agg_func=\"SUM\",\n", - " window=\"90d\")),\n", - " ]\n", - "\n", - "agg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n", - " source=batch_source,\n", - " features=agg_features)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Derived Features Section\n", - "Derived features are the features that are computed from other features. They could be computed from anchored features, or other derived features." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "f_trip_time_distance = DerivedFeature(name=\"f_trip_time_distance\",\n", - " feature_type=FLOAT,\n", - " input_features=[\n", - " f_trip_distance, f_trip_time_duration],\n", - " transform=\"f_trip_distance * f_trip_time_duration\")\n", - "\n", - "f_trip_time_rounded = DerivedFeature(name=\"f_trip_time_rounded\",\n", - " feature_type=INT32,\n", - " input_features=[f_trip_time_duration],\n", - " transform=\"f_trip_time_duration % 10\")\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And then we need to build those features so that it can be consumed later. Note that we have to build both the \"anchor\" and the \"derived\" features (which is not anchored to a source)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client.build_features(anchor_list=[agg_anchor, request_anchor], derived_feature_list=[\n", - " f_trip_time_distance, f_trip_time_rounded])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create training data using point-in-time correct feature join\n", - "\n", - "A training dataset usually contains entity id columns, multiple feature columns, event timestamp column and label/target column. \n", - "\n", - "To create a training dataset using Feathr, one needs to provide a feature join configuration file to specify\n", - "what features and how these features should be joined to the observation data. \n", - "\n", - "To learn more on this topic, please refer to [Point-in-time Correctness](https://github.com/linkedin/feathr/blob/main/docs/concepts/point-in-time-join.md)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if client.spark_runtime == 'databricks':\n", - " output_path = 'dbfs:/feathrazure_test.avro'\n", - "else:\n", - " output_path = feathr_output_path\n", - "\n", - "\n", - "feature_query = FeatureQuery(\n", - " feature_list=[\"f_location_avg_fare\", \"f_trip_time_rounded\", \"f_is_long_trip_distance\", \"f_location_total_fare_cents\"], key=location_id)\n", - "settings = ObservationSettings(\n", - " observation_path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04_with_index.csv\",\n", - " event_timestamp_column=\"lpep_dropoff_datetime\",\n", - " timestamp_format=\"yyyy-MM-dd HH:mm:ss\")\n", - "client.get_offline_features(observation_settings=settings,\n", - " feature_query=feature_query,\n", - " output_path=output_path)\n", - "client.wait_job_to_finish(timeout_sec=500)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Download the result and show the result\n", - "\n", - "Let's use the helper function `get_result_df` to download the result and view it:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def get_result_df(client: FeathrClient) -> pd.DataFrame:\n", - " \"\"\"Download the job result dataset from cloud as a Pandas dataframe.\"\"\"\n", - " res_url = client.get_job_result_uri(block=True, timeout_sec=600)\n", - " tmp_dir = tempfile.TemporaryDirectory()\n", - " client.feathr_spark_laucher.download_result(result_path=res_url, local_folder=tmp_dir.name)\n", - " dataframe_list = []\n", - " # assuming the result are in avro format\n", - " for file in glob.glob(os.path.join(tmp_dir.name, '*.avro')):\n", - " dataframe_list.append(pdx.read_avro(file))\n", - " vertical_concat_df = pd.concat(dataframe_list, axis=0)\n", - " tmp_dir.cleanup()\n", - " return vertical_concat_df\n", - "\n", - "df_res = get_result_df(client)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "df_res" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Train a machine learning model\n", - "After getting all the features, let's train a machine learning model with the converted feature by Feathr:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# remove columns\n", - "from sklearn.ensemble import GradientBoostingRegressor\n", - "final_df = df_res\n", - "final_df.drop([\"lpep_pickup_datetime\", \"lpep_dropoff_datetime\",\n", - " \"store_and_fwd_flag\"], axis=1, inplace=True, errors='ignore')\n", - "final_df.fillna(0, inplace=True)\n", - "final_df['fare_amount'] = final_df['fare_amount'].astype(\"float64\")\n", - "\n", - "\n", - "train_x, test_x, train_y, test_y = train_test_split(final_df.drop([\"fare_amount\"], axis=1),\n", - " final_df[\"fare_amount\"],\n", - " test_size=0.2,\n", - " random_state=42)\n", - "model = GradientBoostingRegressor()\n", - "model.fit(train_x, train_y)\n", - "\n", - "y_predict = model.predict(test_x)\n", - "\n", - "y_actual = test_y.values.flatten().tolist()\n", - "rmse = sqrt(mean_squared_error(y_actual, y_predict))\n", - "\n", - "sum_actuals = sum_errors = 0\n", - "\n", - "for actual_val, predict_val in zip(y_actual, y_predict):\n", - " abs_error = actual_val - predict_val\n", - " if abs_error < 0:\n", - " abs_error = abs_error * -1\n", - "\n", - " sum_errors = sum_errors + abs_error\n", - " sum_actuals = sum_actuals + actual_val\n", - "\n", - "mean_abs_percent_error = sum_errors / sum_actuals\n", - "print(\"Model MAPE:\")\n", - "print(mean_abs_percent_error)\n", - "print()\n", - "print(\"Model Accuracy:\")\n", - "print(1 - mean_abs_percent_error)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Materialize feature value into offline/online storage\n", - "\n", - "While Feathr can compute the feature value from the feature definition on-the-fly at request time, it can also pre-compute\n", - "and materialize the feature value to offline and/or online storage. \n", - "\n", - "We can push the generated features to the online store like below:\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "backfill_time = BackfillTime(start=datetime(\n", - " 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1))\n", - "redisSink = RedisSink(table_name=\"nycTaxiDemoFeature\")\n", - "settings = MaterializationSettings(\"nycTaxiTable\",\n", - " backfill_time=backfill_time,\n", - " sinks=[redisSink],\n", - " feature_names=[\"f_location_avg_fare\", \"f_location_max_fare\"])\n", - "\n", - "client.materialize_features(settings)\n", - "client.wait_job_to_finish(timeout_sec=500)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can then get the features from the online store (Redis):\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fetching feature value for online inference\n", - "\n", - "For features that are already materialized by the previous step, their latest value can be queried via the client's\n", - "`get_online_features` or `multi_get_online_features` API." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "res = client.get_online_features('nycTaxiDemoFeature', '265', [\n", - " 'f_location_avg_fare', 'f_location_max_fare'])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client.multi_get_online_features(\"nycTaxiDemoFeature\", [\"239\", \"265\"], [\n", - " 'f_location_avg_fare', 'f_location_max_fare'])\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Registering and Fetching features\n", - "\n", - "We can also register the features with an Apache Atlas compatible service, such as Azure Purview, and share the registered features across teams:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client.register_features()\n", - "client.list_registered_features(project_name=\"feathr_getting_started\")" - ] - } - ], - "metadata": { - "interpreter": { - "hash": "b3c5d8fd79e029a19bf620c04a250a0cafa2291ba3ed87972a3e2a099b099985" - }, - "kernelspec": { - "display_name": "Python 3.9.12 ('product_env': venv)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feathr Feature Store on Azure Demo Notebook\n", + "\n", + "This notebook illustrates the use of Feature Store to create a model that predicts NYC Taxi fares. It includes these steps:\n", + "\n", + "\n", + "This tutorial demonstrates the key capabilities of Feathr, including:\n", + "\n", + "1. Install and set up Feathr with Azure\n", + "2. Create shareable features with Feathr feature definition configs.\n", + "3. Create a training dataset via point-in-time feature join.\n", + "4. Compute and write features.\n", + "5. Train a model using these features to predict fares.\n", + "6. Materialize feature value to online store.\n", + "7. Fetch feature value in real-time from online store for online scoring.\n", + "\n", + "In this tutorial, we use Feathr Feature Store to create a model that predicts NYC Taxi fares. The dataset comes from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). The feature flow is as below:\n", + "\n", + "![Feature Flow](https://github.com/linkedin/feathr/blob/main/docs/images/feature_flow.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Use Quick Start Template to Provision Azure Resources\n", + "\n", + "Feathr has native cloud integration. To use Feathr on Azure, you only need three steps:\n", + "\n", + "- Get the `Principal ID` of your account by running `az ad signed-in-user show --query id -o tsv` in the link below (Select \"Bash\" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI.\n", + "\n", + "[Launch Cloud Shell](https://shell.azure.com/bash)\n", + "\n", + "- Click the button below to deploy a minimal set of Feathr resources for demo purpose. You will need to fill in the `Principal ID` and `Resource Prefix`. You will need \"Owner\" permission of the selected subscription.\n", + "\n", + "[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Flinkedin%2Ffeathr%2Fmain%2Fdocs%2Fhow-to-guides%2Fazure_resource_provision.json)\n", + "\n", + "- Run the cells below.\n", + "\n", + "And the architecture is as below. In the above template, we are using Synapse as Spark provider, use Azure Data Lake Gen2 as offline store, and use Redis as online store, Azure Purview (Apache Atlas compatible) as feature reigstry. \n", + "\n", + "\n", + "![Architecture](https://github.com/linkedin/feathr/blob/main/docs/images/architecture.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Install Feathr \n", + "\n", + "Install Feathr using pip:\n", + "\n", + "`pip install -U feathr pandavro scikit-learn`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Configure the required environment with Feathr Quick Start Template\n", + "\n", + "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. Run the code below to install Feathr, login to Azure to get the required credentials to access more cloud resources." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**REQUIRED STEP: Fill in the resource prefix when provisioning the resources**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "resource_prefix = \"feathr_resource_prefix\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! pip install feathr azure-cli pandavro scikit-learn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Login to Azure with a device code (You will see instructions in the output):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! az login --use-device-code" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import glob\n", + "import os\n", + "import tempfile\n", + "from datetime import datetime, timedelta\n", + "from math import sqrt\n", + "\n", + "import pandas as pd\n", + "import pandavro as pdx\n", + "from feathr import FeathrClient\n", + "from feathr import BOOLEAN, FLOAT, INT32, ValueType\n", + "from feathr import Feature, DerivedFeature, FeatureAnchor\n", + "from feathr import BackfillTime, MaterializationSettings\n", + "from feathr import FeatureQuery, ObservationSettings\n", + "from feathr import RedisSink\n", + "from feathr import INPUT_CONTEXT, HdfsSource\n", + "from feathr import WindowAggTransformation\n", + "from feathr import TypedKey\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import train_test_split\n", + "from azure.identity import DefaultAzureCredential\n", + "from azure.keyvault.secrets import SecretClient\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get all the required credentials from Azure KeyVault" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get all the required credentials from Azure Key Vault\n", + "key_vault_name=resource_prefix+\"kv\"\n", + "synapse_workspace_url=resource_prefix+\"syws\"\n", + "adls_account=resource_prefix+\"dls\"\n", + "adls_fs_name=resource_prefix+\"fs\"\n", + "purview_name=resource_prefix+\"purview\"\n", + "key_vault_uri = f\"https://{key_vault_name}.vault.azure.net\"\n", + "credential = DefaultAzureCredential(exclude_interactive_browser_credential=False)\n", + "client = SecretClient(vault_url=key_vault_uri, credential=credential)\n", + "secretName = \"FEATHR-ONLINE-STORE-CONN\"\n", + "retrieved_secret = client.get_secret(secretName).value\n", + "\n", + "# Get redis credentials; This is to parse Redis connection string.\n", + "redis_port=retrieved_secret.split(',')[0].split(\":\")[1]\n", + "redis_host=retrieved_secret.split(',')[0].split(\":\")[0]\n", + "redis_password=retrieved_secret.split(',')[1].split(\"password=\",1)[1]\n", + "redis_ssl=retrieved_secret.split(',')[2].split(\"ssl=\",1)[1]\n", + "\n", + "# Set the resource link\n", + "os.environ['spark_config__azure_synapse__dev_url'] = f'https://{synapse_workspace_url}.dev.azuresynapse.net'\n", + "os.environ['spark_config__azure_synapse__pool_name'] = 'spark31'\n", + "os.environ['spark_config__azure_synapse__workspace_dir'] = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_project'\n", + "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", + "os.environ['online_store__redis__host'] = redis_host\n", + "os.environ['online_store__redis__port'] = redis_port\n", + "os.environ['online_store__redis__ssl_enabled'] = redis_ssl\n", + "os.environ['REDIS_PASSWORD']=redis_password\n", + "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", + "feathr_output_path = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_output'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Configure the required environment (Don't need to update if using the above Quick Start Template)\n", + "\n", + "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. If you use Feathr CLI to create a workspace, you should have a folder with a file called `feathr_config.yaml` in it with all the required configurations. Otherwise, update the configuration below.\n", + "\n", + "The code below will write this configuration string to a temporary location and load it to Feathr. Please still refer to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It should also have more explanations on the meaning of each variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tempfile\n", + "yaml_config = \"\"\"\n", + "# Please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml for explanations on the meaning of each field.\n", + "api_version: 1\n", + "project_config:\n", + " project_name: 'feathr_getting_started'\n", + " required_environment_variables:\n", + " - 'REDIS_PASSWORD'\n", + " - 'AZURE_CLIENT_ID'\n", + " - 'AZURE_TENANT_ID'\n", + " - 'AZURE_CLIENT_SECRET'\n", + "offline_store:\n", + " adls:\n", + " adls_enabled: true\n", + " wasb:\n", + " wasb_enabled: true\n", + " s3:\n", + " s3_enabled: false\n", + " s3_endpoint: 's3.amazonaws.com'\n", + " jdbc:\n", + " jdbc_enabled: false\n", + " jdbc_database: 'feathrtestdb'\n", + " jdbc_table: 'feathrtesttable'\n", + " snowflake:\n", + " url: \"dqllago-ol19457.snowflakecomputing.com\"\n", + " user: \"feathrintegration\"\n", + " role: \"ACCOUNTADMIN\"\n", + "spark_config:\n", + " spark_cluster: 'azure_synapse'\n", + " spark_result_output_parts: '1'\n", + " azure_synapse:\n", + " dev_url: 'https://feathrazuretest3synapse.dev.azuresynapse.net'\n", + " pool_name: 'spark3'\n", + " workspace_dir: 'abfss://feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/feathr_getting_started'\n", + " executor_size: 'Small'\n", + " executor_num: 4\n", + " feathr_runtime_location: wasbs://public@azurefeathrstorage.blob.core.windows.net/feathr-assembly-LATEST.jar\n", + " databricks:\n", + " workspace_instance_url: 'https://adb-2474129336842816.16.azuredatabricks.net'\n", + " config_template: {'run_name':'','new_cluster':{'spark_version':'9.1.x-scala2.12','node_type_id':'Standard_D3_v2','num_workers':2,'spark_conf':{}},'libraries':[{'jar':''}],'spark_jar_task':{'main_class_name':'','parameters':['']}}\n", + " work_dir: 'dbfs:/feathr_getting_started'\n", + " feathr_runtime_location: https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar\n", + "online_store:\n", + " redis:\n", + " host: 'feathrazuretest3redis.redis.cache.windows.net'\n", + " port: 6380\n", + " ssl_enabled: True\n", + "feature_registry:\n", + " purview:\n", + " type_system_initialization: true\n", + " purview_name: 'feathrazuretest3-purview1'\n", + " delimiter: '__'\n", + "\"\"\"\n", + "tmp = tempfile.NamedTemporaryFile(mode='w', delete=False)\n", + "with open(tmp.name, \"w\") as text_file:\n", + " text_file.write(yaml_config)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup necessary environment variables (Skip if using the above Quick Start Template)\n", + "\n", + "You should setup the environment variables in order to run this sample. More environment variables can be set by referring to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It also has more explanations on the meaning of each variable.\n", + "\n", + "To run this notebook, for Azure users, you need AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET and REDIS_PASSWORD.\n", + "To run this notebook, for Databricks useres, you need DATABRICKS_WORKSPACE_TOKEN_VALUE and REDIS_PASSWORD." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Initialize Feathr Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client = FeathrClient(config_path=tmp.name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## View the data\n", + "\n", + "In this tutorial, we use Feathr Feature Store to create a model that predicts NYC Taxi fares. The dataset comes from [here](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page). The data is as below" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/green_tripdata_2020-04_with_index.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Defining Features with Feathr\n", + "\n", + "In Feathr, a feature is viewed as a function, mapping from entity id or key, and timestamp to a feature value. For more details on feature definition, please refer to the [Feathr Feature Definition Guide](https://github.com/linkedin/feathr/blob/main/docs/concepts/feature-definition.md)\n", + "\n", + "\n", + "1. The typed key (a.k.a. entity id) identifies the subject of feature, e.g. a user id, 123.\n", + "2. The feature name is the aspect of the entity that the feature is indicating, e.g. the age of the user.\n", + "3. The feature value is the actual value of that aspect at a particular time, e.g. the value is 30 at year 2022.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that, in some cases, such as features defined on top of request data, may have no entity key or timestamp.\n", + "It is merely a function/transformation executing against request data at runtime.\n", + "For example, the day of week of the request, which is calculated by converting the request UNIX timestamp.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Sources Section with UDFs\n", + "A feature source is needed for anchored features that describes the raw data in which the feature values are computed from. See the python documentation to get the details on each input column.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pyspark.sql import SparkSession, DataFrame\n", + "def feathr_udf_day_calc(df: DataFrame) -> DataFrame:\n", + " from pyspark.sql.functions import dayofweek, dayofyear, col\n", + " df = df.withColumn(\"fare_amount_cents\", col(\"fare_amount\")*100)\n", + " return df\n", + "\n", + "batch_source = HdfsSource(name=\"nycTaxiBatchSource\",\n", + " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04_with_index.csv\",\n", + " event_timestamp_column=\"lpep_dropoff_datetime\",\n", + " preprocessing=feathr_udf_day_calc,\n", + " timestamp_format=\"yyyy-MM-dd HH:mm:ss\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Anchors and Features\n", + "A feature is called an anchored feature when the feature is directly extracted from the source data, rather than computed on top of other features. The latter case is called derived feature." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "f_trip_distance = Feature(name=\"f_trip_distance\",\n", + " feature_type=FLOAT, transform=\"trip_distance\")\n", + "f_trip_time_duration = Feature(name=\"f_trip_time_duration\",\n", + " feature_type=INT32,\n", + " transform=\"(to_unix_timestamp(lpep_dropoff_datetime) - to_unix_timestamp(lpep_pickup_datetime))/60\")\n", + "\n", + "features = [\n", + " f_trip_distance,\n", + " f_trip_time_duration,\n", + " Feature(name=\"f_is_long_trip_distance\",\n", + " feature_type=BOOLEAN,\n", + " transform=\"cast_float(trip_distance)>30\"),\n", + " Feature(name=\"f_day_of_week\",\n", + " feature_type=INT32,\n", + " transform=\"dayofweek(lpep_dropoff_datetime)\"),\n", + "]\n", + "\n", + "request_anchor = FeatureAnchor(name=\"request_features\",\n", + " source=INPUT_CONTEXT,\n", + " features=features)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Window aggregation features\n", + "\n", + "For window aggregation features, see the supported fields below:\n", + "\n", + "Note that the `agg_func` should be any of these:\n", + "\n", + "| Aggregation Type | Input Type | Description |\n", + "| --- | --- | --- |\n", + "|SUM, COUNT, MAX, MIN, AVG\t|Numeric|Applies the the numerical operation on the numeric inputs. |\n", + "|MAX_POOLING, MIN_POOLING, AVG_POOLING\t| Numeric Vector | Applies the max/min/avg operation on a per entry bassis for a given a collection of numbers.|\n", + "|LATEST| Any |Returns the latest not-null values from within the defined time window |\n", + "\n", + "\n", + "After you have defined features and sources, bring them together to build an anchor:\n", + "\n", + "\n", + "Note that if the data source is from the observation data, the `source` section should be `INPUT_CONTEXT` to indicate the source of those defined anchors." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "location_id = TypedKey(key_column=\"DOLocationID\",\n", + " key_column_type=ValueType.INT32,\n", + " description=\"location id in NYC\",\n", + " full_name=\"nyc_taxi.location_id\")\n", + "agg_features = [Feature(name=\"f_location_avg_fare\",\n", + " key=location_id,\n", + " feature_type=FLOAT,\n", + " transform=WindowAggTransformation(agg_expr=\"cast_float(fare_amount)\",\n", + " agg_func=\"AVG\",\n", + " window=\"90d\")),\n", + " Feature(name=\"f_location_max_fare\",\n", + " key=location_id,\n", + " feature_type=FLOAT,\n", + " transform=WindowAggTransformation(agg_expr=\"cast_float(fare_amount)\",\n", + " agg_func=\"MAX\",\n", + " window=\"90d\")),\n", + " Feature(name=\"f_location_total_fare_cents\",\n", + " key=location_id,\n", + " feature_type=FLOAT,\n", + " transform=WindowAggTransformation(agg_expr=\"fare_amount_cents\",\n", + " agg_func=\"SUM\",\n", + " window=\"90d\")),\n", + " ]\n", + "\n", + "agg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n", + " source=batch_source,\n", + " features=agg_features)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Derived Features Section\n", + "Derived features are the features that are computed from other features. They could be computed from anchored features, or other derived features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "f_trip_time_distance = DerivedFeature(name=\"f_trip_time_distance\",\n", + " feature_type=FLOAT,\n", + " input_features=[\n", + " f_trip_distance, f_trip_time_duration],\n", + " transform=\"f_trip_distance * f_trip_time_duration\")\n", + "\n", + "f_trip_time_rounded = DerivedFeature(name=\"f_trip_time_rounded\",\n", + " feature_type=INT32,\n", + " input_features=[f_trip_time_duration],\n", + " transform=\"f_trip_time_duration % 10\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then we need to build those features so that it can be consumed later. Note that we have to build both the \"anchor\" and the \"derived\" features (which is not anchored to a source)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.build_features(anchor_list=[agg_anchor, request_anchor], derived_feature_list=[\n", + " f_trip_time_distance, f_trip_time_rounded])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create training data using point-in-time correct feature join\n", + "\n", + "A training dataset usually contains entity id columns, multiple feature columns, event timestamp column and label/target column. \n", + "\n", + "To create a training dataset using Feathr, one needs to provide a feature join configuration file to specify\n", + "what features and how these features should be joined to the observation data. \n", + "\n", + "To learn more on this topic, please refer to [Point-in-time Correctness](https://github.com/linkedin/feathr/blob/main/docs/concepts/point-in-time-join.md)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if client.spark_runtime == 'databricks':\n", + " output_path = 'dbfs:/feathrazure_test.avro'\n", + "else:\n", + " output_path = feathr_output_path\n", + "\n", + "\n", + "feature_query = FeatureQuery(\n", + " feature_list=[\"f_location_avg_fare\", \"f_trip_time_rounded\", \"f_is_long_trip_distance\", \"f_location_total_fare_cents\"], key=location_id)\n", + "settings = ObservationSettings(\n", + " observation_path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/green_tripdata_2020-04_with_index.csv\",\n", + " event_timestamp_column=\"lpep_dropoff_datetime\",\n", + " timestamp_format=\"yyyy-MM-dd HH:mm:ss\")\n", + "client.get_offline_features(observation_settings=settings,\n", + " feature_query=feature_query,\n", + " output_path=output_path)\n", + "client.wait_job_to_finish(timeout_sec=500)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download the result and show the result\n", + "\n", + "Let's use the helper function `get_result_df` to download the result and view it:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_result_df(client: FeathrClient) -> pd.DataFrame:\n", + " \"\"\"Download the job result dataset from cloud as a Pandas dataframe.\"\"\"\n", + " res_url = client.get_job_result_uri(block=True, timeout_sec=600)\n", + " tmp_dir = tempfile.TemporaryDirectory()\n", + " client.feathr_spark_laucher.download_result(result_path=res_url, local_folder=tmp_dir.name)\n", + " dataframe_list = []\n", + " # assuming the result are in avro format\n", + " for file in glob.glob(os.path.join(tmp_dir.name, '*.avro')):\n", + " dataframe_list.append(pdx.read_avro(file))\n", + " vertical_concat_df = pd.concat(dataframe_list, axis=0)\n", + " tmp_dir.cleanup()\n", + " return vertical_concat_df\n", + "\n", + "df_res = get_result_df(client)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "df_res" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train a machine learning model\n", + "After getting all the features, let's train a machine learning model with the converted feature by Feathr:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# remove columns\n", + "from sklearn.ensemble import GradientBoostingRegressor\n", + "final_df = df_res\n", + "final_df.drop([\"lpep_pickup_datetime\", \"lpep_dropoff_datetime\",\n", + " \"store_and_fwd_flag\"], axis=1, inplace=True, errors='ignore')\n", + "final_df.fillna(0, inplace=True)\n", + "final_df['fare_amount'] = final_df['fare_amount'].astype(\"float64\")\n", + "\n", + "\n", + "train_x, test_x, train_y, test_y = train_test_split(final_df.drop([\"fare_amount\"], axis=1),\n", + " final_df[\"fare_amount\"],\n", + " test_size=0.2,\n", + " random_state=42)\n", + "model = GradientBoostingRegressor()\n", + "model.fit(train_x, train_y)\n", + "\n", + "y_predict = model.predict(test_x)\n", + "\n", + "y_actual = test_y.values.flatten().tolist()\n", + "rmse = sqrt(mean_squared_error(y_actual, y_predict))\n", + "\n", + "sum_actuals = sum_errors = 0\n", + "\n", + "for actual_val, predict_val in zip(y_actual, y_predict):\n", + " abs_error = actual_val - predict_val\n", + " if abs_error < 0:\n", + " abs_error = abs_error * -1\n", + "\n", + " sum_errors = sum_errors + abs_error\n", + " sum_actuals = sum_actuals + actual_val\n", + "\n", + "mean_abs_percent_error = sum_errors / sum_actuals\n", + "print(\"Model MAPE:\")\n", + "print(mean_abs_percent_error)\n", + "print()\n", + "print(\"Model Accuracy:\")\n", + "print(1 - mean_abs_percent_error)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Materialize feature value into offline/online storage\n", + "\n", + "While Feathr can compute the feature value from the feature definition on-the-fly at request time, it can also pre-compute\n", + "and materialize the feature value to offline and/or online storage. \n", + "\n", + "We can push the generated features to the online store like below:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "backfill_time = BackfillTime(start=datetime(\n", + " 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1))\n", + "redisSink = RedisSink(table_name=\"nycTaxiDemoFeature\")\n", + "settings = MaterializationSettings(\"nycTaxiTable\",\n", + " backfill_time=backfill_time,\n", + " sinks=[redisSink],\n", + " feature_names=[\"f_location_avg_fare\", \"f_location_max_fare\"])\n", + "\n", + "client.materialize_features(settings)\n", + "client.wait_job_to_finish(timeout_sec=500)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then get the features from the online store (Redis):\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fetching feature value for online inference\n", + "\n", + "For features that are already materialized by the previous step, their latest value can be queried via the client's\n", + "`get_online_features` or `multi_get_online_features` API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "res = client.get_online_features('nycTaxiDemoFeature', '265', [\n", + " 'f_location_avg_fare', 'f_location_max_fare'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.multi_get_online_features(\"nycTaxiDemoFeature\", [\"239\", \"265\"], [\n", + " 'f_location_avg_fare', 'f_location_max_fare'])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Registering and Fetching features\n", + "\n", + "We can also register the features with an Apache Atlas compatible service, such as Azure Purview, and share the registered features across teams:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.register_features()\n", + "client.list_registered_features(project_name=\"feathr_getting_started\")" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "b3c5d8fd79e029a19bf620c04a250a0cafa2291ba3ed87972a3e2a099b099985" + }, + "kernelspec": { + "display_name": "Python 3.9.12 ('product_env': venv)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 } diff --git a/feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo.ipynb b/feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo.ipynb index 99bf54254..d3c297eae 100644 --- a/feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo.ipynb +++ b/feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo.ipynb @@ -1,755 +1,755 @@ { - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Feathr Feature Store on Azure Demo Notebook\n", - "\n", - "This notebook illustrates the use of Feature Store to create a model that predicts product ratings. It includes these steps:\n", - "\n", - "\n", - "This tutorial demonstrates the key capabilities of Feathr, including:\n", - "\n", - "1. Install and set up Feathr with Azure\n", - "2. Create shareable features with Feathr feature definition configs.\n", - "3. Create a training dataset via point-in-time feature join.\n", - "4. Compute and write features.\n", - "5. Train a model using these features to predict fares.\n", - "6. Materialize feature value to online store.\n", - "7. Fetch feature value in real-time from online store for online scoring.\n", - "\n", - "In this tutorial, we use Feathr Feature Store to create a model that predict users rating for a product. The feature flow is as below:\n", - "![Feature Flow](https://github.com/linkedin/feathr/blob/main/docs/images/product_recommendation_overview.png?raw=true)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisite: Use Quick Start Template to Provision Azure Resources\n", - "\n", - "Feathr has native cloud integration. To use Feathr on Azure, you only need three steps:\n", - "\n", - "- Get the `Principal ID` of your account by running `az ad signed-in-user show --query objectId -o tsv` in the link below (Select \"Bash\" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI.\n", - "\n", - "[Launch Cloud Shell](https://shell.azure.com/bash)\n", - "\n", - "- Click the button below to deploy a minimal set of Feathr resources for demo purpose. You will need to fill in the `Principal ID` and `Resource Prefix`. You will need \"Owner\" permission of the selected subscription.\n", - "\n", - "[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Flinkedin%2Ffeathr%2Fmain%2Fdocs%2Fhow-to-guides%2Fazure_resource_provision.json)\n", - "\n", - "- Run the cells below.\n", - "\n", - "And the architecture is as below. In the above template, we are using Synapse as Spark provider, use Azure Data Lake Gen2 as offline store, and use Redis as online store, Azure Purview (Apache Atlas compatible) as feature reigstry. \n", - "\n", - "\n", - "![Architecture](https://github.com/linkedin/feathr/blob/main/docs/images/architecture.png?raw=true)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisite: Install Feathr \n", - "\n", - "Install Feathr using pip:\n", - "\n", - "`pip install -U feathr pandavro scikit-learn`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisite: Configure the required environment with Feathr Quick Start Template\n", - "\n", - "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. Run the code below to install Feathr, login to Azure to get the required credentials to access more cloud resources." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**REQUIRED STEP: Fill in the resource prefix when provisioning the resources**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "resource_prefix = \"feathr_resource_prefix\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "! pip install feathr azure-cli pandavro scikit-learn" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Login to Azure with a device code (You will see instructions in the output):" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "! az login --use-device-code" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import glob\n", - "import os\n", - "import tempfile\n", - "from datetime import datetime, timedelta\n", - "from math import sqrt\n", - "\n", - "import pandas as pd\n", - "import pandavro as pdx\n", - "from feathr import FeathrClient\n", - "from feathr import BOOLEAN, FLOAT, INT32, ValueType\n", - "from feathr import Feature, DerivedFeature, FeatureAnchor\n", - "from feathr import BackfillTime, MaterializationSettings\n", - "from feathr import FeatureQuery, ObservationSettings\n", - "from feathr import RedisSink\n", - "from feathr import INPUT_CONTEXT, HdfsSource\n", - "from feathr import WindowAggTransformation\n", - "from feathr import TypedKey\n", - "from sklearn.metrics import mean_squared_error\n", - "from sklearn.model_selection import train_test_split\n", - "from azure.identity import DefaultAzureCredential\n", - "from azure.keyvault.secrets import SecretClient\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Get all the required credentials from Azure KeyVault" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Get all the required credentials from Azure Key Vault\n", - "key_vault_name=resource_prefix+\"kv\"\n", - "synapse_workspace_url=resource_prefix+\"syws\"\n", - "adls_account=resource_prefix+\"dls\"\n", - "adls_fs_name=resource_prefix+\"fs\"\n", - "purview_name=resource_prefix+\"purview\"\n", - "key_vault_uri = f\"https://{key_vault_name}.vault.azure.net\"\n", - "credential = DefaultAzureCredential(exclude_interactive_browser_credential=False)\n", - "client = SecretClient(vault_url=key_vault_uri, credential=credential)\n", - "secretName = \"FEATHR-ONLINE-STORE-CONN\"\n", - "retrieved_secret = client.get_secret(secretName).value\n", - "\n", - "# Get redis credentials; This is to parse Redis connection string.\n", - "redis_port=retrieved_secret.split(',')[0].split(\":\")[1]\n", - "redis_host=retrieved_secret.split(',')[0].split(\":\")[0]\n", - "redis_password=retrieved_secret.split(',')[1].split(\"password=\",1)[1]\n", - "redis_ssl=retrieved_secret.split(',')[2].split(\"ssl=\",1)[1]\n", - "\n", - "# Set the resource link\n", - "os.environ['spark_config__azure_synapse__dev_url'] = f'https://{synapse_workspace_url}.dev.azuresynapse.net'\n", - "os.environ['spark_config__azure_synapse__pool_name'] = 'spark31'\n", - "os.environ['spark_config__azure_synapse__workspace_dir'] = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_project'\n", - "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", - "os.environ['online_store__redis__host'] = redis_host\n", - "os.environ['online_store__redis__port'] = redis_port\n", - "os.environ['online_store__redis__ssl_enabled'] = redis_ssl\n", - "os.environ['REDIS_PASSWORD']=redis_password\n", - "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", - "feathr_output_path = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_output'" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Prerequisite: Configure the required environment (Don't need to update if using the above Quick Start Template)\n", - "\n", - "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. If you use Feathr CLI to create a workspace, you should have a folder with a file called `feathr_config.yaml` in it with all the required configurations. Otherwise, update the configuration below.\n", - "\n", - "The code below will write this configuration string to a temporary location and load it to Feathr. Please still refer to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It should also have more explanations on the meaning of each variable." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import tempfile\n", - "yaml_config = \"\"\"\n", - "# Please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml for explanations on the meaning of each field.\n", - "api_version: 1\n", - "project_config:\n", - " project_name: 'feathr_getting_started'\n", - " required_environment_variables:\n", - " - 'REDIS_PASSWORD'\n", - " - 'AZURE_CLIENT_ID'\n", - " - 'AZURE_TENANT_ID'\n", - " - 'AZURE_CLIENT_SECRET'\n", - "offline_store:\n", - " adls:\n", - " adls_enabled: true\n", - " wasb:\n", - " wasb_enabled: true\n", - " s3:\n", - " s3_enabled: false\n", - " s3_endpoint: 's3.amazonaws.com'\n", - " jdbc:\n", - " jdbc_enabled: false\n", - " jdbc_database: 'feathrtestdb'\n", - " jdbc_table: 'feathrtesttable'\n", - " snowflake:\n", - " url: \"dqllago-ol19457.snowflakecomputing.com\"\n", - " user: \"feathrintegration\"\n", - " role: \"ACCOUNTADMIN\"\n", - "spark_config:\n", - " spark_cluster: 'azure_synapse'\n", - " spark_result_output_parts: '1'\n", - " azure_synapse:\n", - " dev_url: 'https://feathrazuretest3synapse.dev.azuresynapse.net'\n", - " pool_name: 'spark3'\n", - " workspace_dir: 'abfss://feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/feathr_getting_started'\n", - " executor_size: 'Small'\n", - " executor_num: 4\n", - " feathr_runtime_location: wasbs://public@azurefeathrstorage.blob.core.windows.net/feathr-assembly-LATEST.jar\n", - " databricks:\n", - " workspace_instance_url: 'https://adb-2474129336842816.16.azuredatabricks.net'\n", - " config_template: {'run_name':'','new_cluster':{'spark_version':'9.1.x-scala2.12','node_type_id':'Standard_D3_v2','num_workers':2,'spark_conf':{}},'libraries':[{'jar':''}],'spark_jar_task':{'main_class_name':'','parameters':['']}}\n", - " work_dir: 'dbfs:/feathr_getting_started'\n", - " feathr_runtime_location: https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar\n", - "online_store:\n", - " redis:\n", - " host: 'feathrazuretest3redis.redis.cache.windows.net'\n", - " port: 6380\n", - " ssl_enabled: True\n", - "feature_registry:\n", - " purview:\n", - " type_system_initialization: true\n", - " purview_name: 'feathrazuretest3-purview1'\n", - " delimiter: '__'\n", - "\"\"\"\n", - "tmp = tempfile.NamedTemporaryFile(mode='w', delete=False)\n", - "with open(tmp.name, \"w\") as text_file:\n", - " text_file.write(yaml_config)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Setup necessary environment variables (Skip if using the above Quick Start Template)\n", - "\n", - "You should setup the environment variables in order to run this sample. More environment variables can be set by referring to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It also has more explanations on the meaning of each variable.\n", - "\n", - "To run this notebook, for Azure users, you need AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET and REDIS_PASSWORD.\n", - "To run this notebook, for Databricks useres, you need DATABRICKS_WORKSPACE_TOKEN_VALUE and REDIS_PASSWORD." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Initialize Feathr Client" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client = FeathrClient(config_path=tmp.name)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## View the data\n", - "\n", - "In this tutorial, we use Feathr Feature Store to create a model that predicts users product rating. To make it simple, let's just predict users' rating for one product. (We will expand the exmaple to predict ratings for arbitrary product in future tutorials.)\n", - "\n", - "We have 3 datasets to work with: one observation dataset(a.k.a. label dataset) and two raw datasets to generate features." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Observation dataset(a.k.a. label dataset)\n", - "# Observation dataset usually comes with a event_timestamp to denote when the observation happened.\n", - "# The label here is product_rating. Our model objective is to predict a user's rating for this product.\n", - "import pandas as pd\n", - "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_observation_mock_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# User profile dataset\n", - "# Used to generate user features\n", - "import pandas as pd\n", - "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_profile_mock_data.csv\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# User purchase history dataset.\n", - "# Used to generate user features. This is activity type data, so we need to use aggregation to genearte features.\n", - "import pandas as pd\n", - "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_purchase_history_mock_data.csv\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Defining Features with Feathr\n", - "\n", - "In Feathr, a feature is viewed as a function, mapping from entity id or key, and timestamp to a feature value. For more details on feature definition, please refer to the [Feathr Feature Definition Guide](https://github.com/linkedin/feathr/blob/main/docs/concepts/feature-definition.md)\n", - "\n", - "\n", - "1. The typed key (a.k.a. entity id) identifies the subject of feature, e.g. a user id, 123.\n", - "2. The feature name is the aspect of the entity that the feature is indicating, e.g. the age of the user.\n", - "3. The feature value is the actual value of that aspect at a particular time, e.g. the value is 30 at year 2022.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that, in some cases, such as features defined on top of request data, may have no entity key or timestamp.\n", - "It is merely a function/transformation executing against request data at runtime.\n", - "For example, the day of week of the request, which is calculated by converting the request UNIX timestamp.\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define Sources Section with UDFs\n", - "A feature source is needed for anchored features that describes the raw data in which the feature values are computed from. See the python documentation to get the details on each input column.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from pyspark.sql import SparkSession, DataFrame\n", - "def feathr_udf_preprocessing(df: DataFrame) -> DataFrame:\n", - " from pyspark.sql.functions import col\n", - " df = df.withColumn(\"tax_rate_decimal\", col(\"tax_rate\")/100)\n", - " df.show(10)\n", - " return df\n", - "\n", - "batch_source = HdfsSource(name=\"userProfileData\",\n", - " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_profile_mock_data.csv\",\n", - " preprocessing=feathr_udf_preprocessing)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Define Anchors and Features\n", - "A feature is called an anchored feature when the feature is directly extracted from the source data, rather than computed on top of other features. The latter case is called derived feature." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "user_id = TypedKey(key_column=\"user_id\",\n", - " key_column_type=ValueType.INT32,\n", - " description=\"user id\",\n", - " full_name=\"product_recommendation.user_id\")\n", - "\n", - "feature_user_age = Feature(name=\"feature_user_age\",\n", - " key=user_id,\n", - " feature_type=INT32, transform=\"age\")\n", - "feature_user_tax_rate = Feature(name=\"feature_user_tax_rate\",\n", - " key=user_id,\n", - " feature_type=FLOAT,\n", - " transform=\"tax_rate_decimal\")\n", - "feature_user_gift_card_balance = Feature(name=\"feature_user_gift_card_balance\",\n", - " key=user_id,\n", - " feature_type=FLOAT,\n", - " transform=\"gift_card_balance\")\n", - "feature_user_has_valid_credit_card = Feature(name=\"feature_user_has_valid_credit_card\",\n", - " key=user_id,\n", - " feature_type=BOOLEAN,\n", - " transform=\"number_of_credit_cards > 0\")\n", - " \n", - "features = [\n", - " feature_user_age,\n", - " feature_user_tax_rate,\n", - " feature_user_gift_card_balance,\n", - " feature_user_has_valid_credit_card\n", - "]\n", - "\n", - "request_anchor = FeatureAnchor(name=\"anchored_features\",\n", - " source=batch_source,\n", - " features=features)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Window aggregation features\n", - "\n", - "For window aggregation features, see the supported fields below:\n", - "\n", - "Note that the `agg_func` should be any of these:\n", - "\n", - "| Aggregation Type | Input Type | Description |\n", - "| --- | --- | --- |\n", - "|SUM, COUNT, MAX, MIN, AVG\t|Numeric|Applies the the numerical operation on the numeric inputs. |\n", - "|MAX_POOLING, MIN_POOLING, AVG_POOLING\t| Numeric Vector | Applies the max/min/avg operation on a per entry bassis for a given a collection of numbers.|\n", - "|LATEST| Any |Returns the latest not-null values from within the defined time window |\n", - "\n", - "\n", - "After you have defined features and sources, bring them together to build an anchor:\n", - "\n", - "\n", - "Note that if the data source is from the observation data, the `source` section should be `INPUT_CONTEXT` to indicate the source of those defined anchors." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "purchase_history_data = HdfsSource(name=\"purchase_history_data\",\n", - " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_purchase_history_mock_data.csv\",\n", - " event_timestamp_column=\"purchase_date\",\n", - " timestamp_format=\"yyyy-MM-dd\")\n", - " \n", - "agg_features = [Feature(name=\"feature_user_totla_purchase_in_90days\",\n", - " key=user_id,\n", - " feature_type=FLOAT,\n", - " transform=WindowAggTransformation(agg_expr=\"cast_float(purchase_amount)\",\n", - " agg_func=\"AVG\",\n", - " window=\"90d\"))\n", - " ]\n", - "\n", - "agg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n", - " source=purchase_history_data,\n", - " features=agg_features)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Derived Features Section\n", - "Derived features are the features that are computed from other features. They could be computed from anchored features, or other derived features." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "feature_user_purchasing_power = DerivedFeature(name=\"feature_user_purchasing_power\",\n", - " key=user_id,\n", - " feature_type=FLOAT,\n", - " input_features=[\n", - " feature_user_gift_card_balance, feature_user_has_valid_credit_card],\n", - " transform=\"feature_user_gift_card_balance + if_else(feature_user_has_valid_credit_card, 100, 0)\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And then we need to build those features so that it can be consumed later. Note that we have to build both the \"anchor\" and the \"derived\" features (which is not anchored to a source)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client.build_features(anchor_list=[agg_anchor, request_anchor], derived_feature_list=[\n", - " feature_user_purchasing_power])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Create training data using point-in-time correct feature join\n", - "\n", - "A training dataset usually contains entity id columns, multiple feature columns, event timestamp column and label/target column. \n", - "\n", - "To create a training dataset using Feathr, one needs to provide a feature join configuration file to specify\n", - "what features and how these features should be joined to the observation data. \n", - "\n", - "To learn more on this topic, please refer to [Point-in-time Correctness](https://github.com/linkedin/feathr/blob/main/docs/concepts/point-in-time-join.md)\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if client.spark_runtime == 'databricks':\n", - " output_path = 'dbfs:/feathrazure_test.avro'\n", - "else:\n", - " output_path = feathr_output_path\n", - "\n", - "\n", - "feature_query = FeatureQuery(\n", - " feature_list=[\"feature_user_age\", \n", - " \"feature_user_tax_rate\", \n", - " \"feature_user_gift_card_balance\", \n", - " \"feature_user_has_valid_credit_card\", \n", - " \"feature_user_totla_purchase_in_90days\",\n", - " \"feature_user_purchasing_power\"], key=user_id)\n", - "settings = ObservationSettings(\n", - " observation_path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_observation_mock_data.csv\",\n", - " event_timestamp_column=\"event_timestamp\",\n", - " timestamp_format=\"yyyy-MM-dd\")\n", - "client.get_offline_features(observation_settings=settings,\n", - " feature_query=feature_query,\n", - " output_path=output_path)\n", - "client.wait_job_to_finish(timeout_sec=500)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Download the result and show the result\n", - "\n", - "Let's use the helper function `get_result_df` to download the result and view it:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def get_result_df(client: FeathrClient) -> pd.DataFrame:\n", - " \"\"\"Download the job result dataset from cloud as a Pandas dataframe.\"\"\"\n", - " res_url = client.get_job_result_uri(block=True, timeout_sec=600)\n", - " tmp_dir = tempfile.TemporaryDirectory()\n", - " client.feathr_spark_laucher.download_result(result_path=res_url, local_folder=tmp_dir.name)\n", - " dataframe_list = []\n", - " # assuming the result are in avro format\n", - " for file in glob.glob(os.path.join(tmp_dir.name, '*.avro')):\n", - " dataframe_list.append(pdx.read_avro(file))\n", - " vertical_concat_df = pd.concat(dataframe_list, axis=0)\n", - " tmp_dir.cleanup()\n", - " return vertical_concat_df\n", - "\n", - "df_res = get_result_df(client)\n", - "\n", - "df_res" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Train a machine learning model\n", - "After getting all the features, let's train a machine learning model with the converted feature by Feathr:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# drop non-feature columns\n", - "from sklearn.ensemble import GradientBoostingRegressor\n", - "final_df = df_res\n", - "final_df.drop([\"event_timestamp\"], axis=1, inplace=True, errors='ignore')\n", - "final_df.fillna(0, inplace=True)\n", - "final_df['product_rating'] = final_df['product_rating'].astype(\"float64\")\n", - "\n", - "train_x, test_x, train_y, test_y = train_test_split(final_df.drop([\"product_rating\"], axis=1),\n", - " final_df[\"product_rating\"],\n", - " test_size=0.2,\n", - " random_state=42)\n", - "model = GradientBoostingRegressor()\n", - "model.fit(train_x, train_y)\n", - "\n", - "y_predict = model.predict(test_x)\n", - "\n", - "y_actual = test_y.values.flatten().tolist()\n", - "rmse = sqrt(mean_squared_error(y_actual, y_predict))\n", - "\n", - "sum_actuals = sum_errors = 0\n", - "\n", - "for actual_val, predict_val in zip(y_actual, y_predict):\n", - " abs_error = actual_val - predict_val\n", - " if abs_error < 0:\n", - " abs_error = abs_error * -1\n", - "\n", - " sum_errors = sum_errors + abs_error\n", - " sum_actuals = sum_actuals + actual_val\n", - "\n", - "mean_abs_percent_error = sum_errors / sum_actuals\n", - "print(\"Model MAPE:\")\n", - "print(mean_abs_percent_error)\n", - "print()\n", - "print(\"Model Accuracy:\")\n", - "print(1 - mean_abs_percent_error)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Materialize feature value into offline/online storage\n", - "\n", - "While Feathr can compute the feature value from the feature definition on-the-fly at request time, it can also pre-compute\n", - "and materialize the feature value to offline and/or online storage. \n", - "\n", - "We can push the generated features to the online store like below:\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "backfill_time = BackfillTime(start=datetime(\n", - " 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1))\n", - "redisSink = RedisSink(table_name=\"productRecommendationDemoFeature\")\n", - "settings = MaterializationSettings(\"productRecommendationFeatureSetting\",\n", - " backfill_time=backfill_time,\n", - " sinks=[redisSink],\n", - " feature_names=[\"feature_user_age\", \"feature_user_gift_card_balance\"])\n", - "\n", - "client.materialize_features(settings)\n", - "client.wait_job_to_finish(timeout_sec=500)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can then get the features from the online store (Redis):\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fetching feature value for online inference\n", - "\n", - "For features that are already materialized by the previous step, their latest value can be queried via the client's\n", - "`get_online_features` or `multi_get_online_features` API." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client.get_online_features('productRecommendationDemoFeature', '2', [\n", - " 'feature_user_age', 'feature_user_gift_card_balance'])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client.multi_get_online_features('productRecommendationDemoFeature', ['1', '2'], [\n", - " 'feature_user_age', 'feature_user_gift_card_balance'])\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Registering and Fetching features\n", - "\n", - "We can also register the features with an Apache Atlas compatible service, such as Azure Purview, and share the registered features across teams:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "client.register_features()\n", - "client.list_registered_features(project_name=\"feathr_getting_started\")" - ] - } - ], - "metadata": { - "interpreter": { - "hash": "b3c5d8fd79e029a19bf620c04a250a0cafa2291ba3ed87972a3e2a099b099985" - }, - "kernelspec": { - "display_name": "Python 3.9.12 ('product_env': venv)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feathr Feature Store on Azure Demo Notebook\n", + "\n", + "This notebook illustrates the use of Feature Store to create a model that predicts product ratings. It includes these steps:\n", + "\n", + "\n", + "This tutorial demonstrates the key capabilities of Feathr, including:\n", + "\n", + "1. Install and set up Feathr with Azure\n", + "2. Create shareable features with Feathr feature definition configs.\n", + "3. Create a training dataset via point-in-time feature join.\n", + "4. Compute and write features.\n", + "5. Train a model using these features to predict fares.\n", + "6. Materialize feature value to online store.\n", + "7. Fetch feature value in real-time from online store for online scoring.\n", + "\n", + "In this tutorial, we use Feathr Feature Store to create a model that predict users rating for a product. The feature flow is as below:\n", + "![Feature Flow](https://github.com/linkedin/feathr/blob/main/docs/images/product_recommendation_overview.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Use Quick Start Template to Provision Azure Resources\n", + "\n", + "Feathr has native cloud integration. To use Feathr on Azure, you only need three steps:\n", + "\n", + "- Get the `Principal ID` of your account by running `az ad signed-in-user show --query id -o tsv` in the link below (Select \"Bash\" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI.\n", + "\n", + "[Launch Cloud Shell](https://shell.azure.com/bash)\n", + "\n", + "- Click the button below to deploy a minimal set of Feathr resources for demo purpose. You will need to fill in the `Principal ID` and `Resource Prefix`. You will need \"Owner\" permission of the selected subscription.\n", + "\n", + "[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Flinkedin%2Ffeathr%2Fmain%2Fdocs%2Fhow-to-guides%2Fazure_resource_provision.json)\n", + "\n", + "- Run the cells below.\n", + "\n", + "And the architecture is as below. In the above template, we are using Synapse as Spark provider, use Azure Data Lake Gen2 as offline store, and use Redis as online store, Azure Purview (Apache Atlas compatible) as feature reigstry. \n", + "\n", + "\n", + "![Architecture](https://github.com/linkedin/feathr/blob/main/docs/images/architecture.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Install Feathr \n", + "\n", + "Install Feathr using pip:\n", + "\n", + "`pip install -U feathr pandavro scikit-learn`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Configure the required environment with Feathr Quick Start Template\n", + "\n", + "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. Run the code below to install Feathr, login to Azure to get the required credentials to access more cloud resources." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**REQUIRED STEP: Fill in the resource prefix when provisioning the resources**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "resource_prefix = \"feathr_resource_prefix\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! pip install feathr azure-cli pandavro scikit-learn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Login to Azure with a device code (You will see instructions in the output):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! az login --use-device-code" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import glob\n", + "import os\n", + "import tempfile\n", + "from datetime import datetime, timedelta\n", + "from math import sqrt\n", + "\n", + "import pandas as pd\n", + "import pandavro as pdx\n", + "from feathr import FeathrClient\n", + "from feathr import BOOLEAN, FLOAT, INT32, ValueType\n", + "from feathr import Feature, DerivedFeature, FeatureAnchor\n", + "from feathr import BackfillTime, MaterializationSettings\n", + "from feathr import FeatureQuery, ObservationSettings\n", + "from feathr import RedisSink\n", + "from feathr import INPUT_CONTEXT, HdfsSource\n", + "from feathr import WindowAggTransformation\n", + "from feathr import TypedKey\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import train_test_split\n", + "from azure.identity import DefaultAzureCredential\n", + "from azure.keyvault.secrets import SecretClient\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get all the required credentials from Azure KeyVault" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get all the required credentials from Azure Key Vault\n", + "key_vault_name=resource_prefix+\"kv\"\n", + "synapse_workspace_url=resource_prefix+\"syws\"\n", + "adls_account=resource_prefix+\"dls\"\n", + "adls_fs_name=resource_prefix+\"fs\"\n", + "purview_name=resource_prefix+\"purview\"\n", + "key_vault_uri = f\"https://{key_vault_name}.vault.azure.net\"\n", + "credential = DefaultAzureCredential(exclude_interactive_browser_credential=False)\n", + "client = SecretClient(vault_url=key_vault_uri, credential=credential)\n", + "secretName = \"FEATHR-ONLINE-STORE-CONN\"\n", + "retrieved_secret = client.get_secret(secretName).value\n", + "\n", + "# Get redis credentials; This is to parse Redis connection string.\n", + "redis_port=retrieved_secret.split(',')[0].split(\":\")[1]\n", + "redis_host=retrieved_secret.split(',')[0].split(\":\")[0]\n", + "redis_password=retrieved_secret.split(',')[1].split(\"password=\",1)[1]\n", + "redis_ssl=retrieved_secret.split(',')[2].split(\"ssl=\",1)[1]\n", + "\n", + "# Set the resource link\n", + "os.environ['spark_config__azure_synapse__dev_url'] = f'https://{synapse_workspace_url}.dev.azuresynapse.net'\n", + "os.environ['spark_config__azure_synapse__pool_name'] = 'spark31'\n", + "os.environ['spark_config__azure_synapse__workspace_dir'] = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_project'\n", + "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", + "os.environ['online_store__redis__host'] = redis_host\n", + "os.environ['online_store__redis__port'] = redis_port\n", + "os.environ['online_store__redis__ssl_enabled'] = redis_ssl\n", + "os.environ['REDIS_PASSWORD']=redis_password\n", + "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", + "feathr_output_path = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_output'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Configure the required environment (Don't need to update if using the above Quick Start Template)\n", + "\n", + "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. If you use Feathr CLI to create a workspace, you should have a folder with a file called `feathr_config.yaml` in it with all the required configurations. Otherwise, update the configuration below.\n", + "\n", + "The code below will write this configuration string to a temporary location and load it to Feathr. Please still refer to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It should also have more explanations on the meaning of each variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tempfile\n", + "yaml_config = \"\"\"\n", + "# Please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml for explanations on the meaning of each field.\n", + "api_version: 1\n", + "project_config:\n", + " project_name: 'feathr_getting_started'\n", + " required_environment_variables:\n", + " - 'REDIS_PASSWORD'\n", + " - 'AZURE_CLIENT_ID'\n", + " - 'AZURE_TENANT_ID'\n", + " - 'AZURE_CLIENT_SECRET'\n", + "offline_store:\n", + " adls:\n", + " adls_enabled: true\n", + " wasb:\n", + " wasb_enabled: true\n", + " s3:\n", + " s3_enabled: false\n", + " s3_endpoint: 's3.amazonaws.com'\n", + " jdbc:\n", + " jdbc_enabled: false\n", + " jdbc_database: 'feathrtestdb'\n", + " jdbc_table: 'feathrtesttable'\n", + " snowflake:\n", + " url: \"dqllago-ol19457.snowflakecomputing.com\"\n", + " user: \"feathrintegration\"\n", + " role: \"ACCOUNTADMIN\"\n", + "spark_config:\n", + " spark_cluster: 'azure_synapse'\n", + " spark_result_output_parts: '1'\n", + " azure_synapse:\n", + " dev_url: 'https://feathrazuretest3synapse.dev.azuresynapse.net'\n", + " pool_name: 'spark3'\n", + " workspace_dir: 'abfss://feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/feathr_getting_started'\n", + " executor_size: 'Small'\n", + " executor_num: 4\n", + " feathr_runtime_location: wasbs://public@azurefeathrstorage.blob.core.windows.net/feathr-assembly-LATEST.jar\n", + " databricks:\n", + " workspace_instance_url: 'https://adb-2474129336842816.16.azuredatabricks.net'\n", + " config_template: {'run_name':'','new_cluster':{'spark_version':'9.1.x-scala2.12','node_type_id':'Standard_D3_v2','num_workers':2,'spark_conf':{}},'libraries':[{'jar':''}],'spark_jar_task':{'main_class_name':'','parameters':['']}}\n", + " work_dir: 'dbfs:/feathr_getting_started'\n", + " feathr_runtime_location: https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar\n", + "online_store:\n", + " redis:\n", + " host: 'feathrazuretest3redis.redis.cache.windows.net'\n", + " port: 6380\n", + " ssl_enabled: True\n", + "feature_registry:\n", + " purview:\n", + " type_system_initialization: true\n", + " purview_name: 'feathrazuretest3-purview1'\n", + " delimiter: '__'\n", + "\"\"\"\n", + "tmp = tempfile.NamedTemporaryFile(mode='w', delete=False)\n", + "with open(tmp.name, \"w\") as text_file:\n", + " text_file.write(yaml_config)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup necessary environment variables (Skip if using the above Quick Start Template)\n", + "\n", + "You should setup the environment variables in order to run this sample. More environment variables can be set by referring to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It also has more explanations on the meaning of each variable.\n", + "\n", + "To run this notebook, for Azure users, you need AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET and REDIS_PASSWORD.\n", + "To run this notebook, for Databricks useres, you need DATABRICKS_WORKSPACE_TOKEN_VALUE and REDIS_PASSWORD." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Initialize Feathr Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client = FeathrClient(config_path=tmp.name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## View the data\n", + "\n", + "In this tutorial, we use Feathr Feature Store to create a model that predicts users product rating. To make it simple, let's just predict users' rating for one product. (We will expand the exmaple to predict ratings for arbitrary product in future tutorials.)\n", + "\n", + "We have 3 datasets to work with: one observation dataset(a.k.a. label dataset) and two raw datasets to generate features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Observation dataset(a.k.a. label dataset)\n", + "# Observation dataset usually comes with a event_timestamp to denote when the observation happened.\n", + "# The label here is product_rating. Our model objective is to predict a user's rating for this product.\n", + "import pandas as pd\n", + "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_observation_mock_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# User profile dataset\n", + "# Used to generate user features\n", + "import pandas as pd\n", + "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_profile_mock_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# User purchase history dataset.\n", + "# Used to generate user features. This is activity type data, so we need to use aggregation to genearte features.\n", + "import pandas as pd\n", + "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_purchase_history_mock_data.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Defining Features with Feathr\n", + "\n", + "In Feathr, a feature is viewed as a function, mapping from entity id or key, and timestamp to a feature value. For more details on feature definition, please refer to the [Feathr Feature Definition Guide](https://github.com/linkedin/feathr/blob/main/docs/concepts/feature-definition.md)\n", + "\n", + "\n", + "1. The typed key (a.k.a. entity id) identifies the subject of feature, e.g. a user id, 123.\n", + "2. The feature name is the aspect of the entity that the feature is indicating, e.g. the age of the user.\n", + "3. The feature value is the actual value of that aspect at a particular time, e.g. the value is 30 at year 2022.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note that, in some cases, such as features defined on top of request data, may have no entity key or timestamp.\n", + "It is merely a function/transformation executing against request data at runtime.\n", + "For example, the day of week of the request, which is calculated by converting the request UNIX timestamp.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Sources Section with UDFs\n", + "A feature source is needed for anchored features that describes the raw data in which the feature values are computed from. See the python documentation to get the details on each input column.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pyspark.sql import SparkSession, DataFrame\n", + "def feathr_udf_preprocessing(df: DataFrame) -> DataFrame:\n", + " from pyspark.sql.functions import col\n", + " df = df.withColumn(\"tax_rate_decimal\", col(\"tax_rate\")/100)\n", + " df.show(10)\n", + " return df\n", + "\n", + "batch_source = HdfsSource(name=\"userProfileData\",\n", + " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_profile_mock_data.csv\",\n", + " preprocessing=feathr_udf_preprocessing)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Anchors and Features\n", + "A feature is called an anchored feature when the feature is directly extracted from the source data, rather than computed on top of other features. The latter case is called derived feature." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "user_id = TypedKey(key_column=\"user_id\",\n", + " key_column_type=ValueType.INT32,\n", + " description=\"user id\",\n", + " full_name=\"product_recommendation.user_id\")\n", + "\n", + "feature_user_age = Feature(name=\"feature_user_age\",\n", + " key=user_id,\n", + " feature_type=INT32, transform=\"age\")\n", + "feature_user_tax_rate = Feature(name=\"feature_user_tax_rate\",\n", + " key=user_id,\n", + " feature_type=FLOAT,\n", + " transform=\"tax_rate_decimal\")\n", + "feature_user_gift_card_balance = Feature(name=\"feature_user_gift_card_balance\",\n", + " key=user_id,\n", + " feature_type=FLOAT,\n", + " transform=\"gift_card_balance\")\n", + "feature_user_has_valid_credit_card = Feature(name=\"feature_user_has_valid_credit_card\",\n", + " key=user_id,\n", + " feature_type=BOOLEAN,\n", + " transform=\"number_of_credit_cards > 0\")\n", + " \n", + "features = [\n", + " feature_user_age,\n", + " feature_user_tax_rate,\n", + " feature_user_gift_card_balance,\n", + " feature_user_has_valid_credit_card\n", + "]\n", + "\n", + "request_anchor = FeatureAnchor(name=\"anchored_features\",\n", + " source=batch_source,\n", + " features=features)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Window aggregation features\n", + "\n", + "For window aggregation features, see the supported fields below:\n", + "\n", + "Note that the `agg_func` should be any of these:\n", + "\n", + "| Aggregation Type | Input Type | Description |\n", + "| --- | --- | --- |\n", + "|SUM, COUNT, MAX, MIN, AVG\t|Numeric|Applies the the numerical operation on the numeric inputs. |\n", + "|MAX_POOLING, MIN_POOLING, AVG_POOLING\t| Numeric Vector | Applies the max/min/avg operation on a per entry bassis for a given a collection of numbers.|\n", + "|LATEST| Any |Returns the latest not-null values from within the defined time window |\n", + "\n", + "\n", + "After you have defined features and sources, bring them together to build an anchor:\n", + "\n", + "\n", + "Note that if the data source is from the observation data, the `source` section should be `INPUT_CONTEXT` to indicate the source of those defined anchors." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "purchase_history_data = HdfsSource(name=\"purchase_history_data\",\n", + " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_purchase_history_mock_data.csv\",\n", + " event_timestamp_column=\"purchase_date\",\n", + " timestamp_format=\"yyyy-MM-dd\")\n", + " \n", + "agg_features = [Feature(name=\"feature_user_totla_purchase_in_90days\",\n", + " key=user_id,\n", + " feature_type=FLOAT,\n", + " transform=WindowAggTransformation(agg_expr=\"cast_float(purchase_amount)\",\n", + " agg_func=\"AVG\",\n", + " window=\"90d\"))\n", + " ]\n", + "\n", + "agg_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n", + " source=purchase_history_data,\n", + " features=agg_features)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Derived Features Section\n", + "Derived features are the features that are computed from other features. They could be computed from anchored features, or other derived features." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "feature_user_purchasing_power = DerivedFeature(name=\"feature_user_purchasing_power\",\n", + " key=user_id,\n", + " feature_type=FLOAT,\n", + " input_features=[\n", + " feature_user_gift_card_balance, feature_user_has_valid_credit_card],\n", + " transform=\"feature_user_gift_card_balance + if_else(feature_user_has_valid_credit_card, 100, 0)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then we need to build those features so that it can be consumed later. Note that we have to build both the \"anchor\" and the \"derived\" features (which is not anchored to a source)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.build_features(anchor_list=[agg_anchor, request_anchor], derived_feature_list=[\n", + " feature_user_purchasing_power])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create training data using point-in-time correct feature join\n", + "\n", + "A training dataset usually contains entity id columns, multiple feature columns, event timestamp column and label/target column. \n", + "\n", + "To create a training dataset using Feathr, one needs to provide a feature join configuration file to specify\n", + "what features and how these features should be joined to the observation data. \n", + "\n", + "To learn more on this topic, please refer to [Point-in-time Correctness](https://github.com/linkedin/feathr/blob/main/docs/concepts/point-in-time-join.md)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if client.spark_runtime == 'databricks':\n", + " output_path = 'dbfs:/feathrazure_test.avro'\n", + "else:\n", + " output_path = feathr_output_path\n", + "\n", + "\n", + "feature_query = FeatureQuery(\n", + " feature_list=[\"feature_user_age\", \n", + " \"feature_user_tax_rate\", \n", + " \"feature_user_gift_card_balance\", \n", + " \"feature_user_has_valid_credit_card\", \n", + " \"feature_user_totla_purchase_in_90days\",\n", + " \"feature_user_purchasing_power\"], key=user_id)\n", + "settings = ObservationSettings(\n", + " observation_path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_observation_mock_data.csv\",\n", + " event_timestamp_column=\"event_timestamp\",\n", + " timestamp_format=\"yyyy-MM-dd\")\n", + "client.get_offline_features(observation_settings=settings,\n", + " feature_query=feature_query,\n", + " output_path=output_path)\n", + "client.wait_job_to_finish(timeout_sec=500)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download the result and show the result\n", + "\n", + "Let's use the helper function `get_result_df` to download the result and view it:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_result_df(client: FeathrClient) -> pd.DataFrame:\n", + " \"\"\"Download the job result dataset from cloud as a Pandas dataframe.\"\"\"\n", + " res_url = client.get_job_result_uri(block=True, timeout_sec=600)\n", + " tmp_dir = tempfile.TemporaryDirectory()\n", + " client.feathr_spark_laucher.download_result(result_path=res_url, local_folder=tmp_dir.name)\n", + " dataframe_list = []\n", + " # assuming the result are in avro format\n", + " for file in glob.glob(os.path.join(tmp_dir.name, '*.avro')):\n", + " dataframe_list.append(pdx.read_avro(file))\n", + " vertical_concat_df = pd.concat(dataframe_list, axis=0)\n", + " tmp_dir.cleanup()\n", + " return vertical_concat_df\n", + "\n", + "df_res = get_result_df(client)\n", + "\n", + "df_res" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train a machine learning model\n", + "After getting all the features, let's train a machine learning model with the converted feature by Feathr:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# drop non-feature columns\n", + "from sklearn.ensemble import GradientBoostingRegressor\n", + "final_df = df_res\n", + "final_df.drop([\"event_timestamp\"], axis=1, inplace=True, errors='ignore')\n", + "final_df.fillna(0, inplace=True)\n", + "final_df['product_rating'] = final_df['product_rating'].astype(\"float64\")\n", + "\n", + "train_x, test_x, train_y, test_y = train_test_split(final_df.drop([\"product_rating\"], axis=1),\n", + " final_df[\"product_rating\"],\n", + " test_size=0.2,\n", + " random_state=42)\n", + "model = GradientBoostingRegressor()\n", + "model.fit(train_x, train_y)\n", + "\n", + "y_predict = model.predict(test_x)\n", + "\n", + "y_actual = test_y.values.flatten().tolist()\n", + "rmse = sqrt(mean_squared_error(y_actual, y_predict))\n", + "\n", + "sum_actuals = sum_errors = 0\n", + "\n", + "for actual_val, predict_val in zip(y_actual, y_predict):\n", + " abs_error = actual_val - predict_val\n", + " if abs_error < 0:\n", + " abs_error = abs_error * -1\n", + "\n", + " sum_errors = sum_errors + abs_error\n", + " sum_actuals = sum_actuals + actual_val\n", + "\n", + "mean_abs_percent_error = sum_errors / sum_actuals\n", + "print(\"Model MAPE:\")\n", + "print(mean_abs_percent_error)\n", + "print()\n", + "print(\"Model Accuracy:\")\n", + "print(1 - mean_abs_percent_error)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Materialize feature value into offline/online storage\n", + "\n", + "While Feathr can compute the feature value from the feature definition on-the-fly at request time, it can also pre-compute\n", + "and materialize the feature value to offline and/or online storage. \n", + "\n", + "We can push the generated features to the online store like below:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "backfill_time = BackfillTime(start=datetime(\n", + " 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1))\n", + "redisSink = RedisSink(table_name=\"productRecommendationDemoFeature\")\n", + "settings = MaterializationSettings(\"productRecommendationFeatureSetting\",\n", + " backfill_time=backfill_time,\n", + " sinks=[redisSink],\n", + " feature_names=[\"feature_user_age\", \"feature_user_gift_card_balance\"])\n", + "\n", + "client.materialize_features(settings)\n", + "client.wait_job_to_finish(timeout_sec=500)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then get the features from the online store (Redis):\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fetching feature value for online inference\n", + "\n", + "For features that are already materialized by the previous step, their latest value can be queried via the client's\n", + "`get_online_features` or `multi_get_online_features` API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.get_online_features('productRecommendationDemoFeature', '2', [\n", + " 'feature_user_age', 'feature_user_gift_card_balance'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.multi_get_online_features('productRecommendationDemoFeature', ['1', '2'], [\n", + " 'feature_user_age', 'feature_user_gift_card_balance'])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Registering and Fetching features\n", + "\n", + "We can also register the features with an Apache Atlas compatible service, such as Azure Purview, and share the registered features across teams:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.register_features()\n", + "client.list_registered_features(project_name=\"feathr_getting_started\")" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "b3c5d8fd79e029a19bf620c04a250a0cafa2291ba3ed87972a3e2a099b099985" + }, + "kernelspec": { + "display_name": "Python 3.9.12 ('product_env': venv)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 } From d0121ce21a3fbbcbc072bb6f7a859156ff048113 Mon Sep 17 00:00:00 2001 From: Hangfei Lin Date: Tue, 14 Jun 2022 12:42:30 -0700 Subject: [PATCH 17/18] [feathr] Add product_recommendation advanced sample (#348) --- docs/images/product_recommendation.jpg | Bin 0 -> 832816 bytes .../product_recommendation_advanced.jpg | Bin 0 -> 1163669 bytes .../udf/_preprocessing_pyudf_manager.py | 8 +- .../product_detail_mock_data.csv | 11 + .../user_observation_mock_data.csv | 46 +- ...product_recommendation_demo_advanced.ipynb | 850 ++++++++++++++++++ 6 files changed, 900 insertions(+), 15 deletions(-) create mode 100644 docs/images/product_recommendation.jpg create mode 100644 docs/images/product_recommendation_advanced.jpg create mode 100644 feathr_project/feathrcli/data/feathr_user_workspace/mockdata/feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/product_recommendation_sample/product_detail_mock_data.csv create mode 100644 feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo_advanced.ipynb diff --git a/docs/images/product_recommendation.jpg b/docs/images/product_recommendation.jpg new file mode 100644 index 0000000000000000000000000000000000000000..29b0ad6e7c9eab8edc9336788dc42e6d74cf6c9e GIT binary patch literal 832816 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 z z!hDs}&`<7P*)&`y`Yb)USC(?Yu3#i{f{+%zT<@3%^PWj>^DWk!$xs(V(m37ewxcsh zlGv0G&3)7I^2+@$+Bz4y;R${>Fi^loJ41s_yozUv@7}MeSKkmqhd+AOHTxtMq6>6zU!Ii9C$;}q??(u^yM=S5^zB1{;~ zoCXYZpP)xZcKmy;o^oe%&E{9cq^(wE>`XvP5H0Z^H|>YYVe0`4mSSt}YiVlIyWBKS zw%o?(r^TZ_wP3y#nQZK~d`DjBoDh0_iPnc#ILFZALh;9^+*{>Da&}Mr4L|3)XKP!q z0X@oazl5{w2()?y%4D;SsCWp{uLCGPdNuKz3wjCh_Kw`vE5HVT`Jf4RYW`l~w`GBI}o>+GZYp!SF+ zDn9_dN$&GOX1`ke9uzs3L zYNBsRbk5~2Y_lKik5qrDr#0Z4Uih2TyTCHre%&s>TZ#3-LW$Lg<;RQ!d=qL@7)Xjl zLJo8xI^Bp#Ang%Ex=pwZ6dW8B5sdy^v5>%9Ozw*com042Ev!MTD5t4f|eXmOCyz_aV ziy%#oBJ~b==U#{R^-N07nsmnQWM>I3vsj54a!26vp_Psevdv5>Bxf2Q`o{LEq$H7)^)i7%wCnMqZ2xlTH>mPCGenj?!V zPyX}tUXcdBJw=C9hq*|rmTYlv@pkVxbS^mEwZv?~$m!}^n(MQJCdT

Lh$x|VPZu2D1CVlfX|EO-4 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%0DgH_1SvWpzEXA%)tqtm8+ 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 literal 0 HcmV?d00001 diff --git a/docs/images/product_recommendation_advanced.jpg b/docs/images/product_recommendation_advanced.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9f7e56fc4fb371b9a76b12db9c0f59a66000df30 GIT binary patch literal 1163669 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­>4(_p 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 z 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%0AVwlTjhvu+ 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

Enx4Xlw$%iM?dFR!51XD|lu0~T6n!>I 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

mAN*7QKs4h?=LIP; z{sXsTRbG(wccNIawSU4uM^sN{sq=*Fv4Wp*mEl&J&a(s!#s$CHEZIM2-zEltscNd0c0)|Bf<$5j$)VN%7d?VpdLB=LSbqyzMw~=lOnAPizLaPmp063iVL{f0uVgRZsKdnUbA?p6SR`JyXWmwj zeCvMI%`V&U`2x}T`> zl?7gAAbfWHRnj;Sd=pGhSbFq);y~PNLP@7 zGJgQwDXc<&VD$o15p9UYtgf!AWQ6{(YMsbJ`khpV^RkfBzpe=)A{KK#2J}0Pu4??# zVn^L-C|-xb=?bdr8R6}VQJlh*!qxWvuEY7~u|@jAkwC<5x58aLvr4?E{bJTP%1dwS zbGaRBu2EJM#jgeHV>v*KjQDk>2^#~BwG2T~C~m*G)CJ`luXYntW35}9tQ7M`k3?(t znnlcNn@%P-mwn6y(&ZVF6Q!%Fq|fuMU+k^)ftYT>iL7h55BOq&BvAr02#Ao*w)Hba z?TYTE?8Z;oYIh|2?5{AZ+b!>Di&mY9UK6}{oL4qz5Up^!g83Sg(3Fs8+o>g5glG-Q z+s*sDA(B1PJ2Ipt5=$!V;UaS53sz`kJ(60GZo@GvZ-va|6xlDm&plJVBO`qYMfZ@+ zR!7iB(D2`JIQpvlf{K0I&x?PM&c$kJ30sc*uA1XoK;}RSi#CuZ-|Cur6;r4P>5!~L_RMc#xg zGFju{?#r+7-!ld1oD`l3lLE=W**+5Y0$(P3&uFTzW8Q?C>Y|*1o=W?t; zs_cTjbhx6GK6xtNJG9|sKs{|wi8uWtLC}}Ly{<(b=sm|HB<7i2E&lO)0{CDb-37zvQ@nBvcOet&nhNz8CSUI5C zR{Gjff#!kfPZ!nao2|BW#&b4q)Zf1NMnMpezTwxPEkL^$D}t-VqdqzXniRj3c;)to zeX0vqyfE^aDz+g&>fS^I<+$R>XZgFoelUE$K8wN_0R23@`X)e7d%jookR8d_!+J>v(HA%fV+FeQUm9nqa3t9nqpPMqs{6uXJL z-c7?xTZ!v)6*I1`u0i$-?(a>JUHwBS-q7o1d(OZ>gIfe~O7t-kVVVZXL-dsovKpoQm2D zSn+ec%hXffs@L>=`_=2Y15Ts9nAAIxPRvdJ6f(SvKlwR@YbIq&91LYUU_JUW7VG

>yi>8F$^ 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 Crs!b+ literal 0 HcmV?d00001 diff --git a/feathr_project/feathr/udf/_preprocessing_pyudf_manager.py b/feathr_project/feathr/udf/_preprocessing_pyudf_manager.py index 183c727da..70341b339 100644 --- a/feathr_project/feathr/udf/_preprocessing_pyudf_manager.py +++ b/feathr_project/feathr/udf/_preprocessing_pyudf_manager.py @@ -52,7 +52,7 @@ def build_anchor_preprocessing_metadata(anchor_list, local_workspace_dir): feature_names_to_func_mapping[string_feature_list] = _PreprocessingPyudfManager._parse_function_str_for_name(anchor.source.preprocessing) else: # it's a callable function - feature_names_to_func_mapping[string_feature_list] = anchor.source.preprocessing.__name__ + feature_names_to_func_mapping[string_feature_list] = anchor.source.preprocessing.__name__ if not features_with_preprocessing: return @@ -87,9 +87,9 @@ def _parse_function_str_for_name(source: str) -> str: @staticmethod def persist_pyspark_udf_to_file(user_func, local_workspace_dir): - """persist the pyspark UDF to a file in `local_workspace_dir` for later usage. - The user_func could be either a string that represents a function body, or a callable object. - The reason being - if we are defining a regular Python function, it will be a callable object; + """persist the pyspark UDF to a file in `local_workspace_dir` for later usage. + The user_func could be either a string that represents a function body, or a callable object. + The reason being - if we are defining a regular Python function, it will be a callable object; however if we reterive features from registry, the current implementation is to use plain strings to store the function body. In that case, the user_fuc will be string. """ if isinstance(user_func, str): diff --git a/feathr_project/feathrcli/data/feathr_user_workspace/mockdata/feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/product_recommendation_sample/product_detail_mock_data.csv b/feathr_project/feathrcli/data/feathr_user_workspace/mockdata/feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/product_recommendation_sample/product_detail_mock_data.csv new file mode 100644 index 000000000..476ea06f3 --- /dev/null +++ b/feathr_project/feathrcli/data/feathr_user_workspace/mockdata/feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/product_recommendation_sample/product_detail_mock_data.csv @@ -0,0 +1,11 @@ +product_id,category,price,quantity,recent_sold,made_in_state,discount +1,1,22,100,0,CA,7.5 +2,2,17,300,1,CA,7.5 +3,1,40,0,2,WA,7.5 +4,1,25,100,3,WA,7.5 +5,1,33,0,2,PA,0 +6,2,19,0,2,CA,7.5 +7,2,22,200,1,WA,7.5 +8,2,59,300,0,PA,8.5 +9,0,80,100,1,WA,8.5 +10,0,39,100,0,WA,7.5 \ No newline at end of file diff --git a/feathr_project/feathrcli/data/feathr_user_workspace/mockdata/feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/product_recommendation_sample/user_observation_mock_data.csv b/feathr_project/feathrcli/data/feathr_user_workspace/mockdata/feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/product_recommendation_sample/user_observation_mock_data.csv index b180b2825..38fe25ceb 100644 --- a/feathr_project/feathrcli/data/feathr_user_workspace/mockdata/feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/product_recommendation_sample/user_observation_mock_data.csv +++ b/feathr_project/feathrcli/data/feathr_user_workspace/mockdata/feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/product_recommendation_sample/user_observation_mock_data.csv @@ -1,11 +1,35 @@ -user_id,event_timestamp,product_rating -1,2021-04-01,4 -2,2021-04-01,5 -3,2021-04-01,5 -4,2021-04-01,1 -5,2021-04-01,5 -6,2021-04-01,2 -7,2021-04-01,5 -8,2021-04-01,2 -9,2021-04-01,5 -10,2021-04-01,3 \ No newline at end of file +user_id,product_id,event_timestamp,product_rating +1,1,2021-04-01,4 +1,2,2021-04-01,4 +1,3,2021-04-01,4 +1,4,2021-04-01,4 +1,5,2021-04-01,4 +2,1,2021-04-01,5 +2,2,2021-04-01,5 +2,3,2021-04-01,5 +2,4,2021-04-01,5 +2,5,2021-04-01,5 +3,1,2021-04-01,5 +3,2,2021-04-01,5 +3,3,2021-04-01,5 +3,4,2021-04-01,5 +3,5,2021-04-01,5 +4,1,2021-04-01,1 +4,2,2021-04-01,1 +4,3,2021-04-01,1 +4,4,2021-04-01,1 +4,5,2021-04-01,1 +5,1,2021-04-01,5 +5,2,2021-04-01,5 +6,1,2021-04-01,2 +7,1,2021-04-01,5 +7,2,2021-04-01,5 +7,3,2021-04-01,5 +8,1,2021-04-01,2 +8,2,2021-04-01,2 +8,3,2021-04-01,2 +9,1,2021-04-01,5 +9,2,2021-04-01,5 +9,3,2021-04-01,5 +9,4,2021-04-01,5 +10,1,2021-04-01,3 \ No newline at end of file diff --git a/feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo_advanced.ipynb b/feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo_advanced.ipynb new file mode 100644 index 000000000..a381529b8 --- /dev/null +++ b/feathr_project/feathrcli/data/feathr_user_workspace/product_recommendation_demo_advanced.ipynb @@ -0,0 +1,850 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Feathr Feature Store on Azure Demo Notebook\n", + "\n", + "This notebook illustrates the use of Feathr Feature Store to create a model that predict users' rating for different products for a e-commerce website.\n", + "\n", + "## Model Problem Statement\n", + "The e-commerce website has collected past user ratings for various products. The websie also collected data about user and product, like user age, product category etc. Now we want to predict users' product rating for new product so that we can recommend the new product to users that give a high rating for those products.\n", + "\n", + "After the model is trained, given a user_id, product_id pair and features, we should be able to predict the product rating that the user will give for this product_id.\n", + "\n", + "(Compared with [the beginner version of product recommendation](product_recommendation_demo.ipynb), this tutorial expanded the example by predicting ratings for all products.)\n", + "\n", + "## Feature Creation Illustration\n", + "In this example, our observation data has compound entity key where a record is uniquely identified by user_id and product_id. So there might be 3 types of features:\n", + "* User features that are different for different users but are the same for different products. For example, user age is different for different users but it's the same for all products(or it's product-agnostic).\n", + "* Product features that are different for different products but are the same for different users.\n", + "* User-to-product features that are different for different users AND different products. For example, a feature to represent if the user has bought this product before or not.\n", + "\n", + "We will focus on the first two in our example.\n", + "\n", + "The feature creation flow is as below:\n", + "![Feature Flow](https://github.com/linkedin/feathr/blob/main/docs/images/product_recommendation_advanced.jpg?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Use Quick Start Template to Provision Azure Resources\n", + "\n", + "Feathr has native cloud integration. To use Feathr on Azure, you only need three steps:\n", + "\n", + "- Get the `Principal ID` of your account by running `az ad signed-in-user show --query objectId -o tsv` in the link below (Select \"Bash\" if asked), and write down that value (something like `b65ef2e0-42b8-44a7-9b55-abbccddeefff`). Think this ID as something representing you when accessing Azure, and it will be used to grant permissions in the next step in the UI.\n", + "\n", + "[Launch Cloud Shell](https://shell.azure.com/bash)\n", + "\n", + "- Click the button below to deploy a minimal set of Feathr resources for demo purpose. You will need to fill in the `Principal ID` and `Resource Prefix`. You will need \"Owner\" permission of the selected subscription.\n", + "\n", + "[![Deploy to Azure](https://aka.ms/deploytoazurebutton)](https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2Flinkedin%2Ffeathr%2Fmain%2Fdocs%2Fhow-to-guides%2Fazure_resource_provision.json)\n", + "\n", + "- Run the cells below.\n", + "\n", + "And the architecture is as below. In the above template, we are using Synapse as Spark provider, use Azure Data Lake Gen2 as offline store, and use Redis as online store, Azure Purview (Apache Atlas compatible) as feature reigstry. \n", + "\n", + "\n", + "![Architecture](https://github.com/linkedin/feathr/blob/main/docs/images/architecture.png?raw=true)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Install Feathr \n", + "\n", + "Install Feathr using pip:\n", + "\n", + "`pip install -U feathr pandavro scikit-learn`" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Configure the required environment with Feathr Quick Start Template\n", + "\n", + "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. Run the code below to install Feathr, login to Azure to get the required credentials to access more cloud resources." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**REQUIRED STEP: Fill in the resource prefix when provisioning the resources**" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "resource_prefix = \"feathr_resource_prefix\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! pip install feathr azure-cli pandavro scikit-learn" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Login to Azure with a device code (You will see instructions in the output):" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "! az login --use-device-code" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import glob\n", + "import os\n", + "import tempfile\n", + "from datetime import datetime, timedelta\n", + "from math import sqrt\n", + "\n", + "import pandas as pd\n", + "import pandavro as pdx\n", + "from feathr import FeathrClient\n", + "from feathr import BOOLEAN, FLOAT, INT32, ValueType\n", + "from feathr import Feature, DerivedFeature, FeatureAnchor\n", + "from feathr import BackfillTime, MaterializationSettings\n", + "from feathr import FeatureQuery, ObservationSettings\n", + "from feathr import RedisSink\n", + "from feathr import INPUT_CONTEXT, HdfsSource\n", + "from feathr import WindowAggTransformation\n", + "from feathr import TypedKey\n", + "from sklearn.metrics import mean_squared_error\n", + "from sklearn.model_selection import train_test_split\n", + "from azure.identity import DefaultAzureCredential\n", + "from azure.keyvault.secrets import SecretClient\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Get all the required credentials from Azure KeyVault" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Get all the required credentials from Azure Key Vault\n", + "key_vault_name=resource_prefix+\"kv\"\n", + "synapse_workspace_url=resource_prefix+\"syws\"\n", + "adls_account=resource_prefix+\"dls\"\n", + "adls_fs_name=resource_prefix+\"fs\"\n", + "purview_name=resource_prefix+\"purview\"\n", + "key_vault_uri = f\"https://{key_vault_name}.vault.azure.net\"\n", + "credential = DefaultAzureCredential(exclude_interactive_browser_credential=False)\n", + "client = SecretClient(vault_url=key_vault_uri, credential=credential)\n", + "secretName = \"FEATHR-ONLINE-STORE-CONN\"\n", + "retrieved_secret = client.get_secret(secretName).value\n", + "\n", + "# Get redis credentials; This is to parse Redis connection string.\n", + "redis_port=retrieved_secret.split(',')[0].split(\":\")[1]\n", + "redis_host=retrieved_secret.split(',')[0].split(\":\")[0]\n", + "redis_password=retrieved_secret.split(',')[1].split(\"password=\",1)[1]\n", + "redis_ssl=retrieved_secret.split(',')[2].split(\"ssl=\",1)[1]\n", + "\n", + "# Set the resource link\n", + "os.environ['spark_config__azure_synapse__dev_url'] = f'https://{synapse_workspace_url}.dev.azuresynapse.net'\n", + "os.environ['spark_config__azure_synapse__pool_name'] = 'spark31'\n", + "os.environ['spark_config__azure_synapse__workspace_dir'] = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_project'\n", + "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", + "os.environ['online_store__redis__host'] = redis_host\n", + "os.environ['online_store__redis__port'] = redis_port\n", + "os.environ['online_store__redis__ssl_enabled'] = redis_ssl\n", + "os.environ['REDIS_PASSWORD']=redis_password\n", + "os.environ['feature_registry__purview__purview_name'] = f'{purview_name}'\n", + "feathr_output_path = f'abfss://{adls_fs_name}@{adls_account}.dfs.core.windows.net/feathr_output'" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisite: Configure the required environment (Don't need to update if using the above Quick Start Template)\n", + "\n", + "In the first step (Provision cloud resources), you should have provisioned all the required cloud resources. If you use Feathr CLI to create a workspace, you should have a folder with a file called `feathr_config.yaml` in it with all the required configurations. Otherwise, update the configuration below.\n", + "\n", + "The code below will write this configuration string to a temporary location and load it to Feathr. Please still refer to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It should also have more explanations on the meaning of each variable." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import tempfile\n", + "yaml_config = \"\"\"\n", + "# Please refer to https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml for explanations on the meaning of each field.\n", + "api_version: 1\n", + "project_config:\n", + " project_name: 'feathr_getting_started'\n", + " required_environment_variables:\n", + " - 'REDIS_PASSWORD'\n", + " - 'AZURE_CLIENT_ID'\n", + " - 'AZURE_TENANT_ID'\n", + " - 'AZURE_CLIENT_SECRET'\n", + "offline_store:\n", + " adls:\n", + " adls_enabled: true\n", + " wasb:\n", + " wasb_enabled: true\n", + " s3:\n", + " s3_enabled: false\n", + " s3_endpoint: 's3.amazonaws.com'\n", + " jdbc:\n", + " jdbc_enabled: false\n", + " jdbc_database: 'feathrtestdb'\n", + " jdbc_table: 'feathrtesttable'\n", + " snowflake:\n", + " url: \"dqllago-ol19457.snowflakecomputing.com\"\n", + " user: \"feathrintegration\"\n", + " role: \"ACCOUNTADMIN\"\n", + "spark_config:\n", + " spark_cluster: 'azure_synapse'\n", + " spark_result_output_parts: '1'\n", + " azure_synapse:\n", + " dev_url: 'https://feathrazuretest3synapse.dev.azuresynapse.net'\n", + " pool_name: 'spark3'\n", + " workspace_dir: 'abfss://feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/feathr_getting_started'\n", + " executor_size: 'Small'\n", + " executor_num: 4\n", + " feathr_runtime_location: wasbs://public@azurefeathrstorage.blob.core.windows.net/feathr-assembly-LATEST.jar\n", + " databricks:\n", + " workspace_instance_url: 'https://adb-2474129336842816.16.azuredatabricks.net'\n", + " config_template: {'run_name':'','new_cluster':{'spark_version':'9.1.x-scala2.12','node_type_id':'Standard_D3_v2','num_workers':2,'spark_conf':{}},'libraries':[{'jar':''}],'spark_jar_task':{'main_class_name':'','parameters':['']}}\n", + " work_dir: 'dbfs:/feathr_getting_started'\n", + " feathr_runtime_location: https://azurefeathrstorage.blob.core.windows.net/public/feathr-assembly-LATEST.jar\n", + "online_store:\n", + " redis:\n", + " host: 'feathrazuretest3redis.redis.cache.windows.net'\n", + " port: 6380\n", + " ssl_enabled: True\n", + "feature_registry:\n", + " purview:\n", + " type_system_initialization: true\n", + " purview_name: 'feathrazuretest3-purview1'\n", + " delimiter: '__'\n", + "\"\"\"\n", + "tmp = tempfile.NamedTemporaryFile(mode='w', delete=False)\n", + "with open(tmp.name, \"w\") as text_file:\n", + " text_file.write(yaml_config)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Setup necessary environment variables (Skip if using the above Quick Start Template)\n", + "\n", + "You should setup the environment variables in order to run this sample. More environment variables can be set by referring to [feathr_config.yaml](https://github.com/linkedin/feathr/blob/main/feathr_project/feathrcli/data/feathr_user_workspace/feathr_config.yaml) and use that as the source of truth. It also has more explanations on the meaning of each variable.\n", + "\n", + "To run this notebook, for Azure users, you need AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET and REDIS_PASSWORD.\n", + "To run this notebook, for Databricks useres, you need DATABRICKS_WORKSPACE_TOKEN_VALUE and REDIS_PASSWORD." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Initialize Feathr Client" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client = FeathrClient(config_path=tmp.name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Explore the raw source data\n", + "We have 4 datasets to work with: one observation dataset(a.k.a. label dataset), two raw datasets to generate features for users, one raw datasets to generate features for product." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Observation dataset(a.k.a. label dataset)\n", + "# Observation dataset usually comes with a event_timestamp to denote when the observation happened.\n", + "# The label here is product_rating. Our model objective is to predict a user's rating for this product.\n", + "import pandas as pd\n", + "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_observation_mock_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# User profile dataset\n", + "# Used to generate user features\n", + "import pandas as pd\n", + "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_profile_mock_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# User purchase history dataset.\n", + "# Used to generate user features. This is activity type data, so we need to use aggregation to genearte features.\n", + "import pandas as pd\n", + "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/user_purchase_history_mock_data.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Product detail dataset.\n", + "# Used to generate product features.\n", + "import pandas as pd\n", + "pd.read_csv(\"https://azurefeathrstorage.blob.core.windows.net/public/sample_data/product_recommendation_sample/product_detail_mock_data.csv\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Defining Features with Feathr\n", + "Let's try to create features from those raw source data.\n", + "In Feathr, a feature is viewed as a function, mapping from entity id or key, and timestamp to a feature value. For more details on feature definition, please refer to the [Feathr Feature Definition Guide](https://github.com/linkedin/feathr/blob/main/docs/concepts/feature-definition.md)\n", + "\n", + "\n", + "1. The typed key (a.k.a. entity key) identifies the subject of feature, e.g. a user id, 123.\n", + "2. The feature name is the aspect of the entity that the feature is indicating, e.g. the age of the user.\n", + "3. The feature value is the actual value of that aspect at a particular time, e.g. the value is 30 at year 2022.\n", + "4. The timestamp indicates when the event happened. For example, the user purchased certain product on a certain timestamp. This is usually used for point-in-time join." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Note: in some cases, such as features defined on top of request data, may have no entity key or timestamp.\n", + "It is merely a function/transformation executing against request data at runtime.\n", + "For example, the day of week of the request, which is calculated by converting the request UNIX timestamp.\n", + "(We won't cover this in the tutorial.)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Define Sources Section with UDFs\n", + "\n", + "#### Define Anchors and Features\n", + "A feature is called an anchored feature when the feature is directly extracted from the source data, rather than computed on top of other features. The latter case is called derived feature.\n", + "\n", + "#### Feature source\n", + "A feature source is needed for anchored features that describes the raw data in which the feature values are computed from. See the python documentation to get the details on each input column.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pyspark.sql import SparkSession, DataFrame\n", + "def feathr_udf_preprocessing(df: DataFrame) -> DataFrame:\n", + " from pyspark.sql.functions import col\n", + " df = df.withColumn(\"tax_rate_decimal\", col(\"tax_rate\")/100)\n", + " df.show(10)\n", + " return df\n", + "\n", + "batch_source = HdfsSource(name=\"userProfileData\",\n", + " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_profile_mock_data.csv\",\n", + " preprocessing=feathr_udf_preprocessing)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Let's define some features for users so our recommendation can be customized for users.\n", + "user_id = TypedKey(key_column=\"user_id\",\n", + " key_column_type=ValueType.INT32,\n", + " description=\"user id\",\n", + " full_name=\"product_recommendation.user_id\")\n", + "\n", + "feature_user_age = Feature(name=\"feature_user_age\",\n", + " key=user_id,\n", + " feature_type=INT32, transform=\"age\")\n", + "feature_user_tax_rate = Feature(name=\"feature_user_tax_rate\",\n", + " key=user_id,\n", + " feature_type=FLOAT,\n", + " transform=\"tax_rate_decimal\")\n", + "feature_user_gift_card_balance = Feature(name=\"feature_user_gift_card_balance\",\n", + " key=user_id,\n", + " feature_type=FLOAT,\n", + " transform=\"gift_card_balance\")\n", + "feature_user_has_valid_credit_card = Feature(name=\"feature_user_has_valid_credit_card\",\n", + " key=user_id,\n", + " feature_type=BOOLEAN,\n", + " transform=\"number_of_credit_cards > 0\")\n", + " \n", + "features = [\n", + " feature_user_age,\n", + " feature_user_tax_rate,\n", + " feature_user_gift_card_balance,\n", + " feature_user_has_valid_credit_card\n", + "]\n", + "\n", + "user_feature_anchor = FeatureAnchor(name=\"anchored_features\",\n", + " source=batch_source,\n", + " features=features)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Let's define some features for the products so our recommendation can be customized for proudcts.\n", + "product_batch_source = HdfsSource(name=\"productProfileData\",\n", + " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/product_detail_mock_data.csv\")\n", + "\n", + "product_id = TypedKey(key_column=\"product_id\",\n", + " key_column_type=ValueType.INT32,\n", + " description=\"product id\",\n", + " full_name=\"product_recommendation.product_id\")\n", + "\n", + "feature_product_quantity = Feature(name=\"feature_product_quantity\",\n", + " key=product_id,\n", + " feature_type=FLOAT, \n", + " transform=\"quantity\")\n", + "feature_product_price = Feature(name=\"feature_product_price\",\n", + " key=product_id,\n", + " feature_type=FLOAT,\n", + " transform=\"price\")\n", + " \n", + "product_features = [\n", + " feature_product_quantity,\n", + " feature_product_price\n", + "]\n", + "\n", + "product_anchor = FeatureAnchor(name=\"product_anchored_features\",\n", + " source=product_batch_source,\n", + " features=product_features)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Window aggregation features\n", + "\n", + "For window aggregation features, see the supported fields below:\n", + "\n", + "Note that the `agg_func` should be any of these:\n", + "\n", + "| Aggregation Type | Input Type | Description |\n", + "| --- | --- | --- |\n", + "|SUM, COUNT, MAX, MIN, AVG\t|Numeric|Applies the the numerical operation on the numeric inputs. |\n", + "|MAX_POOLING, MIN_POOLING, AVG_POOLING\t| Numeric Vector | Applies the max/min/avg operation on a per entry bassis for a given a collection of numbers.|\n", + "|LATEST| Any |Returns the latest not-null values from within the defined time window |\n", + "\n", + "\n", + "After you have defined features and sources, bring them together to build an anchor:\n", + "\n", + "\n", + "Note that if the data source is from the observation data, the `source` section should be `INPUT_CONTEXT` to indicate the source of those defined anchors." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "purchase_history_data = HdfsSource(name=\"purchase_history_data\",\n", + " path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_purchase_history_mock_data.csv\",\n", + " event_timestamp_column=\"purchase_date\",\n", + " timestamp_format=\"yyyy-MM-dd\")\n", + " \n", + "agg_features = [Feature(name=\"feature_user_totla_purchase_in_90days\",\n", + " key=user_id,\n", + " feature_type=FLOAT,\n", + " transform=WindowAggTransformation(agg_expr=\"cast_float(purchase_amount)\",\n", + " agg_func=\"AVG\",\n", + " window=\"90d\"))\n", + " ]\n", + "\n", + "user_agg_feature_anchor = FeatureAnchor(name=\"aggregationFeatures\",\n", + " source=purchase_history_data,\n", + " features=agg_features)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Derived Features Section\n", + "Derived features are the features that are computed from other features. They could be computed from anchored features, or other derived features." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "feature_user_purchasing_power = DerivedFeature(name=\"feature_user_purchasing_power\",\n", + " key=user_id,\n", + " feature_type=FLOAT,\n", + " input_features=[\n", + " feature_user_gift_card_balance, feature_user_has_valid_credit_card],\n", + " transform=\"feature_user_gift_card_balance + if_else(feature_user_has_valid_credit_card, 100, 0)\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then we need to build those features so that it can be consumed later. Note that we have to build both the \"anchor\" and the \"derived\" features (which is not anchored to a source)." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [], + "source": [ + "client.build_features(anchor_list=[user_agg_feature_anchor, user_feature_anchor, product_anchor], derived_feature_list=[\n", + " feature_user_purchasing_power])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Create training data using point-in-time correct feature join\n", + "\n", + "A training dataset usually contains entity id columns, multiple feature columns, event timestamp column and label/target column. \n", + "\n", + "To create a training dataset using Feathr, one needs to provide a feature join configuration file to specify\n", + "what features and how these features should be joined to the observation data. \n", + "\n", + "To learn more on this topic, please refer to [Point-in-time Correctness](https://github.com/linkedin/feathr/blob/main/docs/concepts/point-in-time-join.md)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "if client.spark_runtime == 'databricks':\n", + " output_path = 'dbfs:/feathrazure_test.avro'\n", + "else:\n", + " output_path = 'abfss://feathrazuretest3fs@feathrazuretest3storage.dfs.core.windows.net/test123_temp/product_rec_new'\n", + " # output_path = feathr_output_path\n", + "\n", + "\n", + "user_feature_query = FeatureQuery(\n", + " feature_list=[\"feature_user_age\", \n", + " \"feature_user_tax_rate\", \n", + " \"feature_user_gift_card_balance\", \n", + " \"feature_user_has_valid_credit_card\", \n", + " \"feature_user_totla_purchase_in_90days\",\n", + " \"feature_user_purchasing_power\"\n", + " ], \n", + " key=user_id)\n", + "\n", + "product_feature_query = FeatureQuery(\n", + " feature_list=[\n", + " \"feature_product_quantity\",\n", + " \"feature_product_price\"\n", + " ], \n", + " key=product_id)\n", + "\n", + "settings = ObservationSettings(\n", + " observation_path=\"wasbs://public@azurefeathrstorage.blob.core.windows.net/sample_data/product_recommendation_sample/user_observation_mock_data.csv\",\n", + " event_timestamp_column=\"event_timestamp\",\n", + " timestamp_format=\"yyyy-MM-dd\")\n", + "client.get_offline_features(observation_settings=settings,\n", + " feature_query=[user_feature_query, product_feature_query],\n", + " output_path=output_path)\n", + "client.wait_job_to_finish(timeout_sec=1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Download the training dataset and show the result\n", + "\n", + "Let's use the helper function `get_result_df` to download the result and view it:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_result_df(client: FeathrClient) -> pd.DataFrame:\n", + " \"\"\"Download the job result dataset from cloud as a Pandas dataframe.\"\"\"\n", + " res_url = client.get_job_result_uri(block=True, timeout_sec=600)\n", + " tmp_dir = tempfile.TemporaryDirectory()\n", + " client.feathr_spark_laucher.download_result(result_path=res_url, local_folder=tmp_dir.name)\n", + " dataframe_list = []\n", + " # assuming the result are in avro format\n", + " for file in glob.glob(os.path.join(tmp_dir.name, '*.avro')):\n", + " dataframe_list.append(pdx.read_avro(file))\n", + " vertical_concat_df = pd.concat(dataframe_list, axis=0)\n", + " tmp_dir.cleanup()\n", + " return vertical_concat_df\n", + "\n", + "df_res = get_result_df(client)\n", + "\n", + "df_res" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Train a machine learning model\n", + "After getting all the features, let's train a machine learning model with the converted feature by Feathr:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.ensemble import GradientBoostingRegressor\n", + "train_x, test_x, train_y, test_y = train_test_split(final_df.drop([\"product_rating\"], axis=1),\n", + " final_df[\"product_rating\"],\n", + " test_size=0.2,\n", + " random_state=42)\n", + "model = GradientBoostingRegressor()\n", + "model.fit(train_x, train_y)\n", + "\n", + "y_predict = model.predict(test_x)\n", + "\n", + "y_actual = test_y.values.flatten().tolist()\n", + "rmse = sqrt(mean_squared_error(y_actual, y_predict))\n", + "\n", + "sum_actuals = sum_errors = 0\n", + "\n", + "for actual_val, predict_val in zip(y_actual, y_predict):\n", + " abs_error = actual_val - predict_val\n", + " if abs_error < 0:\n", + " abs_error = abs_error * -1\n", + "\n", + " sum_errors = sum_errors + abs_error\n", + " sum_actuals = sum_actuals + actual_val\n", + "\n", + "mean_abs_percent_error = sum_errors / sum_actuals\n", + "print(\"Model MAPE:\")\n", + "print(mean_abs_percent_error)\n", + "print()\n", + "print(\"Model Accuracy:\")\n", + "print(1 - mean_abs_percent_error)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Materialize feature value into offline/online storage\n", + "\n", + "While Feathr can compute the feature value from the feature definition on-the-fly at request time, it can also pre-compute\n", + "and materialize the feature value to offline and/or online storage. \n", + "\n", + "We can push the generated features to the online store like below:\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Materialize user features\n", + "# (You can only materialize features of same entity key into one table so we can only materialize user features first.)\n", + "backfill_time = BackfillTime(start=datetime(\n", + " 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1))\n", + "redisSink = RedisSink(table_name=\"user_features\")\n", + "settings = MaterializationSettings(\"user_feature_setting\",\n", + " backfill_time=backfill_time,\n", + " sinks=[redisSink],\n", + " feature_names=[\"feature_user_age\", \"feature_user_gift_card_balance\"])\n", + "\n", + "client.materialize_features(settings)\n", + "client.wait_job_to_finish(timeout_sec=1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can then get the features from the online store (Redis):\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Fetching feature value for online inference\n", + "\n", + "For features that are already materialized by the previous step, their latest value can be queried via the client's\n", + "`get_online_features` or `multi_get_online_features` API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.get_online_features('user_features', '2', [\n", + " 'feature_user_age', 'feature_user_gift_card_balance'])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.multi_get_online_features('user_features', ['1', '2'], [\n", + " 'feature_user_age', 'feature_user_gift_card_balance'])\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Materialize product features\n", + "\n", + "We can also materialize product features into a separate table." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Materialize product features\n", + "backfill_time = BackfillTime(start=datetime(\n", + " 2020, 5, 20), end=datetime(2020, 5, 20), step=timedelta(days=1))\n", + "redisSink = RedisSink(table_name=\"product_features\")\n", + "settings = MaterializationSettings(\"product_feature_setting\",\n", + " backfill_time=backfill_time,\n", + " sinks=[redisSink],\n", + " feature_names=[\"feature_product_price\"])\n", + "\n", + "client.materialize_features(settings)\n", + "client.wait_job_to_finish(timeout_sec=1000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.get_online_features('product_feature_setting', '2', [\n", + " 'feature_product_price'])\n", + "\n", + "client.get_online_features('product_features', '2', [\n", + " 'feature_product_price'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Registering and Fetching features\n", + "\n", + "We can also register the features with an Apache Atlas compatible service, such as Azure Purview, and share the registered features across teams:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "client.register_features()\n", + "client.list_registered_features(project_name=\"feathr_getting_started\")" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "b3c5d8fd79e029a19bf620c04a250a0cafa2291ba3ed87972a3e2a099b099985" + }, + "kernelspec": { + "display_name": "Python 3.9.12 ('product_env': venv)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From cd6558ac1ce71d2a005b192c2d3098cd9a45616f Mon Sep 17 00:00:00 2001 From: Xiaoyong Zhu Date: Tue, 14 Jun 2022 17:59:08 -0700 Subject: [PATCH 18/18] Fixing purview test issues and improve performance (#350) --- feathr_project/feathr/constants.py | 1 + .../registry/_feature_registry_purview.py | 218 ++++++++++++------ feathr_project/test/test_feature_registry.py | 3 + feathr_project/test/test_fixture.py | 15 +- 4 files changed, 158 insertions(+), 79 deletions(-) diff --git a/feathr_project/feathr/constants.py b/feathr_project/feathr/constants.py index 8884753f5..bbe804fbc 100644 --- a/feathr_project/feathr/constants.py +++ b/feathr_project/feathr/constants.py @@ -15,6 +15,7 @@ REGISTRY_TYPEDEF_VERSION="v1" TYPEDEF_SOURCE=f'feathr_source_{REGISTRY_TYPEDEF_VERSION}' +# TODO: change the name from feathr_workspace_ to feathr_project_ TYPEDEF_FEATHR_PROJECT=f'feathr_workspace_{REGISTRY_TYPEDEF_VERSION}' TYPEDEF_DERIVED_FEATURE=f'feathr_derived_feature_{REGISTRY_TYPEDEF_VERSION}' TYPEDEF_ANCHOR=f'feathr_anchor_{REGISTRY_TYPEDEF_VERSION}' diff --git a/feathr_project/feathr/registry/_feature_registry_purview.py b/feathr_project/feathr/registry/_feature_registry_purview.py index 0a8b3af07..ca1f4af96 100644 --- a/feathr_project/feathr/registry/_feature_registry_purview.py +++ b/feathr_project/feathr/registry/_feature_registry_purview.py @@ -11,6 +11,7 @@ from tracemalloc import stop from typing import Dict, List, Optional, Tuple, Union from urllib.parse import urlparse +from time import sleep from azure.identity import DefaultAzureCredential from jinja2 import Template @@ -75,6 +76,7 @@ def _register_feathr_feature_types(self): type_feathr_project = EntityTypeDef( name=TYPEDEF_FEATHR_PROJECT, attributeDefs=[ + # TODO: this should be called "anchors" rather than "anchor_features" to make it less confusing. AtlasAttributeDef( name="anchor_features", typeName=TYPEDEF_ARRAY_ANCHOR, cardinality=Cardinality.SET), AtlasAttributeDef( @@ -219,7 +221,7 @@ def _parse_anchors(self, anchor_list: List[FeatureAnchor]) -> List[AtlasEntity]: # then parse the source of that anchor source_entity = self._parse_source(anchor.source) anchor_fully_qualified_name = self.project_name+self.registry_delimiter+anchor.name - original_id = self.get_feature_id(anchor_fully_qualified_name ) + original_id = self.get_feature_id(anchor_fully_qualified_name, type=TYPEDEF_ANCHOR ) original_anchor = self.get_feature_by_guid(original_id) if original_id else None merged_elements = self._merge_anchor(original_anchor,anchor_feature_entities) anchor_entity = AtlasEntity( @@ -733,18 +735,26 @@ def _delete_all_feathr_entities(self): :param guid: The guid or guids you want to remove. """ - entities = self.purview_client.discovery.search_entities( - "feathr*", limit=20) + # should not be large than this, otherwise the backend might throw out error + batch_delte_size = 100 - # [print(entity) for entity in entities] - guid_list = [entity["id"] for entity in entities] + # use the `query` API so that it can return immediatelly (don't use the search_entity API as it will try to return all the results in a single request) - # should not be large than this, otherwise the backend might throw out error - batch_delte_size = 15 - for i in range(0, len(guid_list), batch_delte_size): - self.purview_client.delete_entity( - guid=guid_list[i:i+batch_delte_size]) + while True: + result = self.purview_client.discovery.query( + "feathr", limit=batch_delte_size) + logger.info("Total number of entities:",result['@search.count'] ) + + # if no results, break: + if result['@search.count'] == 0: + break + entities = result['value'] + guid_list = [entity["id"] for entity in entities] + self.purview_client.delete_entity(guid=guid_list) logger.info("{} feathr entities deleted", batch_delte_size) + # sleep here, otherwise backend might throttle + # process the next batch after sleep + sleep(1) @classmethod def _get_registry_client(self): @@ -753,26 +763,43 @@ def _get_registry_client(self): """ return self.purview_client - def list_registered_features(self, project_name: str = None, limit=50, starting_offset=0) -> List[Dict[str,str]]: + def list_registered_features(self, project_name: str, limit=1000, starting_offset=0) -> List[Dict[str,str]]: """ List all the already registered features. If project_name is not provided or is None, it will return all the registered features; otherwise it will only return only features under this project """ - entities = self.purview_client.discovery.search_entities( - f"entityType:{TYPEDEF_ANCHOR_FEATURE} or entityType:{TYPEDEF_DERIVED_FEATURE}", limit=limit, starting_offset=starting_offset) + feature_list = [] + + if not project_name: + raise RuntimeError("project_name must be specified.") + + # get the corresponding features belongs to a certain project. + # note that we need to use "startswith" to filter out the features that don't belong to this project. + # see syntax here: https://docs.microsoft.com/en-us/rest/api/purview/catalogdataplane/discovery/query#discovery_query_andornested + query_filter = { + "and": [ + { + "or": + [ + {"entityType": TYPEDEF_DERIVED_FEATURE}, + {"entityType": TYPEDEF_ANCHOR_FEATURE} + ] + }, + { + "attributeName": "qualifiedName", + "operator": "startswith", + "attributeValue": project_name + self.registry_delimiter + } + ] + } + result = self.purview_client.discovery.query(filter=query_filter) + + entities = result['value'] + # entities = self.purview_client.discovery.search_entities(query = None, search_filter=query_filter, limit=limit) + for entity in entities: - if project_name: - # if project_name is a valid string, only append entities if the qualified name start with - # project_name+delimiter - qualified_name: str = entity["qualifiedName"] - # split the name based on delimiter - result = qualified_name.split(self.registry_delimiter) - if result[0].casefold() == project_name: - feature_list.append({"name":entity["name"],'id':entity['id'],"qualifiedName":entity['qualifiedName']}) - else: - # otherwise append all the entities - feature_list.append({"name":entity["name"],'id':entity['id'],"qualifiedName":entity['qualifiedName']}) + feature_list.append({"name":entity["name"],'id':entity['id'],"qualifiedName":entity['qualifiedName']}) return feature_list @@ -810,12 +837,27 @@ def get_feature_lineage(self, guid): """ return self.purview_client.get_entity_lineage(guid=guid) - def get_feature_id(self, qualifiedName): + def get_feature_id(self, qualifiedName, type: str): """ Get guid of a feature given its qualifiedName """ - search_term = "qualifiedName:{0}".format(qualifiedName) - entities = self.purview_client.discovery.search_entities(search_term) + # the search term should be full qualified name + # TODO: need to update the calling functions to add `type` field to make it more performant + # purview_client.get_entity(qualifiedName=qualifiedName) might not work here since it requires an additonal typeName parameter + # Currently still use the `query` API to get the result in a "full name match" way. + # self.purview_client.get_entity(qualifiedName=qualifiedName, typeName=type) + + # get the corresponding features belongs to a certain project. + # note that we need to use "eq" to filter exactly this qualified name + # see syntax here: https://docs.microsoft.com/en-us/rest/api/purview/catalogdataplane/discovery/query#discovery_query_andornested + query_filter = { + "attributeName": "qualifiedName", + "operator": "eq", + "attributeValue": qualifiedName + } + result = self.purview_client.discovery.query(keywords = None, filter=query_filter) + entities = result['value'] + # There should be exactly one result, but we don't enforce the check here for entity in entities: if entity.get('qualifiedName') == qualifiedName: return entity.get('id') @@ -829,7 +871,7 @@ def search_features(self, searchTerm): entities = self.purview_client.discovery.search_entities(searchTerm) return entities - def _list_registered_entities_with_details(self, project_name: str = None, entity_type: Union[str, List[str]] = None, limit=50, starting_offset=0,) -> List[Dict]: + def _list_registered_entities_with_details(self, project_name: str, entity_type: Union[str, List[str]] = None, limit=1000, starting_offset=0,) -> List[Dict]: """ List all the already registered entities. entity_type should be one of: SOURCE, DERIVED_FEATURE, ANCHOR, ANCHOR_FEATURE, FEATHR_PROJECT, or a list of those values limit: a maximum 1000 will be enforced at the underlying API @@ -844,30 +886,56 @@ def _list_registered_entities_with_details(self, project_name: str = None, entit raise RuntimeError( f'only SOURCE, DERIVED_FEATURE, ANCHOR, ANCHOR_FEATURE, FEATHR_PROJECT are supported when listing the registered entities, {entity_type} is not one of them.') - # the search grammar is less documented in Atlas/Purview. - # Here's the query grammar: https://atlas.apache.org/2.0.0/Search-Advanced.html - search_string = "".join( - [f" or entityType:{e}" for e in entity_type_list]) - # remvoe the first additional " or " - search_string = search_string[4:] - result_entities = self.purview_client.discovery.search_entities( - search_string, limit=limit, starting_offset=starting_offset) + if project_name is None: + raise RuntimeError("You need to specify a project_name") + # the search grammar: + # https://docs.microsoft.com/en-us/azure/purview/how-to-search-catalog#search-query-syntax + # https://docs.microsoft.com/en-us/rest/api/datacatalog/data-catalog-search-syntax-reference + + # get the corresponding features belongs to a certain project. + # note that we need to use "startswith" to filter out the features that don't belong to this project. + # see syntax here: https://docs.microsoft.com/en-us/rest/api/purview/catalogdataplane/discovery/query#discovery_query_andornested + # this search does the following: + # search all the entities that start with project_name+delimiter for all the search entities + # However, for TYPEDEF_FEATHR_PROJECT, it doesn't have delimiter in the qualifiedName + # Hence if TYPEDEF_FEATHR_PROJECT is in the `entity_type` input, we need to search for that specifically + # and finally "OR" the result to union them + query_filter = { + "or": + [{ + "and": [{ + # this is a list of the entity types that you want to query + "or": [{"entityType": e} for e in entity_type_list] + }, + { + "attributeName": "qualifiedName", + "operator": "startswith", + # use `project_name + self.registry_delimiter` to limit the search results + "attributeValue": project_name + self.registry_delimiter + }]}, + # if we are querying TYPEDEF_FEATHR_PROJECT, then "union" the result by using this query + { + "and": [{ + "or": [{"entityType": TYPEDEF_FEATHR_PROJECT}] if TYPEDEF_FEATHR_PROJECT in entity_type_list else None + }, + { + "attributeName": "qualifiedName", + "operator": "startswith", + "attributeValue": project_name + }]}] + } + # Important properties returned includes: # id (the guid of the entity), name, qualifiedName, @search.score, # and @search.highlights - guid_list = [] - for entity in result_entities: - if project_name: - # if project_name is a valid string, only append entities if the qualified name start with - # project_name+delimiter - qualified_name: str = entity["qualifiedName"] - # split the name based on delimiter - result = qualified_name.split(self.registry_delimiter) - if result[0].casefold() == project_name: - guid_list.append(entity["id"]) - else: - # otherwise append all the entities - guid_list.append(entity["id"]) + # TODO: it might be throttled in the backend and wait for the `pyapacheatlas` to fix this + # https://github.com/wjohnson/pyapacheatlas/issues/206 + # `pyapacheatlas` needs a bit optimization to avoid additional calls. + result_entities = self.purview_client.discovery.search_entities(query=None, search_filter=query_filter, limit = limit) + + # append the guid list. Since we are using project_name + delimiter to search, all the result will be valid. + guid_list = [entity["id"] for entity in result_entities] + entity_res = [] if guid_list is None or len(guid_list)==0 else self.purview_client.get_entity( guid=guid_list)["entities"] return entity_res @@ -879,15 +947,14 @@ def get_features_from_registry(self, project_name: str) -> Tuple[List[FeatureAnc Args: project_name (str): project name. """ - - entities = self._list_registered_entities_with_details(project_name=project_name,entity_type=[TYPEDEF_DERIVED_FEATURE, TYPEDEF_ANCHOR_FEATURE, TYPEDEF_FEATHR_PROJECT]) - if not entities: + all_entities_in_project = self._list_registered_entities_with_details(project_name=project_name,entity_type=[TYPEDEF_DERIVED_FEATURE, TYPEDEF_ANCHOR_FEATURE, TYPEDEF_FEATHR_PROJECT, TYPEDEF_ANCHOR, TYPEDEF_SOURCE]) + if not all_entities_in_project: # if the result is empty return (None, None) # get project entity, the else are feature entities (derived+anchor) - project_entity = [x for x in entities if x['typeName']==TYPEDEF_FEATHR_PROJECT][0] # there's only one available - feature_entities = [x for x in entities if x!=project_entity] + project_entity = [x for x in all_entities_in_project if x['typeName']==TYPEDEF_FEATHR_PROJECT][0] # there's only one available + feature_entities = [x for x in all_entities_in_project if (x['typeName']==TYPEDEF_ANCHOR_FEATURE or x['typeName']==TYPEDEF_DERIVED_FEATURE)] feature_entity_guid_mapping = {x['guid']:x for x in feature_entities} # this is guid for feature anchor (GROUP of anchor features) @@ -900,7 +967,6 @@ def get_features_from_registry(self, project_name: str) -> Tuple[List[FeatureAnc for derived_feature_entity_id in derived_feature_ids: # this will be used to generate DerivedFeature instance derived_feature_key_list = [] - for key in derived_feature_entity_id["attributes"]["key"]: derived_feature_key_list.append(TypedKey(key_column=key["key_column"], key_column_type=key["key_column_type"], full_name=key["full_name"], description=key["description"], key_column_alias=key["key_column_alias"])) @@ -908,30 +974,29 @@ def get_features_from_registry(self, project_name: str) -> Tuple[List[FeatureAnc # for feature anchor (GROUP), input features are splitted into input anchor features & input derived features anchor_feature_guid = [e["guid"] for e in derived_feature_entity_id["attributes"]["input_anchor_features"]] derived_feature_guid = [e["guid"] for e in derived_feature_entity_id["attributes"]["input_derived_features"]] - # for derived features, search all related input features. input_features_guid = self.search_input_anchor_features(derived_feature_guid,feature_entity_guid_mapping) - # chain the input features together - all_input_features = list(itertools.chain.from_iterable( - [self._get_features_by_guid(x) for x in input_features_guid+anchor_feature_guid])) - + # filter out features that is related with this derived feature + all_input_features = self._get_features_by_guid_or_entities(guid_list=input_features_guid+anchor_feature_guid, entity_list=all_entities_in_project) derived_feature_list.append(DerivedFeature(name=derived_feature_entity_id["attributes"]["name"], feature_type=self._get_feature_type_from_hocon(derived_feature_entity_id["attributes"]["type"]), transform=self._get_transformation_from_dict(derived_feature_entity_id["attributes"]['transformation']), key=derived_feature_key_list, input_features= all_input_features, registry_tags=derived_feature_entity_id["attributes"]["tags"])) - anchor_result = self.purview_client.get_entity(guid=anchor_guid)["entities"] + + # anchor_result = self.purview_client.get_entity(guid=anchor_guid)["entities"] + anchor_result = [x for x in all_entities_in_project if x['typeName']==TYPEDEF_ANCHOR] anchor_list = [] + for anchor_entity in anchor_result: feature_guid = [e["guid"] for e in anchor_entity["attributes"]["features"]] anchor_list.append(FeatureAnchor(name=anchor_entity["attributes"]["name"], - source=self._get_source_by_guid(anchor_entity["attributes"]["source"]["guid"]), - features=self._get_features_by_guid(feature_guid), + source=self._get_source_by_guid(anchor_entity["attributes"]["source"]["guid"], entity_list = all_entities_in_project), + features=self._get_features_by_guid_or_entities(guid_list = feature_guid, entity_list=all_entities_in_project), registry_tags=anchor_entity["attributes"]["tags"])) - return (anchor_list, derived_feature_list) def search_input_anchor_features(self,derived_guids,feature_entity_guid_mapping) ->List[str]: @@ -978,9 +1043,13 @@ def feathr_udf2(df) udf_source_code = [line+'\n' for line in udf_source_code_striped] return " ".join(udf_source_code) - def _get_source_by_guid(self, guid) -> Source: + def _get_source_by_guid(self, guid, entity_list) -> Source: + """give a entity list and the target GUID for the source entity, return a python `Source` object. + """ # TODO: currently return HDFS source by default. For JDBC source, it's currently implemented using HDFS Source so we should split in the future - source_entity = self.purview_client.get_entity(guid=guid)["entities"][0] + + # there should be only one entity available + source_entity = [x for x in entity_list if x['guid'] == guid][0] # if source_entity["attributes"]["path"] is INPUT_CONTEXT, it will also be assigned to this returned object return HdfsSource(name=source_entity["attributes"]["name"], @@ -1045,8 +1114,21 @@ def _get_transformation_from_dict(self, input: Dict) -> FeatureType: # no transformation function observed return None - def _get_features_by_guid(self, guid) -> List[FeatureAnchor]: - feature_entities = self.purview_client.get_entity(guid=guid)["entities"] + def _get_features_by_guid_or_entities(self, guid_list, entity_list) -> List[FeatureAnchor]: + """return a python list of the features that are referenced by a list of guids. + If entity_list is provided, use entity_list to reconstruct those features + This is for "anchor feature" only. + """ + if not entity_list: + feature_entities = self.purview_client.get_entity(guid=guid_list)["entities"] + else: + guid_set = set(guid_list) + feature_entities = [x for x in entity_list if x['guid'] in guid_set] + + # raise error if we cannot find all the guid + if len(feature_entities) != len(guid_list): + raise RuntimeError("Number of `feature_entities` is less than provided GUID list for search. The project might be broken.") + feature_list=[] key_list = [] for feature_entity in feature_entities: diff --git a/feathr_project/test/test_feature_registry.py b/feathr_project/test/test_feature_registry.py index 970fccdea..b5647d213 100644 --- a/feathr_project/test/test_feature_registry.py +++ b/feathr_project/test/test_feature_registry.py @@ -76,6 +76,9 @@ def test_feathr_register_features_partially(): client.register_features() time.sleep(30) full_registration = client.get_features_from_registry(client.project_name) + + now = datetime.now() + os.environ["project_config__project_name"] = ''.join(['feathr_ci_registry','_', str(now.minute), '_', str(now.second), '_', str(now.microsecond)]) client: FeathrClient = registry_test_setup_partially(os.path.join(test_workspace_dir, "feathr_config.yaml")) new_project_name = client.project_name diff --git a/feathr_project/test/test_fixture.py b/feathr_project/test/test_fixture.py index b7d431d33..145a4de81 100644 --- a/feathr_project/test/test_fixture.py +++ b/feathr_project/test/test_fixture.py @@ -171,12 +171,8 @@ def registry_test_setup(config_path: str): client.build_features(anchor_list=[agg_anchor, request_anchor], derived_feature_list=derived_feature_list) return client def registry_test_setup_partially(config_path: str): - - - # use a new project name every time to make sure all features are registered correctly - now = datetime.now() - os.environ["project_config__project_name"] = ''.join(['feathr_ci_registry','_', str(now.minute), '_', str(now.second), '_', str(now.microsecond)]) - + """Register a partial of a project. Will call `generate_entities()` and register only the first anchor feature. + """ client = FeathrClient(config_path=config_path, project_registry_tag={"for_test_purpose":"true"}) request_anchor, agg_anchor, derived_feature_list = generate_entities() @@ -185,11 +181,8 @@ def registry_test_setup_partially(config_path: str): return client def registry_test_setup_append(config_path: str): - - - # use a new project name every time to make sure all features are registered correctly - now = datetime.now() - os.environ["project_config__project_name"] = ''.join(['feathr_ci_registry','_', str(now.minute), '_', str(now.second), '_', str(now.microsecond)]) + """Append features to a project. Will call `generate_entities()` and register from the 2nd anchor feature + """ client = FeathrClient(config_path=config_path, project_registry_tag={"for_test_purpose":"true"})

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�q>GT(SFY5tQPc?OW!C+r6;h|| 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