我从MySQL服务器导入了大约200行导出的表。我不知道我需要一个分区键和行键,所以我通过CSV设置它,创建了两个新列,并用表名填充它们。比我导入CSV。它向我展示了第一个条目并且它看起来很好所以我输入它比中途我得到一个错误说N / A是不可接受的并且它退出了。看着导入的数据完全没了。
我做错了什么?
我需要再导入200多个表。
示例数据:不是实际数据,因为它是我的用户表(非关系型)
使用Azure Table Storage Explorer导入
列:名称|用户名|电子邮件|哈希|盐| ParitionKey | RowKey 第1行:珍妮特|管理员| admin@gmail.com | 203weg0897wg | 33& 23j |网站|站点
这就是它的发展方式。但是,当我导入第一行比列更糟糕,而不是像用户名进入分区键和类似的东西。它不会导入到正确的列中。
是的我确实把表名作为分区键和行键。我没有意识到每个实体都需要它不同。但我需要知道哪个实体来自哪个表。我应该将它们放入单独的分区吗?我在一张桌子上都需要它们。会有什么解决方案?
答案 0 :(得分:1)
但是当我导入第一行的时候比列更糟糕,而且像用户名一样进入分区键和类似的东西。它不会导入到正确的列中。
如果使用Azure Storage Explorer将.CSV导入Azure表存储,则.CSV文件的数据结构应如下所示:
| PartitionKey | RowKey | Name | UserName | Email | Hash | Salt |
| ------------ | ------ | ----- | -------- | --------------- | ------------- | ------ |
| site | site | Janet | admin | admin@gmail.com | 203weg0897wg | 33&23j |
注意:PartitionKey需要放在第一列,RowKey需要放在它后面。
我需要再导入200多个表。但我需要知道哪个实体来自哪个表。我应该将它们放入单独的分区吗?我在一张桌子上都需要它们。
根据您的要求,您可以将分区键设置为表名,并将行键设置为关联表中实体的标识。正如Tamra所说,分区键和行键对于azure表中的每个实体都必须是唯一的。
为了将大约200个表导入到azure表中,您可以从MYSQL表导出数据并修改.CSV文件中的数据结构,然后逐个将.CSV导入到azure表中。为了更好地理解Azure存储表设计,您可以参考此tutorial。
此外,您可以使用PowerShell script或Azure Storage Client Library作为开发语言,将CSV文件导入Azure表存储。