2017-01-20 4 views
2

Visual Studio 2015 아래의 구문을 사용하여 polybase를 통해 외부 테이블을 만들려고합니다. 아래 오류가 발생합니다. 외부 데이터 소스의 푸른 저장 계정 요소가 잘못된 경우 내가이 오류를 재현 할 수내부 오류로 인해 EXTERNAL TABLE 액세스가 실패했습니다 : 'HdfsBridge_IsDirExist를 호출 할 때 Java 예외가 발생했습니다. Java 예외 메시지 :

'Java exception raised on call to HdfsBridge_IsDirExist. Java exception message: com.microsoft.azure.storage.StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.: Error [com.microsoft.azure.storage.StorageException: Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.] occurred while accessing external file.'

+0

당신이에 대한 정의를 게시 할 수 외부 데이터 소스 및 파일 형식을 알려주십시오. 필요한 모든 IP 주소, 정보 등을 제거하십시오. – wBob

+0

( TYPE = 하둡, LOCATION = 'wasbs : // @ .blob.core.windows.net' CREDENTIAL = AzureStorageCredential ) 외부 DATA SOURCE AzureStorage 을 작성; 외부 파일 포맷이 TEXTFILE 생성 ( FORMAT_TYPE = DelimitedText, FORMAT_OPTIONS (FIELD_TERMINATOR = '') ); –

+0

Azure Blob Storage 계정에는 'textfiles'라는 폴더와 DimDate2.txt라는 파일이있는 컨테이너라는 컨테이너가 있습니다. – wBob

답변

1

(XXX : 어떤 하나 PLS이

CREATE EXTERNAL TABLE dbo.DimDate2External (
    DateId INT NOT NULL, 
    CalendarQuarter TINYINT NOT NULL, 
    FiscalQuarter TINYINT NOT NULL 
) 
WITH (
    LOCATION='/textfiles/DimDate2.txt', 
    DATA_SOURCE=AzureStorage, 
    FILE_FORMAT=TextFile 
); 

CREATE EXTERNAL DATA SOURCE AzureStorage 
WITH ( 
    TYPE = HADOOP, 
    LOCATION = 'wasbs://<blob_container_name>@<azure_storage_account_name>.‌​blob.core.windows.ne‌​t', 
    CREDENTIAL = AzureStorageCredential 
    ); 

CREATE EXTERNAL FILE FORMAT TextFile WITH (FORMAT_TYPE = DelimitedText, FORMAT_OPTIONS (FIELD_TERMINATOR = ',')); 

외부 테이블 액세스를 도와 줄 수는 내부 오류로 인해 실패) 내 예 : 블롭 컨테이너 이름 내 예에 dummy (잘못된)하지만

CREATE EXTERNAL DATA SOURCE eds_dummy 
WITH ( 
    TYPE = Hadoop, 
    LOCATION = 'wasbs://[email protected]', 
    CREDENTIAL = sc_tpch 
); 

경우 스토리지 계정이 CORR입니다 테이블을 만들려고 할 때 요법, 당신은 매우 구체적인 오류 메시지 :

Msg 105002, Level 16, State 1, Line 27 EXTERNAL TABLE access failed because the specified path name '/test.txt' does not exist. Enter a valid path and try again.

블롭 컨테이너에 대한 검증의 어떤 종류가있는 것 같습니다. 당신이 시도하고 테이블을 만들 때 외부 데이터 소스를 만들 때 그러나 푸른 스토리지 이름이 올바르지 계정 경우이 오류가 발생하지 않습니다 만 :

Msg 105019, Level 16, State 1, Line 35 EXTERNAL TABLE access failed due to internal error: 'Java exception raised on call to HdfsBridge_IsDirExist. Java exception message: com.microsoft.azure.storage.StorageException: The server encountered an unknown failure: : Error [com.microsoft.azure.storage.StorageException: The server encountered an unknown failure: ] occurred while accessing external file.'

를 해결하려면를, 애저 확인하십시오 저장소 계정 및 Blob 컨테이너가 있습니다. 이것에

https://yourStorageAccountName.blob.core.windows.net/yourBlobContainerName

:

이 작업을 수행하는 가장 쉬운 방법은이에서 즉, 포털에서 파일이나 폴더의 URL을 복사하여 외부 테이블에 그것을 수정 프로그램입니다 wasbs://[email protected]et

행운을 빈다.

+0

감사합니다. 'LOCATION'구문에서 Blob 컨테이너와 저장소 계정을 잘못 배치하여이 오류가 발생했습니다. 이제는 고정. ( TYPE = 하둡, LOCATION = 'wasbs : // @ .blob.core.windows.net' CREDENTIAL = AzureStorageCredential ) 외부 DATA SOURCE AzureStorage 을 작성; –

2

'LOCATION'구문에서 실수로 Blob 컨테이너와 저장소 계정을 잘못 배치하여이 오류가 발생했습니다. 이제는 고정.

외부 데이터 소스 AzureStorage WITH를 (TYPE은, 위치 = 'wasbs : //@. blob.core.windows.ne의 t'하둡 = 자격 증명 = AzureStorageCredential가) CREATE