
10分钟部署aws-lambda-redshift-loaderCloudFormation一键搭建Redshift自动加载器【免费下载链接】aws-lambda-redshift-loaderawslabs/aws-lambda-redshift-loader: 一个基于 AWS Lambda 的 Amazon Redshift 数据加载工具适合在需要将数据加载到 Redshift 数据库的场景中可以实现高效的数据加载和导出。项目地址: https://gitcode.com/gh_mirrors/aw/aws-lambda-redshift-loaderaws-lambda-redshift-loader 是一个基于 AWS Lambda 的 Amazon Redshift 数据自动加载工具。只需把 CSV、JSON、AVRO 文件丢进 S3 指定前缀它会自动分批、去重并执行 COPY 命令将数据高效加载进一个或多个 Redshift 集群——全程零服务器运维。本文教你用 CloudFormation 在 10 分钟内一键完成部署。 适合人群需要在 S3 与 Redshift 之间做自动化数据入仓的初学者与数据工程师。你将获得✅ 用 CloudFormation 模板一键搭建完整基础设施✅ 通过setup.js向导完成加载器配置✅ 用 sample 样例数据验证端到端自动加载✅ 掌握 VPC 内网连接与日常运维技巧零运维的 Redshift 自动加载架构传统做法需要自建服务器轮询文件系统、管理加载工作流而 aws-lambda-redshift-loader 用事件驱动的 AWS Lambda 彻底取代了这些服务器S3 每新增一个文件都会触发 Lambda它借助 DynamoDB 记录待加载清单确保每个文件只加载一次并自动把文件缓冲成「批次」再并行 COPY 到多个 Redshift 集群。核心能力一览自动分批按文件数量、字节大小或超时时间触发加载并行多集群同一份数据可同时写入多个 Redshift 集群密钥加密数据库密码与 S3 密钥经 KMS 加密后存入 DynamoDBSNS 通知加载成功/失败可推送邮件、HTTP 或触发下游 Lambda多格式支持CSV任意分隔符、JSON、AVRO一键部署CloudFormation 快速开始项目内置两套 CloudFormation 模板非 VPC 环境用 deploy.yamlVPC 环境用 deploy-vpc.yaml。下面走最快路径。第一步准备 KMS 密钥与 IAM 用户在 KMS 中创建一枚密钥并设置别名为LambdaRedshiftLoaderKeysetup.js 通过这个别名识别密钥用于加密数据库密码。创建一个具备操作权限的 IAM 用户并记下它的 Access Key——创建堆栈时需作为输入参数。第二步创建 CloudFormation 堆栈根据你的网络环境选择模板并填入参数KmsKeyArn上一步 KMS 密钥的 ARNVPC 环境子网 ID 与授予 Lambda 的安全组⚠️ 模板创建时不会交叉校验输入参数请确认所选子网可用区符合预期堆栈会在你调用模板的区域内创建。堆栈会自动创建 Lambda 触发函数LambdaRedshiftLoader、执行角色含 DynamoDB、S3、KMS、SNS 权限及触发器。注意KMS 密钥与 Redshift 集群需你单独创建。VPC 内网连接要点如果 Redshift 集群在 VPC 内Lambda 需部署到私有子网并通过 NAT 网关访问公网、通过路由表连接 S3 与 DynamoDB。可参考 deploy-vpc.yaml 与完整网络指南 Networking.md。配置加载器setup.js 交互向导堆栈只搭建基础设施还需在你的本机或 EC2 上运行配置脚本可用 deploy-admin-host.yaml 一键拉起配好环境的 EC2。先克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/aw/aws-lambda-redshift-loader cd aws-lambda-redshift-loader npm install export AWS_REGIONeu-central-1运行交互式向导node setup.js向导会依次询问监控的 S3 桶与前缀、Redshift 端点/端口/库名/表名、数据格式CSV/JSON/AVRO、Manifest 存储位置、批处理大小与超时等提交前密码会经 KMS 加密。所有加载生命周期数据存于 3 张自动创建的 DynamoDB 表表名作用LambdaRedshiftBatchLoadConfig各 S3 前缀的加载配置LambdaRedshiftBatches历史与进行中的批次状态LambdaRedshiftProcessedFiles已处理文件清单用于去重 偏好脚本化可用 setup-file.js 读取 config.json 完成无交互配置。验证端到端自动加载仓库的 sample/ 提供了完整示例sample/scripts/configureSample.sh 会创建样例用户与表并跑通配置把 sample/data/ 里的 CSV 同步到输入前缀即可看到自动加载aws s3 sync sample/data s3://你的桶/input --region region稍后到 Lambda 控制台查看 CloudWatch 日志即可看到两个各含 2 个文件的已加载批次以及 1 个开放批次。每个已处理文件都会记录在 DynamoDB 中形成可追溯的加载档案日常运维与实用技巧查看批次状态node queryBatches.js --region region --batchStatus error快速定位失败批次queryBatches.js重跑失败批次reprocessBatch.js会清除去重标记并触发 S3 事件重新加载reprocessBatch.js解锁卡死批次批次被锁定但无进程时用 unlockBatch.js 恢复为 open 状态更新存储密码用encryptValue.js重新加密后更新 DynamoDBencryptValue.js性能建议把batchSize设为集群 CPU 核数的整数倍使加载间隔落在 2–5 分钟batchTimeoutSecs不建议低于 120 秒。稀疏前缀可结合 createS3TriggerFile.js 定时生成触发文件强制周期性加载。项目文件导览文件说明index.jsLambda 主入口事件处理与 COPY 加载逻辑deploy.yaml非 VPC 环境 CloudFormation 模板deploy-vpc.yamlVPC 环境 CloudFormation 模板setup.js交互式配置向导common.js通用工具与 setup 核心逻辑constants.js表名、批次状态等常量定义 说明新项目可优先考虑 Redshift 原生 Auto COPY 能力aws-lambda-redshift-loader 的独特价值在于多集群并行、灵活的批处理策略与细粒度工作流控制。【免费下载链接】aws-lambda-redshift-loaderawslabs/aws-lambda-redshift-loader: 一个基于 AWS Lambda 的 Amazon Redshift 数据加载工具适合在需要将数据加载到 Redshift 数据库的场景中可以实现高效的数据加载和导出。项目地址: https://gitcode.com/gh_mirrors/aw/aws-lambda-redshift-loader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考