feast icon indicating copy to clipboard operation
feast copied to clipboard

abilty to query stores without copying feature_store.yaml around

Open cburroughs opened this issue 3 years ago • 3 comments
trafficstars

Is your feature request related to a problem? Please describe.

Right now to use feast as a client (that is a data scientist who wants to call get_historical_features, not someone running feast apply) you still need to copy of feature_store.yaml. Since it is a single small file, distributing it as a package seems excessive, but copies, symlinks, and submodules all have obvious awkward downsides. For registries hosted on shared infrastructure (such as an S3 bucket), I'd like to be able to just point the clients at the same bucket.

Describe the solution you'd like Something like

store = feast.FeatureStore(config=s3://my-bucket/feature_store.yaml') # feast apply uploads this

or

store = feast.FeatureStore(registry= 's3://my-bucket/registry.pb')

Describe alternatives you've considered I don't have an opinion between a convention of uploading feature_store.yaml as an object, versus extracting equivalent data from the registry protobuf (which I assume already has most everything).

cburroughs avatar Aug 24 '22 20:08 cburroughs

You can do something like this:

  repo_config = RepoConfig(
    registry=RegistryConfig(path="s3://[YOUR BUCKET]/registry.pb"),
    project="feast_demo_aws",
    provider="aws",
    offline_store="file",
    online_store=DynamoDBOnlineStoreConfig(region="us-west-2")
  )
  store = FeatureStore(config=repo_config)
  store.materialize_incremental(datetime.datetime.now())

A data scientist for example just need to put in their own credentials

sfc-gh-madkins avatar Aug 25 '22 22:08 sfc-gh-madkins

Is there anywhere a documentation how to use RepoConfig? How do I use RepoConfig with a Postgresql database for registry, offline store and online store? And how can I put the credentials in it, with a Connection String?

seb2704 avatar Aug 31 '22 21:08 seb2704

Which commit 'completed' this issue?

This example demonstrates that one can instantiate a RepoConfig as python code but that still leaves the use cases -- how to share the contents of said config -- unaddressed.

(In other words in the example project, provider, offline_store, and online_store do not get their configuration from declaring registry=RegistryConfig(path="s3://[YOUR BUCKET]/registry.pb").

cburroughs avatar Sep 12 '22 13:09 cburroughs

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Jan 17 '23 00:01 stale[bot]

Similar request at #3454

cburroughs avatar Jan 20 '23 17:01 cburroughs

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar May 21 '23 15:05 stale[bot]