gpt4 book ai didi

azure - 尝试查询无服务器 SQL 池中的外部表时出错

转载 作者:行者123 更新时间:2023-12-03 01:21:21 26 4
gpt4 key购买 nike

我正在尝试运行SELECT * from [dbo].[<table-name>];使用 ADLS Gen2 作为存储在 Azure Synapse 的无服务器 SQL 池中创建的外部表上使用 JDBC 驱动程序进行查询,但出现此错误:-

External table 'dbo' is not accessible because location does not exist or it is used by another process.

我遇到了与 SELECT * from [<table-name>]; 相同的错误以及。我已尝试在存储帐户中授予所有必需的权限,如此处所述 https://learn.microsoft.com/en-us/azure/synapse-analytics/sql/resources-self-help-sql-on-demand#query-execution但仍然得到相同的结果。

有人可以帮我解决这个问题吗?

最佳答案

这种类型的错误(如果您确定两个文件都存在并且未被其他进程使用)通常可能意味着:

  1. 正如您链接的文档所述,无服务器 SQL 池无法访问该文件,因为您的 Azure Active Directory 身份无权访问该文件,或者因为防火墙阻止对该文件的访问。默认情况下,无服务器 SQL 池尝试使用您的 Azure Active Directory 标识访问该文件。要解决此问题,您需要具有访问该文件的适当权限。最简单的方法是在您尝试查询的存储帐户上授予自己“存储 Blob 数据贡献者”角色。

  2. 您在创建外部表时犯了一些错误。例如,如果您在存储中实际不存在的文件夹中定义了外部表,您将收到所提供的相同错误,因此请检查该错误(请参阅下面的 SQL 脚本示例,了解如何正确创建外部表)表)

-- Create external data source for the storage
CREATE EXTERNAL DATA SOURCE [Test] WITH
(
LOCATION = 'https://<StorageAccount>.blob.core.windows.net/<Container>'
)

-- Create external file format for csv
CREATE EXTERNAL FILE FORMAT [csv] WITH
(
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',')
)

-- Create external table
CREATE EXTERNAL TABLE [dbo].[TableTest]
(
[Col1] VARCHAR(2),
[Col2] INT,
[Col3] INT
)
WITH
(
LOCATION = '<FolderIfExist>/<FileName>.csv',
DATA_SOURCE = [DSTest],
FILE_FORMAT = [csv]
)

关于azure - 尝试查询无服务器 SQL 池中的外部表时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70107560/

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