Getting Started Guide for Feast Serving Developers
Pre-requisites:
- Maven build tool version 3.6.x
- A running Feast Core instance
- A running Store instance e.g. local Redis Store instance
From the Feast project root directory, run the following Maven command to start Feast Serving gRPC service running on port 6566 locally:
# Assumptions: # - Local Feast Core is running on localhost:6565 # Uses configuration from serving/src/main/resources/application.yml mvn -pl serving spring-boot:run -Dspring-boot.run.arguments=\ --feast.core-host=localhost,\ --feast.core-port=6565
If you have grpc_cli installed, you can check that Feast Serving is running
grpc_cli ls localhost:6566
grpc_cli call localhost:6566 GetFeastServingVersion ''
grpc_cli call localhost:6566 GetFeastServingType ''
grpc_cli call localhost:6565 ApplyFeatureSet ' feature_set { name: "driver" entities { name: "driver_id" value_type: STRING } features { name: "city" value_type: STRING } features { name: "booking_completed_count" value_type: INT64 } source { type: KAFKA kafka_source_config { bootstrap_servers: "localhost:9092" } } } ' grpc_cli call localhost:6565 GetFeatureSets ' filter { feature_set_name: "driver" } ' grpc_cli call localhost:6566 GetBatchFeatures ' feature_sets { name: "driver" feature_names: "booking_completed_count" max_age { seconds: 86400 } } entity_dataset { entity_names: "driver_id" entity_dataset_rows { entity_timestamp { seconds: 1569873954 } } } '
python3 <<EOF
import pandas as pd
import fastavro
with open("/tmp/000000000000.avro", "rb") as f:
reader = fastavro.reader(f)
records = [r for r in reader]
df = pd.DataFrame.from_records(records)
print(df.columns)
print(df.shape)
print(df.head(5))
EOF
Working with Feast 0.10+
Feast serving supports reading feature values materialized into Redis by feast 0.10+. To configure this, feast-serving
needs to be able to read the registry file for the project.
The location of the registry file can be specified in the application.yml like so:
feast: registry: "src/test/resources/docker-compose/feast10/registry.db"
This changes the behaviour of feast-serving to look up feature view definitions and specifications from the registry file instead of the core service.