在Azure SQL Database为Azure Blob Storage创建外部表:是否可行?需Synapse吗?
针对Azure Blob Storage创建外部表的解答
- 可以为指定的Azure Blob Storage创建外部表,并非必须依赖Synapse,不过Azure Synapse Analytics(原Azure SQL数据仓库)是主流实现途径之一。
- 你提到的操作逻辑对应Synapse专用SQL池(原SQL DW)的场景,具体实现步骤如下:
- 先创建数据库主密钥:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '你的安全密码'; - 创建数据库范围凭据,用于授权访问Blob存储:
CREATE DATABASE SCOPED CREDENTIAL BlobStorageCredential WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = '你的Blob存储SAS令牌'; - 创建指向Blob存储的外部数据源:
CREATE EXTERNAL DATA SOURCE BlobStorageDataSource WITH ( TYPE = BLOB_STORAGE, LOCATION = 'https://你的存储账户名.blob.core.windows.net/你的容器名', CREDENTIAL = BlobStorageCredential ); - 定义外部文件格式(以CSV为例,可按需调整):
CREATE EXTERNAL FILE FORMAT CsvFileFormat WITH ( FORMAT_TYPE = DELIMITEDTEXT, FORMAT_OPTIONS ( FIELD_TERMINATOR = ',', STRING_DELIMITER = '"', FIRST_ROW = 2 -- 如果数据首行是表头 ) ); - 最终创建外部表:
CREATE EXTERNAL TABLE dbo.YourExternalTable ( ID INT, Name VARCHAR(100), CreateDate DATE ) WITH ( LOCATION = '存储容器内的文件路径/', DATA_SOURCE = BlobStorageDataSource, FILE_FORMAT = CsvFileFormat );
- 先创建数据库主密钥:
- 补充:除了Synapse,Azure SQL数据库(单数据库/弹性池)也支持创建指向Blob存储的外部表,操作流程和上述步骤基本一致,同样需要配置凭据、数据源和文件格式。
内容的提问来源于stack exchange,提问作者MPB94
相关产品推荐
相关产品推荐

