如何从 Blob 中的 CSV 文件在 SQL 数据库中创建一个表,其中包含通过数据流或 ADF 管道的所有列名及其数据类型?

Posted

技术标签:

【中文标题】如何从 Blob 中的 CSV 文件在 SQL 数据库中创建一个表,其中包含通过数据流或 ADF 管道的所有列名及其数据类型?【英文标题】:How to create a table in SQL Database from a CSV file in Blob which contain all the column name with its data type through Data Flow or ADF pipeline? 【发布时间】:2020-07-22 22:59:38 【问题描述】:

我的 Azure Blob 存储中有一个 CSV 文件,其中包含所有列名及其相应表的数据数据类型。

我想从这个 Blob 文件在 SQL 数据库中创建一个表,该表具有相同的列名和对应的数据类型,而不进行映射。

我已经通过数据流创建了一个表,但是我必须手动设置每一列的数据类型。但我不想这样做。 当我创建一个表时,它应该接受源中相同的数据类型以及 CSV 文件中给出的同步。

[]

[]

当我导入架构时,它将完整列作为ID (int),数据类型作为String,但是我希望当我导入架构并创建一个表时,它会将列名作为ID,数据类型作为@987654326 @ 并且它将为多个表执行相同的所有列名。

如果您有解决此问题的方法,请告诉我。

【问题讨论】:

嗨 Somya Gupta,如果我的回答对您有帮助,请将其标记为答案。这对其他社区成员可能是有益的。谢谢。 【参考方案1】:

在数据工厂中,当我们从CSV file复制数据时,我们设置first row as column,这意味着第一行数据将被设置为列名,id(int)Name(varchar)。如您所知,默认的列名数据类型是String(在数据工厂中)/varchar(128)(在SQL数据库中),我们无法更改。

我们不能创建以模式为列名的表!这个问题没有办法解决。

但数据工厂会自动帮助我们为我们创建合适的列数据类型映射。

例如,如果你的 csv 文件是这样的:

自动架构映射会将“1”(字符串)转换为 Azure SQL 数据库中的1(int)

希望这会有所帮助。

【讨论】:

以上是关于如何从 Blob 中的 CSV 文件在 SQL 数据库中创建一个表,其中包含通过数据流或 ADF 管道的所有列名及其数据类型?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Java 中的 Azure Blob 存储中读取文件夹结构为“dir1 / dir2 / dir3 / 20210301-20210331”的 csv 文件?

如何在 Python 中将 Azure Blob 文件 CSV 转换为 Excel

如何使用 Object c# .NET Core 在 blob 存储 Azure 上创建 csv 文件?

在更短的时间内将 50GB CSV 文件 Azure Blob 加载到 Azure SQL DB - 性能

使用 ashx 处理程序从 SQL 表中读取 BLOB 文件时如何在 Edge 中查看文件

将csv数据直接写入节点js中的azure blob