Skip to content
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

feat: add featurestore module including Featurestore, EntityType, and Feature classes; add get, update, delete, list methods in all featurestore classes; add search method in Feature class #850

Merged
merged 16 commits into from Nov 30, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
8 changes: 8 additions & 0 deletions google/cloud/aiplatform/__init__.py
Expand Up @@ -33,6 +33,11 @@
from google.cloud.aiplatform import explain
from google.cloud.aiplatform import gapic
from google.cloud.aiplatform import hyperparameter_tuning
from google.cloud.aiplatform.featurestore import (
EntityType,
Feature,
Featurestore,
)
from google.cloud.aiplatform.metadata import metadata
from google.cloud.aiplatform.models import Endpoint
from google.cloud.aiplatform.models import Model
Expand Down Expand Up @@ -92,6 +97,9 @@
"CustomContainerTrainingJob",
"CustomPythonPackageTrainingJob",
"Endpoint",
"EntityType",
"Feature",
"Featurestore",
"ImageDataset",
"HyperparameterTuningJob",
"Model",
Expand Down
12 changes: 10 additions & 2 deletions google/cloud/aiplatform/base.py
Expand Up @@ -898,6 +898,7 @@ def _list(
project: Optional[str] = None,
location: Optional[str] = None,
credentials: Optional[auth_credentials.Credentials] = None,
parent: Optional[str] = None,
) -> List[VertexAiResourceNoun]:
"""Private method to list all instances of this Vertex AI Resource,
takes a `cls_filter` arg to filter to a particular SDK resource
Expand Down Expand Up @@ -925,6 +926,8 @@ def _list(
credentials (auth_credentials.Credentials):
Optional. Custom credentials to use to retrieve list. Overrides
credentials set in aiplatform.init.
parent (str):
Optional. The parent resource name if any to retrieve resource list from.

Returns:
List[VertexAiResourceNoun] - A list of SDK resource objects
Expand All @@ -934,12 +937,13 @@ def _list(
)

# Fetch credentials once and re-use for all `_empty_constructor()` calls
creds = initializer.global_config.credentials
creds = resource.credentials

resource_list_method = getattr(resource.api_client, resource._list_method)

list_request = {
"parent": initializer.global_config.common_location_path(
"parent": parent
or initializer.global_config.common_location_path(
project=project, location=location
),
"filter": filter,
Expand Down Expand Up @@ -1029,6 +1033,7 @@ def list(
project: Optional[str] = None,
location: Optional[str] = None,
credentials: Optional[auth_credentials.Credentials] = None,
parent: Optional[str] = None,
) -> List[VertexAiResourceNoun]:
"""List all instances of this Vertex AI Resource.

Expand Down Expand Up @@ -1057,6 +1062,8 @@ def list(
credentials (auth_credentials.Credentials):
Optional. Custom credentials to use to retrieve list. Overrides
credentials set in aiplatform.init.
parent (str):
Optional. The parent resource name if any to retrieve list from.

Returns:
List[VertexAiResourceNoun] - A list of SDK resource objects
Expand All @@ -1068,6 +1075,7 @@ def list(
project=project,
location=location,
credentials=credentials,
parent=parent,
)

@optional_sync()
Expand Down
23 changes: 23 additions & 0 deletions google/cloud/aiplatform/compat/__init__.py
Expand Up @@ -27,6 +27,10 @@

services.dataset_service_client = services.dataset_service_client_v1beta1
services.endpoint_service_client = services.endpoint_service_client_v1beta1
services.featurestore_online_serving_service_client = (
services.featurestore_online_serving_service_client_v1beta1
)
services.featurestore_service_client = services.featurestore_service_client_v1beta1
services.job_service_client = services.job_service_client_v1beta1
services.model_service_client = services.model_service_client_v1beta1
services.pipeline_service_client = services.pipeline_service_client_v1beta1
Expand All @@ -53,11 +57,19 @@
types.encryption_spec = types.encryption_spec_v1beta1
types.endpoint = types.endpoint_v1beta1
types.endpoint_service = types.endpoint_service_v1beta1
types.entity_type = types.entity_type_v1beta1
types.env_var = types.env_var_v1beta1
types.event = types.event_v1beta1
types.execution = types.execution_v1beta1
types.explanation = types.explanation_v1beta1
types.explanation_metadata = types.explanation_metadata_v1beta1
types.feature = types.feature_v1beta1
types.feature_monitoring_stats = types.feature_monitoring_stats_v1beta1
types.feature_selector = types.feature_selector_v1beta1
types.featurestore = types.featurestore_v1beta1
types.featurestore_monitoring = types.featurestore_monitoring_v1beta1
types.featurestore_online_service = types.featurestore_online_service_v1beta1
types.featurestore_service = types.featurestore_service_v1beta1
types.hyperparameter_tuning_job = types.hyperparameter_tuning_job_v1beta1
types.io = types.io_v1beta1
types.job_service = types.job_service_v1beta1
Expand Down Expand Up @@ -90,6 +102,10 @@

services.dataset_service_client = services.dataset_service_client_v1
services.endpoint_service_client = services.endpoint_service_client_v1
services.featurestore_online_serving_service_client = (
services.featurestore_online_serving_service_client_v1
)
services.featurestore_service_client = services.featurestore_service_client_v1
services.job_service_client = services.job_service_client_v1
services.model_service_client = services.model_service_client_v1
services.pipeline_service_client = services.pipeline_service_client_v1
Expand All @@ -113,11 +129,18 @@
types.encryption_spec = types.encryption_spec_v1
types.endpoint = types.endpoint_v1
types.endpoint_service = types.endpoint_service_v1
types.entity_type = types.entity_type_v1
types.env_var = types.env_var_v1
types.event = types.event_v1
types.execution = types.execution_v1
types.explanation = types.explanation_v1
types.explanation_metadata = types.explanation_metadata_v1
types.feature = types.feature_v1
types.feature_monitoring_stats = types.feature_monitoring_stats_v1
types.feature_selector = types.feature_selector_v1
types.featurestore = types.featurestore_v1
types.featurestore_online_service = types.featurestore_online_service_v1
types.featurestore_service = types.featurestore_service_v1
types.hyperparameter_tuning_job = types.hyperparameter_tuning_job_v1
types.io = types.io_v1
types.job_service = types.job_service_v1
Expand Down
16 changes: 16 additions & 0 deletions google/cloud/aiplatform/compat/services/__init__.py
Expand Up @@ -21,6 +21,12 @@
from google.cloud.aiplatform_v1beta1.services.endpoint_service import (
client as endpoint_service_client_v1beta1,
)
from google.cloud.aiplatform_v1beta1.services.featurestore_online_serving_service import (
client as featurestore_online_serving_service_client_v1beta1,
)
from google.cloud.aiplatform_v1beta1.services.featurestore_service import (
client as featurestore_service_client_v1beta1,
)
from google.cloud.aiplatform_v1beta1.services.job_service import (
client as job_service_client_v1beta1,
)
Expand Down Expand Up @@ -49,6 +55,12 @@
from google.cloud.aiplatform_v1.services.endpoint_service import (
client as endpoint_service_client_v1,
)
from google.cloud.aiplatform_v1.services.featurestore_online_serving_service import (
client as featurestore_online_serving_service_client_v1,
)
from google.cloud.aiplatform_v1.services.featurestore_service import (
client as featurestore_service_client_v1,
)
from google.cloud.aiplatform_v1.services.job_service import (
client as job_service_client_v1,
)
Expand All @@ -75,6 +87,8 @@
# v1
dataset_service_client_v1,
endpoint_service_client_v1,
featurestore_online_serving_service_client_v1beta1,
featurestore_service_client_v1beta1,
job_service_client_v1,
metadata_service_client_v1,
model_service_client_v1,
Expand All @@ -85,6 +99,8 @@
# v1beta1
dataset_service_client_v1beta1,
endpoint_service_client_v1beta1,
featurestore_online_serving_service_client_v1,
featurestore_service_client_v1,
job_service_client_v1beta1,
model_service_client_v1beta1,
pipeline_service_client_v1beta1,
Expand Down
30 changes: 30 additions & 0 deletions google/cloud/aiplatform/compat/types/__init__.py
Expand Up @@ -32,11 +32,19 @@
encryption_spec as encryption_spec_v1beta1,
endpoint as endpoint_v1beta1,
endpoint_service as endpoint_service_v1beta1,
entity_type as entity_type_v1beta1,
env_var as env_var_v1beta1,
event as event_v1beta1,
execution as execution_v1beta1,
explanation as explanation_v1beta1,
explanation_metadata as explanation_metadata_v1beta1,
feature as feature_v1beta1,
feature_monitoring_stats as feature_monitoring_stats_v1beta1,
feature_selector as feature_selector_v1beta1,
featurestore as featurestore_v1beta1,
featurestore_monitoring as featurestore_monitoring_v1beta1,
featurestore_online_service as featurestore_online_service_v1beta1,
featurestore_service as featurestore_service_v1beta1,
hyperparameter_tuning_job as hyperparameter_tuning_job_v1beta1,
io as io_v1beta1,
job_service as job_service_v1beta1,
Expand Down Expand Up @@ -82,11 +90,18 @@
encryption_spec as encryption_spec_v1,
endpoint as endpoint_v1,
endpoint_service as endpoint_service_v1,
entity_type as entity_type_v1,
env_var as env_var_v1,
event as event_v1,
execution as execution_v1,
explanation as explanation_v1,
explanation_metadata as explanation_metadata_v1,
feature as feature_v1,
feature_monitoring_stats as feature_monitoring_stats_v1,
feature_selector as feature_selector_v1,
featurestore as featurestore_v1,
featurestore_online_service as featurestore_online_service_v1,
featurestore_service as featurestore_service_v1,
hyperparameter_tuning_job as hyperparameter_tuning_job_v1,
io as io_v1,
job_service as job_service_v1,
Expand Down Expand Up @@ -134,11 +149,18 @@
encryption_spec_v1,
endpoint_v1,
endpoint_service_v1,
entity_type_v1,
env_var_v1,
event_v1,
execution_v1,
explanation_v1,
explanation_metadata_v1,
feature_v1,
feature_monitoring_stats_v1,
feature_selector_v1,
featurestore_v1,
featurestore_online_service_v1,
featurestore_service_v1,
hyperparameter_tuning_job_v1,
io_v1,
job_service_v1,
Expand Down Expand Up @@ -182,11 +204,19 @@
encryption_spec_v1beta1,
endpoint_v1beta1,
endpoint_service_v1beta1,
entity_type_v1beta1,
env_var_v1beta1,
event_v1beta1,
execution_v1beta1,
explanation_v1beta1,
explanation_metadata_v1beta1,
feature_v1beta1,
feature_monitoring_stats_v1beta1,
feature_selector_v1beta1,
featurestore_v1beta1,
featurestore_monitoring_v1beta1,
featurestore_online_service_v1beta1,
featurestore_service_v1beta1,
hyperparameter_tuning_job_v1beta1,
io_v1beta1,
job_service_v1beta1,
Expand Down
26 changes: 26 additions & 0 deletions google/cloud/aiplatform/featurestore/__init__.py
@@ -0,0 +1,26 @@
# -*- coding: utf-8 -*-

# Copyright 2021 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

from google.cloud.aiplatform.featurestore.entity_type import EntityType
from google.cloud.aiplatform.featurestore.feature import Feature
from google.cloud.aiplatform.featurestore.featurestore import Featurestore

__all__ = (
"EntityType",
"Feature",
"Featurestore",
)