微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

找不到Blob存储文件上的Azure Polybase外部表

如何解决找不到Blob存储文件上的Azure Polybase外部表

在此先感谢您的协助!我在Blob存储上有CSV文件,当前已通过Synapse(Azure sql DWH)中的polybase成功读取了CSV文件。该方法Microsoft documentation中所述。我已经添加一个文件夹(与其他文件位于同一容器中),并且在Synapse上通过SSMS创建外部表时收到以下错误消息:

信息105002,第16级,状态1,第1行 外部文件访问失败,因为指定的路径名​​'/USA/FCT.CSV'不存在。输入有效路径,然后重试。

如果我将文件放置在另一个文件夹(位于同一容器中)(例如“ /CA/FCT.CSV”)中,我知道可以从中访问文件,则该文件可以正常工作。我觉得我已经证明文件没有问题,并且外部表创建脚本没有错误

我的疑难解答使我认为需要在BLOB存储容器中的文件夹上设置权限设置。我检查了“管理访问权”设置是否与具有正常访问权限的文件夹相同。我还能检查什么?

Blob storage container and folders

工作正常的文件的完整路径(敏感信息替换为星号): https://***datalake.dfs.core.windows.net/marketing/CA/FCT.CSV

无效文件的完整路径:https://***datalake.dfs.core.windows.net/marketing/USA/FCT.CSV

这是有效的创建表脚本:

CREATE EXTERNAL TABLE [Nielsen].[USA_Fact_external]
(

[HRCH LVL]                  VARCHAR(40),[**** TOTAL MARKET1]       VARCHAR(40),[**** COMPANY]         VARCHAR(40),[**** BRAND]               VARCHAR(40),[**** SEGMENT]         VARCHAR(40),[**** TYPE]                VARCHAR(40),[**** PACK TYPE]           VARCHAR(40),[**** SUB BRAND]           VARCHAR(40),[**** ACTUAL PACK SIZE]    VARCHAR(40),[PRDC CODE]                    VARCHAR(40),[**** TOTAL MARKET22]  VARCHAR(40),[MARKET CODE]              VARCHAR(40),[PERIOD DESCRIPTION LONG]  VARCHAR(40),[UNITS]                        BIGINT,[EQ1]                      BIGINT,[DOL]                      BIGINT,[AVG UNIT PRICE]           BIGINT,[AVG EQ1 PRICE]                BIGINT,[PCTACV]                   BIGINT,[EST ACV SELLING]          BIGINT,[ANY PROMO UNITS]          BIGINT,[ANY PROMO DOL]                BIGINT,[TDP]                      BIGINT,[TDP YA]                   BIGINT,[BASE DOL]                 BIGINT,[BASE UNITS]               BIGINT,[BASE EQ]                  BIGINT,[ANY PROMO EQ]             BIGINT,[FEAT WO disP PCTACV]      BIGINT,[NUMBER OF STORES]         BIGINT,[NUMERICAL disTRIBUTION]   BIGINT
)
WITH (DATA_SOURCE = [AzureDataLakeStorage],LOCATION = N'/CA/FCT.CSV',FILE_FORMAT = [CsvFileFormat_withHeadersPipeDL],REJECT_TYPE = VALUE,REJECT_VALUE = 0)
GO

这是无效的创建表脚本:

CREATE EXTERNAL TABLE [Nielsen].[USA_Fact_external]
(

[HRCH LVL]                  VARCHAR(40),LOCATION = N'/USA/FCT.CSV',REJECT_VALUE = 0)
GO

这是外部数据源脚本,(敏感信息替换为星号):

CREATE EXTERNAL DATA SOURCE [AzureDataLakeStorage_Marketing] WITH (TYPE = HADOOP,LOCATION = N'abfss://marketing@***datalake.dfs.core.windows.net',CREDENTIAL = [******])

Screenshot of the scoped credential entry (sys.database_scoped_credentials)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。