You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否利用Azure Machine Learning在SQL Server中执行每日定时数据清洗?

实现SQL Server + Azure ML 定时数据清洗的方案

可以实现你的需求,但并非直接在SQL Server内部执行Azure ML的操作,而是通过以下几种联动方式完成每晚的自动数据清洗任务:

1. Azure ML批量管道定时触发(推荐)

  • 在Azure ML中构建数据清洗管道:用SQL Dataset连接你的SQL Server实例,读取待清洗数据;通过自定义Python/R脚本或内置数据转换组件完成清洗逻辑;最后将清洗后的数据写回SQL Server。
  • 为管道设置定时触发器(比如每晚指定时间),让Azure ML自动完成整个流程,无需SQL Server主动触发。这种方式下Azure ML负责全部清洗逻辑和调度,SQL Server仅作为数据存储。

2. SQL Server存储过程调用Azure ML端点

如果需要从SQL Server内部触发任务,可以借助SQL Server 2022及以上版本支持的sp_invoke_external_rest_endpoint存储过程,调用Azure ML的批量/实时端点:

  • 先在Azure ML中部署封装了数据清洗逻辑的端点,端点需具备访问SQL Server的权限(比如用服务主体连接)。
  • 编写T-SQL存储过程调用该端点,示例如下:
CREATE PROCEDURE TriggerDataCleaningWithAML
AS
BEGIN
    DECLARE @aml_endpoint NVARCHAR(255) = 'https://<你的AML端点地址>.azureml.net/score'
    DECLARE @api_key NVARCHAR(100) = '<你的AML端点密钥>'
    DECLARE @result NVARCHAR(MAX)

    EXEC sp_invoke_external_rest_endpoint
        @url = @aml_endpoint,
        @method = 'POST',
        @headers = '{"Content-Type":"application/json", "Authorization":"Bearer ' + @api_key + '"}',
        @body = '{"target_table":"<待清洗表名>"}',
        @response = @result OUTPUT

    SELECT @result AS AML_Execution_Result
END
  • 用SQL Server Agent创建定时作业,每晚执行该存储过程即可触发Azure ML的清洗任务。

3. Azure Data Factory(ADF)调度流转

通过ADF作为中间调度层:

  • 配置ADF的定时触发器(每晚),添加“复制数据”活动从SQL Server拉取数据到ADF数据集。
  • 调用Azure ML的清洗管道处理数据,再将清洗后的结果写回SQL Server。
  • 这种方式适合多数据源、复杂流转的场景,ADF负责调度和数据路由,Azure ML专注于清洗逻辑。

内容的提问来源于stack exchange,提问作者cornstach

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:50:39