Skip to content

Support Alibaba Cloud MaxCompute as an offline store #6695

Description

@yuan1j

Is your feature request related to a problem? Please describe.
Feast's built-in offline stores cover BigQuery, Snowflake, Redshift, Spark, Postgres, and file/parquet, but not Alibaba Cloud MaxCompute (ODPS). Users on Alibaba Cloud must export data to parquet or run a separate Spark connector before Feast can read it — adding extra ETL steps, storage cost, and operational overhead.

Describe the solution you'd like
A first-class MaxComputeOfflineStore plugin, analogous to the existing BigQueryOfflineStore / RedshiftOfflineStore, so Feast can read directly from a MaxCompute project:

  • Implement the standard Feast offline store interface (OfflineStore, RetrievalJob) using the PyODPS SDK.
  • Configure via feature_store.yaml: endpoint, project, schema (odps), access_key_id, access_key_secret (AK/SK auth), optional tunnel_endpoint.
  • Support core operations: point-in-time join for get_historical_features, materialize / materialize_incremental, and offline dataframe push.
  • Docs + a minimal end-to-end example.

Describe alternatives you've considered

  1. Export MaxCompute tables to parquet on OSS, then use Feast's file offline store — adds a redundant export pipeline, duplicates storage, and data is no longer fresh.
  2. Spark offline store reading MaxCompute via the Spark connector (what our project currently uses) — works, but requires standing up a dedicated Spark cluster just for Feast, which is operationally heavy for teams already standardized on MaxCompute SQL.
  3. Implement as an external contrib plugin outside the Feast repo — reduces discoverability and long-term maintenance.

Additional context

  • MaxCompute is the dominant data warehouse on Alibaba Cloud, with a large and growing enterprise user base — native Feast support would unlock a significant potential market.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions