feat(go): Add MySQL registry store support for Go feature server by PepeluDev · Pull Request #5933 · feast-dev/feast
This adds support for reading Feast registry data from a MySQL database in the Go feature server, enabling parity with the Python SDK's SQL registry store. - `mysql_registry_store.go`: MySQL registry store implementation - Parses SQLAlchemy-style URLs (mysql://user:pass@host:port/db) - Reads all registry tables (projects, entities, feature_views, etc.) - Uses generics for type-safe protobuf unmarshaling - Configurable connection pool settings - `mysql_registry_store_test.go`: Unit tests using in-memory SQLite - Tests registry loading with schema matching Python SQLAlchemy - Tests scheme routing for mysql:// URLs - `registry.go`: Added mysql scheme routing and MySQLRegistryStore factory - `repoconfig.go`: Added MySQL connection pool configuration options - mysql_max_open_conns (default: 20) - mysql_max_idle_conns (default: 10) - mysql_conn_max_lifetime_seconds (default: 300) - `repoconfig_test.go`: Added tests for new MySQL config options Users can configure the MySQL registry in feature_store.yaml: ```yaml registry: path: mysql://user:password@localhost:3306/feast_registry mysql_max_open_conns: 20 mysql_max_idle_conns: 10 mysql_conn_max_lifetime_seconds: 300 ``` The Go implementation reads from the same schema as the Python SQLAlchemy registry (sdk/python/feast/infra/registry/sql.py). When the Python schema evolves, the Go queries must be updated. Signed-off-by: PepeluDev <joseluislobell@gmail.com>
YassinNouh21 pushed a commit to YassinNouh21/feast that referenced this pull request
…st-dev#5933) * feat(go): Add MySQL registry store support for Go feature server This adds support for reading Feast registry data from a MySQL database in the Go feature server, enabling parity with the Python SDK's SQL registry store. - `mysql_registry_store.go`: MySQL registry store implementation - Parses SQLAlchemy-style URLs (mysql://user:pass@host:port/db) - Reads all registry tables (projects, entities, feature_views, etc.) - Uses generics for type-safe protobuf unmarshaling - Configurable connection pool settings - `mysql_registry_store_test.go`: Unit tests using in-memory SQLite - Tests registry loading with schema matching Python SQLAlchemy - Tests scheme routing for mysql:// URLs - `registry.go`: Added mysql scheme routing and MySQLRegistryStore factory - `repoconfig.go`: Added MySQL connection pool configuration options - mysql_max_open_conns (default: 20) - mysql_max_idle_conns (default: 10) - mysql_conn_max_lifetime_seconds (default: 300) - `repoconfig_test.go`: Added tests for new MySQL config options Users can configure the MySQL registry in feature_store.yaml: ```yaml registry: path: mysql://user:password@localhost:3306/feast_registry mysql_max_open_conns: 20 mysql_max_idle_conns: 10 mysql_conn_max_lifetime_seconds: 300 ``` The Go implementation reads from the same schema as the Python SQLAlchemy registry (sdk/python/feast/infra/registry/sql.py). When the Python schema evolves, the Go queries must be updated. Signed-off-by: PepeluDev <joseluislobell@gmail.com> * docs(go): Clarify MySQL registry store package documentation Signed-off-by: PepeluDev <joseluislobell@gmail.com> --------- Signed-off-by: PepeluDev <joseluislobell@gmail.com> Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
YassinNouh21 pushed a commit to YassinNouh21/feast that referenced this pull request
…st-dev#5933) * feat(go): Add MySQL registry store support for Go feature server This adds support for reading Feast registry data from a MySQL database in the Go feature server, enabling parity with the Python SDK's SQL registry store. - `mysql_registry_store.go`: MySQL registry store implementation - Parses SQLAlchemy-style URLs (mysql://user:pass@host:port/db) - Reads all registry tables (projects, entities, feature_views, etc.) - Uses generics for type-safe protobuf unmarshaling - Configurable connection pool settings - `mysql_registry_store_test.go`: Unit tests using in-memory SQLite - Tests registry loading with schema matching Python SQLAlchemy - Tests scheme routing for mysql:// URLs - `registry.go`: Added mysql scheme routing and MySQLRegistryStore factory - `repoconfig.go`: Added MySQL connection pool configuration options - mysql_max_open_conns (default: 20) - mysql_max_idle_conns (default: 10) - mysql_conn_max_lifetime_seconds (default: 300) - `repoconfig_test.go`: Added tests for new MySQL config options Users can configure the MySQL registry in feature_store.yaml: ```yaml registry: path: mysql://user:password@localhost:3306/feast_registry mysql_max_open_conns: 20 mysql_max_idle_conns: 10 mysql_conn_max_lifetime_seconds: 300 ``` The Go implementation reads from the same schema as the Python SQLAlchemy registry (sdk/python/feast/infra/registry/sql.py). When the Python schema evolves, the Go queries must be updated. Signed-off-by: PepeluDev <joseluislobell@gmail.com> * docs(go): Clarify MySQL registry store package documentation Signed-off-by: PepeluDev <joseluislobell@gmail.com> --------- Signed-off-by: PepeluDev <joseluislobell@gmail.com> Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
jyejare pushed a commit to opendatahub-io/feast that referenced this pull request
…st-dev#5933) * feat(go): Add MySQL registry store support for Go feature server This adds support for reading Feast registry data from a MySQL database in the Go feature server, enabling parity with the Python SDK's SQL registry store. - `mysql_registry_store.go`: MySQL registry store implementation - Parses SQLAlchemy-style URLs (mysql://user:pass@host:port/db) - Reads all registry tables (projects, entities, feature_views, etc.) - Uses generics for type-safe protobuf unmarshaling - Configurable connection pool settings - `mysql_registry_store_test.go`: Unit tests using in-memory SQLite - Tests registry loading with schema matching Python SQLAlchemy - Tests scheme routing for mysql:// URLs - `registry.go`: Added mysql scheme routing and MySQLRegistryStore factory - `repoconfig.go`: Added MySQL connection pool configuration options - mysql_max_open_conns (default: 20) - mysql_max_idle_conns (default: 10) - mysql_conn_max_lifetime_seconds (default: 300) - `repoconfig_test.go`: Added tests for new MySQL config options Users can configure the MySQL registry in feature_store.yaml: ```yaml registry: path: mysql://user:password@localhost:3306/feast_registry mysql_max_open_conns: 20 mysql_max_idle_conns: 10 mysql_conn_max_lifetime_seconds: 300 ``` The Go implementation reads from the same schema as the Python SQLAlchemy registry (sdk/python/feast/infra/registry/sql.py). When the Python schema evolves, the Go queries must be updated. Signed-off-by: PepeluDev <joseluislobell@gmail.com> * docs(go): Clarify MySQL registry store package documentation Signed-off-by: PepeluDev <joseluislobell@gmail.com> --------- Signed-off-by: PepeluDev <joseluislobell@gmail.com>
Shizoqua pushed a commit to Shizoqua/feast that referenced this pull request
…st-dev#5933) * feat(go): Add MySQL registry store support for Go feature server This adds support for reading Feast registry data from a MySQL database in the Go feature server, enabling parity with the Python SDK's SQL registry store. - `mysql_registry_store.go`: MySQL registry store implementation - Parses SQLAlchemy-style URLs (mysql://user:pass@host:port/db) - Reads all registry tables (projects, entities, feature_views, etc.) - Uses generics for type-safe protobuf unmarshaling - Configurable connection pool settings - `mysql_registry_store_test.go`: Unit tests using in-memory SQLite - Tests registry loading with schema matching Python SQLAlchemy - Tests scheme routing for mysql:// URLs - `registry.go`: Added mysql scheme routing and MySQLRegistryStore factory - `repoconfig.go`: Added MySQL connection pool configuration options - mysql_max_open_conns (default: 20) - mysql_max_idle_conns (default: 10) - mysql_conn_max_lifetime_seconds (default: 300) - `repoconfig_test.go`: Added tests for new MySQL config options Users can configure the MySQL registry in feature_store.yaml: ```yaml registry: path: mysql://user:password@localhost:3306/feast_registry mysql_max_open_conns: 20 mysql_max_idle_conns: 10 mysql_conn_max_lifetime_seconds: 300 ``` The Go implementation reads from the same schema as the Python SQLAlchemy registry (sdk/python/feast/infra/registry/sql.py). When the Python schema evolves, the Go queries must be updated. Signed-off-by: PepeluDev <joseluislobell@gmail.com> * docs(go): Clarify MySQL registry store package documentation Signed-off-by: PepeluDev <joseluislobell@gmail.com> --------- Signed-off-by: PepeluDev <joseluislobell@gmail.com> Signed-off-by: Shizoqua <hr.lanreshittu@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters