【问题标题】:selecting data from an external source (azure storage blob) using external table/Polybase in SQL. Table created but no data returned使用 SQL 中的外部表/Polybase 从外部源(Azure 存储 Blob)中选择数据。表已创建但未返回数据
【发布时间】:2020-05-10 23:21:23
【问题描述】:

我有一个“|” AZURE 存储 blob 上的分隔文件,我正在尝试创建一个外部表以从该数据中进行选择。我已逐步按照此处的说明进行操作:https://docs.microsoft.com/en-us/sql/t-sql/statements/create-external-table-transact-sql?view=sql-server-ver15 我相信所有服务器设置都是正确的。我实际上可以创建表,但是当我从中选择时(从表下的外部表部分)没有数据返回。下面是我的选择语句,为了节省空间,我已经修剪了字段。

CREATE EXTERNAL TABLE [dbo].[customer]
(
    [Id] [int] NOT NULL,
    [CustomerName] [varchar](255) NULL,
    [AccountType] [varchar](255) NULL,
    [State] [varchar](255) NULL,
    [DateExtracted] [date] NULL,
    [tablename][varchar](50) NULL,
    [databaseName] [varchar](50) NULL
)   
WITH (LOCATION='customerfiles/',
      DATA_SOURCE = AzureStorage,  
      FILE_FORMAT = TextFileFormat  
);  

azure 中的源码如下: tmmdevstorage - container > customerfiles > file1.txt , file2.txt 我怀疑我在引用该位置时遇到了问题。 创建外部表时没有错误,从中选择时也没有错误,只是没有数据。 Blob 存储中有包含数据的文件。

关于我缺少什么的任何想法?

【问题讨论】:

  • 我想我有更多关于此的信息,我相信我的问题出在 AZURE AD 设置中。我想我需要找到以下内容: CREATE DATABASE SCOPED CREDENTIAL ADLSCredential WITH IDENTITY = 'user', SECRET = '57r+LauBsO1eG3tP8iiw6rz1Qdupw36tydpFVokcVjaOj1xnAhpefnus6UHKPA3ijV1VB6EIyBoCTgA72ltN1g==' ;创建数据库范围凭证 ADLSCredential,IDENTITY = '536540b4-4239-45fe-b9a3-629f97591c0c@login.microsoftonline.com/42f988bf-85f1-41af-91ab-2d2cd011da47/…',秘密 = 'BjdIlmtKp4Fpyh9hIvr8HJlUida/seM5kQ3EpLAmeDI='
  • 需要了解如何获取Identity

标签: sql-server hadoop azure-sql-database azure-sql-data-warehouse polybase


【解决方案1】:

您在上面的评论中所说的内容是正确的:从外部表访问 blob 存储时,您需要针对 blob 存储的凭据。此外,需要使用数据库主密钥来保护凭证。看this link,解释的真好。

当您创建身份时,您设置了IDENTITYSECRET 参数。对于 blob 存储,您可以将 IDENTITY 设置为您想要的任何字符串,我总是使用 user

如果您浏览到您的存储帐户,您可以在 Azure 门户中找到 SECRET。它位于左侧菜单的访问键下:

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    在您的外部表代码中提供位置时,将值更改为“/customerfiles”。这将读取 customerfiles 文件夹中的所有文件并将数据提取到外部表格中。您还必须在创建外部数据源时正确提及您的文件位置。

    【讨论】:

      猜你喜欢
      • 2021-08-01
      • 2019-06-21
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 2020-12-15
      • 2020-07-03
      • 2017-09-19
      • 1970-01-01
      相关资源
      最近更新 更多