@aws-solutions-constructs/core
Version:
Core CDK Construct for patterns library
62 lines • 7.41 kB
JavaScript
/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
* with the License. A copy of the License is located at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.DefaultGlueTableProps = DefaultGlueTableProps;
const aws_cdk_lib_1 = require("aws-cdk-lib");
/**
* @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
*/
function DefaultGlueTableProps(database, fieldSchema, sourceType, parameters) {
let tableProps;
if (sourceType === 'kinesis') {
const kinesisStreamName = parameters.STREAM_NAME;
const paths = fieldSchema.map((item) => {
return item.name;
}).join(',');
tableProps = {
catalogId: database.catalogId,
databaseName: database.ref,
tableInput: {
storageDescriptor: {
columns: fieldSchema,
location: kinesisStreamName,
inputFormat: "org.apache.hadoop.mapred.TextInputFormat",
outputFormat: "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
compressed: false,
numberOfBuckets: -1,
serdeInfo: {
serializationLibrary: "org.openx.data.jsonserde.JsonSerDe",
parameters: {
paths
}
},
parameters: {
endpointUrl: `https://kinesis.${aws_cdk_lib_1.Aws.REGION}.amazonaws.com`,
streamName: kinesisStreamName,
typeOfData: sourceType
}
},
tableType: 'EXTERNAL_TABLE',
parameters: {
classification: 'json'
}
}
};
return tableProps;
}
else {
throw Error('Source Type not Supported. Valid Source Type not provided');
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x1ZS10YWJsZS1kZWZhdWx0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImdsdWUtdGFibGUtZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQWFILHNEQTZDQztBQWxERCw2Q0FBa0M7QUFFbEM7O0dBRUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FBQyxRQUEwQixFQUFFLFdBQTJDLEVBQzNHLFVBQW1CLEVBQUUsVUFBZ0I7SUFDckMsSUFBSSxVQUE4QixDQUFDO0lBRW5DLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzdCLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUVqRCxNQUFNLEtBQUssR0FBVyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUViLFVBQVUsR0FBRztZQUNYLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztZQUM3QixZQUFZLEVBQUUsUUFBUSxDQUFDLEdBQUc7WUFDMUIsVUFBVSxFQUFFO2dCQUNWLGlCQUFpQixFQUFFO29CQUNqQixPQUFPLEVBQUUsV0FBVztvQkFDcEIsUUFBUSxFQUFFLGlCQUFpQjtvQkFDM0IsV0FBVyxFQUFFLDBDQUEwQztvQkFDdkQsWUFBWSxFQUFFLDREQUE0RDtvQkFDMUUsVUFBVSxFQUFFLEtBQUs7b0JBQ2pCLGVBQWUsRUFBRSxDQUFDLENBQUM7b0JBQ25CLFNBQVMsRUFBRTt3QkFDVCxvQkFBb0IsRUFBRSxvQ0FBb0M7d0JBQzFELFVBQVUsRUFBRTs0QkFDVixLQUFLO3lCQUNOO3FCQUNGO29CQUNELFVBQVUsRUFBRTt3QkFDVixXQUFXLEVBQUUsbUJBQW1CLGlCQUFHLENBQUMsTUFBTSxnQkFBZ0I7d0JBQzFELFVBQVUsRUFBRSxpQkFBaUI7d0JBQzdCLFVBQVUsRUFBRSxVQUFVO3FCQUN2QjtpQkFDRjtnQkFDRCxTQUFTLEVBQUUsZ0JBQWdCO2dCQUMzQixVQUFVLEVBQUU7b0JBQ1YsY0FBYyxFQUFFLE1BQU07aUJBQ3ZCO2FBQ0Y7U0FDRixDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFDO0lBQzNFLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBnbHVlIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZ2x1ZVwiO1xuaW1wb3J0IHsgQXdzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRHbHVlVGFibGVQcm9wcyhkYXRhYmFzZTogZ2x1ZS5DZm5EYXRhYmFzZSwgZmllbGRTY2hlbWE6IGdsdWUuQ2ZuVGFibGUuQ29sdW1uUHJvcGVydHlbXSxcbiAgc291cmNlVHlwZT86IHN0cmluZywgcGFyYW1ldGVycz86IGFueSk6IGdsdWUuQ2ZuVGFibGVQcm9wcyB8IGFueSB7XG4gIGxldCB0YWJsZVByb3BzOiBnbHVlLkNmblRhYmxlUHJvcHM7XG5cbiAgaWYgKHNvdXJjZVR5cGUgPT09ICdraW5lc2lzJykge1xuICAgIGNvbnN0IGtpbmVzaXNTdHJlYW1OYW1lID0gcGFyYW1ldGVycy5TVFJFQU1fTkFNRTtcblxuICAgIGNvbnN0IHBhdGhzOiBzdHJpbmcgPSBmaWVsZFNjaGVtYS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBpdGVtLm5hbWU7XG4gICAgfSkuam9pbignLCcpO1xuXG4gICAgdGFibGVQcm9wcyA9IHtcbiAgICAgIGNhdGFsb2dJZDogZGF0YWJhc2UuY2F0YWxvZ0lkLFxuICAgICAgZGF0YWJhc2VOYW1lOiBkYXRhYmFzZS5yZWYsXG4gICAgICB0YWJsZUlucHV0OiB7XG4gICAgICAgIHN0b3JhZ2VEZXNjcmlwdG9yOiB7XG4gICAgICAgICAgY29sdW1uczogZmllbGRTY2hlbWEsXG4gICAgICAgICAgbG9jYXRpb246IGtpbmVzaXNTdHJlYW1OYW1lLFxuICAgICAgICAgIGlucHV0Rm9ybWF0OiBcIm9yZy5hcGFjaGUuaGFkb29wLm1hcHJlZC5UZXh0SW5wdXRGb3JtYXRcIixcbiAgICAgICAgICBvdXRwdXRGb3JtYXQ6IFwib3JnLmFwYWNoZS5oYWRvb3AuaGl2ZS5xbC5pby5IaXZlSWdub3JlS2V5VGV4dE91dHB1dEZvcm1hdFwiLFxuICAgICAgICAgIGNvbXByZXNzZWQ6IGZhbHNlLFxuICAgICAgICAgIG51bWJlck9mQnVja2V0czogLTEsXG4gICAgICAgICAgc2VyZGVJbmZvOiB7XG4gICAgICAgICAgICBzZXJpYWxpemF0aW9uTGlicmFyeTogXCJvcmcub3BlbnguZGF0YS5qc29uc2VyZGUuSnNvblNlckRlXCIsXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgIHBhdGhzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICBlbmRwb2ludFVybDogYGh0dHBzOi8va2luZXNpcy4ke0F3cy5SRUdJT059LmFtYXpvbmF3cy5jb21gLFxuICAgICAgICAgICAgc3RyZWFtTmFtZToga2luZXNpc1N0cmVhbU5hbWUsXG4gICAgICAgICAgICB0eXBlT2ZEYXRhOiBzb3VyY2VUeXBlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB0YWJsZVR5cGU6ICdFWFRFUk5BTF9UQUJMRScsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBjbGFzc2lmaWNhdGlvbjogJ2pzb24nXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHRhYmxlUHJvcHM7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgRXJyb3IoJ1NvdXJjZSBUeXBlIG5vdCBTdXBwb3J0ZWQuIFZhbGlkIFNvdXJjZSBUeXBlIG5vdCBwcm92aWRlZCcpO1xuICB9XG59Il19
;