将 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 存储表转储到未知表模型上的主要内容,如果未能解决你的问题,请参考以下文章

PHP 将数据库转储到HTML表

如何将数据库转储还原到 Citus 集群?

如何将数据(纯文本)从 S3 转储到雪花表

将 Access 表转储到 CSV 时减少内存使用量

如何将大sql转储文件拆分成小块并在原始文件中维护每个记录,尽管后来删除了其他记录

将表格内容转储为 ASCII 格式的表格字符串的简单方法?