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

使用ADF将Blob Storage中CSV数据导入SQL Server

从Azure Blob Storage的CSV生成SQL Server表结构的实用方法

方法1:用SQL Server OPENROWSET直接读取Blob生成脚本

通过配置外部数据源读取Blob中的CSV,利用临时表获取结构后自动生成创建表语句:

  1. 创建数据库范围凭据和外部数据源
-- 替换为你的SAS令牌、存储账户名和容器名
CREATE DATABASE SCOPED CREDENTIAL AzureBlobCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = '你的SAS令牌';

CREATE EXTERNAL DATA SOURCE AzureBlobStorage
WITH (
    TYPE = BLOB_STORAGE,
    LOCATION = 'https://你的存储账户名.blob.core.windows.net/容器名',
    CREDENTIAL = AzureBlobCredential
);
  1. 提取CSV结构并生成CREATE TABLE脚本
-- 创建临时表存储CSV结构(只取列信息,不加载数据)
SELECT *
INTO #TempCSVStructure
FROM OPENROWSET(
    BULK '你的CSV文件路径(如data/sample.csv)',
    DATA_SOURCE = 'AzureBlobStorage',
    FORMAT = 'CSV',
    FIRSTROW = 2, -- 若第一行是表头则设为2,否则设为1
    FIELDTERMINATOR = ',',
    ROWTERMINATOR = '\n'
) AS CSVData
WHERE 1=0;

-- 自动生成创建表脚本
SELECT 'CREATE TABLE YourTargetTableName (' + STRING_AGG(
    QUOTENAME(COLUMN_NAME) + ' ' + DATA_TYPE + 
    CASE WHEN DATA_TYPE IN ('varchar', 'nvarchar', 'char', 'nchar') 
         THEN '(' + CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1 THEN 'MAX' ELSE CAST(CHARACTER_MAXIMUM_LENGTH AS VARCHAR) END + ')' 
         ELSE '' END
, ', ') + ');'
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = '#TempCSVStructure';

-- 清理临时表
DROP TABLE #TempCSVStructure;

方法2:用Azure Data Factory(ADF)自动推断并导出结构

  1. 打开ADF,创建管道并添加复制活动
  2. 源数据集选择Azure Blob Storage,指定目标CSV文件,配置格式(勾选「第一行作为表头」)
  3. 点击数据集的「预览」按钮,ADF会自动推断每列的数据类型
  4. 目标数据集选择SQL Server,在「表选项」中选「自动创建表」,点击「预览表结构」即可复制生成的CREATE TABLE语句

方法3:用SSMS导入导出向导生成脚本

  1. 打开SSMS,右键目标数据库 → 任务 → 导入数据
  2. 数据源选择「Azure Blob Storage」,配置存储账户、容器、CSV路径及身份验证信息(SAS令牌/账户密钥)
  3. 目标选择「SQL Server Native Client」,连接到你的SQL Server实例
  4. 在「选择源表和视图」步骤勾选目标CSV,点击「编辑映射」
  5. 点击「生成创建表脚本」按钮,导出符合SSMS格式的表结构语句

注意事项

  • 若CSV包含日期、小数等特殊格式,需检查推断出的数据类型是否匹配,必要时手动调整(比如将varchar改为datetime2)
  • 大文件建议用TOP N替代WHERE 1=0,只取部分数据来推断结构,提升效率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 15:54:14