无法在Azure SQL数据库上创建EXTERNAL TABLE

时间:2017-01-20 17:32:33

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

您是否可以使用格式文件在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

1 个答案:

答案 0 :(得分:5)

问题是(可能)您尝试在Azure SQL 数据库上使用PolyBase,但仅在SQL Server 2016内部部署上支持PolyBase。但是,Azure SQL Datawarehouse PolyBase Versioned Feature Summary

支持它

如果您创建Azure SQL数据软件库而不是Azure SQL数据库,则应该具有PolyBase功能,包括创建外部文件格式。

SQL data warehouse in Azure portal

运行此:

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存储。