SuperAPI AI 工具集

ingesting-into-data-lake

数据与分析

查看项目

更新于 10-15 18:31

技能介绍

用途:将数据从各类来源摄取到数据湖中变成可查询的表。前提是源连接(如需要)已存在;Glue 连接的创建与排障需交给 connecting-to-data-source。

主要能力与来源:本技能支持本地文件、S3 文件(CSV、JSON、Parquet、Avro、ORC)、JDBC 数据库(Oracle、SQL Server、PostgreSQL、MySQL、RDS、Aurora、Redshift)、Snowflake、BigQuery、DynamoDB,以及现有 Glue 目录表的迁移(Hive、自管理 Iceberg)。本版本不支持 Salesforce、ServiceNow、SAP、MongoDB、Kafka 等 SaaS/流式来源。

默认目标:除非环境另有说明,默认使用 S3 Tables;若目录清单显示尚未采用 S3 Tables,则改用其现有通用存储桶上的标准 Iceberg,而不是强制其改变配置。

工作流要点:1) 检查 AWS MCP 工具或 AWS CLI 是否可用,确认目标区域并用 aws sts get-caller-identity 验证凭证;2) 判定来源类型;3) JDBC、Snowflake、BigQuery 需检查 Glue 连接是否存在(aws glue get-connection --name <CONNECTION_NAME> --region <REGION>),缺失则先创建并测试;4) 明确目标库、表与格式;目标表不存在时交给 creating-data-lake-table;5) 按来源执行相应流程;6) 做三项校验:行数比对、关键列空值检查、抽样 3-5 行;7) 周期任务用 Glue Trigger 加 cron 调度,多步分支用 MWAA。有 MCP 时必须用 AWS MCP 工具执行命令,不可用时回退 AWS CLI;每步执行前须解释。

限制与注意:S3 Tables 需要 Glue 5.1 或更高版本及 --datalake-formats iceberg 参数;所有 spark.sql.catalog.* 配置必须放在 --conf 参数中,不能用 spark.conf.set(),否则 Glue 5.x 会抛 AnalysisException;S3 Tables 目录配置必须含 warehouse 参数;S3 Tables 的表名与列名必须全小写;overwritePartitions() 只替换 DataFrame 中出现的分区,需含删除的全量刷新应使用 createOrReplace();标准 Iceberg 目标必须带 LOCATION 子句,S3 Tables 则不能带;DynamoDB 不需要 Glue 连接。SageMaker Unified Studio 项目中的目标表需确保项目角色对目标命名空间有写权限。错误处理参见 error-handling.md,连接错误交回 connecting-to-data-source。