Насколько эффективным может быть сервис Azure BLOB Table? - PullRequest
0 голосов
/ 08 ноября 2019

Насколько эффективными могут быть таблицы Azure BLOB?

Служба BLOB Azure содержит различные компоненты, такие как контейнеры, очереди и таблицы. Насколько эффективными могут быть таблицы, каков их точный вариант использования и почему они обычно используются со вспомогательной службой, такой как Azure CosmoDB.

Может кто-нибудь помочь мне понять концепцию и мысль, стоящую за ней?

Редактировать: Проблема, с которой я сталкиваюсь, заключается в том, что мне необходимо зарегистрировать пакет обработки 700 000 строк данных в C # в таблицах BLOB. Как мне добиться этого в лучших практиках?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2019

Это вопрос три в одном: -)

Насколько эффективными могут быть таблицы
Очень эффективно, если используется правильно. Каждая строка в таблице имеет PartitionKey и Rowkey. При запросе данных это работает очень хорошо, если вы можете уменьшить набор, используя (части) PartitionKey и RowKey. Как только вы начнете фильтрацию по другим столбцам, производительность может очень быстро снизиться. См. Также документы по этой теме.

каков их точный вариант использования
По сути это решение nosql для пары ключ / значение. Он может быть очень эффективным для быстрого и простого хранения простых данных. Это один из самых дешевых вариантов хранения данных. Таблицы не имеют фиксированной схемы (следовательно, nosql) и используются для хранения, например, журналов, данных конфигурации и простых структур данных.

и почему они обычно используются со вспомогательной службой, такой как Azure. CosmosDB.
Дело не в этом. Хранилище таблиц Azure можно использовать отдельно. CosmosDB имеет API таблиц, который позволяет использовать CosmosDB против кода, написанного для хранилища таблиц Azure, без изменений кода. Это обеспечивает высокую производительность, поскольку индексируются не только PartitionKey и Rowkey, но и все остальные столбцы. Так что, как только вы начнете фильтровать по другим столбцам, производительность все равно будет очень хорошей. Но это будет стоить вам дороже в денежном выражении.

Хранение данных лучше всего осуществлять с использованием пакетов, поскольку данные записываются на раздел. См. Ответ Ивана.

Еще немного материала о том, когда его использовать:
https://markheath.net/post/azure-tables-what-are-they-good-for

https://blogs.msdn.microsoft.com/brunoterkaly/2013/01/13/knowing-when-to-choose-windows-azure-table-storage-or-windows-azure-sql-database/

0 голосов
/ 11 ноября 2019

Вы можете использовать операцию пакетной вставки для снижения затрат и производительности.

Демонстрационный код, подобный приведенному ниже (CustomerEntity - это класс сущностей для ваших данных):

    static void BatchOperation(CloudTable table)
    {
        TableBatchOperation batch = new TableBatchOperation();


        var customer3 = new CustomerEntity("Customer3", "customer3@outlook.com");
        var customer4 = new CustomerEntity("Customer4", "customer4@outlook.com");
        var customer5 = new CustomerEntity("Customer5", "customer5@outlook.com");
        batch.Insert(customer3);
        batch.Insert(customer4);
        batch.Insert(customer5);
        table.ExecuteBatch(batch);
    }

Вы можете обратиться к Выполнение транзакций группы сущностей для получения подробной информации о API пакетной операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...