2017-08-15 69 views
0

我继承了使用Azure表存储数据库的项目。我使用Microsoft Azure存储浏览器作为查询和管理数据的工具。我试图将数据从开发数据库迁移到我的QA数据库。为此,我从Dev数据库表导出CSV,然后尝试导入到QA数据库表中。对于少数表格,当我尝试导入CSV时出现以下错误:Azure存储资源管理器:不支持类型为''的属性错误

失败:不支持类型''的属性。

当我遇到这个之前,因为我从Dev中导出了一个“类型”CSV,我检查并确保所有的“@type”列都有值。他们做到了。然后我将CSV(包含数千条记录)分成更小的文件,以确定哪条记录是问题。当我这样做并开始导入它们时,我最终能够通过独特的单个文件成功导入所有记录。几乎就像一个违反约束的问题。

我也看到不同类型的错误。例如:

不支持'Double'类型的属性。

在这种情况下,在“Double”类型的特定表中已经有一列。

无论如何,现在我再次看到它,我无法解决它。有什么想法吗?

UPDATE 我能够将这些错误中的一部分追踪到CSV中的“坏”数据。这是一个在Edm.String字段中的JSON字符串,由于某种原因,它不喜欢。我使用在线工具缩小了JSON,并且它导入的很好。尽管如此,有一个数据集有超过7000条记录,我试图导入(我在本文前面引用的那个)。我最终将其分解成不同的文件,并能够成功地单独导入它们。当我尝试通过单个文件加载所有数据后导入整个文件时,我再次遇到错误。

回答

1

我将CSV(包含数千条记录)分成较小的文件以尝试确定哪个记录是问题。当我这样做并开始导入它们时,我最终能够通过独特的单个文件成功导入所有记录。

根据您的测试,源CSV文件的格式和数据似乎没问题。在导入大型CSV文件时,很难找出为什么Azure存储资源管理器会返回这些意外错误。您可以尝试升级Azure存储资源管理器,并检查是否可以使用最新的Azure存储资源管理器成功导出和导入数据。

此外,你可以尝试使用AzCopy (专为使用具有最佳性能的简单的命令将数据复制到和来自微软的Azure斑点,文件和表存储)export/import table

导出表:

AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:C:\myfolder\ /SourceKey:key /Manifest:abc.manifest 

导入表:

AzCopy /Source:C:\myfolder\ /Dest:https://myaccount.table.core.windows.net/mytable1/ /DestKey:key /Manifest:"abc.manifest" /EntityOperation:InsertOrReplace 
+0

您可以使用过滤到AzCopy命令?另外,我更新了我的帖子。 – im1dermike

+0

我做了更多的挖掘。您目前无法使用过滤器。另一种方法是手动将表中的数据导出为CSV格式,然后使用导入命令,但不幸的是,AzCopy导入仅适用于JSON(清单)而非CSV(手动导出)。什么是应用程序... – im1dermike

+0

是的,目前不支持从CSV格式的有效载荷导入表格实体。 –

相关问题