Amazon SageMaker Feature Store Runtime

2023/06/27 - Amazon SageMaker Feature Store Runtime - 3 updated api methods

Changes  Introducing TTL for online store records in feature groups.

BatchGetRecord (updated) Link ¶
Changes (request, response)
Request
{'ExpirationTimeResponse': 'Enabled | Disabled'}
Response
{'Records': {'ExpiresAt': 'string'}}

Retrieves a batch of Records from a FeatureGroup .

See also: AWS API Documentation

Request Syntax

client.batch_get_record(
    Identifiers=[
        {
            'FeatureGroupName': 'string',
            'RecordIdentifiersValueAsString': [
                'string',
            ],
            'FeatureNames': [
                'string',
            ]
        },
    ],
    ExpirationTimeResponse='Enabled'|'Disabled'
)
type Identifiers

list

param Identifiers

[REQUIRED]

A list of FeatureGroup names, with their corresponding RecordIdentifier value, and Feature name that have been requested to be retrieved in batch.

  • (dict) --

    The identifier that identifies the batch of Records you are retrieving in a batch.

    • FeatureGroupName (string) -- [REQUIRED]

      A FeatureGroupName containing Records you are retrieving in a batch.

    • RecordIdentifiersValueAsString (list) -- [REQUIRED]

      The value for a list of record identifiers in string format.

      • (string) --

    • FeatureNames (list) --

      List of names of Features to be retrieved. If not specified, the latest value for all the Features are returned.

      • (string) --

type ExpirationTimeResponse

string

param ExpirationTimeResponse

Parameter to request ExpiresAt in response. If Enabled , BatchGetRecord will return the value of ExpiresAt , if it is not null. If Disabled and null, BatchGetRecord will return null.

rtype

dict

returns

Response Syntax

{
    'Records': [
        {
            'FeatureGroupName': 'string',
            'RecordIdentifierValueAsString': 'string',
            'Record': [
                {
                    'FeatureName': 'string',
                    'ValueAsString': 'string'
                },
            ],
            'ExpiresAt': 'string'
        },
    ],
    'Errors': [
        {
            'FeatureGroupName': 'string',
            'RecordIdentifierValueAsString': 'string',
            'ErrorCode': 'string',
            'ErrorMessage': 'string'
        },
    ],
    'UnprocessedIdentifiers': [
        {
            'FeatureGroupName': 'string',
            'RecordIdentifiersValueAsString': [
                'string',
            ],
            'FeatureNames': [
                'string',
            ]
        },
    ]
}

Response Structure

  • (dict) --

    • Records (list) --

      A list of Records you requested to be retrieved in batch.

      • (dict) --

        The output of Records that have been retrieved in a batch.

        • FeatureGroupName (string) --

          The FeatureGroupName containing Records you retrieved in a batch.

        • RecordIdentifierValueAsString (string) --

          The value of the record identifier in string format.

        • Record (list) --

          The Record retrieved.

          • (dict) --

            The value associated with a feature.

            • FeatureName (string) --

              The name of a feature that a feature value corresponds to.

            • ValueAsString (string) --

              The value associated with a feature, in string format. Note that features types can be String, Integral, or Fractional. This value represents all three types as a string.

        • ExpiresAt (string) --

          The ExpiresAt ISO string of the requested record.

    • Errors (list) --

      A list of errors that have occurred when retrieving a batch of Records.

      • (dict) --

        The error that has occurred when attempting to retrieve a batch of Records.

        • FeatureGroupName (string) --

          The name of the feature group that the record belongs to.

        • RecordIdentifierValueAsString (string) --

          The value for the RecordIdentifier in string format of a Record from a FeatureGroup that is causing an error when attempting to be retrieved.

        • ErrorCode (string) --

          The error code of an error that has occurred when attempting to retrieve a batch of Records. For more information on errors, see Errors.

        • ErrorMessage (string) --

          The error message of an error that has occurred when attempting to retrieve a record in the batch.

    • UnprocessedIdentifiers (list) --

      A unprocessed list of FeatureGroup names, with their corresponding RecordIdentifier value, and Feature name.

      • (dict) --

        The identifier that identifies the batch of Records you are retrieving in a batch.

        • FeatureGroupName (string) --

          A FeatureGroupName containing Records you are retrieving in a batch.

        • RecordIdentifiersValueAsString (list) --

          The value for a list of record identifiers in string format.

          • (string) --

        • FeatureNames (list) --

          List of names of Features to be retrieved. If not specified, the latest value for all the Features are returned.

          • (string) --

GetRecord (updated) Link ¶
Changes (request, response)
Request
{'ExpirationTimeResponse': 'Enabled | Disabled'}
Response
{'ExpiresAt': 'string'}

Use for OnlineStore serving from a FeatureStore . Only the latest records stored in the OnlineStore can be retrieved. If no Record with RecordIdentifierValue is found, then an empty result is returned.

See also: AWS API Documentation

Request Syntax

client.get_record(
    FeatureGroupName='string',
    RecordIdentifierValueAsString='string',
    FeatureNames=[
        'string',
    ],
    ExpirationTimeResponse='Enabled'|'Disabled'
)
type FeatureGroupName

string

param FeatureGroupName

[REQUIRED]

The name of the feature group from which you want to retrieve a record.

type RecordIdentifierValueAsString

string

param RecordIdentifierValueAsString

[REQUIRED]

The value that corresponds to RecordIdentifier type and uniquely identifies the record in the FeatureGroup .

type FeatureNames

list

param FeatureNames

List of names of Features to be retrieved. If not specified, the latest value for all the Features are returned.

  • (string) --

type ExpirationTimeResponse

string

param ExpirationTimeResponse

Parameter to request ExpiresAt in response. If Enabled , BatchGetRecord will return the value of ExpiresAt , if it is not null. If Disabled and null, BatchGetRecord will return null.

rtype

dict

returns

Response Syntax

{
    'Record': [
        {
            'FeatureName': 'string',
            'ValueAsString': 'string'
        },
    ],
    'ExpiresAt': 'string'
}

Response Structure

  • (dict) --

    • Record (list) --

      The record you requested. A list of FeatureValues .

      • (dict) --

        The value associated with a feature.

        • FeatureName (string) --

          The name of a feature that a feature value corresponds to.

        • ValueAsString (string) --

          The value associated with a feature, in string format. Note that features types can be String, Integral, or Fractional. This value represents all three types as a string.

    • ExpiresAt (string) --

      The ExpiresAt ISO string of the requested record.

PutRecord (updated) Link ¶
Changes (request)
{'TtlDuration': {'Unit': 'Seconds | Minutes | Hours | Days | Weeks',
                 'Value': 'integer'}}

Used for data ingestion into the FeatureStore . The PutRecord API writes to both the OnlineStore and OfflineStore . If the record is the latest record for the recordIdentifier , the record is written to both the OnlineStore and OfflineStore . If the record is a historic record, it is written only to the OfflineStore .

See also: AWS API Documentation

Request Syntax

client.put_record(
    FeatureGroupName='string',
    Record=[
        {
            'FeatureName': 'string',
            'ValueAsString': 'string'
        },
    ],
    TargetStores=[
        'OnlineStore'|'OfflineStore',
    ],
    TtlDuration={
        'Unit': 'Seconds'|'Minutes'|'Hours'|'Days'|'Weeks',
        'Value': 123
    }
)
type FeatureGroupName

string

param FeatureGroupName

[REQUIRED]

The name of the feature group that you want to insert the record into.

type Record

list

param Record

[REQUIRED]

List of FeatureValues to be inserted. This will be a full over-write. If you only want to update few of the feature values, do the following:

  • Use GetRecord to retrieve the latest record.

  • Update the record returned from GetRecord .

  • Use PutRecord to update feature values.

  • (dict) --

    The value associated with a feature.

    • FeatureName (string) -- [REQUIRED]

      The name of a feature that a feature value corresponds to.

    • ValueAsString (string) -- [REQUIRED]

      The value associated with a feature, in string format. Note that features types can be String, Integral, or Fractional. This value represents all three types as a string.

type TargetStores

list

param TargetStores

A list of stores to which you're adding the record. By default, Feature Store adds the record to all of the stores that you're using for the FeatureGroup .

  • (string) --

type TtlDuration

dict

param TtlDuration

Time to live duration, where the record is hard deleted after the expiration time is reached; ExpiresAt = EventTime + TtlDuration . For information on HardDelete, see the DeleteRecord API in the Amazon SageMaker API Reference guide.

  • Unit (string) -- [REQUIRED]

    TtlDuration time unit.

  • Value (integer) -- [REQUIRED]

    TtlDuration time value.

returns

None