@aws-cdk/aws-glue-alpha 2.79.1-alpha.0 → 2.81.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +126 -77
- package/.jsii.tabl.json.gz +0 -0
- package/README.md +1 -0
- package/lib/code.js +3 -3
- package/lib/connection.js +2 -2
- package/lib/data-format.js +5 -5
- package/lib/database.js +1 -1
- package/lib/job-executable.js +3 -3
- package/lib/job.d.ts +8 -0
- package/lib/job.js +11 -3
- package/lib/schema.js +1 -1
- package/lib/security-configuration.js +1 -1
- package/lib/table.js +1 -1
- package/package.json +7 -7
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "2.
|
|
11
|
+
"aws-cdk-lib": "2.81.0",
|
|
12
12
|
"constructs": "^10.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -2381,6 +2381,19 @@
|
|
|
2381
2381
|
}
|
|
2382
2382
|
}
|
|
2383
2383
|
},
|
|
2384
|
+
"aws-cdk-lib.aws_osis": {
|
|
2385
|
+
"targets": {
|
|
2386
|
+
"dotnet": {
|
|
2387
|
+
"package": "Amazon.CDK.AWS.OSIS"
|
|
2388
|
+
},
|
|
2389
|
+
"java": {
|
|
2390
|
+
"package": "services.osis"
|
|
2391
|
+
},
|
|
2392
|
+
"python": {
|
|
2393
|
+
"module": "aws_cdk.aws_osis"
|
|
2394
|
+
}
|
|
2395
|
+
}
|
|
2396
|
+
},
|
|
2384
2397
|
"aws-cdk-lib.aws_panorama": {
|
|
2385
2398
|
"targets": {
|
|
2386
2399
|
"dotnet": {
|
|
@@ -3440,7 +3453,7 @@
|
|
|
3440
3453
|
"stability": "experimental"
|
|
3441
3454
|
},
|
|
3442
3455
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
3443
|
-
"jsiiVersion": "5.0.
|
|
3456
|
+
"jsiiVersion": "5.0.8 (build b97c75a)",
|
|
3444
3457
|
"keywords": [
|
|
3445
3458
|
"aws",
|
|
3446
3459
|
"cdk",
|
|
@@ -3461,7 +3474,7 @@
|
|
|
3461
3474
|
},
|
|
3462
3475
|
"name": "@aws-cdk/aws-glue-alpha",
|
|
3463
3476
|
"readme": {
|
|
3464
|
-
"markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## Job\n\nA `Job` encapsulates a script that connects to data sources, processes them, and then writes output to a data target.\n\nThere are 3 types of jobs supported by AWS Glue: Spark ETL, Spark Streaming, and Python Shell jobs.\n\nThe `glue.JobExecutable` allows you to specify the type of job, the language to use and the code assets required by the job.\n\n`glue.Code` allows you to refer to the different code assets required by the job, either from an existing S3 location or from a local file path.\n\n### Spark Jobs\n\nThese jobs run in an Apache Spark environment managed by AWS Glue.\n\n#### ETL Jobs\n\nAn ETL job processes data in batches using Apache Spark.\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n description: 'an example Scala ETL job',\n});\n```\n\n#### Streaming Jobs\n\nA Streaming job is similar to an ETL job, except that it performs ETL on data streams. It uses the Apache Spark Structured Streaming framework. Some Spark job features are not available to streaming ETL jobs.\n\n```ts\nnew glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});\n```\n\n### Python Shell Jobs\n\nA Python shell job runs Python scripts as a shell and supports a Python version that depends on the AWS Glue version you are using.\nThis can be used to schedule and run tasks that don't require an Apache Spark environment. Currently, three flavors are supported:\n\n* PythonVersion.TWO (2.7; EOL)\n* PythonVersion.THREE (3.6)\n* PythonVersion.THREE_NINE (3.9)\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew glue.Job(this, 'PythonShellJob', {\n executable: glue.JobExecutable.pythonShell({\n glueVersion: glue.GlueVersion.V1_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromBucket(bucket, 'script.py'),\n }),\n description: 'an example Python Shell job',\n});\n```\n\n### Ray Jobs\n\nThese jobs run in a Ray environment managed by AWS Glue.\n\n```ts\nnew glue.Job(this, 'RayJob', {\n executable: glue.JobExecutable.pythonRay({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE_NINE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n workerType: glue.WorkerType.Z_2X,\n workerCount: 2,\n description: 'an example Ray job'\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) for more information on adding jobs in Glue.\n\n## Connection\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access certain types of data stores. For example, to create a network connection to connect to a data source within a VPC:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. To use Secret, specify `SECRET_ID` in `properties` like the following code. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n SECRET_ID: db.secret!.secretName,\n },\n});\n```\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n },\n jobBookmarksEncryption: {\n mode: glue.JobBookmarksEncryptionMode.CLIENT_SIDE_KMS,\n },\n s3Encryption: {\n mode: glue.S3EncryptionMode.KMS,\n },\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key for each encryption config, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n kmsKey: key,\n },\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase');\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can manually pass the `bucket` and `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n bucket: myBucket,\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, an S3 bucket will be created to store the table's data and stored in the bucket root. You can also manually pass the `bucket` and `s3Prefix`:\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nYou can enable encryption on a Table's data:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.S3_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [ClientSideKms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro) - Client-side encryption (`CSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n*Note: you cannot provide a `Bucket` when creating the `Table` if you wish to use server-side encryption (`KMS`, `KMS_MANAGED` or `S3_MANAGED`)*.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,string>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Primitives\n\n#### Numeric\n\n| Name \t| Type \t| Comments |\n|-----------\t|----------\t|------------------------------------------------------------------------------------------------------------------\t|\n| FLOAT \t| Constant \t| A 32-bit single-precision floating point number |\n| INTEGER \t| Constant \t| A 32-bit signed value in two's complement format, with a minimum value of -2^31 and a maximum value of 2^31-1 \t|\n| DOUBLE \t| Constant \t| A 64-bit double-precision floating point number |\n| BIG_INT \t| Constant \t| A 64-bit signed INTEGER in two’s complement format, with a minimum value of -2^63 and a maximum value of 2^63 -1 |\n| SMALL_INT \t| Constant \t| A 16-bit signed INTEGER in two’s complement format, with a minimum value of -2^15 and a maximum value of 2^15-1 |\n| TINY_INT \t| Constant \t| A 8-bit signed INTEGER in two’s complement format, with a minimum value of -2^7 and a maximum value of 2^7-1 |\n\n#### Date and time\n\n| Name \t| Type \t| Comments \t|\n|-----------\t|----------\t|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| DATE \t| Constant \t| A date in UNIX format, such as YYYY-MM-DD. \t|\n| TIMESTAMP \t| Constant \t| Date and time instant in the UNiX format, such as yyyy-mm-dd hh:mm:ss[.f...]. For example, TIMESTAMP '2008-09-15 03:04:05.324'. This format uses the session time zone. \t|\n\n#### String\n\n| Name \t| Type \t| Comments \t|\n|--------------------------------------------\t|----------\t|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| STRING \t| Constant \t| A string literal enclosed in single or double quotes \t|\n| decimal(precision: number, scale?: number) \t| Function \t| `precision` is the total number of digits. `scale` (optional) is the number of digits in fractional part with a default of 0. For example, use these type definitions: decimal(11,5), decimal(15) \t|\n| char(length: number) \t| Function \t| Fixed length character data, with a specified length between 1 and 255, such as char(10) \t|\n| varchar(length: number) \t| Function \t| Variable length character data, with a specified length between 1 and 65535, such as varchar(10) \t|\n\n#### Miscellaneous\n\n| Name \t| Type \t| Comments \t|\n|---------\t|----------\t|-------------------------------\t|\n| BOOLEAN \t| Constant \t| Values are `true` and `false` \t|\n| BINARY \t| Constant \t| Value is in binary \t|\n\n### Complex\n\n| Name \t| Type \t| Comments \t|\n|-------------------------------------\t|----------\t|-------------------------------------------------------------------\t|\n| array(itemType: Type) \t| Function \t| An array of some other type \t|\n| map(keyType: Type, valueType: Type) \t| Function \t| A map of some primitive key type to any value type \t|\n| struct(collumns: Column[]) \t| Function \t| Nested structure containing individually named and typed collumns \t|\n"
|
|
3477
|
+
"markdown": "# AWS Glue Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\n## Job\n\nA `Job` encapsulates a script that connects to data sources, processes them, and then writes output to a data target.\n\nThere are 3 types of jobs supported by AWS Glue: Spark ETL, Spark Streaming, and Python Shell jobs.\n\nThe `glue.JobExecutable` allows you to specify the type of job, the language to use and the code assets required by the job.\n\n`glue.Code` allows you to refer to the different code assets required by the job, either from an existing S3 location or from a local file path.\n\n### Spark Jobs\n\nThese jobs run in an Apache Spark environment managed by AWS Glue.\n\n#### ETL Jobs\n\nAn ETL job processes data in batches using Apache Spark.\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});\n```\n\n#### Streaming Jobs\n\nA Streaming job is similar to an ETL job, except that it performs ETL on data streams. It uses the Apache Spark Structured Streaming framework. Some Spark job features are not available to streaming ETL jobs.\n\n```ts\nnew glue.Job(this, 'PythonSparkStreamingJob', {\n executable: glue.JobExecutable.pythonStreaming({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n description: 'an example Python Streaming job',\n});\n```\n\n### Python Shell Jobs\n\nA Python shell job runs Python scripts as a shell and supports a Python version that depends on the AWS Glue version you are using.\nThis can be used to schedule and run tasks that don't require an Apache Spark environment. Currently, three flavors are supported:\n\n* PythonVersion.TWO (2.7; EOL)\n* PythonVersion.THREE (3.6)\n* PythonVersion.THREE_NINE (3.9)\n\n```ts\ndeclare const bucket: s3.Bucket;\nnew glue.Job(this, 'PythonShellJob', {\n executable: glue.JobExecutable.pythonShell({\n glueVersion: glue.GlueVersion.V1_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromBucket(bucket, 'script.py'),\n }),\n description: 'an example Python Shell job',\n});\n```\n\n### Ray Jobs\n\nThese jobs run in a Ray environment managed by AWS Glue.\n\n```ts\nnew glue.Job(this, 'RayJob', {\n executable: glue.JobExecutable.pythonRay({\n glueVersion: glue.GlueVersion.V4_0,\n pythonVersion: glue.PythonVersion.THREE_NINE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n workerType: glue.WorkerType.Z_2X,\n workerCount: 2,\n description: 'an example Ray job'\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/add-job.html) for more information on adding jobs in Glue.\n\n## Connection\n\nA `Connection` allows Glue jobs, crawlers and development endpoints to access certain types of data stores. For example, to create a network connection to connect to a data source within a VPC:\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\nnew glue.Connection(this, 'MyConnection', {\n type: glue.ConnectionType.NETWORK,\n // The security groups granting AWS Glue inbound access to the data source within the VPC\n securityGroups: [securityGroup],\n // The VPC subnet which contains the data source\n subnet,\n});\n```\n\nFor RDS `Connection` by JDBC, it is recommended to manage credentials using AWS Secrets Manager. To use Secret, specify `SECRET_ID` in `properties` like the following code. Note that in this case, the subnet must have a route to the AWS Secrets Manager VPC endpoint or to the AWS Secrets Manager endpoint through a NAT gateway.\n\n```ts\ndeclare const securityGroup: ec2.SecurityGroup;\ndeclare const subnet: ec2.Subnet;\ndeclare const db: rds.DatabaseCluster;\nnew glue.Connection(this, \"RdsConnection\", {\n type: glue.ConnectionType.JDBC,\n securityGroups: [securityGroup],\n subnet,\n properties: {\n JDBC_CONNECTION_URL: `jdbc:mysql://${db.clusterEndpoint.socketAddress}/databasename`,\n JDBC_ENFORCE_SSL: \"false\",\n SECRET_ID: db.secret!.secretName,\n },\n});\n```\n\nIf you need to use a connection type that doesn't exist as a static member on `ConnectionType`, you can instantiate a `ConnectionType` object, e.g: `new glue.ConnectionType('NEW_TYPE')`.\n\nSee [Adding a Connection to Your Data Store](https://docs.aws.amazon.com/glue/latest/dg/populate-add-connection.html) and [Connection Structure](https://docs.aws.amazon.com/glue/latest/dg/aws-glue-api-catalog-connections.html#aws-glue-api-catalog-connections-Connection) documentation for more information on the supported data stores and their configurations.\n\n## SecurityConfiguration\n\nA `SecurityConfiguration` is a set of security properties that can be used by AWS Glue to encrypt data at rest.\n\n```ts\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n },\n jobBookmarksEncryption: {\n mode: glue.JobBookmarksEncryptionMode.CLIENT_SIDE_KMS,\n },\n s3Encryption: {\n mode: glue.S3EncryptionMode.KMS,\n },\n});\n```\n\nBy default, a shared KMS key is created for use with the encryption configurations that require one. You can also supply your own key for each encryption config, for example, for CloudWatch encryption:\n\n```ts\ndeclare const key: kms.Key;\nnew glue.SecurityConfiguration(this, 'MySecurityConfiguration', {\n cloudWatchEncryption: {\n mode: glue.CloudWatchEncryptionMode.KMS,\n kmsKey: key,\n },\n});\n```\n\nSee [documentation](https://docs.aws.amazon.com/glue/latest/dg/encryption-security-configuration.html) for more info for Glue encrypting data written by Crawlers, Jobs, and Development Endpoints.\n\n## Database\n\nA `Database` is a logical grouping of `Tables` in the Glue Catalog.\n\n```ts\nnew glue.Database(this, 'MyDatabase');\n```\n\n## Table\n\nA Glue table describes a table of data in S3: its structure (column names and types), location of data (S3 objects with a common prefix in a S3 bucket), and format for the files (Json, Avro, Parquet, etc.):\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }, {\n name: 'col2',\n type: glue.Schema.array(glue.Schema.STRING),\n comment: 'col2 is an array of strings' // comment is optional\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, a S3 bucket will be created to store the table's data but you can manually pass the `bucket` and `s3Prefix`:\n\n```ts\ndeclare const myBucket: s3.Bucket;\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n bucket: myBucket,\n s3Prefix: 'my-table/',\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nBy default, an S3 bucket will be created to store the table's data and stored in the bucket root. You can also manually pass the `bucket` and `s3Prefix`:\n\n### Partition Keys\n\nTo improve query performance, a table can specify `partitionKeys` on which data is stored and queried separately. For example, you might partition a table by `year` and `month` to optimize queries based on a time window:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Partition Indexes\n\nAnother way to improve query performance is to specify partition indexes. If no partition indexes are\npresent on the table, AWS Glue loads all partitions of the table and filters the loaded partitions using\nthe query expression. The query takes more time to run as the number of partitions increase. With an\nindex, the query will try to fetch a subset of the partitions instead of loading all partitions of the\ntable.\n\nThe keys of a partition index must be a subset of the partition keys of the table. You can have a\nmaximum of 3 partition indexes per table. To specify a partition index, you can use the `partitionIndexes`\nproperty:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n partitionIndexes: [{\n indexName: 'my-index', // optional\n keyNames: ['year'],\n }], // supply up to 3 indexes\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nAlternatively, you can call the `addPartitionIndex()` function on a table:\n\n```ts\ndeclare const myTable: glue.Table;\nmyTable.addPartitionIndex({\n indexName: 'my-index',\n keyNames: ['year'],\n});\n```\n\n### Partition Filtering\n\nIf you have a table with a large number of partitions that grows over time, consider using AWS Glue partition indexing and filtering.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n partitionKeys: [{\n name: 'year',\n type: glue.Schema.SMALL_INT,\n }, {\n name: 'month',\n type: glue.Schema.SMALL_INT,\n }],\n dataFormat: glue.DataFormat.JSON,\n enablePartitionFiltering: true,\n});\n```\n\n## [Encryption](https://docs.aws.amazon.com/athena/latest/ug/encryption.html)\n\nYou can enable encryption on a Table's data:\n\n* [S3Managed](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingServerSideEncryption.html) - (default) Server side encryption (`SSE-S3`) with an Amazon S3-managed key.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.S3_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [Kms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [KmsManaged](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - Server-side encryption (`SSE-KMS`), like `Kms`, except with an AWS KMS Key managed by the AWS Key Management Service.\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.KMS_MANAGED,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n* [ClientSideKms](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingClientSideEncryption.html#client-side-encryption-kms-managed-master-key-intro) - Client-side encryption (`CSE-KMS`) with an AWS KMS Key managed by the account owner.\n\n```ts\ndeclare const myDatabase: glue.Database;\n// KMS key is created automatically\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n\n// with an explicit KMS key\nnew glue.Table(this, 'MyTable', {\n encryption: glue.TableEncryption.CLIENT_SIDE_KMS,\n encryptionKey: new kms.Key(this, 'MyKey'),\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n*Note: you cannot provide a `Bucket` when creating the `Table` if you wish to use server-side encryption (`KMS`, `KMS_MANAGED` or `S3_MANAGED`)*.\n\n## Types\n\nA table's schema is a collection of columns, each of which have a `name` and a `type`. Types are recursive structures, consisting of primitive and complex types:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.Table(this, 'MyTable', {\n columns: [{\n name: 'primitive_column',\n type: glue.Schema.STRING,\n }, {\n name: 'array_column',\n type: glue.Schema.array(glue.Schema.INTEGER),\n comment: 'array<integer>',\n }, {\n name: 'map_column',\n type: glue.Schema.map(\n glue.Schema.STRING,\n glue.Schema.TIMESTAMP),\n comment: 'map<string,string>',\n }, {\n name: 'struct_column',\n type: glue.Schema.struct([{\n name: 'nested_column',\n type: glue.Schema.DATE,\n comment: 'nested comment',\n }]),\n comment: \"struct<nested_column:date COMMENT 'nested comment'>\",\n }],\n // ...\n database: myDatabase,\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\n### Primitives\n\n#### Numeric\n\n| Name \t| Type \t| Comments |\n|-----------\t|----------\t|------------------------------------------------------------------------------------------------------------------\t|\n| FLOAT \t| Constant \t| A 32-bit single-precision floating point number |\n| INTEGER \t| Constant \t| A 32-bit signed value in two's complement format, with a minimum value of -2^31 and a maximum value of 2^31-1 \t|\n| DOUBLE \t| Constant \t| A 64-bit double-precision floating point number |\n| BIG_INT \t| Constant \t| A 64-bit signed INTEGER in two’s complement format, with a minimum value of -2^63 and a maximum value of 2^63 -1 |\n| SMALL_INT \t| Constant \t| A 16-bit signed INTEGER in two’s complement format, with a minimum value of -2^15 and a maximum value of 2^15-1 |\n| TINY_INT \t| Constant \t| A 8-bit signed INTEGER in two’s complement format, with a minimum value of -2^7 and a maximum value of 2^7-1 |\n\n#### Date and time\n\n| Name \t| Type \t| Comments \t|\n|-----------\t|----------\t|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| DATE \t| Constant \t| A date in UNIX format, such as YYYY-MM-DD. \t|\n| TIMESTAMP \t| Constant \t| Date and time instant in the UNiX format, such as yyyy-mm-dd hh:mm:ss[.f...]. For example, TIMESTAMP '2008-09-15 03:04:05.324'. This format uses the session time zone. \t|\n\n#### String\n\n| Name \t| Type \t| Comments \t|\n|--------------------------------------------\t|----------\t|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\t|\n| STRING \t| Constant \t| A string literal enclosed in single or double quotes \t|\n| decimal(precision: number, scale?: number) \t| Function \t| `precision` is the total number of digits. `scale` (optional) is the number of digits in fractional part with a default of 0. For example, use these type definitions: decimal(11,5), decimal(15) \t|\n| char(length: number) \t| Function \t| Fixed length character data, with a specified length between 1 and 255, such as char(10) \t|\n| varchar(length: number) \t| Function \t| Variable length character data, with a specified length between 1 and 65535, such as varchar(10) \t|\n\n#### Miscellaneous\n\n| Name \t| Type \t| Comments \t|\n|---------\t|----------\t|-------------------------------\t|\n| BOOLEAN \t| Constant \t| Values are `true` and `false` \t|\n| BINARY \t| Constant \t| Value is in binary \t|\n\n### Complex\n\n| Name \t| Type \t| Comments \t|\n|-------------------------------------\t|----------\t|-------------------------------------------------------------------\t|\n| array(itemType: Type) \t| Function \t| An array of some other type \t|\n| map(keyType: Type, valueType: Type) \t| Function \t| A map of some primitive key type to any value type \t|\n| struct(collumns: Column[]) \t| Function \t| Nested structure containing individually named and typed collumns \t|\n"
|
|
3465
3478
|
},
|
|
3466
3479
|
"repository": {
|
|
3467
3480
|
"directory": "packages/@aws-cdk/aws-glue-alpha",
|
|
@@ -3505,7 +3518,7 @@
|
|
|
3505
3518
|
"docs": {
|
|
3506
3519
|
"stability": "experimental",
|
|
3507
3520
|
"summary": "Job Code from a local file.",
|
|
3508
|
-
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\n\ndeclare const dockerImage: cdk.DockerImage;\ndeclare const grantable: iam.IGrantable;\ndeclare const localBundling: cdk.ILocalBundling;\nconst assetCode = new glue_alpha.AssetCode('path', /* all optional props */ {\n assetHash: 'assetHash',\n assetHashType: cdk.AssetHashType.SOURCE,\n bundling: {\n image: dockerImage,\n\n // the properties below are optional\n bundlingFileAccess: cdk.BundlingFileAccess.VOLUME_COPY,\n command: ['command'],\n entrypoint: ['entrypoint'],\n environment: {\n environmentKey: 'environment',\n },\n local: localBundling,\n network: 'network',\n outputType: cdk.BundlingOutput.ARCHIVED,\n securityOpt: 'securityOpt',\n user: 'user',\n volumes: [{\n containerPath: 'containerPath',\n hostPath: 'hostPath',\n\n // the properties below are optional\n consistency: cdk.DockerVolumeConsistency.CONSISTENT,\n }],\n volumesFrom: ['volumesFrom'],\n workingDirectory: 'workingDirectory',\n },\n exclude: ['exclude'],\n followSymlinks: cdk.SymlinkFollowMode.NEVER,\n ignoreMode: cdk.IgnoreMode.GLOB,\n readers: [grantable],\n});",
|
|
3521
|
+
"example": "// The code below shows an example of how to instantiate this type.\n// The values are placeholders you should change.\nimport * as glue_alpha from '@aws-cdk/aws-glue-alpha';\nimport * as cdk from 'aws-cdk-lib';\nimport { aws_iam as iam } from 'aws-cdk-lib';\n\ndeclare const dockerImage: cdk.DockerImage;\ndeclare const grantable: iam.IGrantable;\ndeclare const localBundling: cdk.ILocalBundling;\nconst assetCode = new glue_alpha.AssetCode('path', /* all optional props */ {\n assetHash: 'assetHash',\n assetHashType: cdk.AssetHashType.SOURCE,\n bundling: {\n image: dockerImage,\n\n // the properties below are optional\n bundlingFileAccess: cdk.BundlingFileAccess.VOLUME_COPY,\n command: ['command'],\n entrypoint: ['entrypoint'],\n environment: {\n environmentKey: 'environment',\n },\n local: localBundling,\n network: 'network',\n outputType: cdk.BundlingOutput.ARCHIVED,\n securityOpt: 'securityOpt',\n user: 'user',\n volumes: [{\n containerPath: 'containerPath',\n hostPath: 'hostPath',\n\n // the properties below are optional\n consistency: cdk.DockerVolumeConsistency.CONSISTENT,\n }],\n volumesFrom: ['volumesFrom'],\n workingDirectory: 'workingDirectory',\n },\n deployTime: false,\n exclude: ['exclude'],\n followSymlinks: cdk.SymlinkFollowMode.NEVER,\n ignoreMode: cdk.IgnoreMode.GLOB,\n readers: [grantable],\n});",
|
|
3509
3522
|
"custom": {
|
|
3510
3523
|
"exampleMetadata": "fixture=_generated"
|
|
3511
3524
|
}
|
|
@@ -4616,7 +4629,7 @@
|
|
|
4616
4629
|
"kind": "interface",
|
|
4617
4630
|
"locationInModule": {
|
|
4618
4631
|
"filename": "lib/job.ts",
|
|
4619
|
-
"line":
|
|
4632
|
+
"line": 404
|
|
4620
4633
|
},
|
|
4621
4634
|
"name": "ContinuousLoggingProps",
|
|
4622
4635
|
"properties": [
|
|
@@ -4629,7 +4642,7 @@
|
|
|
4629
4642
|
"immutable": true,
|
|
4630
4643
|
"locationInModule": {
|
|
4631
4644
|
"filename": "lib/job.ts",
|
|
4632
|
-
"line":
|
|
4645
|
+
"line": 408
|
|
4633
4646
|
},
|
|
4634
4647
|
"name": "enabled",
|
|
4635
4648
|
"type": {
|
|
@@ -4647,7 +4660,7 @@
|
|
|
4647
4660
|
"immutable": true,
|
|
4648
4661
|
"locationInModule": {
|
|
4649
4662
|
"filename": "lib/job.ts",
|
|
4650
|
-
"line":
|
|
4663
|
+
"line": 438
|
|
4651
4664
|
},
|
|
4652
4665
|
"name": "conversionPattern",
|
|
4653
4666
|
"optional": true,
|
|
@@ -4665,7 +4678,7 @@
|
|
|
4665
4678
|
"immutable": true,
|
|
4666
4679
|
"locationInModule": {
|
|
4667
4680
|
"filename": "lib/job.ts",
|
|
4668
|
-
"line":
|
|
4681
|
+
"line": 415
|
|
4669
4682
|
},
|
|
4670
4683
|
"name": "logGroup",
|
|
4671
4684
|
"optional": true,
|
|
@@ -4683,7 +4696,7 @@
|
|
|
4683
4696
|
"immutable": true,
|
|
4684
4697
|
"locationInModule": {
|
|
4685
4698
|
"filename": "lib/job.ts",
|
|
4686
|
-
"line":
|
|
4699
|
+
"line": 422
|
|
4687
4700
|
},
|
|
4688
4701
|
"name": "logStreamPrefix",
|
|
4689
4702
|
"optional": true,
|
|
@@ -4701,7 +4714,7 @@
|
|
|
4701
4714
|
"immutable": true,
|
|
4702
4715
|
"locationInModule": {
|
|
4703
4716
|
"filename": "lib/job.ts",
|
|
4704
|
-
"line":
|
|
4717
|
+
"line": 429
|
|
4705
4718
|
},
|
|
4706
4719
|
"name": "quiet",
|
|
4707
4720
|
"optional": true,
|
|
@@ -5607,7 +5620,7 @@
|
|
|
5607
5620
|
"kind": "interface",
|
|
5608
5621
|
"locationInModule": {
|
|
5609
5622
|
"filename": "lib/job.ts",
|
|
5610
|
-
"line":
|
|
5623
|
+
"line": 135
|
|
5611
5624
|
},
|
|
5612
5625
|
"methods": [
|
|
5613
5626
|
{
|
|
@@ -5619,7 +5632,7 @@
|
|
|
5619
5632
|
},
|
|
5620
5633
|
"locationInModule": {
|
|
5621
5634
|
"filename": "lib/job.ts",
|
|
5622
|
-
"line":
|
|
5635
|
+
"line": 192
|
|
5623
5636
|
},
|
|
5624
5637
|
"name": "metric",
|
|
5625
5638
|
"parameters": [
|
|
@@ -5666,7 +5679,7 @@
|
|
|
5666
5679
|
},
|
|
5667
5680
|
"locationInModule": {
|
|
5668
5681
|
"filename": "lib/job.ts",
|
|
5669
|
-
"line":
|
|
5682
|
+
"line": 202
|
|
5670
5683
|
},
|
|
5671
5684
|
"name": "metricFailure",
|
|
5672
5685
|
"parameters": [
|
|
@@ -5692,7 +5705,7 @@
|
|
|
5692
5705
|
},
|
|
5693
5706
|
"locationInModule": {
|
|
5694
5707
|
"filename": "lib/job.ts",
|
|
5695
|
-
"line":
|
|
5708
|
+
"line": 197
|
|
5696
5709
|
},
|
|
5697
5710
|
"name": "metricSuccess",
|
|
5698
5711
|
"parameters": [
|
|
@@ -5718,7 +5731,7 @@
|
|
|
5718
5731
|
},
|
|
5719
5732
|
"locationInModule": {
|
|
5720
5733
|
"filename": "lib/job.ts",
|
|
5721
|
-
"line":
|
|
5734
|
+
"line": 207
|
|
5722
5735
|
},
|
|
5723
5736
|
"name": "metricTimeout",
|
|
5724
5737
|
"parameters": [
|
|
@@ -5745,7 +5758,7 @@
|
|
|
5745
5758
|
},
|
|
5746
5759
|
"locationInModule": {
|
|
5747
5760
|
"filename": "lib/job.ts",
|
|
5748
|
-
"line":
|
|
5761
|
+
"line": 153
|
|
5749
5762
|
},
|
|
5750
5763
|
"name": "onEvent",
|
|
5751
5764
|
"parameters": [
|
|
@@ -5778,7 +5791,7 @@
|
|
|
5778
5791
|
},
|
|
5779
5792
|
"locationInModule": {
|
|
5780
5793
|
"filename": "lib/job.ts",
|
|
5781
|
-
"line":
|
|
5794
|
+
"line": 174
|
|
5782
5795
|
},
|
|
5783
5796
|
"name": "onFailure",
|
|
5784
5797
|
"parameters": [
|
|
@@ -5811,7 +5824,7 @@
|
|
|
5811
5824
|
},
|
|
5812
5825
|
"locationInModule": {
|
|
5813
5826
|
"filename": "lib/job.ts",
|
|
5814
|
-
"line":
|
|
5827
|
+
"line": 160
|
|
5815
5828
|
},
|
|
5816
5829
|
"name": "onStateChange",
|
|
5817
5830
|
"parameters": [
|
|
@@ -5850,7 +5863,7 @@
|
|
|
5850
5863
|
},
|
|
5851
5864
|
"locationInModule": {
|
|
5852
5865
|
"filename": "lib/job.ts",
|
|
5853
|
-
"line":
|
|
5866
|
+
"line": 167
|
|
5854
5867
|
},
|
|
5855
5868
|
"name": "onSuccess",
|
|
5856
5869
|
"parameters": [
|
|
@@ -5883,7 +5896,7 @@
|
|
|
5883
5896
|
},
|
|
5884
5897
|
"locationInModule": {
|
|
5885
5898
|
"filename": "lib/job.ts",
|
|
5886
|
-
"line":
|
|
5899
|
+
"line": 181
|
|
5887
5900
|
},
|
|
5888
5901
|
"name": "onTimeout",
|
|
5889
5902
|
"parameters": [
|
|
@@ -5922,7 +5935,7 @@
|
|
|
5922
5935
|
"immutable": true,
|
|
5923
5936
|
"locationInModule": {
|
|
5924
5937
|
"filename": "lib/job.ts",
|
|
5925
|
-
"line":
|
|
5938
|
+
"line": 146
|
|
5926
5939
|
},
|
|
5927
5940
|
"name": "jobArn",
|
|
5928
5941
|
"type": {
|
|
@@ -5941,7 +5954,7 @@
|
|
|
5941
5954
|
"immutable": true,
|
|
5942
5955
|
"locationInModule": {
|
|
5943
5956
|
"filename": "lib/job.ts",
|
|
5944
|
-
"line":
|
|
5957
|
+
"line": 140
|
|
5945
5958
|
},
|
|
5946
5959
|
"name": "jobName",
|
|
5947
5960
|
"type": {
|
|
@@ -6206,7 +6219,7 @@
|
|
|
6206
6219
|
},
|
|
6207
6220
|
"locationInModule": {
|
|
6208
6221
|
"filename": "lib/job.ts",
|
|
6209
|
-
"line":
|
|
6222
|
+
"line": 654
|
|
6210
6223
|
},
|
|
6211
6224
|
"parameters": [
|
|
6212
6225
|
{
|
|
@@ -6235,7 +6248,7 @@
|
|
|
6235
6248
|
"kind": "class",
|
|
6236
6249
|
"locationInModule": {
|
|
6237
6250
|
"filename": "lib/job.ts",
|
|
6238
|
-
"line":
|
|
6251
|
+
"line": 608
|
|
6239
6252
|
},
|
|
6240
6253
|
"methods": [
|
|
6241
6254
|
{
|
|
@@ -6245,7 +6258,7 @@
|
|
|
6245
6258
|
},
|
|
6246
6259
|
"locationInModule": {
|
|
6247
6260
|
"filename": "lib/job.ts",
|
|
6248
|
-
"line":
|
|
6261
|
+
"line": 616
|
|
6249
6262
|
},
|
|
6250
6263
|
"name": "fromJobAttributes",
|
|
6251
6264
|
"parameters": [
|
|
@@ -6292,7 +6305,7 @@
|
|
|
6292
6305
|
},
|
|
6293
6306
|
"locationInModule": {
|
|
6294
6307
|
"filename": "lib/job.ts",
|
|
6295
|
-
"line":
|
|
6308
|
+
"line": 299
|
|
6296
6309
|
},
|
|
6297
6310
|
"name": "metric",
|
|
6298
6311
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6340,7 +6353,7 @@
|
|
|
6340
6353
|
},
|
|
6341
6354
|
"locationInModule": {
|
|
6342
6355
|
"filename": "lib/job.ts",
|
|
6343
|
-
"line":
|
|
6356
|
+
"line": 326
|
|
6344
6357
|
},
|
|
6345
6358
|
"name": "metricFailure",
|
|
6346
6359
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6367,7 +6380,7 @@
|
|
|
6367
6380
|
},
|
|
6368
6381
|
"locationInModule": {
|
|
6369
6382
|
"filename": "lib/job.ts",
|
|
6370
|
-
"line":
|
|
6383
|
+
"line": 317
|
|
6371
6384
|
},
|
|
6372
6385
|
"name": "metricSuccess",
|
|
6373
6386
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6394,7 +6407,7 @@
|
|
|
6394
6407
|
},
|
|
6395
6408
|
"locationInModule": {
|
|
6396
6409
|
"filename": "lib/job.ts",
|
|
6397
|
-
"line":
|
|
6410
|
+
"line": 335
|
|
6398
6411
|
},
|
|
6399
6412
|
"name": "metricTimeout",
|
|
6400
6413
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6421,7 +6434,7 @@
|
|
|
6421
6434
|
},
|
|
6422
6435
|
"locationInModule": {
|
|
6423
6436
|
"filename": "lib/job.ts",
|
|
6424
|
-
"line":
|
|
6437
|
+
"line": 227
|
|
6425
6438
|
},
|
|
6426
6439
|
"name": "onEvent",
|
|
6427
6440
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6460,7 +6473,7 @@
|
|
|
6460
6473
|
},
|
|
6461
6474
|
"locationInModule": {
|
|
6462
6475
|
"filename": "lib/job.ts",
|
|
6463
|
-
"line":
|
|
6476
|
+
"line": 276
|
|
6464
6477
|
},
|
|
6465
6478
|
"name": "onFailure",
|
|
6466
6479
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6499,7 +6512,7 @@
|
|
|
6499
6512
|
},
|
|
6500
6513
|
"locationInModule": {
|
|
6501
6514
|
"filename": "lib/job.ts",
|
|
6502
|
-
"line":
|
|
6515
|
+
"line": 247
|
|
6503
6516
|
},
|
|
6504
6517
|
"name": "onStateChange",
|
|
6505
6518
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6546,7 +6559,7 @@
|
|
|
6546
6559
|
},
|
|
6547
6560
|
"locationInModule": {
|
|
6548
6561
|
"filename": "lib/job.ts",
|
|
6549
|
-
"line":
|
|
6562
|
+
"line": 266
|
|
6550
6563
|
},
|
|
6551
6564
|
"name": "onSuccess",
|
|
6552
6565
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6585,7 +6598,7 @@
|
|
|
6585
6598
|
},
|
|
6586
6599
|
"locationInModule": {
|
|
6587
6600
|
"filename": "lib/job.ts",
|
|
6588
|
-
"line":
|
|
6601
|
+
"line": 286
|
|
6589
6602
|
},
|
|
6590
6603
|
"name": "onTimeout",
|
|
6591
6604
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6628,7 +6641,7 @@
|
|
|
6628
6641
|
"immutable": true,
|
|
6629
6642
|
"locationInModule": {
|
|
6630
6643
|
"filename": "lib/job.ts",
|
|
6631
|
-
"line":
|
|
6644
|
+
"line": 644
|
|
6632
6645
|
},
|
|
6633
6646
|
"name": "grantPrincipal",
|
|
6634
6647
|
"overrides": "aws-cdk-lib.aws_iam.IGrantable",
|
|
@@ -6644,7 +6657,7 @@
|
|
|
6644
6657
|
"immutable": true,
|
|
6645
6658
|
"locationInModule": {
|
|
6646
6659
|
"filename": "lib/job.ts",
|
|
6647
|
-
"line":
|
|
6660
|
+
"line": 629
|
|
6648
6661
|
},
|
|
6649
6662
|
"name": "jobArn",
|
|
6650
6663
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6660,7 +6673,7 @@
|
|
|
6660
6673
|
"immutable": true,
|
|
6661
6674
|
"locationInModule": {
|
|
6662
6675
|
"filename": "lib/job.ts",
|
|
6663
|
-
"line":
|
|
6676
|
+
"line": 634
|
|
6664
6677
|
},
|
|
6665
6678
|
"name": "jobName",
|
|
6666
6679
|
"overrides": "@aws-cdk/aws-glue-alpha.IJob",
|
|
@@ -6676,7 +6689,7 @@
|
|
|
6676
6689
|
"immutable": true,
|
|
6677
6690
|
"locationInModule": {
|
|
6678
6691
|
"filename": "lib/job.ts",
|
|
6679
|
-
"line":
|
|
6692
|
+
"line": 639
|
|
6680
6693
|
},
|
|
6681
6694
|
"name": "role",
|
|
6682
6695
|
"type": {
|
|
@@ -6692,7 +6705,7 @@
|
|
|
6692
6705
|
"immutable": true,
|
|
6693
6706
|
"locationInModule": {
|
|
6694
6707
|
"filename": "lib/job.ts",
|
|
6695
|
-
"line":
|
|
6708
|
+
"line": 652
|
|
6696
6709
|
},
|
|
6697
6710
|
"name": "sparkUILoggingLocation",
|
|
6698
6711
|
"optional": true,
|
|
@@ -6718,7 +6731,7 @@
|
|
|
6718
6731
|
"kind": "interface",
|
|
6719
6732
|
"locationInModule": {
|
|
6720
6733
|
"filename": "lib/job.ts",
|
|
6721
|
-
"line":
|
|
6734
|
+
"line": 444
|
|
6722
6735
|
},
|
|
6723
6736
|
"name": "JobAttributes",
|
|
6724
6737
|
"properties": [
|
|
@@ -6731,7 +6744,7 @@
|
|
|
6731
6744
|
"immutable": true,
|
|
6732
6745
|
"locationInModule": {
|
|
6733
6746
|
"filename": "lib/job.ts",
|
|
6734
|
-
"line":
|
|
6747
|
+
"line": 448
|
|
6735
6748
|
},
|
|
6736
6749
|
"name": "jobName",
|
|
6737
6750
|
"type": {
|
|
@@ -6748,7 +6761,7 @@
|
|
|
6748
6761
|
"immutable": true,
|
|
6749
6762
|
"locationInModule": {
|
|
6750
6763
|
"filename": "lib/job.ts",
|
|
6751
|
-
"line":
|
|
6764
|
+
"line": 455
|
|
6752
6765
|
},
|
|
6753
6766
|
"name": "role",
|
|
6754
6767
|
"optional": true,
|
|
@@ -7341,7 +7354,7 @@
|
|
|
7341
7354
|
"kind": "interface",
|
|
7342
7355
|
"locationInModule": {
|
|
7343
7356
|
"filename": "lib/job.ts",
|
|
7344
|
-
"line":
|
|
7357
|
+
"line": 461
|
|
7345
7358
|
},
|
|
7346
7359
|
"name": "JobProps",
|
|
7347
7360
|
"properties": [
|
|
@@ -7354,7 +7367,7 @@
|
|
|
7354
7367
|
"immutable": true,
|
|
7355
7368
|
"locationInModule": {
|
|
7356
7369
|
"filename": "lib/job.ts",
|
|
7357
|
-
"line":
|
|
7370
|
+
"line": 465
|
|
7358
7371
|
},
|
|
7359
7372
|
"name": "executable",
|
|
7360
7373
|
"type": {
|
|
@@ -7372,7 +7385,7 @@
|
|
|
7372
7385
|
"immutable": true,
|
|
7373
7386
|
"locationInModule": {
|
|
7374
7387
|
"filename": "lib/job.ts",
|
|
7375
|
-
"line":
|
|
7388
|
+
"line": 540
|
|
7376
7389
|
},
|
|
7377
7390
|
"name": "connections",
|
|
7378
7391
|
"optional": true,
|
|
@@ -7396,7 +7409,7 @@
|
|
|
7396
7409
|
"immutable": true,
|
|
7397
7410
|
"locationInModule": {
|
|
7398
7411
|
"filename": "lib/job.ts",
|
|
7399
|
-
"line":
|
|
7412
|
+
"line": 602
|
|
7400
7413
|
},
|
|
7401
7414
|
"name": "continuousLogging",
|
|
7402
7415
|
"optional": true,
|
|
@@ -7415,7 +7428,7 @@
|
|
|
7415
7428
|
"immutable": true,
|
|
7416
7429
|
"locationInModule": {
|
|
7417
7430
|
"filename": "lib/job.ts",
|
|
7418
|
-
"line":
|
|
7431
|
+
"line": 555
|
|
7419
7432
|
},
|
|
7420
7433
|
"name": "defaultArguments",
|
|
7421
7434
|
"optional": true,
|
|
@@ -7438,7 +7451,7 @@
|
|
|
7438
7451
|
"immutable": true,
|
|
7439
7452
|
"locationInModule": {
|
|
7440
7453
|
"filename": "lib/job.ts",
|
|
7441
|
-
"line":
|
|
7454
|
+
"line": 479
|
|
7442
7455
|
},
|
|
7443
7456
|
"name": "description",
|
|
7444
7457
|
"optional": true,
|
|
@@ -7457,7 +7470,7 @@
|
|
|
7457
7470
|
"immutable": true,
|
|
7458
7471
|
"locationInModule": {
|
|
7459
7472
|
"filename": "lib/job.ts",
|
|
7460
|
-
"line":
|
|
7473
|
+
"line": 582
|
|
7461
7474
|
},
|
|
7462
7475
|
"name": "enableProfilingMetrics",
|
|
7463
7476
|
"optional": true,
|
|
@@ -7475,7 +7488,7 @@
|
|
|
7475
7488
|
"immutable": true,
|
|
7476
7489
|
"locationInModule": {
|
|
7477
7490
|
"filename": "lib/job.ts",
|
|
7478
|
-
"line":
|
|
7491
|
+
"line": 472
|
|
7479
7492
|
},
|
|
7480
7493
|
"name": "jobName",
|
|
7481
7494
|
"optional": true,
|
|
@@ -7494,7 +7507,7 @@
|
|
|
7494
7507
|
"immutable": true,
|
|
7495
7508
|
"locationInModule": {
|
|
7496
7509
|
"filename": "lib/job.ts",
|
|
7497
|
-
"line":
|
|
7510
|
+
"line": 487
|
|
7498
7511
|
},
|
|
7499
7512
|
"name": "maxCapacity",
|
|
7500
7513
|
"optional": true,
|
|
@@ -7513,7 +7526,7 @@
|
|
|
7513
7526
|
"immutable": true,
|
|
7514
7527
|
"locationInModule": {
|
|
7515
7528
|
"filename": "lib/job.ts",
|
|
7516
|
-
"line":
|
|
7529
|
+
"line": 503
|
|
7517
7530
|
},
|
|
7518
7531
|
"name": "maxConcurrentRuns",
|
|
7519
7532
|
"optional": true,
|
|
@@ -7531,7 +7544,7 @@
|
|
|
7531
7544
|
"immutable": true,
|
|
7532
7545
|
"locationInModule": {
|
|
7533
7546
|
"filename": "lib/job.ts",
|
|
7534
|
-
"line":
|
|
7547
|
+
"line": 494
|
|
7535
7548
|
},
|
|
7536
7549
|
"name": "maxRetries",
|
|
7537
7550
|
"optional": true,
|
|
@@ -7549,7 +7562,7 @@
|
|
|
7549
7562
|
"immutable": true,
|
|
7550
7563
|
"locationInModule": {
|
|
7551
7564
|
"filename": "lib/job.ts",
|
|
7552
|
-
"line":
|
|
7565
|
+
"line": 510
|
|
7553
7566
|
},
|
|
7554
7567
|
"name": "notifyDelayAfter",
|
|
7555
7568
|
"optional": true,
|
|
@@ -7569,7 +7582,7 @@
|
|
|
7569
7582
|
"immutable": true,
|
|
7570
7583
|
"locationInModule": {
|
|
7571
7584
|
"filename": "lib/job.ts",
|
|
7572
|
-
"line":
|
|
7585
|
+
"line": 573
|
|
7573
7586
|
},
|
|
7574
7587
|
"name": "role",
|
|
7575
7588
|
"optional": true,
|
|
@@ -7587,7 +7600,7 @@
|
|
|
7587
7600
|
"immutable": true,
|
|
7588
7601
|
"locationInModule": {
|
|
7589
7602
|
"filename": "lib/job.ts",
|
|
7590
|
-
"line":
|
|
7603
|
+
"line": 547
|
|
7591
7604
|
},
|
|
7592
7605
|
"name": "securityConfiguration",
|
|
7593
7606
|
"optional": true,
|
|
@@ -7606,7 +7619,7 @@
|
|
|
7606
7619
|
"immutable": true,
|
|
7607
7620
|
"locationInModule": {
|
|
7608
7621
|
"filename": "lib/job.ts",
|
|
7609
|
-
"line":
|
|
7622
|
+
"line": 592
|
|
7610
7623
|
},
|
|
7611
7624
|
"name": "sparkUI",
|
|
7612
7625
|
"optional": true,
|
|
@@ -7624,7 +7637,7 @@
|
|
|
7624
7637
|
"immutable": true,
|
|
7625
7638
|
"locationInModule": {
|
|
7626
7639
|
"filename": "lib/job.ts",
|
|
7627
|
-
"line":
|
|
7640
|
+
"line": 562
|
|
7628
7641
|
},
|
|
7629
7642
|
"name": "tags",
|
|
7630
7643
|
"optional": true,
|
|
@@ -7647,7 +7660,7 @@
|
|
|
7647
7660
|
"immutable": true,
|
|
7648
7661
|
"locationInModule": {
|
|
7649
7662
|
"filename": "lib/job.ts",
|
|
7650
|
-
"line":
|
|
7663
|
+
"line": 517
|
|
7651
7664
|
},
|
|
7652
7665
|
"name": "timeout",
|
|
7653
7666
|
"optional": true,
|
|
@@ -7665,7 +7678,7 @@
|
|
|
7665
7678
|
"immutable": true,
|
|
7666
7679
|
"locationInModule": {
|
|
7667
7680
|
"filename": "lib/job.ts",
|
|
7668
|
-
"line":
|
|
7681
|
+
"line": 531
|
|
7669
7682
|
},
|
|
7670
7683
|
"name": "workerCount",
|
|
7671
7684
|
"optional": true,
|
|
@@ -7683,7 +7696,7 @@
|
|
|
7683
7696
|
"immutable": true,
|
|
7684
7697
|
"locationInModule": {
|
|
7685
7698
|
"filename": "lib/job.ts",
|
|
7686
|
-
"line":
|
|
7699
|
+
"line": 524
|
|
7687
7700
|
},
|
|
7688
7701
|
"name": "workerType",
|
|
7689
7702
|
"optional": true,
|
|
@@ -7705,7 +7718,7 @@
|
|
|
7705
7718
|
"kind": "enum",
|
|
7706
7719
|
"locationInModule": {
|
|
7707
7720
|
"filename": "lib/job.ts",
|
|
7708
|
-
"line":
|
|
7721
|
+
"line": 78
|
|
7709
7722
|
},
|
|
7710
7723
|
"members": [
|
|
7711
7724
|
{
|
|
@@ -7907,7 +7920,7 @@
|
|
|
7907
7920
|
"kind": "enum",
|
|
7908
7921
|
"locationInModule": {
|
|
7909
7922
|
"filename": "lib/job.ts",
|
|
7910
|
-
"line":
|
|
7923
|
+
"line": 120
|
|
7911
7924
|
},
|
|
7912
7925
|
"members": [
|
|
7913
7926
|
{
|
|
@@ -8738,7 +8751,7 @@
|
|
|
8738
8751
|
"docs": {
|
|
8739
8752
|
"stability": "experimental",
|
|
8740
8753
|
"summary": "Props for creating a Scala Spark (ETL or Streaming) job executable.",
|
|
8741
|
-
"example": "declare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n description: 'an example Scala ETL job',\n});",
|
|
8754
|
+
"example": "declare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});",
|
|
8742
8755
|
"custom": {
|
|
8743
8756
|
"exampleMetadata": "infused"
|
|
8744
8757
|
}
|
|
@@ -9780,7 +9793,7 @@
|
|
|
9780
9793
|
"kind": "interface",
|
|
9781
9794
|
"locationInModule": {
|
|
9782
9795
|
"filename": "lib/job.ts",
|
|
9783
|
-
"line":
|
|
9796
|
+
"line": 384
|
|
9784
9797
|
},
|
|
9785
9798
|
"name": "SparkUILoggingLocation",
|
|
9786
9799
|
"properties": [
|
|
@@ -9793,7 +9806,7 @@
|
|
|
9793
9806
|
"immutable": true,
|
|
9794
9807
|
"locationInModule": {
|
|
9795
9808
|
"filename": "lib/job.ts",
|
|
9796
|
-
"line":
|
|
9809
|
+
"line": 388
|
|
9797
9810
|
},
|
|
9798
9811
|
"name": "bucket",
|
|
9799
9812
|
"type": {
|
|
@@ -9810,7 +9823,7 @@
|
|
|
9810
9823
|
"immutable": true,
|
|
9811
9824
|
"locationInModule": {
|
|
9812
9825
|
"filename": "lib/job.ts",
|
|
9813
|
-
"line":
|
|
9826
|
+
"line": 395
|
|
9814
9827
|
},
|
|
9815
9828
|
"name": "prefix",
|
|
9816
9829
|
"optional": true,
|
|
@@ -9837,7 +9850,7 @@
|
|
|
9837
9850
|
"kind": "interface",
|
|
9838
9851
|
"locationInModule": {
|
|
9839
9852
|
"filename": "lib/job.ts",
|
|
9840
|
-
"line":
|
|
9853
|
+
"line": 357
|
|
9841
9854
|
},
|
|
9842
9855
|
"name": "SparkUIProps",
|
|
9843
9856
|
"properties": [
|
|
@@ -9850,7 +9863,7 @@
|
|
|
9850
9863
|
"immutable": true,
|
|
9851
9864
|
"locationInModule": {
|
|
9852
9865
|
"filename": "lib/job.ts",
|
|
9853
|
-
"line":
|
|
9866
|
+
"line": 361
|
|
9854
9867
|
},
|
|
9855
9868
|
"name": "enabled",
|
|
9856
9869
|
"type": {
|
|
@@ -9867,7 +9880,7 @@
|
|
|
9867
9880
|
"immutable": true,
|
|
9868
9881
|
"locationInModule": {
|
|
9869
9882
|
"filename": "lib/job.ts",
|
|
9870
|
-
"line":
|
|
9883
|
+
"line": 368
|
|
9871
9884
|
},
|
|
9872
9885
|
"name": "bucket",
|
|
9873
9886
|
"optional": true,
|
|
@@ -9885,7 +9898,7 @@
|
|
|
9885
9898
|
"immutable": true,
|
|
9886
9899
|
"locationInModule": {
|
|
9887
9900
|
"filename": "lib/job.ts",
|
|
9888
|
-
"line":
|
|
9901
|
+
"line": 375
|
|
9889
9902
|
},
|
|
9890
9903
|
"name": "prefix",
|
|
9891
9904
|
"optional": true,
|
|
@@ -10858,7 +10871,7 @@
|
|
|
10858
10871
|
"remarks": "If you need to use a WorkerType that doesn't exist as a static member, you\ncan instantiate a `WorkerType` object, e.g: `WorkerType.of('other type')`.",
|
|
10859
10872
|
"stability": "experimental",
|
|
10860
10873
|
"summary": "The type of predefined worker that is allocated when a job runs.",
|
|
10861
|
-
"example": "
|
|
10874
|
+
"example": "declare const bucket: s3.Bucket;\nnew glue.Job(this, 'ScalaSparkEtlJob', {\n executable: glue.JobExecutable.scalaEtl({\n glueVersion: glue.GlueVersion.V4_0,\n script: glue.Code.fromBucket(bucket, 'src/com/example/HelloWorld.scala'),\n className: 'com.example.HelloWorld',\n extraJars: [glue.Code.fromBucket(bucket, 'jars/HelloWorld.jar')],\n }),\n workerType: glue.WorkerType.G_8X,\n description: 'an example Scala ETL job',\n});",
|
|
10862
10875
|
"custom": {
|
|
10863
10876
|
"exampleMetadata": "infused"
|
|
10864
10877
|
}
|
|
@@ -10877,7 +10890,7 @@
|
|
|
10877
10890
|
},
|
|
10878
10891
|
"locationInModule": {
|
|
10879
10892
|
"filename": "lib/job.ts",
|
|
10880
|
-
"line":
|
|
10893
|
+
"line": 59
|
|
10881
10894
|
},
|
|
10882
10895
|
"name": "of",
|
|
10883
10896
|
"parameters": [
|
|
@@ -10910,7 +10923,7 @@
|
|
|
10910
10923
|
"immutable": true,
|
|
10911
10924
|
"locationInModule": {
|
|
10912
10925
|
"filename": "lib/job.ts",
|
|
10913
|
-
"line":
|
|
10926
|
+
"line": 48
|
|
10914
10927
|
},
|
|
10915
10928
|
"name": "G_025X",
|
|
10916
10929
|
"static": true,
|
|
@@ -10954,6 +10967,42 @@
|
|
|
10954
10967
|
"fqn": "@aws-cdk/aws-glue-alpha.WorkerType"
|
|
10955
10968
|
}
|
|
10956
10969
|
},
|
|
10970
|
+
{
|
|
10971
|
+
"const": true,
|
|
10972
|
+
"docs": {
|
|
10973
|
+
"remarks": "We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later jobs.",
|
|
10974
|
+
"stability": "experimental",
|
|
10975
|
+
"summary": "Each worker maps to 4 DPU (16 vCPU, 64 GB of memory, 256 GB disk), and provides 1 executor per worker."
|
|
10976
|
+
},
|
|
10977
|
+
"immutable": true,
|
|
10978
|
+
"locationInModule": {
|
|
10979
|
+
"filename": "lib/job.ts",
|
|
10980
|
+
"line": 38
|
|
10981
|
+
},
|
|
10982
|
+
"name": "G_4X",
|
|
10983
|
+
"static": true,
|
|
10984
|
+
"type": {
|
|
10985
|
+
"fqn": "@aws-cdk/aws-glue-alpha.WorkerType"
|
|
10986
|
+
}
|
|
10987
|
+
},
|
|
10988
|
+
{
|
|
10989
|
+
"const": true,
|
|
10990
|
+
"docs": {
|
|
10991
|
+
"remarks": "We recommend this worker type for jobs whose workloads contain your most demanding transforms, aggregations, joins, and queries. This worker type is available only for AWS Glue version 3.0 or later jobs.",
|
|
10992
|
+
"stability": "experimental",
|
|
10993
|
+
"summary": "Each worker maps to 8 DPU (32 vCPU, 128 GB of memory, 512 GB disk), and provides 1 executor per worker."
|
|
10994
|
+
},
|
|
10995
|
+
"immutable": true,
|
|
10996
|
+
"locationInModule": {
|
|
10997
|
+
"filename": "lib/job.ts",
|
|
10998
|
+
"line": 43
|
|
10999
|
+
},
|
|
11000
|
+
"name": "G_8X",
|
|
11001
|
+
"static": true,
|
|
11002
|
+
"type": {
|
|
11003
|
+
"fqn": "@aws-cdk/aws-glue-alpha.WorkerType"
|
|
11004
|
+
}
|
|
11005
|
+
},
|
|
10957
11006
|
{
|
|
10958
11007
|
"const": true,
|
|
10959
11008
|
"docs": {
|
|
@@ -10981,7 +11030,7 @@
|
|
|
10981
11030
|
"immutable": true,
|
|
10982
11031
|
"locationInModule": {
|
|
10983
11032
|
"filename": "lib/job.ts",
|
|
10984
|
-
"line":
|
|
11033
|
+
"line": 53
|
|
10985
11034
|
},
|
|
10986
11035
|
"name": "Z_2X",
|
|
10987
11036
|
"static": true,
|
|
@@ -10997,7 +11046,7 @@
|
|
|
10997
11046
|
"immutable": true,
|
|
10998
11047
|
"locationInModule": {
|
|
10999
11048
|
"filename": "lib/job.ts",
|
|
11000
|
-
"line":
|
|
11049
|
+
"line": 66
|
|
11001
11050
|
},
|
|
11002
11051
|
"name": "name",
|
|
11003
11052
|
"type": {
|
|
@@ -11008,6 +11057,6 @@
|
|
|
11008
11057
|
"symbolId": "lib/job:WorkerType"
|
|
11009
11058
|
}
|
|
11010
11059
|
},
|
|
11011
|
-
"version": "2.
|
|
11060
|
+
"version": "2.81.0-alpha.0",
|
|
11012
11061
|
"fingerprint": "**********"
|
|
11013
11062
|
}
|