

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 自訂資料來源
<a name="feature-store-feature-processor-data-sources-custom"></a>

在此頁面上，我們將描述如何建立自訂資料來源類別，並顯示一些使用範例。使用自訂資料來源時，您可以使用 SageMaker AI SDK for Python (Boto3) 提供的 API，方式與使用 Amazon SageMaker Feature Store 提供的資料來源相同。

若要使用自訂資料來源來使用特徵處理將資料轉換並擷取至特徵群組，您需要使用以下類別成員和函式來擴充 `PySparkDataSource` 類別。
+ `data_source_name` (字串)：資料來源的任意名稱。例如，Amazon Redshift，Snowflake，或 Glue 目錄 ARN。
+ `data_source_unique_id` (str)：一個唯一識別碼，指被存取的特定資源。例如，資料表名稱，DDB 資料表 ARN，Amazon S3 字首。自訂資料來源中的所有相同 `data_source_unique_id` 的用法都會與歷程檢視中的相同資料來源相關聯。歷程包含有關特徵處理工作流程的執行程式碼、使用的資料來源以及如何將其擷取特徵群組或特徵的資訊。如需在 **Studio** 中檢視特徵群組歷程的資訊，請參閱[從主控台檢視歷程](feature-store-use-with-studio.md#feature-store-view-feature-processor-pipeline-lineage-studio)。
+ `read_data` (函式)：用於使用特徵處理器連接的方法。返回 Spark 資料框架。如需範例，請參閱 [自訂資料來源範例](feature-store-feature-processor-data-sources-custom-examples.md)。

`data_source_name` 和 `data_source_unique_id` 都可用來唯一識別碼歷程實體。以下是名為 `CustomDataSource` 的自訂資料來源類別的範例。

```
from sagemaker.feature_store.feature_processor import PySparkDataSource
from pyspark.sql import DataFrame

class CustomDataSource(PySparkDataSource):
    
    data_source_name = "{{custom-data-source-name}}"
    data_source_unique_id = "{{custom-data-source-id}}"
    
    def read_data(self, parameter, spark) -> DataFrame:
        {{your own code here to read data into a Spark dataframe}}
        return dataframe
```