Skip to content

Commit 2a11fd8

Browse files
author
awstools
committedJun 29, 2023
feat(client-glue): This release adds support for AWS Glue Crawler with Iceberg Tables, allowing Crawlers to discover Iceberg Tables in S3 and register them in Glue Data Catalog for query engines to query against.
1 parent cef0845 commit 2a11fd8

File tree

10 files changed

+216
-68
lines changed

10 files changed

+216
-68
lines changed
 

‎clients/client-glue/src/commands/BatchGetCrawlersCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,18 @@ export interface BatchGetCrawlersCommandOutput extends BatchGetCrawlersResponse,
115115
* // CreateNativeDeltaTable: true || false,
116116
* // },
117117
* // ],
118+
* // IcebergTargets: [ // IcebergTargetList
119+
* // { // IcebergTarget
120+
* // Paths: [
121+
* // "STRING_VALUE",
122+
* // ],
123+
* // ConnectionName: "STRING_VALUE",
124+
* // Exclusions: [
125+
* // "STRING_VALUE",
126+
* // ],
127+
* // MaximumTraversalDepth: Number("int"),
128+
* // },
129+
* // ],
118130
* // },
119131
* // DatabaseName: "STRING_VALUE",
120132
* // Description: "STRING_VALUE",

‎clients/client-glue/src/commands/CreateCrawlerCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,18 @@ export interface CreateCrawlerCommandOutput extends CreateCrawlerResponse, __Met
110110
* CreateNativeDeltaTable: true || false,
111111
* },
112112
* ],
113+
* IcebergTargets: [ // IcebergTargetList
114+
* { // IcebergTarget
115+
* Paths: [
116+
* "STRING_VALUE",
117+
* ],
118+
* ConnectionName: "STRING_VALUE",
119+
* Exclusions: [
120+
* "STRING_VALUE",
121+
* ],
122+
* MaximumTraversalDepth: Number("int"),
123+
* },
124+
* ],
113125
* },
114126
* Schedule: "STRING_VALUE",
115127
* Classifiers: [ // ClassifierNameList

‎clients/client-glue/src/commands/GetCrawlerCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,18 @@ export interface GetCrawlerCommandOutput extends GetCrawlerResponse, __MetadataB
112112
* // CreateNativeDeltaTable: true || false,
113113
* // },
114114
* // ],
115+
* // IcebergTargets: [ // IcebergTargetList
116+
* // { // IcebergTarget
117+
* // Paths: [
118+
* // "STRING_VALUE",
119+
* // ],
120+
* // ConnectionName: "STRING_VALUE",
121+
* // Exclusions: [
122+
* // "STRING_VALUE",
123+
* // ],
124+
* // MaximumTraversalDepth: Number("int"),
125+
* // },
126+
* // ],
115127
* // },
116128
* // DatabaseName: "STRING_VALUE",
117129
* // Description: "STRING_VALUE",

‎clients/client-glue/src/commands/GetCrawlersCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,18 @@ export interface GetCrawlersCommandOutput extends GetCrawlersResponse, __Metadat
115115
* // CreateNativeDeltaTable: true || false,
116116
* // },
117117
* // ],
118+
* // IcebergTargets: [ // IcebergTargetList
119+
* // { // IcebergTarget
120+
* // Paths: [
121+
* // "STRING_VALUE",
122+
* // ],
123+
* // ConnectionName: "STRING_VALUE",
124+
* // Exclusions: [
125+
* // "STRING_VALUE",
126+
* // ],
127+
* // MaximumTraversalDepth: Number("int"),
128+
* // },
129+
* // ],
118130
* // },
119131
* // DatabaseName: "STRING_VALUE",
120132
* // Description: "STRING_VALUE",

‎clients/client-glue/src/commands/UpdateCrawlerCommand.ts

+12
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,18 @@ export interface UpdateCrawlerCommandOutput extends UpdateCrawlerResponse, __Met
110110
* CreateNativeDeltaTable: true || false,
111111
* },
112112
* ],
113+
* IcebergTargets: [ // IcebergTargetList
114+
* { // IcebergTarget
115+
* Paths: [
116+
* "STRING_VALUE",
117+
* ],
118+
* ConnectionName: "STRING_VALUE",
119+
* Exclusions: [
120+
* "STRING_VALUE",
121+
* ],
122+
* MaximumTraversalDepth: Number("int"),
123+
* },
124+
* ],
113125
* },
114126
* Schedule: "STRING_VALUE",
115127
* Classifiers: [ // ClassifierNameList

‎clients/client-glue/src/models/models_0.ts

+32-17
Original file line numberDiff line numberDiff line change
@@ -1658,6 +1658,33 @@ export interface DynamoDBTarget {
16581658
scanRate?: number;
16591659
}
16601660

1661+
/**
1662+
* @public
1663+
* <p>Specifies an Apache Iceberg data source where Iceberg tables are stored in Amazon S3.</p>
1664+
*/
1665+
export interface IcebergTarget {
1666+
/**
1667+
* <p>One or more Amazon S3 paths that contains Iceberg metadata folders as <code>s3://bucket/prefix</code>.</p>
1668+
*/
1669+
Paths?: string[];
1670+
1671+
/**
1672+
* <p>The name of the connection to use to connect to the Iceberg target.</p>
1673+
*/
1674+
ConnectionName?: string;
1675+
1676+
/**
1677+
* <p>A list of glob patterns used to exclude from the crawl.
1678+
* For more information, see <a href="https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html">Catalog Tables with a Crawler</a>.</p>
1679+
*/
1680+
Exclusions?: string[];
1681+
1682+
/**
1683+
* <p>The maximum depth of Amazon S3 paths that the crawler can traverse to discover the Iceberg metadata folder in your Amazon S3 path. Used to limit the crawler run time.</p>
1684+
*/
1685+
MaximumTraversalDepth?: number;
1686+
}
1687+
16611688
/**
16621689
* @public
16631690
* @enum
@@ -1793,6 +1820,11 @@ export interface CrawlerTargets {
17931820
* <p>Specifies Delta data store targets.</p>
17941821
*/
17951822
DeltaTargets?: DeltaTarget[];
1823+
1824+
/**
1825+
* <p>Specifies Apache Iceberg data store targets.</p>
1826+
*/
1827+
IcebergTargets?: IcebergTarget[];
17961828
}
17971829

17981830
/**
@@ -8199,20 +8231,3 @@ export interface MLUserDataEncryption {
81998231
*/
82008232
KmsKeyId?: string;
82018233
}
8202-
8203-
/**
8204-
* @public
8205-
* <p>The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.</p>
8206-
* <p>Additionally, imported labels and trained transforms can now be encrypted using a customer provided KMS key.</p>
8207-
*/
8208-
export interface TransformEncryption {
8209-
/**
8210-
* <p>An <code>MLUserDataEncryption</code> object containing the encryption mode and customer-provided KMS key ID.</p>
8211-
*/
8212-
MlUserDataEncryption?: MLUserDataEncryption;
8213-
8214-
/**
8215-
* <p>The name of the security configuration.</p>
8216-
*/
8217-
TaskRunSecurityConfigurationName?: string;
8218-
}

‎clients/client-glue/src/models/models_1.ts

+18-48
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {
2222
FederatedDatabase,
2323
GlueTable,
2424
JobRun,
25+
MLUserDataEncryption,
2526
Partition,
2627
PartitionInput,
2728
PartitionValueList,
@@ -31,14 +32,30 @@ import {
3132
SchemaId,
3233
StorageDescriptor,
3334
TaskStatusType,
34-
TransformEncryption,
3535
TransformParameters,
3636
TransformType,
3737
Trigger,
3838
TriggerType,
3939
WorkerType,
4040
} from "./models_0";
4141

42+
/**
43+
* @public
44+
* <p>The encryption-at-rest settings of the transform that apply to accessing user data. Machine learning transforms can access user data encrypted in Amazon S3 using KMS.</p>
45+
* <p>Additionally, imported labels and trained transforms can now be encrypted using a customer provided KMS key.</p>
46+
*/
47+
export interface TransformEncryption {
48+
/**
49+
* <p>An <code>MLUserDataEncryption</code> object containing the encryption mode and customer-provided KMS key ID.</p>
50+
*/
51+
MlUserDataEncryption?: MLUserDataEncryption;
52+
53+
/**
54+
* <p>The name of the security configuration.</p>
55+
*/
56+
TaskRunSecurityConfigurationName?: string;
57+
}
58+
4259
/**
4360
* @public
4461
*/
@@ -7215,50 +7232,3 @@ export interface GetUserDefinedFunctionRequest {
72157232
*/
72167233
FunctionName: string | undefined;
72177234
}
7218-
7219-
/**
7220-
* @public
7221-
* <p>Represents the equivalent of a Hive user-defined function
7222-
* (<code>UDF</code>) definition.</p>
7223-
*/
7224-
export interface UserDefinedFunction {
7225-
/**
7226-
* <p>The name of the function.</p>
7227-
*/
7228-
FunctionName?: string;
7229-
7230-
/**
7231-
* <p>The name of the catalog database that contains the function.</p>
7232-
*/
7233-
DatabaseName?: string;
7234-
7235-
/**
7236-
* <p>The Java class that contains the function code.</p>
7237-
*/
7238-
ClassName?: string;
7239-
7240-
/**
7241-
* <p>The owner of the function.</p>
7242-
*/
7243-
OwnerName?: string;
7244-
7245-
/**
7246-
* <p>The owner type.</p>
7247-
*/
7248-
OwnerType?: PrincipalType | string;
7249-
7250-
/**
7251-
* <p>The time at which the function was created.</p>
7252-
*/
7253-
CreateTime?: Date;
7254-
7255-
/**
7256-
* <p>The resource URIs for the function.</p>
7257-
*/
7258-
ResourceUris?: ResourceUri[];
7259-
7260-
/**
7261-
* <p>The ID of the Data Catalog in which the function resides.</p>
7262-
*/
7263-
CatalogId?: string;
7264-
}

‎clients/client-glue/src/models/models_2.ts

+49-1
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,11 @@ import {
106106
DataCatalogEncryptionSettings,
107107
DataQualityEvaluationRunAdditionalRunOptions,
108108
JobBookmarkEntry,
109+
PrincipalType,
109110
RegistryId,
110111
RegistryStatus,
111112
ResourceShareType,
113+
ResourceUri,
112114
SchemaStatus,
113115
SchemaVersionNumber,
114116
SchemaVersionStatus,
@@ -118,10 +120,56 @@ import {
118120
TableInput,
119121
TransformFilterCriteria,
120122
TransformSortCriteria,
121-
UserDefinedFunction,
122123
UserDefinedFunctionInput,
123124
} from "./models_1";
124125

126+
/**
127+
* @public
128+
* <p>Represents the equivalent of a Hive user-defined function
129+
* (<code>UDF</code>) definition.</p>
130+
*/
131+
export interface UserDefinedFunction {
132+
/**
133+
* <p>The name of the function.</p>
134+
*/
135+
FunctionName?: string;
136+
137+
/**
138+
* <p>The name of the catalog database that contains the function.</p>
139+
*/
140+
DatabaseName?: string;
141+
142+
/**
143+
* <p>The Java class that contains the function code.</p>
144+
*/
145+
ClassName?: string;
146+
147+
/**
148+
* <p>The owner of the function.</p>
149+
*/
150+
OwnerName?: string;
151+
152+
/**
153+
* <p>The owner type.</p>
154+
*/
155+
OwnerType?: PrincipalType | string;
156+
157+
/**
158+
* <p>The time at which the function was created.</p>
159+
*/
160+
CreateTime?: Date;
161+
162+
/**
163+
* <p>The resource URIs for the function.</p>
164+
*/
165+
ResourceUris?: ResourceUri[];
166+
167+
/**
168+
* <p>The ID of the Data Catalog in which the function resides.</p>
169+
*/
170+
CatalogId?: string;
171+
}
172+
125173
/**
126174
* @public
127175
*/

‎clients/client-glue/src/protocols/Aws_json1_1.ts

+13-2
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,7 @@ import {
561561
GlueTable,
562562
GovernedCatalogSource,
563563
GovernedCatalogTarget,
564+
IcebergTarget,
564565
IdempotentParameterMismatchException,
565566
IllegalSessionStateException,
566567
InternalServiceException,
@@ -650,7 +651,6 @@ import {
650651
StorageDescriptor,
651652
StreamingDataPreviewOptions,
652653
TransformConfigParameter,
653-
TransformEncryption,
654654
TransformParameters,
655655
Union,
656656
UpsertRedshiftTargetOptions,
@@ -863,10 +863,10 @@ import {
863863
TaskRun,
864864
TaskRunFilterCriteria,
865865
TaskRunSortCriteria,
866+
TransformEncryption,
866867
TransformFilterCriteria,
867868
TransformSortCriteria,
868869
UnfilteredPartition,
869-
UserDefinedFunction,
870870
UserDefinedFunctionInput,
871871
XMLClassifier,
872872
} from "../models/models_1";
@@ -999,6 +999,7 @@ import {
999999
UpdateUserDefinedFunctionRequest,
10001000
UpdateWorkflowRequest,
10011001
UpdateXMLClassifierRequest,
1002+
UserDefinedFunction,
10021003
VersionMismatchException,
10031004
} from "../models/models_2";
10041005

@@ -15959,6 +15960,7 @@ const se_CrawlerTargets = (input: CrawlerTargets, context: __SerdeContext): any
1595915960
CatalogTargets: _json,
1596015961
DeltaTargets: _json,
1596115962
DynamoDBTargets: (_) => se_DynamoDBTargetList(_, context),
15963+
IcebergTargets: _json,
1596215964
JdbcTargets: _json,
1596315965
MongoDBTargets: _json,
1596415966
S3Targets: _json,
@@ -16654,6 +16656,10 @@ const se_GetTablesRequest = (input: GetTablesRequest, context: __SerdeContext):
1665416656

1665516657
// se_GovernedCatalogTarget omitted.
1665616658

16659+
// se_IcebergTarget omitted.
16660+
16661+
// se_IcebergTargetList omitted.
16662+
1665716663
// se_ImportCatalogToGlueRequest omitted.
1665816664

1665916665
// se_JDBCConnectorOptions omitted.
@@ -18199,6 +18205,7 @@ const de_CrawlerTargets = (output: any, context: __SerdeContext): CrawlerTargets
1819918205
CatalogTargets: _json,
1820018206
DeltaTargets: _json,
1820118207
DynamoDBTargets: (_: any) => de_DynamoDBTargetList(_, context),
18208+
IcebergTargets: _json,
1820218209
JdbcTargets: _json,
1820318210
MongoDBTargets: _json,
1820418211
S3Targets: _json,
@@ -19553,6 +19560,10 @@ const de_GrokClassifier = (output: any, context: __SerdeContext): GrokClassifier
1955319560
}) as any;
1955419561
};
1955519562

19563+
// de_IcebergTarget omitted.
19564+
19565+
// de_IcebergTargetList omitted.
19566+
1955619567
// de_IdempotentParameterMismatchException omitted.
1955719568

1955819569
// de_IllegalBlueprintStateException omitted.

0 commit comments

Comments
 (0)
Please sign in to comment.