

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pengantar buku catatan contoh Toko Fitur
<a name="feature-store-introduction-notebook"></a>

**penting**  
Kebijakan IAM khusus yang memungkinkan Amazon SageMaker Studio atau Amazon SageMaker Studio Classic membuat SageMaker sumber daya Amazon juga harus memberikan izin untuk menambahkan tag ke sumber daya tersebut. Izin untuk menambahkan tag ke sumber daya diperlukan karena Studio dan Studio Classic secara otomatis menandai sumber daya apa pun yang mereka buat. Jika kebijakan IAM memungkinkan Studio dan Studio Classic membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya. Untuk informasi selengkapnya, lihat [Berikan izin untuk menandai sumber daya AI SageMaker](security_iam_id-based-policy-examples.md#grant-tagging-permissions).  
[AWS kebijakan terkelola untuk Amazon SageMaker AI](security-iam-awsmanpol.md)yang memberikan izin untuk membuat SageMaker sumber daya sudah menyertakan izin untuk menambahkan tag saat membuat sumber daya tersebut.

Kode contoh pada halaman ini mengacu pada contoh buku catatan [Pengantar Toko Fitur](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/feature_store_introduction.html). Kami menyarankan Anda menjalankan notebook ini di Studio Classic, instance notebook, atau JupyterLab karena kode dalam panduan ini konseptual dan tidak berfungsi penuh jika disalin.

Gunakan yang berikut ini untuk mengkloning [aws/ amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) GitHub repositori, yang berisi contoh notebook:
+ **Untuk Studio Klasik**

  Luncurkan Studio Klasik. Anda dapat membuka Studio Classic jika Studio atau Studio Classic diaktifkan sebagai pengalaman default Anda. Untuk petunjuk tentang cara membuka Studio Classic, lihat[Luncurkan Amazon SageMaker Studio Classic Menggunakan Konsol Amazon SageMaker AI](studio-launch.md#studio-launch-console).

  Kloning [aws/ amazon-sagemaker-examples](https://github.com/aws/amazon-sagemaker-examples) GitHub repositori ke Studio Classic dengan mengikuti langkah-langkah di. [Mengkloning Repositori Git di Amazon Studio Classic SageMaker](studio-tasks-git.md)
+ **Untuk instance SageMaker notebook Amazon**

  Luncurkan instance SageMaker notebook dengan mengikuti instruksi di[Akses Instans Notebook](howitworks-access-ws.md).

Sekarang setelah Anda memiliki notebook contoh SageMaker AI, navigasikan ke `amazon-sagemaker-examples/sagemaker-featurestore` direktori dan buka buku catatan contoh [Pengantar ke Feature Store](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/feature_store_introduction.html).

## Langkah 1: Siapkan sesi SageMaker AI Anda
<a name="feature-store-setup"></a>

Untuk mulai menggunakan Feature Store, buat sesi SageMaker AI. Kemudian, siapkan bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) yang ingin Anda gunakan untuk fitur Anda. Bucket Amazon S3 adalah toko offline Anda. Kode berikut menggunakan bucket default SageMaker AI dan menambahkan awalan khusus ke dalamnya.

**catatan**  
Peran yang Anda gunakan untuk menjalankan buku catatan harus memiliki kebijakan terkelola berikut yang dilampirkan padanya: `AmazonS3FullAccess` dan`AmazonSageMakerFeatureStoreAccess`. Untuk informasi tentang menambahkan kebijakan ke peran IAM Anda, lihat[Menambahkan kebijakan ke peran IAM Anda](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()
```

## Langkah 2: Periksa data Anda
<a name="feature-store-load-datasets"></a>

Dalam contoh notebook ini, kami menelan data sintetis dari [GitHub repositori](https://github.com/aws/amazon-sagemaker-examples/tree/master/sagemaker-featurestore/data) yang menampung notebook lengkap.

```
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())
```

Diagram berikut mengilustrasikan langkah-langkah yang dilalui data sebelum Feature Store menelannya. Dalam buku catatan ini, kami mengilustrasikan kasus penggunaan di mana Anda memiliki data dari berbagai sumber dan ingin menyimpannya secara independen di Toko Fitur. Contoh kami mempertimbangkan data dari gudang data (data pelanggan), dan data dari layanan streaming real-time (data pesanan).

![Pembuatan grup fitur dan konsumsi data di Feature Store untuk contoh notebook ini.](http://docs.aws.amazon.com/id_id/sagemaker/latest/dg/images/feature-store/feature-store-intro-diagram.png)


## Langkah 3: Buat grup fitur
<a name="feature-store-set-up-feature-groups-introduction"></a>

Pertama-tama kita mulai dengan membuat nama grup fitur untuk customer\_data dan orders\_data. Setelah ini, kami membuat dua grup fitur, satu untuk `customer_data` dan satu lagi untuk`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())
```

Buat instance `FeatureGroup` objek untuk `customers_data` dan: `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"
```

Tambahkan `EventTime` fitur ke bingkai data Anda. Parameter ini diperlukan, dan stempel waktu setiap titik data:

```
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")
```

Muat definisi fitur ke grup fitur Anda:

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

Panggilan berikut `create` untuk membuat dua grup fitur, `customers_feature_group` dan`orders_feature_group`, masing-masing:

```
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
)
```

Untuk mengonfirmasi bahwa grup fitur Anda telah dibuat, kami menampilkannya dengan menggunakan `DescribeFeatureGroup` dan `ListFeatureGroups` APIs:

```
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
```

## Langkah 4: Menyerap data ke dalam grup fitur
<a name="feature-store-set-up-record-identifier-event-time"></a>

Setelah grup fitur dibuat, kita dapat memasukkan data ke dalamnya. Jika Anda menggunakan SageMaker AI AWS SDK untuk Python (Boto3), gunakan panggilan `ingest` API. Jika Anda menggunakan SDK untuk Python (Boto3), gunakan API. `PutRecord` Ini akan memakan waktu kurang dari 1 menit untuk menelan data kedua opsi ini. Contoh ini menggunakan SageMaker AI SDK for Python (Boto3), sehingga menggunakan panggilan API: `ingest`

```
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
)
```

Menggunakan id catatan pelanggan arbitrer, 573291 kami gunakan `get_record` untuk memeriksa apakah data telah dicerna ke dalam grup fitur.

```
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)
```

Berikut ini menunjukkan bagaimana menggunakan `batch_get_record` untuk mendapatkan batch catatan.

```
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)
```

## Langkah 5: Bersihkan
<a name="feature-store-load-feature-definitions"></a>

Di sini kita menghapus Grup Fitur yang kita buat.

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

## Langkah 6: Langkah selanjutnya
<a name="feature-store-setup-create-feature-group"></a>

Di buku catatan contoh ini, Anda mempelajari cara memulai dengan Feature Store, membuat grup fitur, dan memasukkan data ke dalamnya.

Untuk contoh lanjutan tentang cara menggunakan Toko Fitur untuk kasus penggunaan deteksi penipuan, lihat [Deteksi Penipuan dengan Toko Fitur](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-featurestore/sagemaker_featurestore_fraud_detection_python_sdk.html).

## Langkah 7: Contoh kode untuk programmer
<a name="feature-store-working-with-feature-groups"></a>

Di notebook ini kami menggunakan berbagai panggilan API yang berbeda. Sebagian besar dari mereka dapat diakses melalui SageMaker Python SDK, namun beberapa hanya ada dalam Boto3. Anda dapat memanggil panggilan API SDK SageMaker Python langsung pada objek Feature Store Anda, sedangkan untuk memanggil panggilan API yang ada dalam Boto3, Anda harus terlebih dahulu mengakses klien Boto3 melalui sesi Boto3 dan AI Anda: misalnya,. SageMaker `sagemaker_session.boto_session.client()`

Berikut ini adalah daftar panggilan API untuk notebook ini. Panggilan ini ada di dalam SDK for Python dan ada di Boto3, untuk referensi Anda:

 **Panggilan API SDK for Python (Boto3)** 

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

 **Panggilan API Boto3** 

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