我有一个包含模式化结构化数据的 U-SQL 托管表。
CREATE TABLE [AdlaDb].[dbo].[User]
(
UserGuid Guid,
Postcode string,
Age int?
DateOfBirth DateTime?,
)
还有一个 Azure SQL 数据库表。
CREATE TABLE [SqlDb].[dbo].[User]
(
UserGuid uniqueidentifier NOT NULL,
Postcode varchar(15) NULL,
Age int NULL,
DateOfBirth Date NULL,
)
我想在不丢失数据类型的情况下将数据从 U-SQL 托管表传输到 Azure SQLDB 表。
我正在使用 azure data factory,好像我不能
- 直接查询U-SQL托管表作为数据工厂的输入数据集
- 对 Azure SQLDB 执行联合写入查询
因此,我有一个中间步骤,从 U-SQL 托管表复制到 Azure Blob,然后移动到 Azure SQLDB 表。这样做,我丢失了数据类型,并且在插入之前必须稍后再次进行类型转换/转换。
有没有更好的方法可以在不丢失数据类型的情况下将数据从 U-SQL 托管表传输到 Azure SQL 数据库表?还是我遗漏了什么?
最佳答案
此时您有以下选择:
- 将 U-SQL 表导出为 ADLS 或 blob 存储中的中间格式(例如 CSV)。
- 使用 ADF 将文件移动到 Azure SQL DB。
我知道 ADF 团队有一个工作项目可以为您完成这项工作。我也会请他们回复此主题。
由于 U-SQL 中的容错重试和横向扩展处理,直接从 U-SQL 脚本写入表有很多挑战。这使得并行原子写入事务存储有点复杂(参见示例 http://www.vldb.org/conf/1996/P460.PDF)。
关于azure-data-factory - 将数据从 U-SQL 托管表传输到 Azure SQL 数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40894131/