serilog/serilog — pull request #314 by bragma (2014-12-04 08:46:29+00:00)
Title: Azure Table Storage Sink "with properties"

* Updated Azure Storage SDK to latest
* First level properties are stored to dedicated columns instead of a single "Data" column. Other columns from previous sink are preserved
* Support for Azure Table columns native types. Non native types are serialized through serilog renderer
* Row key supports custom postfix string (ex use: store host name, process name, etc).
* Row keys longer than 1024 bytes are shortened by preserving the postfix and unique index.
* Guid used as unique index generator instead of int for better collisions avoidance (works for multiple servers writing to the same table)
* Partition key now is rounded to minutes. This increases the number of operations that can be batched
* Removed limit on number of batched operations. It manages Azure Table limits for table operations internally
* Same Partition Keys format as for single operations when batching
* Configuration via AzureTableStorageWithProperties (Added customizable rowkey postfix string)
* Tests for the sink and formatter

Changes to storage from previous sink (should be non breaking):
* Partiton Keys are now rounded to minute, but still preserving format. Sorting order with old Keys should be preserved.
* Row Keys now use a Guid instead of int for row uniqueness. The guid is stored at the end of the row using the same separator, so queries based on row key prefix (ex: RowKey ge "message template|" should work.

Potentially breaking changes:
* Data column has been removed. There is a limit in the Batch and Row size. Leaving data as a replication of other columns would make updates slower due to increased payload size.