Có các mẫu ký tự bị hạn chế trong Azure RowStorage RowKeys không? Tôi đã không thể tìm thấy bất kỳ tài liệu nào thông qua nhiều tìm kiếm. Tuy nhiên, tôi nhận được hành vi ngụ ý như vậy trong một số thử nghiệm hiệu suất.Azure Bảng lưu trữ RowKey hạn chế các mẫu ký tự?
Tôi có một số hành vi kỳ lạ với RowKeys bao gồm các ký tự ngẫu nhiên (trình điều khiển thử nghiệm ngăn chặn các ký tự bị giới hạn (/ \ #?) Cộng với việc chặn các dấu nháy đơn xuất hiện trong RowKey). Kết quả là tôi đã có một RowKey mà sẽ chèn tốt vào bảng, nhưng không thể được truy vấn (kết quả là InvalidInput). Ví dụ:
RowKey: 9}5O0J=5Z,4,D,{!IKPE,~M]%54+9G0ZQ&G34!G+
Cố gắng truy vấn bởi RowKwy này (bình đẳng) sẽ dẫn đến lỗi (trong ứng dụng của chúng tôi, sử dụng Azure Storage Explorer và Cloud Storage Studio 2). Tôi đã xem xét yêu cầu được gửi qua Fiddler:
GET /foo()?$filter=RowKey%20eq%20'9%7D5O0J=5Z,4,D,%7B!IKPE,~M%5D%54+9G0ZQ&G34!G+' HTTP/1.1
Dường như% 54 trong RowKey không được thoát trong bộ lọc. Thật thú vị, tôi nhận được hành vi tương tự cho các yêu cầu hàng loạt để lưu trữ bảng với URI trong lô XML bao gồm RowKey này. Tôi cũng đã nhìn thấy hành vi tương tự cho RowKeys với các dấu ngoặc kép được nhúng, mặc dù tôi chưa cô lập mô hình đó.
Có ai đồng ý với tôi về hành vi này không? Tôi có thể dễ dàng hạn chế các ký tự khác xuất hiện trong RowKeys, nhưng thực sự muốn biết 'quy tắc'.
Cũng đáng lưu ý rằng trong khi bạn có thể có% trong một RowKey/PartitionKey, bạn sẽ gặp sự cố khi cố gắng truy xuất bất kỳ hàng nào có% trong khóa của nó. MS nhận thức được vấn đề và xem xét các giải pháp: http://blogs.msdn.com/b/windowsazurestorage/archive/2012/05/28/partitionkey-or-rowkey-containing-the-percent-character-causes-some -windows-azure-tables-apis-to-fail.aspx – knightpfhor
Cảm ơn knightpfhor, đó là những gì tôi đang tìm kiếm. – MikeN