gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 14:25:31 29 4
gpt4 key购买 nike

我知道我们可以在 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/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com