R Tyler Croy 67950fcb6e | ||
---|---|---|
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE.txt | ||
README.adoc | ||
deployment.tf |
README.adoc
Delta Optimize Lambda
This Lambda function can be used with a periodic trigger to optimize a
configured Delta Lake table. Consult the deployment.tf
file for an example of how to provision the function in AWS.
Building
Building and testing the Lambda can be done with cargo: cargo test build
.
In order to deploy this in AWS Lambda, it must first be built with the cargo
lambda
command line tool, e.g.:
cargo lambda build --release --output-format zip
This will produce the file: target/lambda/lambda-delta-optimize/bootstrap.zip
Infrastructure
The deployment.tf
file contains the necessary Terraform to provision the
function, a DynamoDB table for locking, and IAM permissions. This Terraform
does not provision an S3 bucket to optimize.
After configuring the necessary authentication for Terraform, the following steps can be used to provision:
cargo lambda build --release --output-format zip
terraform init
terraform plan
terraform apply
Note
|
Terraform configures the Lambda to run with the smallest amount of memory allowed. For a sizable table, this may not be sufficient for larger tables. |
Environment variables
The following environment variables must be set for the function to run properly
Name | Value | Notes |
---|---|---|
|
|
The |
|
|
This instructs the |
|
|
Only apply optimizations to the |
Licensing
This repository is intentionally licensed under the AGPL 3.0. If your organization is interested in re-licensing this function for re-use, contact me via email for commercial licensing terms: rtyler@brokenco.de