

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Einführung in das Feature Store-Beispiel-Notebook
<a name="feature-store-introduction-notebook"></a>

**Wichtig**  
Benutzerdefinierte IAM-Richtlinien, die es Amazon SageMaker Studio oder Amazon SageMaker Studio Classic ermöglichen, SageMaker Amazon-Ressourcen zu erstellen, müssen auch Berechtigungen zum Hinzufügen von Tags zu diesen Ressourcen gewähren. Die Berechtigung zum Hinzufügen von Tags zu Ressourcen ist erforderlich, da Studio und Studio Classic automatisch alle von ihnen erstellten Ressourcen taggen. Wenn eine IAM-Richtlinie Studio und Studio Classic das Erstellen von Ressourcen, aber kein Tagging erlaubt, können "AccessDenied" Fehler beim Versuch, Ressourcen zu erstellen, auftreten. Weitere Informationen finden Sie unter [Erteilen Sie Berechtigungen für das Taggen von SageMaker KI-Ressourcen](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS verwaltete Richtlinien für Amazon SageMaker AI](security-iam-awsmanpol.md)die Berechtigungen zum Erstellen von SageMaker Ressourcen gewähren, beinhalten bereits Berechtigungen zum Hinzufügen von Tags beim Erstellen dieser Ressourcen.

Der Beispielcode auf dieser Seite bezieht sich auf das Beispiel-Notebook [Introduction to Feature Store](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/feature_store_introduction.html). Wir empfehlen, dass Sie dieses Notizbuch in Studio Classic oder in Notebook-Instanzen ausführen, oder JupyterLab weil der Code in diesem Handbuch konzeptionell ist und nicht voll funktionsfähig ist, wenn er kopiert wird.

Gehen Sie wie folgt vor, um das [amazon-sagemaker-examples GitHub aws/-Repository](https://github.com/aws/amazon-sagemaker-examples) zu klonen, das das Beispiel-Notizbuch enthält:
+ **Für Studio Classic**

  Starten Sie Studio Classic. Sie können Studio Classic öffnen, wenn Studio oder Studio Classic als Standardkonfiguration aktiviert ist. Anleitungen zum Öffnen von Studio Classic finden Sie unter [Starten Sie Amazon SageMaker Studio Classic mit der Amazon SageMaker AI-Konsole](studio-launch.md#studio-launch-console).

  Klonen Sie das [amazon-sagemaker-examples GitHub aws/-Repository](https://github.com/aws/amazon-sagemaker-examples) nach Studio Classic, indem Sie den Schritten unter folgen. [Klonen Sie ein Git-Repository in Amazon SageMaker Studio Classic](studio-tasks-git.md)
+ **Für SageMaker Amazon-Notebook-Instances**

  Starten Sie die SageMaker Notebook-Instance, indem Sie den Anweisungen unter folgen[Zugreifen auf Notebook-Instances](howitworks-access-ws.md).

Nachdem Sie die SageMaker KI-Beispielnotizbücher haben, navigieren Sie zum `amazon-sagemaker-examples/sagemaker-featurestore` Verzeichnis und öffnen Sie das Beispielnotizbuch [Introduction to Feature Store](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/feature_store_introduction.html).

## Schritt 1: Richten Sie Ihre SageMaker KI-Sitzung ein
<a name="feature-store-setup"></a>

Um mit der Nutzung des Feature Store zu beginnen, erstellen Sie eine SageMaker KI-Sitzung. Richten Sie dann den Amazon Simple Storage Service (Amazon S3) -Bucket ein, den Sie für Ihre Funktionen verwenden möchten. Amazon-S3-Bucket ist Ihr Offline-Speicher. Der folgende Code verwendet den SageMaker AI-Standard-Bucket und fügt ihm ein benutzerdefiniertes Präfix hinzu.

**Anmerkung**  
Der Rolle, die Sie zum Ausführen des Notebooks verwenden, müssen die folgenden verwalteten Richtlinien zugeordnet sein: `AmazonS3FullAccess` und `AmazonSageMakerFeatureStoreAccess`. Informationen zum Hinzufügen von Richtlinien zu Ihrer IAM-Rolle finden Sie unter [Hinzufügen von Richtlinien zu Ihrer IAM-Rolle](feature-store-adding-policies.md).

```
# SageMaker Python SDK version 2.x is required
import sagemaker
import sys
```

```
import boto3
import pandas as pd
import numpy as np
import io
from sagemaker.session import Session
from sagemaker import get_execution_role

prefix = 'sagemaker-featurestore-introduction'
role = get_execution_role()

sagemaker_session = sagemaker.Session()
region = sagemaker_session.boto_region_name
s3_bucket_name = sagemaker_session.default_bucket()
```

## Schritt 2: Überprüfen Ihrer Daten
<a name="feature-store-load-datasets"></a>

In diesem Notebook-Beispiel nehmen wir synthetische Daten aus dem [GitHub Repository](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-featurestore/data) auf, das das gesamte Notizbuch hostet.

```
customer_data = pd.read_csv("data/feature_store_introduction_customer.csv")
orders_data = pd.read_csv("data/feature_store_introduction_orders.csv")

print(customer_data.head())
print(orders_data.head())
```

Das folgende Diagramm veranschaulicht die Schritte, die die Daten durchlaufen, bevor sie in den Feature Store aufgenommen werden. In diesem Notebook veranschaulichen wir den Anwendungsfall, bei dem Sie Daten aus mehreren Quellen haben und diese unabhängig voneinander in einem Feature Store speichern möchten. In unserem Beispiel werden Daten aus einem Data Warehouse (Kundendaten) und Daten aus einem Echtzeit-Streaming-Dienst (Bestelldaten) berücksichtigt.

![Erstellung von Funktionsgruppen und Datenerfassung im Feature Store für dieses Beispiel-Notebook.](http://docs.aws.amazon.com/de_de/sagemaker/latest/dg/images/feature-store/feature-store-intro-diagram.png)


## Schritt 3: Erstellen von Feature-Gruppen
<a name="feature-store-set-up-feature-groups-introduction"></a>

Wir beginnen damit, Feature-Gruppennamen für customer\_data und orders\_data zu erstellen. Anschließend erstellen wir zwei Feature-Gruppen, eine für `customer_data` und eine weitere für `orders_data`.

```
import time
from time import strftime, gmtime
customers_feature_group_name = 'customers-feature-group-' + strftime('%d-%H-%M-%S', gmtime())
orders_feature_group_name = 'orders-feature-group-' + strftime('%d-%H-%M-%S', gmtime())
```

Instanziieren Sie ein `FeatureGroup`-Objekt für `customers_data` und `orders_data`:

```
from sagemaker.feature_store.feature_group import FeatureGroup

customers_feature_group = FeatureGroup(
    name=customers_feature_group_name, sagemaker_session=sagemaker_session
)
orders_feature_group = FeatureGroup(
    name=orders_feature_group_name, sagemaker_session=sagemaker_session
)
```

```
import time
current_time_sec = int(round(time.time()))
record_identifier_feature_name = "customer_id"
```

Hängen Sie ein `EventTime` Feature an Ihren Datenrahmen an. Dieser Parameter ist erforderlich und gibt jedem Datenpunkt einen Zeitstempel:

```
customer_data["EventTime"] = pd.Series([current_time_sec]*len(customer_data), dtype="float64")
orders_data["EventTime"] = pd.Series([current_time_sec]*len(orders_data), dtype="float64")
```

Laden Sie Feature-Definitionen in Ihre Feature-Gruppe:

```
customers_feature_group.load_feature_definitions(data_frame=customer_data)
orders_feature_group.load_feature_definitions(data_frame=orders_data)
```

Folgendes ruft `create` auf, um zwei Feature-Gruppen zu erstellen, `customers_feature_group` und `orders_feature_group`:

```
customers_feature_group.create(
    s3_uri=f"s3://{s3_bucket_name}/{prefix}",
    record_identifier_name=record_identifier_feature_name,
    event_time_feature_name="EventTime",
    role_arn=role,
    enable_online_store=True
)

orders_feature_group.create(
    s3_uri=f"s3://{s3_bucket_name}/{prefix}",
    record_identifier_name=record_identifier_feature_name,
    event_time_feature_name="EventTime",
    role_arn=role,
    enable_online_store=True
)
```

Um zu bestätigen, dass Ihre Feature-Gruppe erstellt wurde, zeigen wir sie mit `DescribeFeatureGroup` und `ListFeatureGroups` APIs an:

```
customers_feature_group.describe()
```

```
orders_feature_group.describe()
```

```
sagemaker_session.boto_session.client('sagemaker', region_name=region).list_feature_groups() # We use the boto client to list FeatureGroups
```

## Schritt 4: Daten in eine Feature-Gruppe aufnehmen
<a name="feature-store-set-up-record-identifier-event-time"></a>

Nachdem Featuregruppen erstellt wurden, können wir Daten in sie einfügen. Wenn Sie die SageMaker KI verwenden AWS SDK für Python (Boto3), verwenden Sie den `ingest` API-Aufruf. Wenn Sie SDK for Python (Boto3) verwenden, verwenden Sie die `PutRecord` API. Die Datenaufnahme dieser beiden Optionen dauert weniger als 1 Minute. In diesem Beispiel wird das SageMaker AI-SDK SDK for Python (Boto3) verwendet, also der `ingest` API-Aufruf:

```
def check_feature_group_status(feature_group):
    status = feature_group.describe().get("FeatureGroupStatus")
    while status == "Creating":
        print("Waiting for Feature Group to be Created")
        time.sleep(5)
        status = feature_group.describe().get("FeatureGroupStatus")
    print(f"FeatureGroup {feature_group.name} successfully created.")

check_feature_group_status(customers_feature_group)
check_feature_group_status(orders_feature_group)
```

```
customers_feature_group.ingest(
    data_frame=customer_data, max_workers=3, wait=True
)
```

```
orders_feature_group.ingest(
    data_frame=orders_data, max_workers=3, wait=True
)
```

Mithilfe einer beliebigen Kundendatensatz-ID, 573291, überprüfen wir, ob die Daten in die Feature-Gruppe aufgenommen wurden `get_record`.

```
customer_id = 573291
sample_record = sagemaker_session.boto_session.client('sagemaker-featurestore-runtime', region_name=region).get_record(FeatureGroupName=customers_feature_group_name, RecordIdentifierValueAsString=str(customer_id))
```

```
print(sample_record)
```

Nachfolgend wird gezeigt, wie Sie `batch_get_record` zum Abrufen eines Batch von Datensätzen verwenden.

```
all_records = sagemaker_session.boto_session.client(
    "sagemaker-featurestore-runtime", region_name=region
).batch_get_record(
    Identifiers=[
        {
            "FeatureGroupName": customers_feature_group_name,
            "RecordIdentifiersValueAsString": ["573291", "109382", "828400", "124013"],
        },
        {
            "FeatureGroupName": orders_feature_group_name,
            "RecordIdentifiersValueAsString": ["573291", "109382", "828400", "124013"],
        },
    ]
)
```

```
print(all_records)
```

## Schritt 5: Bereinigen
<a name="feature-store-load-feature-definitions"></a>

Hier entfernen wir die Feature-Gruppen, die wir erstellt haben.

```
customers_feature_group.delete()
orders_feature_group.delete()
```

## Schritt 6: Nächste Schritte
<a name="feature-store-setup-create-feature-group"></a>

In diesem Beispiel-Notebook haben Sie gelernt, wie Sie mit Feature Store loslegen, Feature-Gruppen erstellen und Daten in diese aufnehmen können.

Ein fortgeschrittenes Beispiel für die Verwendung von Feature Store zur Betrugserkennung finden Sie unter [Betrugserkennung mit Feature Store](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.html).

## Schritt 7: Codebeispiele für Programmierer
<a name="feature-store-working-with-feature-groups"></a>

In diesem Notebook haben wir eine Vielzahl verschiedener API-Aufrufe verwendet. Die meisten von ihnen sind über das SageMaker Python-SDK zugänglich, einige existieren jedoch nur in Boto3. Sie können die SageMaker Python-SDK-API-Aufrufe direkt für Ihre Feature Store-Objekte aufrufen. Um API-Aufrufe aufzurufen, die in Boto3 existieren, müssen Sie jedoch zuerst über Ihre Boto3- und AI-Sitzungen auf einen Boto3-Client zugreifen: zum Beispiel. SageMaker `sagemaker_session.boto_session.client()`

Im Folgenden finden Sie eine Liste der API-Aufrufe für dieses Notebook. Diese Aufrufe existieren innerhalb von SDK for Python und existieren in Boto3, zu Ihrer Information:

 **SDK for Python (Boto3) -API-Aufrufe** 

```
describe()
ingest()
delete()
create()
load_feature_definitions()
```

 **Boto3-API-Aufrufe** 

```
list_feature_groups()
get_record()
```