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

从ADLS Gen2的CSV文件向SQL复制数据时填充created on列

解决ADLS Gen2 CSV数据复制到SQL表时填充created on列的方法

以下是两种常用的实现方案:

方案1:通过Azure Data Factory(或Synapse Pipeline)配置

这是云原生低代码实现方式,适合定期批量同步场景:

  • 新建复制活动,源端选择ADLS Gen2的CSV数据集,目标端选择SQL表数据集
  • 进入复制活动的映射标签页,先完成CSV现有列与SQL表对应列的匹配
  • 手动添加created on列,将其映射到目标表的同名列,并设置动态内容:
    • 需要当前UTC日期时间:utcnow()
    • 需要本地日期时间(如中国时区):convertTimeZone(utcnow(), 'UTC', 'China Standard Time')
    • 仅需日期部分:formatDateTime(utcnow(), 'yyyy-MM-dd')
  • 保存并运行管道,数据复制时会自动为created on列填充指定格式的当前日期/时间

方案2:使用SQL脚本结合BULK INSERT

适合一次性数据导入或需要自定义逻辑的场景:

  1. 创建与CSV列结构完全匹配的临时表:
CREATE TABLE #TempCSVData (
    -- 按CSV列顺序定义对应字段,示例:
    user_id INT,
    user_name VARCHAR(100),
    email VARCHAR(200)
)
  1. 通过BULK INSERT将ADLS Gen2的CSV数据导入临时表(需提前配置ADLS访问凭据):
BULK INSERT #TempCSVData
FROM 'abfss://your-container@your-storage-account.dfs.core.windows.net/path/to/your/data.csv'
WITH (
    FORMAT = 'CSV',
    FIRSTROW = 2, -- 若CSV包含表头则跳过第一行
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n',
    CREDENTIAL = 'ADLSGen2Credential' -- 提前创建的存储凭据
)
  1. 将临时表数据插入目标SQL表,同时为created on列填充当前日期:
INSERT INTO YourTargetTable (user_id, user_name, email, [created on])
SELECT user_id, user_name, email, GETDATE() -- 用CAST(GETDATE() AS DATE)仅保留日期部分
FROM #TempCSVData
  1. 清理临时表:
DROP TABLE #TempCSVData

注意:使用BULK INSERT时,需确保SQL Server实例有权限访问ADLS Gen2,可通过创建存储凭据(如SAS密钥或服务主体)实现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:15:32