AWS Glue

2020/02/28 - AWS Glue - 1 new 1 updated api methods

Changes  AWS Glue adds resource tagging support for Machine Learning Transforms and adds a new API, ListMLTransforms to support tag filtering. With this feature, customers can use tags in AWS Glue to organize and control access to Machine Learning Transforms.

ListMLTransforms (new) Link ¶

Retrieves a sortable, filterable list of existing AWS Glue machine learning transforms in this AWS account, or the resources with the specified tag. This operation takes the optional Tags field, which you can use as a filter of the responses so that tagged resources can be retrieved as a group. If you choose to use tag filtering, only resources with the tags are retrieved.

See also: AWS API Documentation

Request Syntax

client.list_ml_transforms(
    NextToken='string',
    MaxResults=123,
    Filter={
        'Name': 'string',
        'TransformType': 'FIND_MATCHES',
        'Status': 'NOT_READY'|'READY'|'DELETING',
        'GlueVersion': 'string',
        'CreatedBefore': datetime(2015, 1, 1),
        'CreatedAfter': datetime(2015, 1, 1),
        'LastModifiedBefore': datetime(2015, 1, 1),
        'LastModifiedAfter': datetime(2015, 1, 1),
        'Schema': [
            {
                'Name': 'string',
                'DataType': 'string'
            },
        ]
    },
    Sort={
        'Column': 'NAME'|'TRANSFORM_TYPE'|'STATUS'|'CREATED'|'LAST_MODIFIED',
        'SortDirection': 'DESCENDING'|'ASCENDING'
    },
    Tags={
        'string': 'string'
    }
)
type NextToken

string

param NextToken

A continuation token, if this is a continuation request.

type MaxResults

integer

param MaxResults

The maximum size of a list to return.

type Filter

dict

param Filter

A TransformFilterCriteria used to filter the machine learning transforms.

  • Name (string) --

    A unique transform name that is used to filter the machine learning transforms.

  • TransformType (string) --

    The type of machine learning transform that is used to filter the machine learning transforms.

  • Status (string) --

    Filters the list of machine learning transforms by the last known status of the transforms (to indicate whether a transform can be used or not). One of "NOT_READY", "READY", or "DELETING".

  • GlueVersion (string) --

    This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see AWS Glue Versions in the developer guide.

  • CreatedBefore (datetime) --

    The time and date before which the transforms were created.

  • CreatedAfter (datetime) --

    The time and date after which the transforms were created.

  • LastModifiedBefore (datetime) --

    Filter on transforms last modified before this date.

  • LastModifiedAfter (datetime) --

    Filter on transforms last modified after this date.

  • Schema (list) --

    Filters on datasets with a specific schema. The Map<Column, Type> object is an array of key-value pairs representing the schema this transform accepts, where Column is the name of a column, and Type is the type of the data such as an integer or string. Has an upper bound of 100 columns.

    • (dict) --

      A key-value pair representing a column and data type that this transform can run against. The Schema parameter of the MLTransform may contain up to 100 of these structures.

      • Name (string) --

        The name of the column.

      • DataType (string) --

        The type of data in the column.

type Sort

dict

param Sort

A TransformSortCriteria used to sort the machine learning transforms.

  • Column (string) -- [REQUIRED]

    The column to be used in the sorting criteria that are associated with the machine learning transform.

  • SortDirection (string) -- [REQUIRED]

    The sort direction to be used in the sorting criteria that are associated with the machine learning transform.

type Tags

dict

param Tags

Specifies to return only these tagged resources.

  • (string) --

    • (string) --

rtype

dict

returns

Response Syntax

{
    'TransformIds': [
        'string',
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    • TransformIds (list) --

      The identifiers of all the machine learning transforms in the account, or the machine learning transforms with the specified tags.

      • (string) --

    • NextToken (string) --

      A continuation token, if the returned list does not contain the last metric available.

CreateMLTransform (updated) Link ¶
Changes (request)
{'Tags': {'string': 'string'}}

Creates an AWS Glue machine learning transform. This operation creates the transform and all the necessary parameters to train it.

Call this operation as the first step in the process of using a machine learning transform (such as the FindMatches transform) for deduplicating data. You can provide an optional Description , in addition to the parameters that you want to use for your algorithm.

You must also specify certain parameters for the tasks that AWS Glue runs on your behalf as part of learning from your data and creating a high-quality machine learning transform. These parameters include Role , and optionally, AllocatedCapacity , Timeout , and MaxRetries . For more information, see Jobs.

See also: AWS API Documentation

Request Syntax

client.create_ml_transform(
    Name='string',
    Description='string',
    InputRecordTables=[
        {
            'DatabaseName': 'string',
            'TableName': 'string',
            'CatalogId': 'string',
            'ConnectionName': 'string'
        },
    ],
    Parameters={
        'TransformType': 'FIND_MATCHES',
        'FindMatchesParameters': {
            'PrimaryKeyColumnName': 'string',
            'PrecisionRecallTradeoff': 123.0,
            'AccuracyCostTradeoff': 123.0,
            'EnforceProvidedLabels': True|False
        }
    },
    Role='string',
    GlueVersion='string',
    MaxCapacity=123.0,
    WorkerType='Standard'|'G.1X'|'G.2X',
    NumberOfWorkers=123,
    Timeout=123,
    MaxRetries=123,
    Tags={
        'string': 'string'
    }
)
type Name

string

param Name

[REQUIRED]

The unique name that you give the transform when you create it.

type Description

string

param Description

A description of the machine learning transform that is being defined. The default is an empty string.

type InputRecordTables

list

param InputRecordTables

[REQUIRED]

A list of AWS Glue table definitions used by the transform.

  • (dict) --

    The database and table in the AWS Glue Data Catalog that is used for input or output data.

    • DatabaseName (string) -- [REQUIRED]

      A database name in the AWS Glue Data Catalog.

    • TableName (string) -- [REQUIRED]

      A table name in the AWS Glue Data Catalog.

    • CatalogId (string) --

      A unique identifier for the AWS Glue Data Catalog.

    • ConnectionName (string) --

      The name of the connection to the AWS Glue Data Catalog.

type Parameters

dict

param Parameters

[REQUIRED]

The algorithmic parameters that are specific to the transform type used. Conditionally dependent on the transform type.

  • TransformType (string) -- [REQUIRED]

    The type of machine learning transform.

    For information about the types of machine learning transforms, see Creating Machine Learning Transforms.

  • FindMatchesParameters (dict) --

    The parameters for the find matches algorithm.

    • PrimaryKeyColumnName (string) --

      The name of a column that uniquely identifies rows in the source table. Used to help identify matching records.

    • PrecisionRecallTradeoff (float) --

      The value selected when tuning your transform for a balance between precision and recall. A value of 0.5 means no preference; a value of 1.0 means a bias purely for precision, and a value of 0.0 means a bias for recall. Because this is a tradeoff, choosing values close to 1.0 means very low recall, and choosing values close to 0.0 results in very low precision.

      The precision metric indicates how often your model is correct when it predicts a match.

      The recall metric indicates that for an actual match, how often your model predicts the match.

    • AccuracyCostTradeoff (float) --

      The value that is selected when tuning your transform for a balance between accuracy and cost. A value of 0.5 means that the system balances accuracy and cost concerns. A value of 1.0 means a bias purely for accuracy, which typically results in a higher cost, sometimes substantially higher. A value of 0.0 means a bias purely for cost, which results in a less accurate FindMatches transform, sometimes with unacceptable accuracy.

      Accuracy measures how well the transform finds true positives and true negatives. Increasing accuracy requires more machine resources and cost. But it also results in increased recall.

      Cost measures how many compute resources, and thus money, are consumed to run the transform.

    • EnforceProvidedLabels (boolean) --

      The value to switch on or off to force the output to match the provided labels from users. If the value is True , the find matches transform forces the output to match the provided labels. The results override the normal conflation results. If the value is False , the find matches transform does not ensure all the labels provided are respected, and the results rely on the trained model.

      Note that setting this value to true may increase the conflation execution time.

type Role

string

param Role

[REQUIRED]

The name or Amazon Resource Name (ARN) of the IAM role with the required permissions. The required permissions include both AWS Glue service role permissions to AWS Glue resources, and Amazon S3 permissions required by the transform.

  • This role needs AWS Glue service role permissions to allow access to resources in AWS Glue. See Attach a Policy to IAM Users That Access AWS Glue.

  • This role needs permission to your Amazon Simple Storage Service (Amazon S3) sources, targets, temporary directory, scripts, and any libraries used by the task run for this transform.

type GlueVersion

string

param GlueVersion

This value determines which version of AWS Glue this machine learning transform is compatible with. Glue 1.0 is recommended for most customers. If the value is not set, the Glue compatibility defaults to Glue 0.9. For more information, see AWS Glue Versions in the developer guide.

type MaxCapacity

float

param MaxCapacity

The number of AWS Glue data processing units (DPUs) that are allocated to task runs for this transform. You can allocate from 2 to 100 DPUs; the default is 10. A DPU is a relative measure of processing power that consists of 4 vCPUs of compute capacity and 16 GB of memory. For more information, see the AWS Glue pricing page.

MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType .

  • If either NumberOfWorkers or WorkerType is set, then MaxCapacity cannot be set.

  • If MaxCapacity is set then neither NumberOfWorkers or WorkerType can be set.

  • If WorkerType is set, then NumberOfWorkers is required (and vice versa).

  • MaxCapacity and NumberOfWorkers must both be at least 1.

When the WorkerType field is set to a value other than Standard , the MaxCapacity field is set automatically and becomes read-only.

When the WorkerType field is set to a value other than Standard , the MaxCapacity field is set automatically and becomes read-only.

type WorkerType

string

param WorkerType

The type of predefined worker that is allocated when this task runs. Accepts a value of Standard, G.1X, or G.2X.

  • For the Standard worker type, each worker provides 4 vCPU, 16 GB of memory and a 50GB disk, and 2 executors per worker.

  • For the G.1X worker type, each worker provides 4 vCPU, 16 GB of memory and a 64GB disk, and 1 executor per worker.

  • For the G.2X worker type, each worker provides 8 vCPU, 32 GB of memory and a 128GB disk, and 1 executor per worker.

MaxCapacity is a mutually exclusive option with NumberOfWorkers and WorkerType .

  • If either NumberOfWorkers or WorkerType is set, then MaxCapacity cannot be set.

  • If MaxCapacity is set then neither NumberOfWorkers or WorkerType can be set.

  • If WorkerType is set, then NumberOfWorkers is required (and vice versa).

  • MaxCapacity and NumberOfWorkers must both be at least 1.

type NumberOfWorkers

integer

param NumberOfWorkers

The number of workers of a defined workerType that are allocated when this task runs.

If WorkerType is set, then NumberOfWorkers is required (and vice versa).

type Timeout

integer

param Timeout

The timeout of the task run for this transform in minutes. This is the maximum time that a task run for this transform can consume resources before it is terminated and enters TIMEOUT status. The default is 2,880 minutes (48 hours).

type MaxRetries

integer

param MaxRetries

The maximum number of times to retry a task for this transform after a task run fails.

type Tags

dict

param Tags

The tags to use with this machine learning transform. You may use tags to limit access to the machine learning transform. For more information about tags in AWS Glue, see AWS Tags in AWS Glue in the developer guide.

  • (string) --

    • (string) --

rtype

dict

returns

Response Syntax

{
    'TransformId': 'string'
}

Response Structure

  • (dict) --

    • TransformId (string) --

      A unique identifier that is generated for the transform.