用 Snowflake、SageMaker Canvas 和 Amazon Quick 搭建无代码机器学习环境

2026-08-21 37 预计阅读时间: 1 分钟
来源: aws.amazon.com AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

医疗、零售和生命科学团队通常已经把大量运营数据集中存放在 Snowflake 中,但从数据仓库走到可用的预测模型,中间仍然隔着权限、连接、数据准备和模型训练等环节。这个系列的第一部分不急着训练模型,而是先把 AWS 账户与 Snowflake 环境搭好,为后续使用 Amazon SageMaker Canvas 构建欺诈检测模型做好准备。

先把数据链路想清楚

无代码不等于无配置。SageMaker Canvas 可以让分析师通过可视化界面完成数据选择、特征处理和模型训练,但它仍然需要访问经过授权的数据源。一个清晰的链路通常包含以下几层:

  • Snowflake:保存业务数据,例如交易、客户、订单或理赔记录。
  • AWS 账户:承载 SageMaker 相关资源、身份权限和网络配置。
  • SageMaker Canvas:通过可视化工作流准备数据并训练机器学习模型。
  • Amazon Quick:用于后续的数据分析、问答或业务洞察场景,具体集成方式取决于团队的 AWS 配置和产品版本。

以欺诈检测为例,Snowflake 中可能存在交易金额、时间、渠道、地区和历史风险标签。环境准备阶段的目标,是确保 Canvas 能够在受控权限下读取这些数据,而不是直接把数据复制到个人电脑或临时脚本中。

AWS 侧的准备重点

建议为这个实验或项目准备独立的 AWS 账户、测试环境或至少独立的 IAM 角色。需要重点确认:

  1. 使用的 AWS 区域支持目标 SageMaker Canvas 能力,并与团队的数据访问策略一致。
  2. Canvas 用户拥有创建和运行相关资源所需的权限。
  3. Snowflake 连接凭证不会硬编码在笔记本、脚本或共享文档中。
  4. 生产环境需要结合企业的 VPC、私有网络、审计和数据驻留要求进行配置。

可以这样实践,先用 AWS CLI 检查当前账户和区域。运行前请把 AWS_PROFILE 改成自己的配置名称,或删除该环境变量以使用默认凭证:

export AWS_PROFILE=ml-sandbox
export AWS_REGION=us-east-1

aws sts get-caller-identity
aws configure get region --profile "$AWS_PROFILE"

aws sagemaker list-domains \
  --region "$AWS_REGION" \
  --query 'Domains[].{Name:DomainName,Status:Status}' \
  --output table

这段命令不会创建资源,只用于确认当前身份、区域和 SageMaker Domain 状态。若返回的账户不是预期环境,应立即停止后续操作,避免把测试数据或权限配置落到错误账户中。

Snowflake 环境:从角色和仓库开始

Snowflake 侧建议为 Canvas 单独规划数据库角色,而不是复用管理员角色。最小权限通常包括:访问目标数据库和 schema、读取指定表或视图,以及使用必要的 warehouse。对于机器学习数据,优先暴露经过筛选的视图,避免让建模用户无意间读取身份证号、完整支付信息等敏感字段。

下面是一个可改造的 Snowflake SQL 示例。示例中的名称、warehouse 大小和字段仅用于说明,请根据实际表结构调整:

CREATE WAREHOUSE IF NOT EXISTS ML_CANVAS_WH
  WAREHOUSE_SIZE = 'XSMALL'
  AUTO_SUSPEND = 60
  AUTO_RESUME = TRUE;

CREATE DATABASE IF NOT EXISTS ML_LAB;
CREATE SCHEMA IF NOT EXISTS ML_LAB.FRAUD;

CREATE OR REPLACE VIEW ML_LAB.FRAUD.TRANSACTION_FEATURES AS
SELECT
    transaction_id,
    transaction_amount,
    transaction_channel,
    customer_region,
    transaction_hour,
    is_fraud
FROM ANALYTICS.RAW.TRANSACTIONS
WHERE transaction_date >= DATEADD('month', -12, CURRENT_DATE());

CREATE ROLE IF NOT EXISTS SAGEMAKER_CANVAS_READER;
GRANT USAGE ON WAREHOUSE ML_CANVAS_WH
  TO ROLE SAGEMAKER_CANVAS_READER;
GRANT USAGE ON DATABASE ML_LAB
  TO ROLE SAGEMAKER_CANVAS_READER;
GRANT USAGE ON SCHEMA ML_LAB.FRAUD
  TO ROLE SAGEMAKER_CANVAS_READER;
GRANT SELECT ON VIEW ML_LAB.FRAUD.TRANSACTION_FEATURES
  TO ROLE SAGEMAKER_CANVAS_READER;

这段 SQL 假设原始表位于 ANALYTICS.RAW.TRANSACTIONS,并且 is_fraud 是后续监督学习需要预测的目标列。实际项目中还应补充数据质量检查,例如目标列是否为空、欺诈样本是否过少、时间字段是否存在未来信息泄漏,以及交易记录是否重复。

连接配置与数据治理

创建 Snowflake 到 AWS 服务的连接时,需要根据企业认证方案选择用户名密码、密钥对或联合身份认证。示例中的连接信息不能直接用于生产;密码、私钥和 token 应存放在批准的密钥管理系统中,并设置轮换策略。

连接打通后,建议用一个低权限测试用户验证三件事:

  • 能否发现目标 database、schema 和视图。
  • 能否执行受控查询,并使用指定 warehouse。
  • 无权访问的表、schema 和敏感字段是否确实被拒绝。

还要关注成本边界。warehouse 的自动挂起可以减少空闲费用,但 Canvas 的数据探索、特征处理和训练仍可能触发计算资源消耗。测试阶段应限制数据时间范围、使用小型 warehouse,并持续检查 Snowflake 的查询历史与成本监控。

为后续建模留下干净接口

环境准备完成的标志,不是界面能够登录,而是数据访问边界和责任边界都清楚:Snowflake 负责可信数据,AWS 负责运行环境和权限,Canvas 负责无代码建模流程,业务团队负责解释目标字段和评估结果。

进入下一阶段前,可以检查以下清单:

  • AWS 账户和区域已确认。
  • SageMaker Canvas 所需权限已由管理员审核。
  • Snowflake 已创建专用 warehouse、数据库角色和建模视图。
  • 连接凭证没有写入代码仓库。
  • 训练数据包含明确的目标列,并完成基础质量检查。
  • 测试环境设置了计算规模、自动挂起和数据访问范围。

这样搭好的基础环境,才能让后续的欺诈检测实验集中在数据和模型本身,而不是被权限错误、连接失败或不可控的计算成本打断。


相关推荐