ETL pipeline with Amazon Redshift and AWS Glue
An ETL pipeline with Amazon Redshift and AWS Glue
This example lives in the pulumi/examples repository. Check out just this directory to use it:
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examplesgit -C pulumi-examples sparse-checkout set aws-ts-redshift-glue-etlcd pulumi-examples/aws-ts-redshift-glue-etlThis example creates an ETL pipeline using Amazon Redshift and AWS Glue. The pipeline extracts data from an S3 bucket with a Glue crawler, transforms it with a Python script wrapped in a Glue job, and loads it into a Redshift database deployed in a VPC.
Prerequisites#
- Install Pulumi.
- Install Node.js.
- Configure your AWS credentials.
Deploying the App#
-
Clone this repo, change to this directory, then create a new stack for the project:
Terminal window pulumi stack init -
Specify an AWS region to deploy into:
Terminal window pulumi config set aws:region us-west-2 -
Install Node dependencies and run Pulumi:
Terminal window npm installpulumi up -
In a few moments, the Redshift cluster and Glue components will be up and running and the S3 bucket name emitted as a Pulumi stack output.
Terminal window ...Outputs:dataBucketName: "events-56e424a" -
Upload the included sample data file to S3 to verify the automation works as expected:
Terminal window aws s3 cp events-1.txt s3://$(pulumi stack output dataBucketName) -
When you’re ready, destroy your stack and remove it:
Terminal window pulumi destroy --yespulumi stack rm --yes