A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources with infrastructure-as-code.
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Amazon Athena is an interactive query service that makes it easy to analyze data in Amazon S3 using standard SQL.
import * as aws from "@pulumi/aws";
import * as athena from "@pulumi/aws/athena";Query workgroup for managing queries and costs.
const workgroup = new aws.athena.Workgroup("analytics", {
name: "analytics-workgroup",
configuration: {
resultConfiguration: {
outputLocation: pulumi.interpolate`s3://${resultsBucket.id}/athena-results/`,
encryptionConfiguration: {
encryptionOption: "SSE_S3",
},
},
enforceWorkgroupConfiguration: true,
publishCloudwatchMetricsEnabled: true,
bytesScannedCutoffPerQuery: 100000000,
},
tags: {
Environment: "production",
},
});Saved SQL query.
const namedQuery = new aws.athena.NamedQuery("daily-report", {
name: "daily-sales-report",
workgroup: workgroup.id,
database: "sales_db",
query: `
SELECT
date,
SUM(amount) as total_sales,
COUNT(*) as transaction_count
FROM sales
WHERE date = current_date
GROUP BY date
`,
description: "Daily sales summary report",
});Athena database (uses Glue catalog).
const database = new aws.athena.Database("data-lake", {
name: "data_lake_db",
bucket: resultsBucket.id,
comment: "Data lake analytics database",
});const secureWorkgroup = new aws.athena.Workgroup("secure", {
name: "secure-workgroup",
configuration: {
resultConfiguration: {
outputLocation: pulumi.interpolate`s3://${resultsBucket.id}/secure-results/`,
encryptionConfiguration: {
encryptionOption: "SSE_KMS",
kmsKey: kmsKey.arn,
},
},
},
});Install with Tessl CLI
npx tessl i tessl/npm-pulumi--aws@7.16.0