createMLTransform method
- required List<
GlueTable> inputRecordTables, - required String name,
- required TransformParameters parameters,
- required String role,
- String? description,
- String? glueVersion,
- double? maxCapacity,
- int? maxRetries,
- int? numberOfWorkers,
- Map<
String, String> ? tags, - int? timeout,
- TransformEncryption? transformEncryption,
- WorkerType? workerType,
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.
May throw AlreadyExistsException. May throw InvalidInputException. May throw OperationTimeoutException. May throw InternalServiceException. May throw AccessDeniedException. May throw ResourceNumberLimitExceededException. May throw IdempotentParameterMismatchException.
Parameter inputRecordTables
:
A list of AWS Glue table definitions used by the transform.
Parameter name
:
The unique name that you give the transform when you create it.
Parameter parameters
:
The algorithmic parameters that are specific to the transform type used.
Conditionally dependent on the transform type.
Parameter role
:
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.
Parameter description
:
A description of the machine learning transform that is being defined. The
default is an empty string.
Parameter 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.
Parameter 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
orWorkerType
is set, thenMaxCapacity
cannot be set. -
If
MaxCapacity
is set then neitherNumberOfWorkers
orWorkerType
can be set. -
If
WorkerType
is set, thenNumberOfWorkers
is required (and vice versa). -
MaxCapacity
andNumberOfWorkers
must both be at least 1.
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.
Parameter maxRetries
:
The maximum number of times to retry a task for this transform after a
task run fails.
Parameter 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).
Parameter 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.
Parameter 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).
Parameter transformEncryption
:
The encryption-at-rest settings of the transform that apply to accessing
user data. Machine learning transforms can access user data encrypted in
Amazon S3 using KMS.
Parameter 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
orWorkerType
is set, thenMaxCapacity
cannot be set. -
If
MaxCapacity
is set then neitherNumberOfWorkers
orWorkerType
can be set. -
If
WorkerType
is set, thenNumberOfWorkers
is required (and vice versa). -
MaxCapacity
andNumberOfWorkers
must both be at least 1.
Implementation
Future<CreateMLTransformResponse> createMLTransform({
required List<GlueTable> inputRecordTables,
required String name,
required TransformParameters parameters,
required String role,
String? description,
String? glueVersion,
double? maxCapacity,
int? maxRetries,
int? numberOfWorkers,
Map<String, String>? tags,
int? timeout,
TransformEncryption? transformEncryption,
WorkerType? workerType,
}) async {
ArgumentError.checkNotNull(inputRecordTables, 'inputRecordTables');
ArgumentError.checkNotNull(name, 'name');
_s.validateStringLength(
'name',
name,
1,
255,
isRequired: true,
);
ArgumentError.checkNotNull(parameters, 'parameters');
ArgumentError.checkNotNull(role, 'role');
_s.validateStringLength(
'description',
description,
0,
2048,
);
_s.validateStringLength(
'glueVersion',
glueVersion,
1,
255,
);
_s.validateNumRange(
'timeout',
timeout,
1,
1152921504606846976,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AWSGlue.CreateMLTransform'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'InputRecordTables': inputRecordTables,
'Name': name,
'Parameters': parameters,
'Role': role,
if (description != null) 'Description': description,
if (glueVersion != null) 'GlueVersion': glueVersion,
if (maxCapacity != null) 'MaxCapacity': maxCapacity,
if (maxRetries != null) 'MaxRetries': maxRetries,
if (numberOfWorkers != null) 'NumberOfWorkers': numberOfWorkers,
if (tags != null) 'Tags': tags,
if (timeout != null) 'Timeout': timeout,
if (transformEncryption != null)
'TransformEncryption': transformEncryption,
if (workerType != null) 'WorkerType': workerType.toValue(),
},
);
return CreateMLTransformResponse.fromJson(jsonResponse.body);
}