JSON Formatındaki Veriyi SQL Server ile Sorgulama

Merhaba,

Bu yazımızda son yılların popüler veri formatı olan JSON formatını OPENJSON komutunu kullanarak nasıl sorgulayacağımızdan  basitçe bahsediyor olacağım.

Elimizde şu şekilde bir JSON verisi var.

{
    "firstName": "Rack",
    "lastName": "Jackon",
    "gender": "man",
    "age": 24,
    "address": {
        "streetAddress": "126",
        "city": "San Jone",
        "state": "CA",
        "postalCode": "394221"
    },
    "phoneNumbers": 
        { "type": "home", "number": "7383627627" }
    
}'

Bu Json’ı SQL Server ile aşağıdaki gibi sorgulayabiliriz.

DECLARE @JSON AS NVARCHAR(MAX)='{
    "firstName": "Rack",
    "lastName": "Jackon",
    "gender": "man",
    "age": 24,
    "address": {
        "streetAddress": "126",
        "city": "San Jone",
        "state": "CA",
        "postalCode": "394221"
    },
    "phoneNumbers": 
        { "type": "home", "number": "7383627627" }
    
}'


SELECT * FROM  
 OPENJSON ( @json )  
WITH (   

		 firstname varchar(100) '$.firstName' ,
		 lastName varchar(100) '$.lastName' ,
		 age int '$.age' ,
		 gender varchar(100) '$.gender' ,
		 streetAddress varchar(100) '$.address.streetAddress' ,
		 city varchar(100) '$.address.city' ,
		 postalCode varchar(100) '$.address.postalCode' ,
		 state varchar(100) '$.address.state' ,
		 address varchar(100) '$.address.streetAddress' ,
		 phoneNumbers varchar(100) '$.phoneNumbers.type'
)

Ve bu da elde ettiğimiz sonuç.

Şimdi veri sayısını biraz çoğaltalım.

DECLARE @JSON AS NVARCHAR(MAX)='
[
{
    "firstName": "Rack",
    "lastName": "Jackon",
    "gender": "man",
    "age": 24,
    "address": {
        "streetAddress": "126",
        "city": "San Jone",
        "state": "CA",
        "postalCode": "394221"
    },
    "phoneNumbers": 
        { "type": "home", "number": "7383627627" }
    
	},
	
	{

    "firstName": "Marrie",
    "lastName": "Coldman",
    "gender": "woman",
    "age": 39,
    "address": {
        "streetAddress": "156",
        "city": "Newyork",
        "state": "NY",
        "postalCode": "10019"
    },
    "phoneNumbers": 
        { "type": "home", "number": "555689998" }   
}	
]'


SELECT * FROM  
 OPENJSON ( @json )  
WITH (   

		 firstname varchar(100) '$.firstName' ,
		 lastName varchar(100) '$.lastName' ,
		 age int '$.age' ,
		 gender varchar(100) '$.gender' ,
		 streetAddress varchar(100) '$.address.streetAddress' ,
		 city varchar(100) '$.address.city' ,
		 postalCode varchar(100) '$.address.postalCode' ,
		 state varchar(100) '$.address.state' ,
		 address varchar(100) '$.address.streetAddress' ,
		 phoneNumbers varchar(100) '$.phoneNumbers.type'
)

İlerleyen zamanlarda konu ile alakalı daha detaylı yazılar gelecek inşallah.

Udemy’de Yeni Kursum, “Devexpress Dashboard ile İş Zekası ve Veri Analitiği”

Merhaba arkadaşlar,
Udemy’de yeni kursum sonunda yayına alındı. Önceki kursumuzda veriyi yönetmeyi öğrenmiştik bu kez veriyi analiz etmeyi öğreneceğiz.

Bu kursla birlikte Bilişim sektöründe çalışan herkesin ihtiyacı olan veriyi görsel ve analitik olarak inceleme ve değerlendirme noktasında ihtiyacımız olan İş Zekası uygulamalarına çok düşük bir bütçe ile sahip olabileceksiniz.

Dakikalar içerisinde chart’lar, grafikler, gauge’lar, özet tablolar, haritalar içeren dashboardlar ve çok daha fazlasını oluşturabileceksiniz.

Oluşturduğunuz bu dashboardları hem windows, hem web ve hem de mobilde görüntüleyebileceksiniz.

Üstelik öğrenmek için sadece bu kursu almanız yeterli.

7 saat ile başlayan kursum  yeni dersler, yeni veritabanları ve yeni örnekler eklenerek 11 saat oldu. İnşallah yeni eklemeler ile de yaşayan bir kurs olmaya devam edecek.

Aşağıda örnekler ile açıkladığım bu kursumu 24,90 TL’ye bu linkten hemen alabilirsiniz.

https://www.udemy.com/devexpress-dashboard-ile-is-zekasi/?couponCode=FREECPNDXWP

İncelediğiniz zaman zaten seveceğinizi düşündüğüm bu kursta veriyi keyif alarak, sorgulayarak, sözel sorulara sayısal ve görsel cevaplar arayarak analiz etmeyi öğretmeyi hedefledim.

Bu işi daha da eğlenceli hale getirmek adına da gerçek hayattan gerçek örnekler ile  çalışmayı tercih ettim. Büyük veriler ile çalışmanın ne kadar kolay ve ne kadar keyifli olduğunu  görmeniz için özellikle büyük veri setleri kullandım.

Bir kere hazırladığımız dashboard larımız webde, windowsta ve mobilde aynı şekilde çalışmaktadır.

Örneğin aşağıdaki dashboard lar Logo Tiger datası üzerinden çekilen, Türkiye’nin 81 ilinde şubesi olan bir marketin satış rakamlarının analizini içeriyor. Her bir dashboardun ortalama oluşturulma süresi 10 dk civarında.

Veritabanı Açıklama:SQL Server üzerinde Logo Tiger Market Datası, Gerçek veriler ile örnekleme yapılarak Logo Objects kullanılarak oluşturuldu. Logo Objects dll saniyede 1 fatura kesebildiği için aralıksız çalışarak yaklaşık 10 günde oluşturuldu.

Rakamlar:

  • 3 GB MSSQL Verisi
  • 81 Şube
  • 600.000+Fatura
  • 2.500.000+Satış hareketi
  • 50.000+Müşteri
  • 20.000+Ürün (Çokonat, ariel, pınar gibi bildiğimiz ürünler. Marka ve özelliklerine göre kategorize edilmiş.)
  • 500+ Kasiyer
  • 12 aylık data

Bir sonraki örneğimiz ise dünya haritası üzerinde dünya ülkelerinin nüfus, zenginlik, tarım gibi özelliklerini değerlendirilmesi.

Yeni  eklediğim bir başka datasetimiz Avrupa Futbol Liglerinin maç istatistikleri. Bu verisetini csv olarak Kaggle com üzerinden indirdim. SQL veritanbanına attım ve data warehouse oluşturdum. CSV,XML ve Json dataları SQL formatında anlaşılır hale getirdim.

Futbolcu resimlerini temin etmek adınabir program yazdım ve Google görselleri üzerinde fubolcuları arayıp resimlerini kaydettim. (10.000+ futbolcu resmimiz de elimizde mevcut.)

Bu dataset üzerinde futbolcu istatistik analizi gerçekleştirdik. Örneğin aşağıdaki dashboard u 25 dk da sıfırdan yapabilirsiniz.

Veritabanı Açıklama:Avrupa Futbol Ligleri 8 yıllık istatistik bilgileri

Rakamlar:

  • 2 GB MSSQL Verisi
  • 10.000+ Futbolcu
  • 10.000+ Fotograf
  • 8 yıllık data
  • 11 Lig
  • 11 Ülke
  • 25.000+ Maç
  • 180.000+ Futbolcu özelliği
  • 500.000+ Futbolcu istatistik
  • 40.000 Gol istatistiği
  • 220.000 Faul istatistiği
  • 80.000+ Korner istatistiği
  • 60.000+ Sarı-Kırmızı Kart istatistiği
  • 180.000+ Şut istatistiği

Üzerinde halen çalıştığım veritabanı ise “Dünya Global Terörizm” Veritabanı

Amerikan Savunma Bakanlığı tarafından hazırlanan 45 yıllık terör saldırıları istatistikleri. Bu data Kaggle com üzerinden csv olarak indirildi ve SQL formatına çevrildi. Tüm içerik İngilizce olduğu için sistem Google translate api kullanılarak Türkçe’ye çevrildi.

Bing haritalar kullanılarak gerçek bir haritada konumlandırma içeren dashboardlar yapıldı. Yine bu dashboardların oluşturulması da dakikalar içerisinde gerçekleştirilmektedir.

Veritabanı Açıklama:45 yıllık global terör saldırıları veritabanı

Rakamlar:

  • 5 GB MSSQL Verisi
  • 170.000+Terör olayı
  • Tarih, saldırı türü, saldıran örgüt, hedef,saldırı sebebi, saldırı sonucu, kullanılan silah ve özetler gibi bir çok bilgiyi barındıran sözel içerik.
  • 58.000.000+ kelime
  • Tüm bu sözel içerik ve 58.000.000+ kelime İngilizceden Türkçe’ye cümle cümle çevirildi.
  • Çeviri için Google translate apisi kullanıldı.
  • Çeviri işlemi 5 gün sürdü.

    Benim hazırlarken çok emek verdiğim aynı zamanda bir o kadar da keyif aldığım bu kursu inşallah sizlerin de beğenmesi ve fayda sağlaması dileğiyle.
    Sevgiler.

    Ömer.