从 Hadoop 应用程序插入到 Azure Table

Inserting into Azure Table in from Hadoop application

我有一个 hadoop 应用程序,其中映射器不断地将许多条目插入单个 Azure Table。大多数条目具有不同的分区键,因此在这种情况下批量插入可能无效。因为AzureTable压力很大,不知道会不会成为瓶颈?这种方法的缺点是什么?

一般来说,许多不同的分区键是提高吞吐量的正确方法,因为它允许服务更有效地分散数据。批处理更多地用于执行原子操作,而不是显着增加吞吐量。批处理有时可以提高吞吐量,有时实际上会受到伤害,因为在服务上它意味着更长的操作,因为它指定的所有行都是收集的。批处理是否有帮助取决于网络延迟、批处理大小以及特定行是否在多个并发批处理请求中,以及其他因素。

分区键如何布局,主要考虑的不是insert,而是query。点查询(一个分区键和行键)是迄今为止在 Azure 存储上执行的最快的操作,也是我们优化的对象。分散分区键对此非常有用。下一个最有效的是分区查询(相同的分区键,多个行键)。最慢的是 table 查询(多个分区)。因此,如果您打算进行大量非点查询,分散的分区键可能会伤害您。

有关详细信息,请阅读 performance and scalability document 中的 table 部分。