[ aws . sagemaker ]

create-feature-group

Description

Create a new FeatureGroup . A FeatureGroup is a group of Features defined in the FeatureStore to describe a Record .

The FeatureGroup defines the schema and features contained in the FeatureGroup. A FeatureGroup definition is composed of a list of Features , a RecordIdentifierFeatureName , an EventTimeFeatureName and configurations for its OnlineStore and OfflineStore . Check AWS service quotas to see the FeatureGroup s quota for your AWS account.

Warning

You must include at least one of OnlineStoreConfig and OfflineStoreConfig to create a FeatureGroup .

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.

Synopsis

  create-feature-group
--feature-group-name <value>
--record-identifier-feature-name <value>
--event-time-feature-name <value>
--feature-definitions <value>
[--online-store-config <value>]
[--offline-store-config <value>]
[--role-arn <value>]
[--description <value>]
[--tags <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]

Options

--feature-group-name (string)

The name of the FeatureGroup . The name must be unique within an AWS Region in an AWS account. The name:

  • Must start and end with an alphanumeric character.

  • Can only contain alphanumeric character and hyphens. Spaces are not allowed.

--record-identifier-feature-name (string)

The name of the Feature whose value uniquely identifies a Record defined in the FeatureStore . Only the latest record per identifier value will be stored in the OnlineStore . RecordIdentifierFeatureName must be one of feature definitions’ names.

You use the RecordIdentifierFeatureName to access data in a FeatureStore .

This name:

  • Must start and end with an alphanumeric character.

  • Can only contains alphanumeric characters, hyphens, underscores. Spaces are not allowed.

--event-time-feature-name (string)

The name of the feature that stores the EventTime of a Record in a FeatureGroup .

An EventTime is a point in time when a new event occurs that corresponds to the creation or update of a Record in a FeatureGroup . All Records in the FeatureGroup must have a corresponding EventTime .

An EventTime can be a String or Fractional .

  • Fractional : EventTime feature values must be a Unix timestamp in seconds.

  • String : EventTime feature values must be an ISO-8601 string in the format. The following formats are supported yyyy-MM-dd'T'HH:mm:ssZ and yyyy-MM-dd'T'HH:mm:ss.SSSZ where yyyy , MM , and dd represent the year, month, and day respectively and HH , mm , ss , and if applicable, SSS represent the hour, month, second and milliseconds respsectively. 'T' and Z are constants.

--feature-definitions (list)

A list of Feature names and types. Name and Type is compulsory per Feature .

Valid feature FeatureType s are Integral , Fractional and String .

FeatureName s cannot be any of the following: is_deleted , write_time , api_invocation_time

You can create up to 2,500 FeatureDefinition s per FeatureGroup .

(structure)

A list of features. You must include FeatureName and FeatureType . Valid feature FeatureType s are Integral , Fractional and String .

FeatureName -> (string)

The name of a feature. The type must be a string. FeatureName cannot be any of the following: is_deleted , write_time , api_invocation_time .

FeatureType -> (string)

The value type of a feature. Valid values are Integral, Fractional, or String.

Shorthand Syntax:

FeatureName=string,FeatureType=string ...

JSON Syntax:

[
  {
    "FeatureName": "string",
    "FeatureType": "Integral"|"Fractional"|"String"
  }
  ...
]

--online-store-config (structure)

You can turn the OnlineStore on or off by specifying True for the EnableOnlineStore flag in OnlineStoreConfig ; the default value is False .

You can also include an AWS KMS key ID (KMSKeyId ) for at-rest encryption of the OnlineStore .

SecurityConfig -> (structure)

Use to specify KMS Key ID (KMSKeyId ) for at-rest encryption of your OnlineStore .

KmsKeyId -> (string)

The ID of the AWS Key Management Service (AWS KMS) key that SageMaker Feature Store uses to encrypt the Amazon S3 objects at rest using Amazon S3 server-side encryption.

The caller (either IAM user or IAM role) of CreateFeatureGroup must have below permissions to the OnlineStore KmsKeyId :

  • "kms:Encrypt"

  • "kms:Decrypt"

  • "kms:DescribeKey"

  • "kms:CreateGrant"

  • "kms:RetireGrant"

  • "kms:ReEncryptFrom"

  • "kms:ReEncryptTo"

  • "kms:GenerateDataKey"

  • "kms:ListAliases"

  • "kms:ListGrants"

  • "kms:RevokeGrant"

The caller (either IAM user or IAM role) to all DataPlane operations (PutRecord , GetRecord , DeleteRecord ) must have the following permissions to the KmsKeyId :

  • "kms:Decrypt"

EnableOnlineStore -> (boolean)

Turn OnlineStore off by specifying False for the EnableOnlineStore flag. Turn OnlineStore on by specifying True for the EnableOnlineStore flag.

The default value is False .

Shorthand Syntax:

SecurityConfig={KmsKeyId=string},EnableOnlineStore=boolean

JSON Syntax:

{
  "SecurityConfig": {
    "KmsKeyId": "string"
  },
  "EnableOnlineStore": true|false
}

--offline-store-config (structure)

Use this to configure an OfflineFeatureStore . This parameter allows you to specify:

  • The Amazon Simple Storage Service (Amazon S3) location of an OfflineStore .

  • A configuration for an AWS Glue or AWS Hive data cataolgue.

  • An KMS encryption key to encrypt the Amazon S3 location used for OfflineStore .

To learn more about this parameter, see OfflineStoreConfig .

S3StorageConfig -> (structure)

The Amazon Simple Storage (Amazon S3) location of OfflineStore .

S3Uri -> (string)

The S3 URI, or location in Amazon S3, of OfflineStore .

S3 URIs have a format similar to the following: s3://example-bucket/prefix/ .

KmsKeyId -> (string)

The AWS Key Management Service (KMS) key ID of the key used to encrypt any objects written into the OfflineStore S3 location.

The IAM roleARN that is passed as a parameter to CreateFeatureGroup must have below permissions to the KmsKeyId :

  • "kms:GenerateDataKey"

DisableGlueTableCreation -> (boolean)

Set to True to disable the automatic creation of an AWS Glue table when configuring an OfflineStore .

DataCatalogConfig -> (structure)

The meta data of the Glue table that is autogenerated when an OfflineStore is created.

TableName -> (string)

The name of the Glue table.

Catalog -> (string)

The name of the Glue table catalog.

Database -> (string)

The name of the Glue table database.

Shorthand Syntax:

S3StorageConfig={S3Uri=string,KmsKeyId=string},DisableGlueTableCreation=boolean,DataCatalogConfig={TableName=string,Catalog=string,Database=string}

JSON Syntax:

{
  "S3StorageConfig": {
    "S3Uri": "string",
    "KmsKeyId": "string"
  },
  "DisableGlueTableCreation": true|false,
  "DataCatalogConfig": {
    "TableName": "string",
    "Catalog": "string",
    "Database": "string"
  }
}

--role-arn (string)

The Amazon Resource Name (ARN) of the IAM execution role used to persist data into the OfflineStore if an OfflineStoreConfig is provided.

--description (string)

A free-form description of a FeatureGroup .

--tags (list)

Tags used to identify Features in each FeatureGroup .

(structure)

Describes a tag.

Key -> (string)

The tag key.

Value -> (string)

The tag value.

Shorthand Syntax:

Key=string,Value=string ...

JSON Syntax:

[
  {
    "Key": "string",
    "Value": "string"
  }
  ...
]

--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See ‘aws help’ for descriptions of global parameters.

Output

FeatureGroupArn -> (string)

The Amazon Resource Name (ARN) of the FeatureGroup . This is a unique identifier for the feature group.