前提:1.你需要在azure 上创建一个blob的存储账户
2.你需要有一个sql server 的数据库
注意:你的存储账户的不能限制要启用公用网络访问
1.打开一个sql server 的query编辑页面。
运行下面的sql语句。
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '输入自定义的密码但满足'
用于加密数据库中的主密钥的密码。密码必须满足运行 SQL Server 实例的计算机的 Windows 密码策略要求。
2.
运行下面的sql语句。
红色的部分为名字存储数据库的凭据
CREATE DATABASE SCOPED CREDENTIAL MyAzureBlobStorageCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '存储账户的SAS的共享访问签名去除‘?’';
创建数据库凭据。 数据库凭据不会映射到服务器登录或数据库用户。 只要数据库在执行需要访问权限的操作,数据库就可使用凭据访问外部位置
3.运行下面的sql语句。
CREATE EXTERNAL DATA SOURCE MyAzureBlobStorage WITH
( TYPE = BLOB_STORAGE, LOCATION = '存储账户的blob的url/容器名字' , CREDENTIAL = MyAzureBlobStorageCredential
创建外部数据源,以便使用 SQL Server进行查询
MyAzureBlobStorage 为定义的外部数据源的名字
存储账户的blob的url
容器名字
你的.csv存放的外层容器的名字
MyAzureBlobStorageCredential 要与第二步创建的数据库凭据的名字保持一致
4.在你的存储账户的上传一个csv的文件,并在数据库创建一张表。
csv文件的数据个数要与数据库表的字段个数保持一致。
5.运行sql语句
BULK INSERT [dbo].[test2]
FROM '你存储在存储账户的csv文件的名字例如a.csv'
WITH (DATA_SOURCE = 'MyAzureBlobStorage',
CODEPAGE='65001',
FIRSTROW = 2,
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
,KEEPNULLS
);
将csv文件的数据插入到[dbo].[test2] 里
[dbo].[test2]:你在sql server创建的表名
MyAzureBlobStorage 要与你第三步创建的外部数据源的名字保持一致
FIRSTROW = 2,指定从csv第二行开始读 因为第一行是表头
FIELDTERMINATOR =',' 指定的字段终止符
ROWTERMINATOR ='\n' 指定的行终止符
运行第五条的sql语句即可把存储在azure blob的.csv的文件的数据插入sql server的表内。