2012-01-21 24 views
11

Cho phép trích dẫn đầu tiên:Giới hạn Giới hạn Lưu trữ Hàng 1MB của Azure, Mã này được tính như thế nào đối với Mã UTF8?

Kích thước kết hợp của tất cả các thuộc tính trong thực thể không được vượt quá 1MB. (đối với một ROW/Entity) từ msdn

Câu hỏi của tôi là: Kể từ khi tất cả mọi thứ được XMLed dữ liệu, vì vậy cho 1MB, là 1MB những gì, 1MB của ASCII Chars, hoặc 1MB của UTF8 Chars, hoặc một cái gì đó khác?

mẫu:

Row1: PartitionKey="A', RowKey="A", Data="A" 
Row2: PartitionKey="A', RowKey="A", Data="A" (this is a UTF8 unicode A) 

là ROW1 và ROW2 cùng kích thước (chiều dài), hoặc Row2.Length=Row1.Length+1?

+0

Tôi tìm thấy câu trả lời Row2.Length = Row1.Length + 1 –

Trả lời

12

Các cột đơn lẻ như "Dữ liệu" trong ví dụ của bạn được giới hạn ở 64 KB dữ liệu nhị phân và các hàng đơn lẻ được giới hạn ở 1 MB dữ liệu. Các chuỗi được mã hóa thành nhị phân theo định dạng UTF8 nên giới hạn là bất kỳ kích thước byte nào kết thúc bằng chuỗi của bạn. Nếu bạn muốn cột lưu trữ hơn 64 KB dữ liệu, bạn có thể sử dụng một kỹ thuật như FAT Entity được cung cấp cho bạn với Lokad (https://github.com/Lokad/lokad-cloud-storage/blob/master/Source/Lokad.Cloud.Storage/Azure/FatEntity.cs). Kỹ thuật này khá đơn giản, bạn chỉ cần mã hóa chuỗi của mình thành nhị phân và sau đó tách nhị phân trên nhiều cột. Sau đó, khi bạn muốn đọc chuỗi từ bảng, bạn sẽ chỉ tham gia lại các cột một lần nữa và chuyển đổi nhị phân trở lại một chuỗi.

+0

Bạn có nghĩa là, nếu mã ASCII, tôi có thể lưu 1 triệu ký tự, nhưng đối với mã UTF8, tôi chỉ có thể tiết kiệm một nửa? –

+3

Mã hóa UTF8 không nhất thiết phải gấp đôi kích thước mã hóa ASCII. Infact nếu các ký tự của bạn nằm trong phạm vi ASCII 0-128 thì mã hóa sẽ kết thúc bằng cùng kích thước. Bạn nên tra cứu cách UTF8 được mã hóa. – RyanFishman

+0

Vì vậy, nếu tôi lưu các ký tự châu Á, tôi chỉ có thể tiết kiệm một nửa kích thước của tiếng Anh thuần túy? Bên phải –

10

Tính toán kích thước hàng của bảng Azure khá tham gia và bao gồm cả kích thước của tên thuộc tính và giá trị của nó cộng với một số chi phí.

http://blogs.msdn.com/b/avkashchauhan/archive/2011/11/30/how-the-size-of-an-entity-is-caclulated-in-windows-azure-table-storage.aspx

Chỉnh sửa. Đã xóa tuyên bố trước đó cho biết rằng việc tính toán kích thước hơi không chính xác. Nó khá chính xác.

Các vấn đề liên quan