@aws-cdk/aws-glue-alpha 2.117.0-alpha.0 → 2.119.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 +135 -44
- package/.jsii.tabl.json.gz +0 -0
- package/LICENSE +1 -1
- package/NOTICE +1 -1
- package/README.md +22 -1
- package/lib/code.js +4 -4
- package/lib/connection.js +2 -2
- package/lib/data-format.js +5 -5
- package/lib/data-quality-ruleset.js +2 -2
- package/lib/database.d.ts +6 -0
- package/lib/database.js +12 -3
- package/lib/external-table.js +3 -2
- package/lib/job-executable.js +5 -5
- package/lib/job.js +3 -3
- package/lib/s3-table.js +3 -2
- package/lib/schema.js +2 -2
- package/lib/security-configuration.js +2 -2
- package/lib/storage-parameter.js +1 -1
- package/lib/table-base.d.ts +18 -0
- package/lib/table-base.js +3 -2
- package/lib/table-deprecated.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.119.0",
|
|
12
12
|
"constructs": "^10.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -105,6 +105,19 @@
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
|
+
"aws-cdk-lib.amzn_sdc": {
|
|
109
|
+
"targets": {
|
|
110
|
+
"dotnet": {
|
|
111
|
+
"package": "Amazon.CDK.AMZN.SDC"
|
|
112
|
+
},
|
|
113
|
+
"java": {
|
|
114
|
+
"package": "amzn.sdc"
|
|
115
|
+
},
|
|
116
|
+
"python": {
|
|
117
|
+
"module": "aws_cdk.amzn_sdc"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
108
121
|
"aws-cdk-lib.assertions": {
|
|
109
122
|
"targets": {
|
|
110
123
|
"dotnet": {
|
|
@@ -836,6 +849,19 @@
|
|
|
836
849
|
}
|
|
837
850
|
}
|
|
838
851
|
},
|
|
852
|
+
"aws-cdk-lib.aws_codetest": {
|
|
853
|
+
"targets": {
|
|
854
|
+
"dotnet": {
|
|
855
|
+
"package": "Amazon.CDK.AWS.CodeTest"
|
|
856
|
+
},
|
|
857
|
+
"java": {
|
|
858
|
+
"package": "software.amazon.awscdk.services.codetest"
|
|
859
|
+
},
|
|
860
|
+
"python": {
|
|
861
|
+
"module": "aws_cdk.aws_codetest"
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
},
|
|
839
865
|
"aws-cdk-lib.aws_cognito": {
|
|
840
866
|
"targets": {
|
|
841
867
|
"dotnet": {
|
|
@@ -3637,7 +3663,7 @@
|
|
|
3637
3663
|
"stability": "experimental"
|
|
3638
3664
|
},
|
|
3639
3665
|
"homepage": "https://github.com/aws/aws-cdk",
|
|
3640
|
-
"jsiiVersion": "5.
|
|
3666
|
+
"jsiiVersion": "5.3.3 (build 720b620)",
|
|
3641
3667
|
"keywords": [
|
|
3642
3668
|
"aws",
|
|
3643
3669
|
"cdk",
|
|
@@ -3658,7 +3684,7 @@
|
|
|
3658
3684
|
},
|
|
3659
3685
|
"name": "@aws-cdk/aws-glue-alpha",
|
|
3660
3686
|
"readme": {
|
|
3661
|
-
"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`glue.ExecutionClass` allows you to specify `FLEX` or `STANDARD`. `FLEX` is appropriate for non-urgent jobs such as pre-production jobs, testing, and one-time data loads.\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 runtime: glue.Runtime.RAY_TWO_FOUR,\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\n### Enable Spark UI\n\nEnable Spark UI setting the `sparkUI` property.\n\n```ts\nnew glue.Job(this, 'EnableSparkUI', {\n jobName: 'EtlJobWithSparkUIPrefix',\n sparkUI: {\n enabled: true,\n },\n executable: glue.JobExecutable.pythonEtl({\n glueVersion: glue.GlueVersion.V3_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n});\n```\n\nThe `sparkUI` property also allows the specification of an s3 bucket and a bucket prefix.\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.S3Table(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.S3Table(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\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\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.S3Table(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.S3Table(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.S3Table(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### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\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.S3Table(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.S3Table(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.S3Table(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.S3Table(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.S3Table(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.S3Table(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 `S3Table` 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.S3Table(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\n## Data Quality Ruleset\n\nA `DataQualityRuleset` specifies a data quality ruleset with DQDL rules applied to a specified AWS Glue table. For example, to create a data quality ruleset for a given table:\n\n```ts\nnew glue.DataQualityRuleset(this, 'MyDataQualityRuleset', {\n clientToken: 'client_token',\n description: 'description',\n rulesetName: 'ruleset_name',\n rulesetDqdl: 'ruleset_dqdl',\n tags: {\n key1: 'value1',\n key2: 'value2',\n },\n targetTable: new glue.DataQualityTargetTable('database_name', 'table_name'),\n});\n```\n\nFor more information, see [AWS Glue Data Quality](https://docs.aws.amazon.com/glue/latest/dg/glue-data-quality.html).\n"
|
|
3687
|
+
"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`glue.ExecutionClass` allows you to specify `FLEX` or `STANDARD`. `FLEX` is appropriate for non-urgent jobs such as pre-production jobs, testing, and one-time data loads.\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 runtime: glue.Runtime.RAY_TWO_FOUR,\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\n### Enable Spark UI\n\nEnable Spark UI setting the `sparkUI` property.\n\n```ts\nnew glue.Job(this, 'EnableSparkUI', {\n jobName: 'EtlJobWithSparkUIPrefix',\n sparkUI: {\n enabled: true,\n },\n executable: glue.JobExecutable.pythonEtl({\n glueVersion: glue.GlueVersion.V3_0,\n pythonVersion: glue.PythonVersion.THREE,\n script: glue.Code.fromAsset(path.join(__dirname, 'job-script/hello_world.py')),\n }),\n});\n```\n\nThe `sparkUI` property also allows the specification of an s3 bucket and a bucket prefix.\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 databaseName: 'my_database',\n description: 'my_database_description',\n});\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.S3Table(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.S3Table(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\nGlue tables can be configured to contain user-defined properties, to describe the physical storage of table data, through the `storageParameters` property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n storageParameters: [\n glue.StorageParameter.skipHeaderLineCount(1),\n glue.StorageParameter.compressionType(glue.CompressionType.GZIP),\n glue.StorageParameter.custom('separatorChar', ',')\n ],\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\n\nGlue tables can also be configured to contain user-defined table properties through the [`parameters`](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters) property:\n\n```ts\ndeclare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n parameters: {\n key1: 'val1',\n key2: 'val2',\n },\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\n});\n```\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.S3Table(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.S3Table(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.S3Table(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### Glue Connections\n\nGlue connections allow external data connections to third party databases and data warehouses. However, these connections can also be assigned to Glue Tables, allowing you to query external data sources using the Glue Data Catalog.\n\nWhereas `S3Table` will point to (and if needed, create) a bucket to store the tables' data, `ExternalTable` will point to an existing table in a data source. For example, to create a table in Glue that points to a table in Redshift:\n\n```ts\ndeclare const myConnection: glue.Connection;\ndeclare const myDatabase: glue.Database;\nnew glue.ExternalTable(this, 'MyTable', {\n connection: myConnection,\n externalDataLocation: 'default_db_public_example', // A table in Redshift\n // ...\n database: myDatabase,\n columns: [{\n name: 'col1',\n type: glue.Schema.STRING,\n }],\n dataFormat: glue.DataFormat.JSON,\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.S3Table(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.S3Table(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.S3Table(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.S3Table(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.S3Table(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.S3Table(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 `S3Table` 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.S3Table(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\n## Data Quality Ruleset\n\nA `DataQualityRuleset` specifies a data quality ruleset with DQDL rules applied to a specified AWS Glue table. For example, to create a data quality ruleset for a given table:\n\n```ts\nnew glue.DataQualityRuleset(this, 'MyDataQualityRuleset', {\n clientToken: 'client_token',\n description: 'description',\n rulesetName: 'ruleset_name',\n rulesetDqdl: 'ruleset_dqdl',\n tags: {\n key1: 'value1',\n key2: 'value2',\n },\n targetTable: new glue.DataQualityTargetTable('database_name', 'table_name'),\n});\n```\n\nFor more information, see [AWS Glue Data Quality](https://docs.aws.amazon.com/glue/latest/dg/glue-data-quality.html).\n"
|
|
3662
3688
|
},
|
|
3663
3689
|
"repository": {
|
|
3664
3690
|
"directory": "packages/@aws-cdk/aws-glue-alpha",
|
|
@@ -5750,7 +5776,7 @@
|
|
|
5750
5776
|
},
|
|
5751
5777
|
"locationInModule": {
|
|
5752
5778
|
"filename": "lib/database.ts",
|
|
5753
|
-
"line":
|
|
5779
|
+
"line": 98
|
|
5754
5780
|
},
|
|
5755
5781
|
"parameters": [
|
|
5756
5782
|
{
|
|
@@ -5780,7 +5806,7 @@
|
|
|
5780
5806
|
"kind": "class",
|
|
5781
5807
|
"locationInModule": {
|
|
5782
5808
|
"filename": "lib/database.ts",
|
|
5783
|
-
"line":
|
|
5809
|
+
"line": 58
|
|
5784
5810
|
},
|
|
5785
5811
|
"methods": [
|
|
5786
5812
|
{
|
|
@@ -5789,7 +5815,7 @@
|
|
|
5789
5815
|
},
|
|
5790
5816
|
"locationInModule": {
|
|
5791
5817
|
"filename": "lib/database.ts",
|
|
5792
|
-
"line":
|
|
5818
|
+
"line": 60
|
|
5793
5819
|
},
|
|
5794
5820
|
"name": "fromDatabaseArn",
|
|
5795
5821
|
"parameters": [
|
|
@@ -5830,7 +5856,7 @@
|
|
|
5830
5856
|
"immutable": true,
|
|
5831
5857
|
"locationInModule": {
|
|
5832
5858
|
"filename": "lib/database.ts",
|
|
5833
|
-
"line":
|
|
5859
|
+
"line": 76
|
|
5834
5860
|
},
|
|
5835
5861
|
"name": "catalogArn",
|
|
5836
5862
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -5846,7 +5872,7 @@
|
|
|
5846
5872
|
"immutable": true,
|
|
5847
5873
|
"locationInModule": {
|
|
5848
5874
|
"filename": "lib/database.ts",
|
|
5849
|
-
"line":
|
|
5875
|
+
"line": 81
|
|
5850
5876
|
},
|
|
5851
5877
|
"name": "catalogId",
|
|
5852
5878
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -5862,7 +5888,7 @@
|
|
|
5862
5888
|
"immutable": true,
|
|
5863
5889
|
"locationInModule": {
|
|
5864
5890
|
"filename": "lib/database.ts",
|
|
5865
|
-
"line":
|
|
5891
|
+
"line": 86
|
|
5866
5892
|
},
|
|
5867
5893
|
"name": "databaseArn",
|
|
5868
5894
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -5878,7 +5904,7 @@
|
|
|
5878
5904
|
"immutable": true,
|
|
5879
5905
|
"locationInModule": {
|
|
5880
5906
|
"filename": "lib/database.ts",
|
|
5881
|
-
"line":
|
|
5907
|
+
"line": 91
|
|
5882
5908
|
},
|
|
5883
5909
|
"name": "databaseName",
|
|
5884
5910
|
"overrides": "@aws-cdk/aws-glue-alpha.IDatabase",
|
|
@@ -5894,7 +5920,7 @@
|
|
|
5894
5920
|
"immutable": true,
|
|
5895
5921
|
"locationInModule": {
|
|
5896
5922
|
"filename": "lib/database.ts",
|
|
5897
|
-
"line":
|
|
5923
|
+
"line": 96
|
|
5898
5924
|
},
|
|
5899
5925
|
"name": "locationUri",
|
|
5900
5926
|
"optional": true,
|
|
@@ -5910,9 +5936,9 @@
|
|
|
5910
5936
|
"datatype": true,
|
|
5911
5937
|
"docs": {
|
|
5912
5938
|
"stability": "experimental",
|
|
5913
|
-
"example": "
|
|
5939
|
+
"example": "new glue.Database(this, 'MyDatabase', {\n databaseName: 'my_database',\n description: 'my_database_description',\n});",
|
|
5914
5940
|
"custom": {
|
|
5915
|
-
"exampleMetadata": "
|
|
5941
|
+
"exampleMetadata": "infused"
|
|
5916
5942
|
}
|
|
5917
5943
|
},
|
|
5918
5944
|
"fqn": "@aws-cdk/aws-glue-alpha.DatabaseProps",
|
|
@@ -5941,6 +5967,24 @@
|
|
|
5941
5967
|
"primitive": "string"
|
|
5942
5968
|
}
|
|
5943
5969
|
},
|
|
5970
|
+
{
|
|
5971
|
+
"abstract": true,
|
|
5972
|
+
"docs": {
|
|
5973
|
+
"default": "- no database description",
|
|
5974
|
+
"stability": "experimental",
|
|
5975
|
+
"summary": "A description of the database."
|
|
5976
|
+
},
|
|
5977
|
+
"immutable": true,
|
|
5978
|
+
"locationInModule": {
|
|
5979
|
+
"filename": "lib/database.ts",
|
|
5980
|
+
"line": 52
|
|
5981
|
+
},
|
|
5982
|
+
"name": "description",
|
|
5983
|
+
"optional": true,
|
|
5984
|
+
"type": {
|
|
5985
|
+
"primitive": "string"
|
|
5986
|
+
}
|
|
5987
|
+
},
|
|
5944
5988
|
{
|
|
5945
5989
|
"abstract": true,
|
|
5946
5990
|
"docs": {
|
|
@@ -6050,7 +6094,7 @@
|
|
|
6050
6094
|
},
|
|
6051
6095
|
"locationInModule": {
|
|
6052
6096
|
"filename": "lib/external-table.ts",
|
|
6053
|
-
"line":
|
|
6097
|
+
"line": 118
|
|
6054
6098
|
},
|
|
6055
6099
|
"name": "grantRead",
|
|
6056
6100
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -6078,7 +6122,7 @@
|
|
|
6078
6122
|
},
|
|
6079
6123
|
"locationInModule": {
|
|
6080
6124
|
"filename": "lib/external-table.ts",
|
|
6081
|
-
"line":
|
|
6125
|
+
"line": 138
|
|
6082
6126
|
},
|
|
6083
6127
|
"name": "grantReadWrite",
|
|
6084
6128
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -6106,7 +6150,7 @@
|
|
|
6106
6150
|
},
|
|
6107
6151
|
"locationInModule": {
|
|
6108
6152
|
"filename": "lib/external-table.ts",
|
|
6109
|
-
"line":
|
|
6153
|
+
"line": 128
|
|
6110
6154
|
},
|
|
6111
6155
|
"name": "grantWrite",
|
|
6112
6156
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -10087,7 +10131,7 @@
|
|
|
10087
10131
|
},
|
|
10088
10132
|
"stability": "experimental",
|
|
10089
10133
|
"summary": "A Glue table that targets a S3 dataset.",
|
|
10090
|
-
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(this, 'MyTable', {\n
|
|
10134
|
+
"example": "declare const myDatabase: glue.Database;\nnew glue.S3Table(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});"
|
|
10091
10135
|
},
|
|
10092
10136
|
"fqn": "@aws-cdk/aws-glue-alpha.S3Table",
|
|
10093
10137
|
"initializer": {
|
|
@@ -10131,7 +10175,7 @@
|
|
|
10131
10175
|
},
|
|
10132
10176
|
"locationInModule": {
|
|
10133
10177
|
"filename": "lib/s3-table.ts",
|
|
10134
|
-
"line":
|
|
10178
|
+
"line": 221
|
|
10135
10179
|
},
|
|
10136
10180
|
"name": "generateS3PrefixForGrant",
|
|
10137
10181
|
"protected": true,
|
|
@@ -10148,7 +10192,7 @@
|
|
|
10148
10192
|
},
|
|
10149
10193
|
"locationInModule": {
|
|
10150
10194
|
"filename": "lib/s3-table.ts",
|
|
10151
|
-
"line":
|
|
10195
|
+
"line": 190
|
|
10152
10196
|
},
|
|
10153
10197
|
"name": "grantRead",
|
|
10154
10198
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -10176,7 +10220,7 @@
|
|
|
10176
10220
|
},
|
|
10177
10221
|
"locationInModule": {
|
|
10178
10222
|
"filename": "lib/s3-table.ts",
|
|
10179
|
-
"line":
|
|
10223
|
+
"line": 214
|
|
10180
10224
|
},
|
|
10181
10225
|
"name": "grantReadWrite",
|
|
10182
10226
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -10204,7 +10248,7 @@
|
|
|
10204
10248
|
},
|
|
10205
10249
|
"locationInModule": {
|
|
10206
10250
|
"filename": "lib/s3-table.ts",
|
|
10207
|
-
"line":
|
|
10251
|
+
"line": 202
|
|
10208
10252
|
},
|
|
10209
10253
|
"name": "grantWrite",
|
|
10210
10254
|
"overrides": "@aws-cdk/aws-glue-alpha.TableBase",
|
|
@@ -12506,7 +12550,7 @@
|
|
|
12506
12550
|
},
|
|
12507
12551
|
"locationInModule": {
|
|
12508
12552
|
"filename": "lib/table-base.ts",
|
|
12509
|
-
"line":
|
|
12553
|
+
"line": 240
|
|
12510
12554
|
},
|
|
12511
12555
|
"parameters": [
|
|
12512
12556
|
{
|
|
@@ -12535,7 +12579,7 @@
|
|
|
12535
12579
|
"kind": "class",
|
|
12536
12580
|
"locationInModule": {
|
|
12537
12581
|
"filename": "lib/table-base.ts",
|
|
12538
|
-
"line":
|
|
12582
|
+
"line": 165
|
|
12539
12583
|
},
|
|
12540
12584
|
"methods": [
|
|
12541
12585
|
{
|
|
@@ -12544,7 +12588,7 @@
|
|
|
12544
12588
|
},
|
|
12545
12589
|
"locationInModule": {
|
|
12546
12590
|
"filename": "lib/table-base.ts",
|
|
12547
|
-
"line":
|
|
12591
|
+
"line": 167
|
|
12548
12592
|
},
|
|
12549
12593
|
"name": "fromTableArn",
|
|
12550
12594
|
"parameters": [
|
|
@@ -12581,7 +12625,7 @@
|
|
|
12581
12625
|
},
|
|
12582
12626
|
"locationInModule": {
|
|
12583
12627
|
"filename": "lib/table-base.ts",
|
|
12584
|
-
"line":
|
|
12628
|
+
"line": 183
|
|
12585
12629
|
},
|
|
12586
12630
|
"name": "fromTableAttributes",
|
|
12587
12631
|
"parameters": [
|
|
@@ -12629,7 +12673,7 @@
|
|
|
12629
12673
|
},
|
|
12630
12674
|
"locationInModule": {
|
|
12631
12675
|
"filename": "lib/table-base.ts",
|
|
12632
|
-
"line":
|
|
12676
|
+
"line": 271
|
|
12633
12677
|
},
|
|
12634
12678
|
"name": "addPartitionIndex",
|
|
12635
12679
|
"parameters": [
|
|
@@ -12648,7 +12692,7 @@
|
|
|
12648
12692
|
},
|
|
12649
12693
|
"locationInModule": {
|
|
12650
12694
|
"filename": "lib/table-base.ts",
|
|
12651
|
-
"line":
|
|
12695
|
+
"line": 334
|
|
12652
12696
|
},
|
|
12653
12697
|
"name": "grant",
|
|
12654
12698
|
"parameters": [
|
|
@@ -12683,7 +12727,7 @@
|
|
|
12683
12727
|
},
|
|
12684
12728
|
"locationInModule": {
|
|
12685
12729
|
"filename": "lib/table-base.ts",
|
|
12686
|
-
"line":
|
|
12730
|
+
"line": 260
|
|
12687
12731
|
},
|
|
12688
12732
|
"name": "grantRead",
|
|
12689
12733
|
"parameters": [
|
|
@@ -12707,7 +12751,7 @@
|
|
|
12707
12751
|
},
|
|
12708
12752
|
"locationInModule": {
|
|
12709
12753
|
"filename": "lib/table-base.ts",
|
|
12710
|
-
"line":
|
|
12754
|
+
"line": 262
|
|
12711
12755
|
},
|
|
12712
12756
|
"name": "grantReadWrite",
|
|
12713
12757
|
"parameters": [
|
|
@@ -12732,7 +12776,7 @@
|
|
|
12732
12776
|
},
|
|
12733
12777
|
"locationInModule": {
|
|
12734
12778
|
"filename": "lib/table-base.ts",
|
|
12735
|
-
"line":
|
|
12779
|
+
"line": 346
|
|
12736
12780
|
},
|
|
12737
12781
|
"name": "grantToUnderlyingResources",
|
|
12738
12782
|
"parameters": [
|
|
@@ -12767,7 +12811,7 @@
|
|
|
12767
12811
|
},
|
|
12768
12812
|
"locationInModule": {
|
|
12769
12813
|
"filename": "lib/table-base.ts",
|
|
12770
|
-
"line":
|
|
12814
|
+
"line": 261
|
|
12771
12815
|
},
|
|
12772
12816
|
"name": "grantWrite",
|
|
12773
12817
|
"parameters": [
|
|
@@ -12795,7 +12839,7 @@
|
|
|
12795
12839
|
"immutable": true,
|
|
12796
12840
|
"locationInModule": {
|
|
12797
12841
|
"filename": "lib/table-base.ts",
|
|
12798
|
-
"line":
|
|
12842
|
+
"line": 215
|
|
12799
12843
|
},
|
|
12800
12844
|
"name": "columns",
|
|
12801
12845
|
"type": {
|
|
@@ -12815,7 +12859,7 @@
|
|
|
12815
12859
|
"immutable": true,
|
|
12816
12860
|
"locationInModule": {
|
|
12817
12861
|
"filename": "lib/table-base.ts",
|
|
12818
|
-
"line":
|
|
12862
|
+
"line": 205
|
|
12819
12863
|
},
|
|
12820
12864
|
"name": "compressed",
|
|
12821
12865
|
"type": {
|
|
@@ -12830,7 +12874,7 @@
|
|
|
12830
12874
|
"immutable": true,
|
|
12831
12875
|
"locationInModule": {
|
|
12832
12876
|
"filename": "lib/table-base.ts",
|
|
12833
|
-
"line":
|
|
12877
|
+
"line": 200
|
|
12834
12878
|
},
|
|
12835
12879
|
"name": "database",
|
|
12836
12880
|
"type": {
|
|
@@ -12845,13 +12889,35 @@
|
|
|
12845
12889
|
"immutable": true,
|
|
12846
12890
|
"locationInModule": {
|
|
12847
12891
|
"filename": "lib/table-base.ts",
|
|
12848
|
-
"line":
|
|
12892
|
+
"line": 210
|
|
12849
12893
|
},
|
|
12850
12894
|
"name": "dataFormat",
|
|
12851
12895
|
"type": {
|
|
12852
12896
|
"fqn": "@aws-cdk/aws-glue-alpha.DataFormat"
|
|
12853
12897
|
}
|
|
12854
12898
|
},
|
|
12899
|
+
{
|
|
12900
|
+
"docs": {
|
|
12901
|
+
"see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters",
|
|
12902
|
+
"stability": "experimental",
|
|
12903
|
+
"summary": "The tables' properties associated with the table."
|
|
12904
|
+
},
|
|
12905
|
+
"immutable": true,
|
|
12906
|
+
"locationInModule": {
|
|
12907
|
+
"filename": "lib/table-base.ts",
|
|
12908
|
+
"line": 231
|
|
12909
|
+
},
|
|
12910
|
+
"name": "parameters",
|
|
12911
|
+
"protected": true,
|
|
12912
|
+
"type": {
|
|
12913
|
+
"collection": {
|
|
12914
|
+
"elementtype": {
|
|
12915
|
+
"primitive": "string"
|
|
12916
|
+
},
|
|
12917
|
+
"kind": "map"
|
|
12918
|
+
}
|
|
12919
|
+
}
|
|
12920
|
+
},
|
|
12855
12921
|
{
|
|
12856
12922
|
"abstract": true,
|
|
12857
12923
|
"docs": {
|
|
@@ -12860,7 +12926,7 @@
|
|
|
12860
12926
|
"immutable": true,
|
|
12861
12927
|
"locationInModule": {
|
|
12862
12928
|
"filename": "lib/table-base.ts",
|
|
12863
|
-
"line":
|
|
12929
|
+
"line": 194
|
|
12864
12930
|
},
|
|
12865
12931
|
"name": "tableArn",
|
|
12866
12932
|
"overrides": "@aws-cdk/aws-glue-alpha.ITable",
|
|
@@ -12876,7 +12942,7 @@
|
|
|
12876
12942
|
"immutable": true,
|
|
12877
12943
|
"locationInModule": {
|
|
12878
12944
|
"filename": "lib/table-base.ts",
|
|
12879
|
-
"line":
|
|
12945
|
+
"line": 193
|
|
12880
12946
|
},
|
|
12881
12947
|
"name": "tableName",
|
|
12882
12948
|
"overrides": "@aws-cdk/aws-glue-alpha.ITable",
|
|
@@ -12892,7 +12958,7 @@
|
|
|
12892
12958
|
"immutable": true,
|
|
12893
12959
|
"locationInModule": {
|
|
12894
12960
|
"filename": "lib/table-base.ts",
|
|
12895
|
-
"line":
|
|
12961
|
+
"line": 192
|
|
12896
12962
|
},
|
|
12897
12963
|
"name": "tableResource",
|
|
12898
12964
|
"protected": true,
|
|
@@ -12908,7 +12974,7 @@
|
|
|
12908
12974
|
"immutable": true,
|
|
12909
12975
|
"locationInModule": {
|
|
12910
12976
|
"filename": "lib/table-base.ts",
|
|
12911
|
-
"line":
|
|
12977
|
+
"line": 195
|
|
12912
12978
|
},
|
|
12913
12979
|
"name": "partitionIndexes",
|
|
12914
12980
|
"optional": true,
|
|
@@ -12929,7 +12995,7 @@
|
|
|
12929
12995
|
"immutable": true,
|
|
12930
12996
|
"locationInModule": {
|
|
12931
12997
|
"filename": "lib/table-base.ts",
|
|
12932
|
-
"line":
|
|
12998
|
+
"line": 220
|
|
12933
12999
|
},
|
|
12934
13000
|
"name": "partitionKeys",
|
|
12935
13001
|
"optional": true,
|
|
@@ -12950,7 +13016,7 @@
|
|
|
12950
13016
|
"immutable": true,
|
|
12951
13017
|
"locationInModule": {
|
|
12952
13018
|
"filename": "lib/table-base.ts",
|
|
12953
|
-
"line":
|
|
13019
|
+
"line": 225
|
|
12954
13020
|
},
|
|
12955
13021
|
"name": "storageParameters",
|
|
12956
13022
|
"optional": true,
|
|
@@ -12971,7 +13037,7 @@
|
|
|
12971
13037
|
"datatype": true,
|
|
12972
13038
|
"docs": {
|
|
12973
13039
|
"stability": "experimental",
|
|
12974
|
-
"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';\n\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableBaseProps: glue_alpha.TableBaseProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
|
|
13040
|
+
"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';\n\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableBaseProps: glue_alpha.TableBaseProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n parameters: {\n parametersKey: 'parameters',\n },\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
|
|
12975
13041
|
"custom": {
|
|
12976
13042
|
"exampleMetadata": "fixture=_generated"
|
|
12977
13043
|
}
|
|
@@ -13092,6 +13158,31 @@
|
|
|
13092
13158
|
"primitive": "boolean"
|
|
13093
13159
|
}
|
|
13094
13160
|
},
|
|
13161
|
+
{
|
|
13162
|
+
"abstract": true,
|
|
13163
|
+
"docs": {
|
|
13164
|
+
"default": "- The parameter is not defined",
|
|
13165
|
+
"remarks": "The key/value pairs that are allowed to be submitted are not limited, however their functionality is not guaranteed.",
|
|
13166
|
+
"see": "https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-glue-table-tableinput.html#cfn-glue-table-tableinput-parameters",
|
|
13167
|
+
"stability": "experimental",
|
|
13168
|
+
"summary": "The key/value pairs define properties associated with the table."
|
|
13169
|
+
},
|
|
13170
|
+
"immutable": true,
|
|
13171
|
+
"locationInModule": {
|
|
13172
|
+
"filename": "lib/table-base.ts",
|
|
13173
|
+
"line": 159
|
|
13174
|
+
},
|
|
13175
|
+
"name": "parameters",
|
|
13176
|
+
"optional": true,
|
|
13177
|
+
"type": {
|
|
13178
|
+
"collection": {
|
|
13179
|
+
"elementtype": {
|
|
13180
|
+
"primitive": "string"
|
|
13181
|
+
},
|
|
13182
|
+
"kind": "map"
|
|
13183
|
+
}
|
|
13184
|
+
}
|
|
13185
|
+
},
|
|
13095
13186
|
{
|
|
13096
13187
|
"abstract": true,
|
|
13097
13188
|
"docs": {
|
|
@@ -13262,7 +13353,7 @@
|
|
|
13262
13353
|
"datatype": true,
|
|
13263
13354
|
"docs": {
|
|
13264
13355
|
"stability": "experimental",
|
|
13265
|
-
"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 { aws_kms as kms } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const key: kms.Key;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableProps: glue_alpha.TableProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n bucket: bucket,\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n encryption: glue_alpha.TableEncryption.S3_MANAGED,\n encryptionKey: key,\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n s3Prefix: 's3Prefix',\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
|
|
13356
|
+
"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 { aws_kms as kms } from 'aws-cdk-lib';\nimport { aws_s3 as s3 } from 'aws-cdk-lib';\n\ndeclare const bucket: s3.Bucket;\ndeclare const database: glue_alpha.Database;\ndeclare const dataFormat: glue_alpha.DataFormat;\ndeclare const key: kms.Key;\ndeclare const storageParameter: glue_alpha.StorageParameter;\nconst tableProps: glue_alpha.TableProps = {\n columns: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n database: database,\n dataFormat: dataFormat,\n\n // the properties below are optional\n bucket: bucket,\n compressed: false,\n description: 'description',\n enablePartitionFiltering: false,\n encryption: glue_alpha.TableEncryption.S3_MANAGED,\n encryptionKey: key,\n parameters: {\n parametersKey: 'parameters',\n },\n partitionIndexes: [{\n keyNames: ['keyNames'],\n\n // the properties below are optional\n indexName: 'indexName',\n }],\n partitionKeys: [{\n name: 'name',\n type: {\n inputString: 'inputString',\n isPrimitive: false,\n },\n\n // the properties below are optional\n comment: 'comment',\n }],\n s3Prefix: 's3Prefix',\n storageParameters: [storageParameter],\n storedAsSubDirectories: false,\n tableName: 'tableName',\n};",
|
|
13266
13357
|
"custom": {
|
|
13267
13358
|
"exampleMetadata": "fixture=_generated"
|
|
13268
13359
|
}
|
|
@@ -13558,6 +13649,6 @@
|
|
|
13558
13649
|
"symbolId": "lib/storage-parameter:WriteParallel"
|
|
13559
13650
|
}
|
|
13560
13651
|
},
|
|
13561
|
-
"version": "2.
|
|
13652
|
+
"version": "2.119.0-alpha.0",
|
|
13562
13653
|
"fingerprint": "**********"
|
|
13563
13654
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/LICENSE
CHANGED
|
@@ -186,7 +186,7 @@
|
|
|
186
186
|
same "printed page" as the copyright notice for easier
|
|
187
187
|
identification within third-party archives.
|
|
188
188
|
|
|
189
|
-
Copyright 2018-
|
|
189
|
+
Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
190
190
|
|
|
191
191
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
192
192
|
you may not use this file except in compliance with the License.
|
package/NOTICE
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
AWS Cloud Development Kit (AWS CDK)
|
|
2
|
-
Copyright 2018-
|
|
2
|
+
Copyright 2018-2024 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|