Ответ 1
Да, каждая строка может иметь до 1 МБ. Однако каждое свойство байтового массива или свойство строки ограничено до 64 КБ. См. эту ссылку MSDN для специфики каждого типа данных.
Получение исключений "Значение свойства больше, чем разрешено службой таблицы" при попытке вставить запись в хранилище таблиц azure.
Follwing - это моя структура таблицы,
строка PartitionKey, String RowKey, строка Id, строковый сайт, имя строки, byte [] content,
public DateTime createdtime
И я пытаюсь сохранить массив 83755 байт (82 КБ) в поле содержимого, а в других полях - не более 35 символов.
Может ли кто-нибудь рассказать мне, что такое максимальный размер строки для таблицы хранения azure?
Ниже приведен URL-адрес, который я назвал.. там упомянутая строка может иметь 1 МБ макс. Но мой не превышает 100 КБ.
Спасибо,
Гопинатх
Да, каждая строка может иметь до 1 МБ. Однако каждое свойство байтового массива или свойство строки ограничено до 64 КБ. См. эту ссылку MSDN для специфики каждого типа данных.
Я рекомендую проверить схему Lokad.Cloud для Azure (Open Source). Существует тестовый код для сериализации больших объектов в хранилище таблиц с предел 960 КБ (разделение свойств и управление обрабатываются каркасом)
Здесь пример использования FatEntities wiki
// TODO: change your connection string here
var providers = Standalone.CreateProviders(
"DefaultEndpointsProtocol=https;AccountName=;AccountKey=");
// 'books' is the name of the table
var books = new CloudTable<Book>(providers.TableStorage, "books");
var potterBook = new Book
{ Author = "J. K. Rowling", Title = "Harry Potter" };
var poemsBook = new Book
{ Author = "John Keats", Title = "Complete Poems" };
// inserting (or updating record in Table Storage)
books.Upsert(new[]
{
new CloudEntity<Book> {
PartitionKey = "UK", RowRey = "potter", Value = potterBook},
new CloudEntity<Book> {
PartitionKey = "UK", RowRey = "poems", Value = poemsBook}
});
// reading from table
foreach(var entity in books.Get())
{
Console.WriteLine("{0} by {1} in partition '{2}' and rowkey '{3}'",
entity.Value.Title, entity.Value.Author,
entity.PartitionKey, entity.RowRey);
}
Console.WriteLine("Press enter to exit.");
Console.ReadLine();
В мае 2017 года Azure внедрила Премиум-таблицу, которая фактически использует базу данных Azure Cosmos (ранее называемую Azure DocumentDB) с API-интерфейсом Azure.
Премиум-таблица имеет тот же предел 1 МБ для каждой сущности (строки), но позволяет до 1 МБ для одного свойства (без ограничения на 64 КБ).
Кроме того, он позволяет неограниченное количество свойств (Azure Table: 255) и длину имени свойства (Azure Table: 255) в пределах выделенного RU. Модуль запроса - это единица потребления ресурсов для базы данных Cosmos.