azure - 无法创建从 Azure Blob 存储容器到 Azure Sql 数据库超大规模的外部数据源

标签 azure azure-sql-database azure-blob-storage

我已将单个文件 (BlockBlob) 上传到 Azure BlobStorage 中的容器

这是路径:https://myStorageName.blob.core.windows.net/myContainerName/myFolder.Name/myFileName.json

我想将此文件加载到 Azure Sql 数据库中的表中

如果我为该文件创建 SAS,一切都会正常进行。但是,我无法生成可以访问容器内多个文件的单个 SAS。

这是有效的代码:

CREATE DATABASE SCOPED CREDENTIAL TemporaryBlobSCredential
 WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
 SECRET = 'sp=......................'

CREATE EXTERNAL DATA SOURCE TemporaryBlobDataSource
 WITH ( TYPE = BLOB_STORAGE,
       LOCATION = 'https://<myStorageName>.blob.core.windows.net/<myContainerName>',
       CREDENTIAL= TemporaryBlobSCredential);

create table <tableName>
(JsonData varchar(max))
 
BULK INSERT <tableName>
FROM '<myFolder.Name>/<myFileName>.json'
WITH (DATA_SOURCE = 'TemporaryBlobDataSource');
 

如果我生成具有所有权限的 SAS (SECRET = '?sv=......'),它将无法工作:

Generating Storage SAS

我应该使用不同的东西吗? 它真的有效吗?

最佳答案

这个document说:

Warning

The SAS key value might begin with a '?' (question mark). When you use the SAS key, you must remove the leading '?'. Otherwise your efforts might be blocked.

我注意到您的工作代码中没有“?”,但您的 SAS token 中有“?”,但它不起作用。你能仔细检查一下这个微小的差异不是问题吗?

关于azure - 无法创建从 Azure Blob 存储容器到 Azure Sql 数据库超大规模的外部数据源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63602925/

相关文章:

c# - 为什么 DocumentDb 在测试场景中运行时偶尔会失败

sql-server - Sql Server Azure PERMISSION_SET = EXTERNAL_ACCESS 或 UNSAFE

Azure 存储非经典 (V2) - 如何配置自定义域

sql-server - 直接从 SQL Server 获取 Azure ML 中的数据

azure - Azure 网站上缺少 Node.js 应用程序的 web.config 文档

azure - 删除查询在 azure sql 数据库上自动回滚

entity-framework - EF6 执行长时间运行的存储过程出现超时错误

azure - 设置 blob 的过期限制

java - 在 java SDK 中模拟 Azure 存储 Blob

Azure 函数从 Azure 应用程序配置配置计时器触发器