Skip to content

Feat/java/create feature view #1420

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

SirOibaf
Copy link
Contributor

This PR adds/fixes/changes...

  • please summarize your changes to the code
  • and make sure to include all changes to user-facing APIs

JIRA Issue: -

Priority for Review: -

Related PRs: -

How Has This Been Tested?

  • Unit Tests
  • Integration Tests
  • Manual Tests on VM

Checklist For The Assigned Reviewer:

- [ ] Checked if merge conflicts with master exist
- [ ] Checked if stylechecks for Java and Python pass
- [ ] Checked if all docstrings were added and/or updated appropriately
- [ ] Ran spellcheck on docstring
- [ ] Checked if guides & concepts need to be updated
- [ ] Checked if naming conventions for parameters and variables were followed
- [ ] Checked if private methods are properly declared and used
- [ ] Checked if hard-to-understand areas of code are commented
- [ ] Checked if tests are effective
- [ ] Built and deployed changes on dev VM and tested manually
- [x] (Checked if all type annotations were added and/or updated appropriately)

@SirOibaf SirOibaf requested review from Copilot and davitbzh March 10, 2025 09:19
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR Overview

This PR introduces a new builder pattern for constructing FeatureView objects and extends functionality for feature view and feature group query operations across Beam, Flink, and HSFS modules. Key changes include:

  • Adding builder classes and getOrCreate methods for FeatureView in multiple modules.
  • Introducing new query methods (e.g., selectFeatures, selectAll, selectExcept) for FeatureGroup objects.
  • Extending tagging methods and updating QueryBase from an abstract to a concrete class.

Reviewed Changes

File Description
java/beam/src/main/java/com/logicalclocks/hsfs/beam/FeatureView.java Adds FeatureView builder and constructor enhancements.
java/hsfs/src/main/java/com/logicalclocks/hsfs/FeatureView.java Introduces similar FeatureView builder changes.
java/flink/src/main/java/com/logicalclocks/hsfs/flink/FeatureView.java Adds builder support for Flink FeatureView.
java/hsfs/src/main/java/com/logicalclocks/hsfs/engine/FeatureViewEngine.java Implements getOrCreateFeatureView with error handling.
java/flink/src/main/java/com/logicalclocks/hsfs/flink/engine/FeatureViewEngine.java Mirrors getOrCreateFeatureView functionality for Flink.
java/hsfs/src/main/java/com/logicalclocks/hsfs/engine/FeatureGroupUtils.java Updates getSubject workaround logic.
java/beam/src/main/java/com/logicalclocks/hsfs/beam/engine/FeatureViewEngine.java Adds List import and getOrCreateFeatureView for Beam.
java/beam/src/main/java/com/logicalclocks/hsfs/beam/StreamFeatureGroup.java Adds new query selection methods to Beam FeatureGroup.
java/hsfs/src/main/java/com/logicalclocks/hsfs/FeatureStore.java Introduces createFeatureView and getOrCreateFeatureView API methods.
java/flink/src/main/java/com/logicalclocks/hsfs/flink/StreamFeatureGroup.java Adds query methods to Flink FeatureGroup.
java/beam/src/main/java/com/logicalclocks/hsfs/beam/FeatureStore.java Adds corresponding FeatureStore API changes for Beam.
java/beam/src/main/java/com/logicalclocks/hsfs/beam/constructor/Query.java Adds Beam-specific Query constructor using FeatureGroupBase.
java/flink/src/main/java/com/logicalclocks/hsfs/flink/FeatureStore.java Updates FeatureStore API for Flink with builder methods.
java/hsfs/src/main/java/com/logicalclocks/hsfs/StreamFeatureGroup.java Extends query related methods in HSFS FeatureGroup.
java/hsfs/src/main/java/com/logicalclocks/hsfs/constructor/Query.java Adds HSFS Query constructor changes.
java/hsfs/src/main/java/com/logicalclocks/hsfs/FeatureViewBase.java Introduces new tagging and deletion related methods for FeatureView.
java/hsfs/src/main/java/com/logicalclocks/hsfs/FeatureGroupBase.java Adds new property for feature store identifier.
java/hsfs/src/main/java/com/logicalclocks/hsfs/constructor/QueryBase.java Changes QueryBase from an abstract to a concrete class.
java/hsfs/src/main/java/com/logicalclocks/hsfs/TrainingDatasetFeature.java Applies @JsonIgnore annotation to isComplex for serialization control.
java/flink/src/main/java/com/logicalclocks/hsfs/flink/constructor/Query.java Updates Flink Query constructor accordingly.

Copilot reviewed 24 out of 24 changed files in this pull request and generated 1 comment.

@@ -41,7 +41,7 @@
import java.util.stream.Collectors;

@NoArgsConstructor
public abstract class QueryBase<T extends QueryBase<T, T2, T3>, T2 extends FeatureGroupBase, T3> {
public class QueryBase<T extends QueryBase<T, T2, T3>, T2 extends FeatureGroupBase, T3> {
Copy link
Preview

Copilot AI Mar 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

QueryBase was changed from an abstract class to a concrete class; please verify if this is intentional to avoid accidental instantiation.

Copilot uses AI. Check for mistakes.

@SirOibaf SirOibaf enabled auto-merge (squash) March 16, 2025 23:27
@SirOibaf SirOibaf merged commit 1d1b9d2 into logicalclocks:branch-3.9 Mar 17, 2025
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants