我正试图使用 Polybase 将几个 CSV 文件从 Azure Data Lake 摄取到 Azure Synapse 中。每个 CSV 文件中都有一组固定的列,列名在第一行给出。但是,这些列可以有不同的排序顺序。
在Polybase中,我需要声明外部表,而在设计时我需要知道列的确切顺序,因此我无法创建外部表。是否有其他方法可以摄取CSV文件?
我不相信你可以直接用Polybase做这件事,因为正如你所指出的,CREATE EXTERNAL TABLE语句需要列声明。在运行时,CSV数据会被映射到这些列名上。
你可以通过Azure Data Factory和Data Flow(它在掩护下使用Polybase将数据移动到Synapse)轻松地实现这一点,允许Data Flow生成表。这样做的原因是,表是在数据被读取之后生成的,而不是像external那样在之前生成。
请注意,所有基于字符串的列都将被定义为VARCHAR(MAX)。