performance - 快速转储 Azure 表

标签 performance azure storage nosql

我的任务是转储具有任意未知架构的整个 Azure 表。执行此操作的标准代码类似于以下内容:

TableQuery<DynamicTableEntity> query = new TableQuery<DynamicTableEntity>();
foreach (DynamicTableEntity entity in table.ExecuteQuery(query))
{
  // Write a dump of the entity (row).
}

根据表的不同,在我的系统上,其运行速度为每秒 1000-3000 行。我猜测这种(缺乏)性能与发出的单独的 HTTP 请求以检索 block 中的数据有关。不幸的是,一些表的大小有好几 GB,因此这需要相当长的时间。

有没有好的方法可以并行化上述内容或以其他方式加速?看起来这些 HTTP 请求可以由多个线程发送,如网络爬虫等。但是,我没有看到立即执行此操作的方法。

最佳答案

除非您知道表中实体的 PartitionKeys(或包括 PartitionKey 的其他一些查询条件),否则您需要采用您现在正在执行的自上而下的方法。为了让您能够高效地并行触发查询,您必须在查询中包含 PartitionKey。

关于performance - 快速转储 Azure 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26008223/

相关文章:

java - 对机器人进行编程以探索网格

c# - 将一个大字典分成多个部分是否明智?

performance - spark.sql.shuffle.partitions 和 spark.default.parallelism 有什么区别?

amazon-web-services - azure 中是否可以进行跨租户 blob 访问?

c - 如何测试Socket的速度?

azure - 使用 azure 构建管道、自托管代理和 docker-desktop 创建 docker 镜像

azure - Azure云平台中的 "input endpoint"和 "internal endpoint"是什么?

postgresql - 在 PostgreSQL 中计算和节省空间

java - Android 应用程序内部数据存储

azure - 如何查找谁从azure中的存储帐户中删除了文件共享文件夹