将 Azure 存储表转储到未知表模型上
Posted
技术标签:
【中文标题】将 Azure 存储表转储到未知表模型上【英文标题】:Dump Azure Storage Table on unknown Table model 【发布时间】:2022-01-04 02:49:46 【问题描述】:您好,我有与下一个相同的主题要解决,我为 azure 存储表编写了第一次代码并且失败了。
我不需要转储表,我只需要为 partitionkey 和 rowkey 标识的 1 个数据集提供未知身份的转储。
以下代码来自 Dumping Azure tables quickly
TableQuery<DynamicTableEntity> query = new TableQuery<DynamicTableEntity>();
foreach (DynamicTableEntity entity in table.ExecuteQuery(query))
// Write a dump of the entity (row).
但这似乎是不推荐使用的代码,Execute
函数在新的Azure.Data.Tables
中不可调用。
我已尝试获得该网站上描述的访问权限https://www.nuget.org/packages/Azure.Data.Tables/。
添加表实体后,我什么也没做。我搜索了其他代码源,但发现没有有效的实际代码,并且无法调整它们以运行。
请发布一个使用实际数据表包的短代码sn-p。
我对性能没有硬性要求,它适用于近 100 个或更多的数据集。
但我必须经常更改我的数据模型,因此我需要转储来自 1 个数据集中的所有实体,例如通过分区键查询。
如果有人可以在这里发布一个非常小的 C# 代码 sn-p,我会非常高兴。
【问题讨论】:
添加表实体后,我什么都没有工作。您能否从您尝试过的 nuget 站点发布代码,并解释发生了什么。如果发生错误,请发布它。请务必检查故障排除部分,因为它显示了如何从 HTTP 结果中捕获和错误 @Nick.McDermaid:对不起,我的项目设置不一致。所以没有问题,我将它删除这个条目。 如果您发布详细的答案会更好。 @Nick.McDermaid:好的,那我下周末就可以了,我最后几天有一些会议,下周也要努力工作。 Soi 会这样做,但不是现在。 【参考方案1】:这是一个在不知道其架构的情况下从表中转储所有实体的简单示例。
var service = new TableServiceClient(
new Uri("https://youraccount.table.core.windows.net"),
new DefaultAzureCredential());
var table = service.GetTableClient("mytable");
await foreach (var tableEntity in table.QueryAsync<TableEntity>())
Console.WriteLine("--------------------");
foreach (var kvp in tableEntity)
Console.WriteLine($"kvp.Key: kvp.Value");
【讨论】:
以上是关于将 Azure 存储表转储到未知表模型上的主要内容,如果未能解决你的问题,请参考以下文章