sql-server - 在 Azure SQL 数据仓库中创建外部表到基于通配符的文件或文件夹路径

标签 sql-server azure azure-sql-database external-tables sql-data-warehouse

我知道我们可以在 Azure SQL 数据仓库中创建一个指向 LOCATION 可以是文件路径或文件夹路径。此文件或文件夹路径可以基于通配符模式而不是显式路径吗?

这里我的文件路径是 Azure Data Lake Store 中的一个位置。

-- SQL Server 语法

-- 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 ] ]  
    )  
[;]  

最佳答案

Polybase/外部表目前不支持通配符。只需为您需要的每个外部表准备一个文件夹即可。如果您认为这是一个重要的缺失功能,您可以在此处创建请求并为其投票:

https://feedback.azure.com/forums/307516-sql-data-warehouse

请记住,Polybase(在 Azure SQL 数据仓库中)现在可以读取 Blob 存储或 Azure Data Lake Storage (ADLS) 中的文件。因此,作为另一种解决方法,Azure Data Lake Analytics (ADLA) 和 U-SQL 支持 Polybase,因此您可以使用 U-SQL 将所需的文件从 Blob 存储移动到数据湖中,例如

// Move data from blob store to data lake
// add filename and structure as one file
DECLARE @inputFilepath string = "wasb://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e89b87858dab87869c8981868d9aa89b87858dbb9c879a898f8da98b8b879d869cc68a84878ac68b879a8dc69f81868c879f9bc6868d9c" rel="noreferrer noopener nofollow">[email protected]</a>/someFilter/{filepath}.csv";
DECLARE @outputFilepath string = "output/special folder/output.csv";


@input =
    EXTRACT 
            ...     // your column list
            filepath string
    FROM @inputFilepath
    USING Extractors.Csv()


@input =
    SELECT * FROM @input
    WHERE filename.Contains("yourFilter");


// Export as csv
OUTPUT @input
TO @outputFilepath
USING Outputters.Csv(quoting:false);


// Now the data is in Data Lake which Polybase can also use as a source

关于sql-server - 在 Azure SQL 数据仓库中创建外部表到基于通配符的文件或文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45795117/

相关文章:

performance - Entity Framework 与 Sql Azure 通过 net tcp 性能缓慢

database - 使用 SQL Azure 部署 Microsoft Access 应用程序

php - 如何在jqgrid上绑定(bind)mssql表

sql - 有人可以在这个简单的查询中找到语法错​​误吗?

python - Python中导入azure.servicebus错误

azure - 如何使用 Powershell 7 Get-AzVMImage 获取最新版本

azure - 如何处理 Azure 数据工厂 2 中的双管道分隔符

c# - 从自引用表中获取所有子项(子项、孙项)和父项

sql-server - 使用 SQL SMO 修复孤立用户?

azure - Windows Azure 表 - 行数?