Azure Table Storage bize büyük bir depolama alanı sunar. Maliyet olarak çok uygun bir şekilde ilişkisel olmayan kayıtlarımızı burada tutabiliriz. Exception, Transaction v.b logları burada tutabiliriz. Async şekilde yapabileceğimiz bu kayıtları select etmek için yine windowsazure.stroge kullanabiliriz. Ancak ben projelerimde sadece insert loglama yapmakta kullanıyorum.

Loglara ulaşmak istediğim özel durumlarda ise “Microsoft Azure Table Storage Explorer” öneriyorum. Böylece bu logları takip etme işini developer dışında bir çok farklı birimlere verebilir. En uygun, en optimize şekilde görüntüleyebiliriz. Nuget Package : WindowsAzure.Storage C# ile table storage kullanmak için nuget paketimizi yüklüyoruz.

Table işlemlerimizi yaparken bir “CloudStorageAccount” açıp, bu nesne üzerinden table nesnemize ulaşıp işlemlerimi yapacağız. CloudStorageAccount nesnesini oluştururken Azure panelinden oluşturulan connectionstring ya da accountName,accountKey bilgileri ile bu nesneyi oluşturabiliriz.

“TableStorageLog” classımıza dilersek connectionString, dilersek accountName,accountKey bilgilerini vererek oluşturabilecek şekilde constracturlarımızı belirledik. Table Storage üzerinde açtığımız table nesnesini yakalayacağımız bir methoda ihtiyacımız var. Hatta bu table Storage üzerinde yoksa eğer açmasını isteyebiliriz.

Bu method ile “tableName” parametresinden gelen table ismi ile Azure Storage’e istekde bulunduk. Yoksa eğer oluşturmasını istedik, haliyle bize table bulunamadı gibi bir hatanın önüne geçmiş olduk. Table nesnesi elimizde, artık insert edeceğimiz modeli belirleyip operasyonumuzu gerçekleştirebiliriz.

“LogData” modelimizi oluşturduk. Bu model ile insert işlemlerimizi yapacağız, burada dikkat etmemiz gereken nokta ise şu ; Oluşturduğumuz model(class) “Microsoft.WindowsAzure.Storage.Table”’dan gelen “TableEntity”’den miras almalıdır. Bize TableEntity’dan “PartitionKey,RowKey,Timestamp” property bilgileri gelecektir. Bunlardan “PartitionKey”i atıyorum “Exception” log yazıyorsak o şekilde belirtebiliriz, tüm Exception kayıtları için ortak bi key belirlemiş oluruz böylece görüntüleme yaparken bize yardımcı olur.

“RowKey” ise her satır için farklı olmalıdır. Aynı “RowKey” bilgisi ise data insert etmek istediğimizde duplicate hatası verecektir. “GetTableAsync” methodunu kullanarak table nesnemize ulaşıp nasıl insert operasyonu yaparız ona bakalım.

Görüldüğü gibi kullanımı gayet kolay. İlk önce “CloudTable” nesnemizi oluşturup, daha sonra TableOperation belirleyip “ExecuteAsync” üzerinden aksiyonumuzu çalıştırıyoruz. Bu kayıtları yazımın başında da belirtiğim gibi desktop manager üzerinden görüntüleyebilirsiniz.

Select işlemini c# ile yapmak istiyorsanız eğer “TableOperation.Retrieve” kullanmalısınız. Insert işlemi yaparken belirttiğimiz “PartitionKey,RowKey” burada bize yapacağımız select sorgusuna işe yarayacak.

Bu şekilde yaptığımız inserti tekrar LogData tipinde select edebiliriz.

Leave a Reply

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir