1

使用 polybase 创建外部表在本地环境中是成功的,但在我们使用代理服务器访问 Internet 的生产环境中是不成功的。当尝试在生产环境中创建外部表时,出现以下错误“外部表访问因内部错误而失败:'调用 HdfsBridge_IsDirExist 时引发 Java 异常:错误 [com.microsoft.azure.storage.StorageException:发生未知故障:连接超时:连接]在访问外部文件时发生。'”我尝试使用 IE 启用代理设置。有没有办法为 SQL 启用代理以创建可以建立与 Azure blob 的连接的外部表。

以下是我们的要求: - 我们需要运行 Polybase 查询以在 Azure blob 上创建镶木地板文件

  • 我们在数据库服务器上没有直接的互联网连接。

  • 我们需要使用代理从外部连接到internat。

  • 在 app.config 文件中启用代理后,我们可以通过 .Net Azure SDK 创建容器。

  • 但是我们无法从 SQL 服务器运行外部表创建查询,并且我们收到以下错误。

“由于内部错误,EXTERNAL TABLE 访问失败:'调用 HdfsBridge_IsDirExist 时引发 Java 异常:错误 [com.microsoft.azure.storage.StorageException:发生未知故障:连接超时:连接] 访问外部文件时发生。' "

如果此错误是由于代理问题引起的,我们如何使用 azure 引用为外部表创建提供代理。

例如:示例外部表创建如下——EXTERNAL TABLE

CREATE EXTERNAL TABLE dbo.SampleExternal (
    DateId INT NULL,
    CalendarQuarter TINYINT NULL,
    FiscalQuarter TINYINT NULL)
WITH (LOCATION='/SampleExternal.parquet',
    DATA_SOURCE=AzureStorage, 
    FILE_FORMAT=ParquetFile);

----- 数据库范围凭证

CREATE DATABASE SCOPED CREDENTIAL AzureStorageCredential
WITH
    IDENTITY = 'user',
    SECRET = 'XXXXXXXXXXX=='
; 

- -数据源

CREATE EXTERNAL DATA SOURCE AzureStorage
WITH (
    TYPE = HADOOP,
    LOCATION = 'wasbs://XXContainer@XXStorage.blob.core.windows.net',
    CREDENTIAL = AzureStorageCredential
); 
4

0 回答 0