在不知道列的顺序的情况下通过Polybase摄取CSV文件。

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

我正试图使用 Polybase 将几个 CSV 文件从 Azure Data Lake 摄取到 Azure Synapse 中。每个 CSV 文件中都有一组固定的列,列名在第一行给出。但是,这些列可以有不同的排序顺序。

在Polybase中,我需要声明外部表,而在设计时我需要知道列的确切顺序,因此我无法创建外部表。是否有其他方法可以摄取CSV文件?

azure azure-data-lake polybase azure-synapse
1个回答
1
投票

我不相信你可以直接用Polybase做这件事,因为正如你所指出的,CREATE EXTERNAL TABLE语句需要列声明。在运行时,CSV数据会被映射到这些列名上。

你可以通过Azure Data Factory和Data Flow(它在掩护下使用Polybase将数据移动到Synapse)轻松地实现这一点,允许Data Flow生成表。这样做的原因是,表是在数据被读取之后生成的,而不是像external那样在之前生成。

对于汇数据集,用参数化的表名[和可选的模式]创建它。enter image description here

在Sink活动中,指定 "Recreate table"。enter image description here

将所需的表名从管道中传递给汇数据集。enter image description here

请注意,所有基于字符串的列都将被定义为VARCHAR(MAX)。

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