【问题标题】:Cannot create EXTERNAL TABLE on Azure SQL Databse无法在 Azure SQL 数据库上创建 EXTERNAL TABLE
【发布时间】:2017-06-05 18:39:46
【问题描述】:

不能使用格式文件在 Azure SQL 数据库上创建外部表吗?我正在尝试为我转储到 blob 存储中的表创建一个外部表。

从此页面:https://msdn.microsoft.com/en-us/library/dn935021.aspx

-- Create a new external table  
CREATE EXTERNAL TABLE [ database_name . [ schema_name ] . | schema_name. ] table_name   
    ( <column_definition> [ ,...n ] )  
    WITH (   
        LOCATION = 'folder_or_filepath',  
        DATA_SOURCE = external_data_source_name,  
        FILE_FORMAT = external_file_format_name  
        [ , <reject_options> [ ,...n ] ]  
    )  
[;]  

文档不正确还是我遗漏了什么?我似乎无法创建格式文件并继续接收

“‘EXTERNAL’附近的语法不正确。”错误。

CREATE EXTERNAL FILE FORMAT [DelimitedText] 
WITH (
    FORMAT_TYPE = DELIMITEDTEXT, 
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = N'~¶~', 
        USE_TYPE_DEFAULT = False
    ), 
    DATA_COMPRESSION = N'org.apache.hadoop.io.compress.GzipCodec')
GO

【问题讨论】:

  • 您是否按照我的回答建议在 Azure SQL 数据仓库上进行了尝试?如果它解决了您的问题,请考虑将其标记为答案。

标签: azure azure-sql-database azure-blob-storage


【解决方案1】:

问题是(可能)您尝试在 Azure SQL 数据库上使用 PolyBase,但 PolyBase 仅在 SQL Service 2016 on-premise 上受支持。但是,Azure SQL Datawarehouse 支持它:PolyBase Versioned Feature Summary

如果您不是创建 Azure SQL 数据库,而是创建 Azure SQL 数据仓库,您应该可以使用 PolyBase 功能,包括创建外部文件格式。

运行这个:

CREATE EXTERNAL FILE FORMAT TextFormat 
WITH (
    FORMAT_TYPE = DELIMITEDTEXT, 
    FORMAT_OPTIONS (
        FIELD_TERMINATOR = N'~¶~', 
        USE_TYPE_DEFAULT = False
    ), 
    DATA_COMPRESSION = N'org.apache.hadoop.io.compress.GzipCodec')
GO  

Azure SQL 数据库 上会出现如下错误:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'EXTERNAL'.

Azure SQL 数据仓库上运行同样的东西会起作用

Command(s) completed successfully.

您将无法使用 Azure SQL 数据仓库处理 Hadoop 数据库,但支持使用 Azure blob 存储。

【讨论】:

    猜你喜欢
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2015-10-28
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    相关资源
    最近更新 更多