2017-01-20 31 views
2

私は、Visual Studio 2015で以下の構文でpolybaseを通して外部テーブルを作成しようとしています。いくつかのいずれかがplsはこの内部エラーによりEXTERNAL TABLEアクセスが失敗しました: 'HdfsBridge_IsDirExistの呼び出しでJava例外が発生しました。 Java例外メッセージ:

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 = ',')); 

外部表のアクセスに役立つことができ、内部エラーのため失敗しました:

'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 = HADOOP、 LOCATION = 'wasbs:// @ .blob.core.windows.net' CREDENTIAL = AzureStorageCredential )で外部データソースAzureStorage を作成します。 ( FORMAT_TYPE = DelimitedText、 FORMAT_OPTIONS(FIELD_TERMINATOR = '') )でTextFileの 外部ファイル形式を作成します。 –

+0

Azure Blob Storageアカウントには、「textfiles」という名前のフォルダとDimDate2.txtというファイルが入っているコンテナがあります。 – wBob

答えて

1

外部データソースのAzureストレージアカウントの要素が誤っている場合、私はこのエラーを再現することができます(XXX )私の例では:

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

ブロブコンテナ名が正しくありません(私の例ではdummy)が、ストレージアカウントが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.

ブロブコンテナの検証のいくつかの種類があるように見えます。しかしAzureストレージは名前が間違っているあなたは、外部のデータソースを作成するとき、あなたはあなたがテーブルを試してみて、作成した場合にのみ、エラーを取得しないアカウント場合:

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コンテナとStorageアカウントを間違って配置し、このエラーが発生しました。今はその固定。 ( TYPE = HADOOP、 LOCATION = 'wasbs:// @ .blob.core.windows.net' CREDENTIAL = AzureStorageCredential )で外部データソースAzureStorage を作成します。 –

2

'LOCATION'構文で、私は誤ってBlobコンテナとStorageアカウントを間違って配置し、このエラーが発生しました。今はその固定。

外部データソースAzureStorage WITH(TYPE = HADOOP、LOCATION = 'wasbs://@. blob.core.windows.neさt'、CREDENTIAL = AzureStorageCredential)CREATE

関連する問題