将最后的记录从Blob中的平面文件删除到Azure数据仓库中

问题描述 投票:1回答:1

我在Blob存储中有一些用管道分隔的平面文件,在每个文件中,我都有一个页眉和页脚记录,包括文件名,提取日期和记录数。我正在将ADF管道与Polybase一起使用以加载到Azure DWH中。我可以跳过页眉记录,但无法跳过页脚记录。我能想到的唯一方法是使用所有varchar创建登台表并将其加载到登台,然后将数据类型转换回主表。但这不起作用,因为列数与页脚和数据不同。有没有更简单的方法可以做到这一点?请指教。

azure-storage-blobs data-warehouse azure-data-factory delete-row skip
1个回答
1
投票

Polybase没有用于删除页脚行的显式选项,但确实有一组拒绝选项,您可以利用这些选项。如果将REJECT_TYPE设置为VALUE(而不是PERCENTAGE),并且将REJECT_VALUE AS 1设置为告诉Polybase仅拒绝一行。如果您的页脚与主要数据行的格式不同,它将被拒绝,但您的查询不会失败。

CREATE EXTERNAL TABLE yourTable
...    
<reject_options> ::=  
{  
    | REJECT_TYPE = value,  
    | REJECT_VALUE = 2 

如果需要进一步的帮助,请发布带有标题,列和页脚的文件的简单,匿名化示例。

更新:检查此博客,以获取有关跟踪被拒绝的行的信息:

https://azure.microsoft.com/en-us/blog/load-confidently-with-sql-data-warehouse-polybase-rejected-row-location/

© www.soinside.com 2019 - 2024. All rights reserved.