gpt4 book ai didi

Azure Blob 到 Azure SQL 表的创建

转载 作者:行者123 更新时间:2023-12-03 03:00:11 25 4
gpt4 key购买 nike

我正在尝试使用 BULK INSERT 将 BLOB 文件转换为 Azure 中的 SQL DB 表。

以下是来自 Microsoft 的引用: https://azure.microsoft.com/en-us/updates/preview-loading-files-from-azure-blob-storage-into-sql-database/

我的 CSV 数据如下所示100,"37415B4EAF943043E1111111A05370E","ONT","000","S","ABCDEF","AB","001","000002","001","04","20110902","11111111", "20110830152048.1837780","",""

我的 BLOB 容器处于公共(public)访问级别。

第 1 步:创建存储凭证。我已生成共享访问 key (SAS token )。

CREATE DATABASE SCOPED CREDENTIAL Abablobv1BlobStorageCredential
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'sv=2017-07-29&ss=bfqt&srt=sco&sp=rwdlacup&se=2018-04-10T18:05:55Z&st=2018-04-09T10:05:55Z&sip=141.6.1.0-141.6.1.255&spr=https&sig=XIFs1TWafAakQT3Ig%3D';
GO

第 2 步:引用存储凭据创建外部数据源

CREATE EXTERNAL DATA SOURCE Abablobv1BlobStorage
WITH ( TYPE = BLOB_STORAGE, LOCATION = 'https://abcd.blob.core.windows.net/', CREDENTIAL = Abablobv1BlobStorageCredential );
GO

第 3 步使用外部数据源和数据库表进行批量插入语句

BULK INSERT dbo.TWCS
FROM 'TWCSSampleData.csv'
WITH ( DATA_SOURCE = 'Abablobv1BlobStorage', FORMAT = 'CSV');
GO

我遇到这个错误:

Bad or inaccessible location specified in external data source "Abablobv1BlobStorage".

有人对此有所了解吗?

我将外部数据源的位置更改为 Location = abcd.blob.core.windows.net/invoapprover/SampleData.csv 现在我明白了,无法批量加载,因为无法打开文件“SampleData.csv”。操作系统错误代码 5(访问被拒绝。)。对于使用批量插入或打开行集的两个语句。我不确定应该更改哪个访问权限,因为该文件位于 Azure blob 中而不是在我的计算机上,对此有什么想法吗?

最佳答案

请尝试以下查询

SELECT * FROM OPENROWSET(
BULK 'TWCSSampleData.csv',
DATA_SOURCE = 'Abablobv1BlobStorage',
SINGLE_CLOB) AS DataFile;

确保文件不在 BLOB 存储上的容器内。在这种情况下,您需要在外部数据源的位置参数中指定容器。如果您有一个名为“files”的容器,则位置应类似于“https://abcd.blob.core.windows.net/files” '.

更多批量导入示例here .

关于Azure Blob 到 Azure SQL 表的创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49732006/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com